Các bộ lọc và bản đồ kích hoạt được kết nối trong Mạng thần kinh chuyển đổi như thế nào?


11

Các bản đồ kích hoạt ở một lớp nhất định được kết nối với các bộ lọc cho lớp đó như thế nào? Tôi không hỏi về cách thực hiện thao tác tích chập giữa bộ lọc và bản đồ kích hoạt, tôi đang hỏi về loại kết nối mà hai loại này có.

Ví dụ, giả sử bạn muốn thực hiện kết nối đầy đủ. Bạn có f số bộ lọc và n số bản đồ kích hoạt trong một lớp nhất định. Bạn sẽ nhận được số lượng bản đồ kích hoạt trong lớp tiếp theo và số lượng bản đồ kích hoạt sẽ tăng lên với mỗi lớp mới. Đây là cách tôi cho rằng nó được thực hiện.

Hoặc bạn có thể nói mỗi bộ lọc được kết nối với chỉ một bản đồ kích hoạt. Trong trường hợp này, số lượng bộ lọc sẽ bằng số lượng bản đồ kích hoạt và mỗi lớp sẽ có cùng số lượng bộ lọc và bản đồ kích hoạt. Đây là kiến ​​trúc hiện tại của mạng của tôi và nó có vẻ học tốt.

Nguồn chính của sự nhầm lẫn của tôi là nhìn vào sơ đồ của convnets tôi thấy trực tuyến. Một số trong số chúng có "kết nối đầy đủ" giữa các bộ lọc và bản đồ kích hoạt, chẳng hạn như thế này - nhập mô tả hình ảnh ở đây Trong lớp đầu tiên, bạn có 4 bản đồ kích hoạt và có lẽ là 2 bộ lọc. Mỗi bản đồ được tích hợp với mỗi bộ lọc, dẫn đến 8 bản đồ trong lớp tiếp theo. Trông thật tuyệt.

Nhưng ở đây chúng tôi có một kiến ​​trúc không có ý nghĩa với tôi - nhập mô tả hình ảnh ở đây Làm thế nào để bạn đi từ 6 bản đồ trong lớp đầu tiên đến 16 trong lớp 2? Tôi có thể nghĩ ra cách lấy 16 bản đồ từ 6, nhưng chúng sẽ không có ý nghĩa gì.

Câu trả lời:


10

Kiến trúc mạng thần kinh tích chập thứ hai (CNN) mà bạn đã đăng xuất phát từ bài báo này . Trong bài báo, các tác giả đưa ra một mô tả về những gì xảy ra giữa các lớp S2 và C3. Giải thích của họ không rõ ràng lắm. Tôi muốn nói rằng kiến ​​trúc CNN này không phải là 'tiêu chuẩn' và nó có thể khá khó hiểu khi là một ví dụ đầu tiên cho CNN.

Kiến trúc CNN

28×285×5M×MN×NMN(MN+1)×(MN+1)

Điều gì xảy ra giữa lớp S2 và lớp C3 là như sau. Có 16 bản đồ tính năng trong lớp C3 được tạo từ 6 bản đồ tính năng trong lớp S2. Số lượng bộ lọc trong lớp C3 thực sự không rõ ràng. Trên thực tế, chỉ từ sơ đồ kiến ​​trúc, người ta không thể đánh giá chính xác số lượng bộ lọc tạo ra 16 bản đồ tính năng đó là gì. Các tác giả của bài viết cung cấp bảng sau (trang 8):

kết nối giữa các lớp S2 và C3

Với bảng họ cung cấp giải thích sau (dưới cùng của trang 7):

5×5

Trong bảng, các tác giả cho thấy rằng mọi bản đồ tính năng trong lớp C3 được tạo ra bằng cách kết hợp 3 hoặc nhiều bản đồ tính năng (trang 8):

Sáu bản đồ tính năng C3 đầu tiên lấy đầu vào từ mọi tập hợp con của ba bản đồ tính năng trong S2. Sáu tiếp theo lấy đầu vào từ mọi tập hợp con tiếp theo của bốn. Ba tiếp theo lấy đầu vào từ một số tập con không liên tục của bốn. Cuối cùng, cái cuối cùng lấy đầu vào từ tất cả các bản đồ tính năng S2.

