16

Thao tác chập khi thực hiện khi có nhiều kênh ở lớp đầu vào? (ví dụ: RGB)Mạng nơron liên kết - Nhiều kênh

Sau khi thực hiện một số đọc về kiến ​​trúc/triển khai CNN, tôi hiểu rằng mỗi nơ-ron trong bản đồ tính năng tham chiếu pixel NxM của hình ảnh được xác định bằng kích thước hạt nhân. Mỗi điểm ảnh sau đó được xác định bởi bản đồ tính năng học tập trọng lượng NxM (hạt nhân/bộ lọc), tổng hợp và nhập vào một hàm kích hoạt. Đối với một hình ảnh tỷ lệ màu xám đơn giản, tôi hình dung hoạt động đó sẽ tuân theo mã giả sau đây:

for i in range(0, image_width-kernel_width+1): 
    for j in range(0, image_height-kernel_height+1): 
     for x in range(0, kernel_width): 
      for y in range(0, kernel_height): 
       sum += kernel[x,y] * image[i+x,j+y] 

     feature_map[i,j] = act_func(sum) 
     sum = 0.0 

Tuy nhiên tôi không hiểu cách mở rộng mô hình này để xử lý nhiều kênh. Có ba tập hợp trọng lượng riêng biệt được yêu cầu cho mỗi bản đồ tính năng, được chia sẻ giữa mỗi màu không?

Tham chiếu phần 'Shared Weights' của hướng dẫn này: http://deeplearning.net/tutorial/lenet.html Mỗi nơron trong bản đồ tính năng tham chiếu lớp m-1 với màu được tham chiếu từ các nơron riêng biệt. Tôi không hiểu mối quan hệ họ thể hiện ở đây. Các hạt nhân hoặc hạt nhân của nơron có phải là lý do tại sao chúng tham chiếu các phần riêng biệt của hình ảnh không?

Dựa trên ví dụ của tôi, có vẻ như một hạt nhân nơron đơn lẻ chỉ dành riêng cho một vùng cụ thể trong hình ảnh. Tại sao họ chia thành phần RGB trên một số vùng?

+0

Tôi đang bỏ phiếu để đóng câu hỏi này là không có chủ đề vì nó thuộc về stats.stackexchange – jopasserat

Trả lời

27

Thao tác sao chép được thực hiện khi có nhiều kênh ở lớp đầu vào? (Ví dụ RGB)

Trong trường hợp này bạn có một 2D hạt nhân cho mỗi kênh đầu vào (còn được gọi máy bay).

Vì vậy, bạn thực hiện từng chuyển đổi (Đầu vào 2D, hạt nhân 2D) một cách riêng biệt và bạn tính tổng đóng góp cung cấp bản đồ đầu ra cuối cùng.

Vui lòng tham khảo slide 64 này CVPR 2014 tutorial bởi Marc'Aurelio Ranzato:

enter image description here

Are ba bộ trọng lượng riêng biệt cần thiết cho mỗi bản đồ tính năng, chia sẻ giữa mỗi màu?

Nếu bạn xem xét bản đồ tính năng đầu ra đã cho, bạn có hạt nhân 3 x 2D (tức là một hạt nhân trên mỗi kênh đầu vào). Mỗi hạt nhân 2D chia sẻ cùng một trọng số dọc theo toàn bộ kênh đầu vào (R, G hoặc B ở đây).

Vì vậy, toàn bộ lớp chập là một 4D-tensor (các mặt phẳng đầu vào nb x nb. Mặt phẳng đầu ra x chiều rộng hạt nhân x chiều cao hạt nhân).

Tại sao họ chia thành phần RGB trên một số khu vực?

Như đã nêu chi tiết ở trên mỗi kênh R, G và B dưới dạng riêng biệt mặt phẳng nhập với hạt nhân 2D chuyên dụng của nó.

+0

Hạt nhân chuyển tiếp 2D không được chia sẻ giữa cả ba kênh?Lớp chuyển đổi suy nghĩ là 1 * conv_kernel_num * kernel_width * kernel_height tensor. Nếu hạt nhân conv không được chia sẻ giữa các kênh, tôi có thể giải thích hạt nhân conv là kernel_width * kernel_height * channel_num (3 trong trường hợp này) tensor không? – user2696499

Các vấn đề liên quan