從nin 到googlenet mrsa net 都是用了這個,為什麼呢?
發現很多網路使用了1x1卷積核,這能起到什麼作用呢?另外我一直覺得,1x1卷積核就是對輸入的乙個比例縮放,因為1x1卷積核只有乙個引數,這個核在輸入上滑動,就相當於給輸入資料乘以乙個係數。不知道我理解的是否正確。
[ruirui_ict]:我來說說我的理解,我認為1×1的卷積大概有兩個方面的作用吧:
1.實現跨通道的互動和資訊整合下面詳細解釋一下:2.進行卷積核通道數的降維和公升維
這一點孫琳鈞童鞋講的很清楚。1×1的卷積層(可能)引起人們的重視是在nin的結構中,**中林敏師兄的想法是利用mlp代替傳統的線性卷積核,從而提高網路的表達能力。文中同時利用了跨通道pooling的角度解釋,認為文中提出的mlp其實等價於在傳統卷積核後面接cccp層,從而實現多個feature map的線性組合,實現跨通道的資訊整合。而cccp層是等價於1×1卷積的,因此細看nin的caffe實現,就是在每個傳統卷積層後面接了兩個cccp層(其實就是接了兩個1×1的卷積層)。
進行降維和公升維引起人們重視的(可能)是在googlenet裡。對於每乙個inception模組(如下圖),原始模組是左圖,右圖中是加入了1×1卷積進行降維的。雖然左圖的卷積核都比較小,但是當輸入和輸出的通道數很大時,乘起來也會使得卷積核引數變的很大,而右圖加入1×1卷積後可以降低輸入的通道數,卷積核引數、運算複雜度也就跟著降下來了。以googlenet的3a模組為例,輸入的feature map是28×28×192,3a模組中1×1卷積通道為64,3×3卷積通道為128,5×5卷積通道為32,如果是左圖結構,那麼卷積核引數為1×1×192×64+3×3×192×128+5×5×192×32,而右圖對3×3和5×5卷積層前分別加入了通道數為96和16的1×1卷積層,這樣卷積核引數就變成了1×1×192×64+(1×1×192×96+3×3×96×128)+(1×1×192×16+5×5×16×32),引數大約減少到原來的三分之一。同時在並行pooling層後面加入1×1卷積層後也可以降低輸出的feature map數量,左圖pooling後feature map是不變的,再加卷積層得到的feature map,會使輸出的feature map擴大到416,如果每個模組都這樣,網路的輸出會越來越大。而右圖在pooling後面加了通道為32的1×1卷積,使得輸出的feature map數降到了256。googlenet利用1×1的卷積降維後,得到了更為緊湊的網路結構,雖然總共有22層,但是引數數量卻只是8層的alexnet的十二分之一(當然也有很大一部分原因是去掉了全連線層)。
最近大熱的msra的resnet同樣也利用了1×1卷積,並且是在3×3卷積層的前後都使用了,不僅進行了降維,還進行了公升維,使得卷積層的輸入和輸出的通道數都減小,引數數量進一步減少,如下圖的結構。(不然真不敢想象152層的網路要怎麼跑起來tat)
[孫琳鈞 ]:對於單通道的feature map和單個卷積核之間的卷積來說,題主的理解是對的。對於單通道feature map 用單核卷積即為乘以乙個引數,而一般情況都是多核卷積多通道,實現多個feature map的線性組合。
cnn裡的卷積大都是多通道的feature map和多通道的卷積核之間的操作(輸入的多通道的feature map和一組卷積核做卷積求和得到乙個輸出的feature map),如果使用1x1的卷積核,這個操作實現的就是多個feature map的線性組合,可以實現feature map在通道個數上的變化。接在普通的卷積層的後面,配合啟用函式,就可以實現network in network的結構了
[shiorioxy]:還有乙個重要的功能,就是可以在保持feature map 尺寸不變(即不損失解析度)的前提下大幅增加非線性特性,把網路做得很deep。
[月光裡的陽光ysu]:對於兩位在解答中說的1x1卷積核能夠對多個feature map實現線性組合。我的個人理解是不是和全域性平均池化類似,只不過乙個是求feature map的平均值,乙個是線性組合?——我認為你的理解沒問題,平均池化是針對每個feature map的平均操作,沒有通道間的互動,而1×1卷積是對通道的操作,在通道的維度上進行的線性組合。
可以實現與全連線層等價的效果。如在faster-rcnn中用1*1*m的卷積核卷積n(如512)個特徵圖的每乙個位置(畫素點),其實對於每乙個位置的1*1卷積本質上都是對該位置上n個通道組成的n維vector的全連線操作。
1x1卷積核的作用
參考知乎一篇文章h一文讀懂卷積神經網路中的1x1卷積核 撿點核心做下記錄 降維 公升維 由於 1 1 並不會改變 height 和 width,改變通道的第乙個最直觀的結果,就是可以將原本的資料量進行增加或者減少。這裡看其他文章或者部落格中都稱之為公升維 降維。但我覺得維度並沒有改變,改變的只是 h...
詳解 1x1 卷積核
表面看來,1x1 卷積核似乎並不是真正的濾波器,它只是將影象的每個點都乘以 1 個權重,再加上 1個偏置 因此,通過 n個 1x1 卷積核,只需少量引數,就能將 m張影象變為 n張影象 如需將影象分為 n類,可在最後用 1x1 卷積層 將 m張影象轉換為 n張影象,在通過全域性池化變為 n個數字,送...
1x1卷積的作用
1x1卷積的作用 在架構內容設計方面,其中乙個比較有幫助的想法是使用1x1的卷積。這裡用1x1的過濾器進行卷積似乎用處不大。只是對輸入矩陣乘以某個數字。但這僅僅是對於6x6x1的通道來說1x1卷積效果不佳。如果是一張6x6x32的,那麼使用1x1過濾器進行卷積效果更好。具體來說 1x1卷積所要實現的...