Bây giờ, có bao nhiêu bộ lọc trong lớp C3? Thật không may, họ không giải thích điều này. Hai khả năng đơn giản nhất sẽ là:

  1. Có một bộ lọc cho mỗi bản đồ tính năng S2 trên mỗi bản đồ tính năng C3, tức là không có chia sẻ bộ lọc giữa các bản đồ tính năng S2 được liên kết với cùng một bản đồ tính năng C3.
  2. Có một bộ lọc cho mỗi bản đồ tính năng C3, được chia sẻ trên (3 hoặc nhiều hơn) bản đồ tính năng của lớp S2 được kết hợp.

Trong cả hai trường hợp, để 'kết hợp' có nghĩa là kết quả tích chập trên mỗi nhóm bản đồ tính năng S2, sẽ cần phải được kết hợp với các bản đồ tính năng C3 được tạo ra. Các tác giả không chỉ định làm thế nào được thực hiện, nhưng bổ sung là một lựa chọn phổ biến (ví dụ như gif hoạt hình gần giữa trang này .

Các tác giả cung cấp một số thông tin bổ sung, có thể giúp chúng ta giải mã kiến ​​trúc. Họ nói rằng 'lớp C3 có 1.516 thông số có thể huấn luyện' (trang 8). Chúng ta có thể sử dụng thông tin này để quyết định giữa các trường hợp (1) và (2) ở trên.

(6×3)+(9×4)+(1×6)=60(1410+1)×(1410+1)=5×55×5×60=1,5001,500+16=1,516(5×5×16)+16=416

Do đó, nếu chúng ta nhìn lại Bảng I ở trên, có 10 bộ lọc riêng biệt được liên kết với mỗi bản đồ tính năng S2 (tổng cộng có 60 bộ lọc riêng biệt).

Các tác giả giải thích loại lựa chọn này:

Các bản đồ tính năng khác nhau [trong lớp C3] buộc phải trích xuất các tính năng khác nhau (hy vọng bổ sung) vì chúng có các bộ đầu vào khác nhau.

Tôi hy vọng điều này làm rõ tình hình.


3

Bạn thực sự đúng rằng giá trị trước @ chỉ ra số lượng bộ lọc chứ không phải số lượng bản đồ tính năng (mặc dù đối với các lớp chập đầu tiên, các giá trị này trùng khớp).

Về câu hỏi cuối cùng của bạn: có, thật hợp lý khi có mọi bản đồ tính năng ở lớp l được kết nối với mọi bộ lọc ở lớp l + 1. Lý do duy nhất cho điều này là vì điều này làm tăng đáng kể sức mạnh biểu hiện của mạng, vì nó có nhiều cách (đường dẫn) hơn để kết hợp các bản đồ tính năng, do đó cho phép nó phân biệt rõ hơn bất cứ thứ gì trên hình ảnh đầu vào.

Cuối cùng tôi không biết liệu bạn có đang thực hành các kỹ năng mạng thần kinh của mình hay không bằng cách tự thực hiện chúng, nhưng nếu bạn chỉ muốn áp dụng mạng chập cho một nhiệm vụ cụ thể thì đã có một số thư viện mạng thần kinh tuyệt vời như Theano, Brainstorm, Caffe


Tôi nghĩ những gì tôi sẽ làm là điểm chuẩn cả hai cách để so sánh chúng. Với phiên bản không được kết nối đầy đủ, nó sẽ đào tạo và tính toán phân loại nhanh hơn. Nhưng độ chính xác là quan trọng hơn. Trong phiên bản không được kết nối đầy đủ, mỗi bộ lọc được bản địa hóa thành một tác vụ cụ thể hơn nhiều thay vì một tác vụ chung hơn. Trong phiên bản được kết nối đầy đủ, một bộ lọc được cập nhật dựa trên những gì tốt nhất cho tất cả các bộ lọc trước đó thay vì chỉ một loại tính năng. Tôi đã làm cho mạng của mình từ đầu 100% bằng c #. chắc chắn không phải là cách dễ dàng để làm mọi thứ ... nhưng nó đã dạy tôi những điều sâu sắc
Frobot

Nghe có vẻ như một kế hoạch âm thanh. Chúc may mắn!
Sjoerd
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.