1. 程式人生 > >卷積神經網路 1*1 卷積核

卷積神經網路 1*1 卷積核

卷積神經網路中卷積核的作用是提取影象更高維的特徵,一個卷積核代表一種特徵提取方式,對應產生一個特徵圖,卷積核的尺寸對應感受野的大小。

經典的卷積示意圖如下:


5*5的影象使用3*3的卷積核進行卷積,結果產生3*3(5-3+1)的特徵影象。

卷積核的大小一般是(2n+1)*(2n+1)的奇數乘奇數大小(n>=1),最常用的有3*3,5*5,7*7的。之所有使用奇數*奇數而不是偶數*偶數大小的,主要原因有兩點:
1.  一般情況下,使用n*n大小的卷積核對大小為N*N的影象卷積,結果影象尺寸縮小為(N-n+1),這種卷積操作的都是影象上真實的畫素,不需要對影象進行擴充,也叫有效補白(Valid Padding)

另一種補白方式是相同補白(Same Padding),在卷積核對影象執行相同補白(Same Padding)卷積時,要求卷積後圖像大小跟原影象大小保持一致,這就需要提前給原影象做Padding(補白)操作,即給影象增加額外的空白,增大影象尺寸使得卷積後大小為原影象大小,Padding操作示意圖如下:


 
在相同補白(Same Padding)模式下,需要補充的畫素大小是N-(N-n+1)= n-1個,這裡的n表示的是卷積核大小,如果n為奇數,則n-1為偶數,補得這n-1個畫素可以在影象兩側對稱分佈,如果使用偶數的卷積核,n-1為奇數,無法在影象兩側對稱分佈
 

2. 奇數卷積核有中心點,可以方便的確定位置,而偶數的卷積核不存在絕對的中心點

1*1 卷積核

在殘差網路的Bootleneck殘差模組和GoogleNet的Inception模組裡出現了1*1的卷積核:



與(2n+1)*(2n+1)的卷積核提取影象特徵順便降低影象尺寸不同,1*1的卷積核的作用是提升或者降低特徵(個數)的維度,而不改變影象的寬高。這裡的維度是指影象的通道數(厚度,如RGB影象的通道數是3, 10個單通道的特徵圖一起組成通道數是10)。

例如經過某次卷積後,得到W*H*10的特徵圖,這裡通道數是10,如果需要降維成W*H*6,即把10個特徵圖減少到6個。這就需要使用6組,每組10個的1*1的卷積核來實現。10個1*1的卷積核和上一層W*H*10的特徵圖卷積,得到一個W*H*1的特徵圖,使用6組這樣的1*1卷積核,就可以得到W*H*6維度的特徵圖
,實現了特徵圖的壓縮,而不改變影象的寬高。這裡一共有6*10=60個可訓練引數。

同理,使用1*1卷積核也可以實現特徵圖升維。

從影象處理的角度看1*1的卷積操作,可以把它理解成是把N個影象按N個不同的係數融合的操作,需要多少個特徵圖就融合多少次。