未經(jīng)同意,不得轉(zhuǎn)載
一、1x1卷積核的作用
(1)實現(xiàn)跨通道的交互和信息整合
使用1x1卷積核,其實就是對不同channel間的信息做線性組合的一個變換過程。比如輸入為3x3x3的feature map,后面添加一個1x1x3,64 channels的卷積核,就變成了3x3x64的feature map,原來的3個channels就可以理解為跨通道線性組合變成了64 channels,這就是通道間的信息交互。過程如下圖所示:
(2)增加非線性特性
1x1卷積核,利用后接的非線性激活函數(shù)可以在保持feature map尺度不變的前提下大幅增加非線性特性,把網(wǎng)絡(luò)做的很深。
(3)減少模型參數(shù),降低計算量
假設(shè)輸入feature map的維度為256維,要求輸出維度也是256維。有以下兩種操作:
- 256維的輸入直接經(jīng)過一個3×3×256的卷積層,輸出一個256維的feature map,那么參數(shù)量為:
256×3×3×256 = 589824
- 256維的輸入先經(jīng)過一個1×1×64的卷積層,再經(jīng)過一個3×3×64的卷積層,最后經(jīng)過一個1×1×256的卷積層,輸出256維,參數(shù)量為:
(256×1×1×64)+(64×3×3×64)+(64×1×1×256)= 69632
可以看到,參數(shù)量減少了大約8.5倍。
二、為什么2個3x3可以代替1個5x5的卷積核
在卷積神經(jīng)網(wǎng)絡(luò)中,一般情況下,卷積核越大,感受野(receptive field)越大,看到的圖片信息越多,所獲得的全局特征越好。雖說如此,但是大的卷積核會導(dǎo)致計算量的暴增,不利于模型深度的增加,計算性能也會降低。
于是在VGG、Inception網(wǎng)絡(luò)中,利用兩個3×3卷積核的組合替換一個5×5卷積核,這樣的好處是:
(1)在具有相同感知野的條件下,提升了網(wǎng)絡(luò)的深度,在一定程度上提升了神經(jīng)網(wǎng)絡(luò)的效果;
(2)降低了參數(shù)量(從5×5×1 x channels 到 3×3×2 x channels)。
那么為什么可以這樣來替換呢?
從卷積的定義可以知道,一張圖像經(jīng)過卷積后的尺寸大小計算方式為:
(W - F + 2P)/ S + 1
其中,W是輸入尺寸,F(xiàn)是卷積核大小,P是填充尺寸,S是步長
那么,假設(shè)輸入是28x28:
- 使用5x5的卷積核對其卷積,步長(stride)為1,填充(padding)為0,得到的結(jié)果是:
(28-5 + 0x2) / 1 + 1=24
- 使用2層3x3的卷積核,同樣步長(stride)為1,填充(padding)為0
第一層3x3:得到的結(jié)果是(28-3 + 0x2)/ 1 + 1=26
第二層3x3:得到的結(jié)果是(26-3 + 0x2)/ 1 + 1=24
所以最終結(jié)果是2層3x3和1個5x5的卷積核得到的feature map大小是一樣的。
同理也能得出三個3x3的卷積核可以替換一個7x7的卷積核。