1x1 convolution là gì

Tôi hiện đang làm Hướng dẫn học tập sâu Udacity. Trong Bài học 3, họ nói về tích chập 1x1. Phép chập 1x1 này được sử dụng trong Mô-đun khởi động của Google. Tôi đang gặp khó khăn để hiểu thế nào là tích chập 1x1.

Tôi cũng đã thấy bài viết này của Yann Lecun.

Ai đó có thể vui lòng giải thích điều này cho tôi?

Giả sử rằng tôi có một lớp đối lưu tạo ra một tenxơ hình trong đó:[N,F,H,W][N,F,H,W]

  • NN là cỡ lô
  • FF là số lượng bộ lọc tích chập
  • H,WH,W là kích thước không gian

Giả sử đầu ra này được đưa vào một lớp đối lưu với các bộ lọc 1x1, không đệm và sải chân 1. Sau đó, đầu ra của lớp đối lưu 1x1 này sẽ có hình dạng .F1F1[N,F1,H,W][N,F1,H,W]

Vì vậy, các bộ lọc đối chiếu 1x1 có thể được sử dụng để thay đổi kích thước trong không gian bộ lọc. Nếu thì chúng ta đang tăng chiều, nếu chúng ta đang giảm chiều, trong chiều của bộ lọc.F1>FF1>FF1 4x4 convolution [256 depth] input [256 depth] -> 4x4 convolution [256 depth]

Cái dưới cùng chậm hơn khoảng 3,7 lần.

Về mặt lý thuyết, mạng lưới thần kinh có thể 'chọn' đầu vào 'màu sắc' để xem xét việc sử dụng này, thay vì lực lượng vũ phu nhân lên mọi thứ.

Lý do chính khiến tôi không hiểu được các kết quả 1x1 là vì tôi không hiểu thực sự hoạt động như thế nào. Yếu tố chính là cách tính toán một tổ hợp của nhiều kênh / bộ lọc hoạt động. Để hiểu điều này, tôi thấy câu trả lời này cũng hữu ích:anyany

//datascience.stackexchange.com/questions/9175/how-do-sub resultent-convolution-layers-work

Cụ thể, Loại 2.2 là mô tả chính xác về tích chập ở đó.

Một câu trả lời hữu ích khác:

//ai.stackexchange.com/questions/5769/in-a-cnn-does-each-new-filter-have-different-weights-for-each-input-channel-or

Câu trả lời này giải thích cách bạn có một bộ lọc riêng cho từng kết hợp kênh vào / ra . Sau khi tính toán từng giá trị này, các kết quả sẽ được tính tổng qua trục kênh đầu vào với số giá trị của kênh đầu ra .

Đây là video tôi tìm thấy giúp tôi hiểu cách thức tích chập 1x1 hoạt động.

//www.coursera.org/lecture/convolutional-neural-networks/networks-in-networks-and-1x1-convolutions-ZTb8x

Đây là những điều chính tôi đã rút ra từ nó:

  • Đầu vào cho tích chập 1x1 thường là các tích chập trước đó có kích thước x . Nhưng nếu có các bộ lọc trong lớp kết hợp cuối cùng, bạn sẽ nhận được ma trận hình . Một tích chập 1x1 thực sự là một vectơ có kích thước , kết hợp trên toàn bộ hình ảnh, tạo ra bộ lọc đầu ra một x . Nếu bạn có các giá 1x1, thì đầu ra của tất cả các cấu hình 1x1 là kích thước .mmnnf1f1[m,n,f1][m,n,f1]f1f1mmnnf2f2[m,n,f2][m,n,f2]
  • Vì vậy, tích chập 1x1, giả sử , có thể được xem là trình các bộ lọc thông qua các bộ lọc . Nó cho phép mạng đào tạo cách giảm kích thước hiệu quả nhất.f2

Chủ Đề