1×1 卷積核的作用

一、來源:[1312.4400] Network In Network (如果1×1卷積核接在普通的卷積層後面,配合激活函數,即可實現network in network的結構)

二、應用:GoogleNet中的Inception、ResNet中的殘差模塊

三、作用:

1、降維(減少參數)

例子1 : GoogleNet中的3a模塊

輸入的feature map是28×28×192

1×1卷積通道爲64

3×3卷積通道爲128

5×5卷積通道爲32

左圖卷積核參數:192 × (1×1×64) +192 × (3×3×128) + 192 × (5×5×32) = 387072

右圖對3×3和5×5卷積層前分別加入了通道數爲96和16的1×1卷積層,這樣卷積核參數就變成了: 

192 × (1×1×64) +(192×1×1×96+ 96 × 3×3×128)+(192×1×1×16+16×5×5×32)= 157184

同時在並行pooling層後面加入1×1卷積層後也可以降低輸出的feature map數量(feature map尺寸指W、H是共享權值的sliding window,feature map 的數量就是channels)

左圖feature map數量:64 + 128 + 32 + 192(pooling後feature map不變) = 416 (如果每個模塊都這樣,網絡的輸出會越來越大)

右圖feature map數量:64 + 128 + 32 + 32(pooling後面加了通道爲32的1×1卷積) = 256 

GoogLeNet利用1×1的卷積降維後,得到了更爲緊湊的網絡結構,雖然總共有22層,但是參數數量卻只是8層的AlexNet的十二分之一(當然也有很大一部分原因是去掉了全連接層) 

 

例子2:ResNet中的殘差模塊

假設上一層的feature map是w*h*256,並且最後要輸出的是256個feature map

左側操作數:w*h*256*3*3*256 =589824*w*h 

右側操作數:w*h*256*1*1*64 + w*h*64*3*3*64 +w*h*64*1*1*256 = 69632*w*h,,左側參數大概是右側的8.5倍。(實現降維,減少參數)

 

2、升維(用最少的參數拓寬網絡channal)

例子:上一個例子中,不僅在輸入處有一個1*1卷積核,在輸出處也有一個卷積核,3*3,64的卷積核的channel是64,只需添加一個1*1,256的卷積核,只用64*256個參數就能把網絡channel從64拓寬四倍到256。

 

3、跨通道信息交互(channal 的變換)

例子:使用1*1卷積核,實現降維和升維的操作其實就是channel間信息的線性組合變化,3*3,64channels的卷積核後面添加一個1*1,28channels的卷積核,就變成了3*3,28channels的卷積核,原來的64個channels就可以理解爲跨通道線性組合變成了28channels,這就是通道間的信息交互。

注意:只是在channel維度上做線性組合,W和H上是共享權值的sliding window

 

4、增加非線性特性

1*1卷積核,可以在保持feature map尺度不變的(即不損失分辨率)的前提下大幅增加非線性特性(利用後接的非線性激活函數),把網絡做的很deep。

 

備註:一個filter對應卷積後得到一個feature map,不同的filter(不同的weight和bias),卷積以後得到不同的feature map,提取不同的特徵,得到對應的specialized neuro。

 

四、從fully-connected layers的角度來理解1*1卷積核

將其看成全連接層

左邊6個神經元,分別是a1—a6,通過全連接之後變成5個,分別是b1—b5

左邊6個神經元相當於輸入特徵裏面的channels:6

右邊5個神經元相當於1*1卷積之後的新的特徵channels:5

左邊 W*H*6 經過 1*1*5的卷積核就能實現全連接

In Convolutional Nets, there is no such thing as “fully-connected layers”. There are only convolution layers with 1x1 convolution kernels and a full connection table– Yann LeCun

 

參考:

 1. One by One [ 1 x 1 ] Convolution - counter-intuitively useful /1X1卷積核到底有什麼作用呢?關於1*1卷積核的理解如何理解卷積神經網絡中的1*1卷積

 2. https://zhuanlan.zhihu.com/p/35814486

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章