Part1 even-sized kernel 偶數大小卷積核
《Convolution with even-sized kernels and symmetric padding》
清華,NeurIPS,2019
一、 偶數大小卷積核定義
指方形卷積核,變長為偶數,例如2 * 2,4 * 4 ……
在以往,偶數卷積核一般也使用步長2來調整圖片、特征圖的大小(類似於池化);
二、直接用偶數大小卷積核的副作用——偏移問題
偏移問題(The shift problem):由於偶數卷積核在對特征圖作卷積操作時,會出現左右不平衡,如下圖:
會發現正常無padding的卷積,還是四周1-pixel的padding,右邊都會缺少一列。
而通過了多層的累積,會造成特征圖里的正激活值(正是一些重要的特征)逐漸偏向左上角,如下圖:(左邊三個圖是一只小鳥,經過多層偶數卷積操作后發現其重要特征偏移;右邊是多個數據偏移的平均效果)。
It is clearly seen that the post-activation (ReLU) values in C2 are gradually shifting to the left-top corner of the spatial location. These compressed and distorted features are not suitable for the following classification, let alone pixel-level tasks based on it such as detection and semantic segmentation, where all the annotations will have offsets starting from the left-top corner of the image.
三、解決偏移——使用對稱填充
對稱填充(Symmetric padding)的步驟:
(1)把特征圖(H*W*C)依通道分成四份,每一份為H*W*C/4;
(2)每一份只填充兩邊;
(3)再把特征圖疊回原樣;如下圖右邊:
四、偶數大小卷積核(以及)的好處
(1)參數量更少:以往工作告訴我們,通過堆疊若干個小卷積核的層,其感受野可以達到大卷積核的效果,並且參數量更少,同時也計算量更少,在圖像分類上表現還行,如下面表格;
(2)緩解信息侵蝕(The information erosion hypothesis):信息侵蝕在下一個部分詳細討論(當前你可以把信息侵蝕想象成是隨着神經網絡層的加深,特征圖邊緣信息會慢慢消失)。而偶數卷積中的對稱填充可以讓四邊的梯度分布得更均勻,從而減緩這種侵蝕,如上圖左邊,C2表示卷積核邊長為2,sp表示對稱填充。
(The smaller the ice, the faster the melting process happens. Symmetric padding equally distributes thermal gradients so as to slow down the exchange. Whereas asymmetric padding produces larger thermal gradients on a certain corner, thus accelerating it)
Part2 信息侵蝕/網絡的盲點 Blind Spots
《Mind the Pad -- CNNs Can Develop Blind Spots》
Facebook AI,ICLR,2021
一、侵蝕與盲點的定義
(1)盲點
同樣一個物體,在圖片中的位置稍微變一點,網絡的識別效果卻大有不同。如下圖(檢測交通燈,目標大概在圖的右上角,三張圖的交通燈位置略有不同):
(2)信息侵蝕(information erosion)
也叫特征空間偏差(spatial bias),是由於卷積操作對輸入信息的邊緣處理往往少於輸入信息的中間部分,然后特征圖邊緣的信息隨着網絡的加深,特征圖的邊緣信息會逐漸消失,如下圖:
作者用一個大小為360*640,通道數為32的全0張量作為輸入,可以看到隨着網絡的深入,其邊緣的偏差越來越明顯。這是因為每層卷積核所作的不當padding操作引起的。
信息侵蝕,會表現出特征偽影(feature artifact,也叫人為邊界效應,即消失的那些邊緣)、特征凹陷行為(foveation behavior,即中間突出/凹陷),從而導致網絡出現盲點。
二、填充(padding)的種類及其影響
(1)valid padding:對特征圖不作任何處理,只用原始的特征圖;
(2)full padding:假設卷積核邊為3,則在邊緣填充2像素;若卷積核邊為2,則填充1像素;但它會增加每一層輸出的尺寸,計算量增大,不切實際;
(3)same padding:讓輸入和輸出的大小一樣,卷積核邊為3,步長為1,則填充1像素;
(4)mirror padding(symmetric):特征圖中的一行,左邊邊緣填充本行最右邊第一個值,右邊邊緣填充最左邊第一個值,上下同理;
(5)mirror padding(reflect):特征圖中的一行,左邊邊緣填充本行最右邊第二個值,右邊邊緣填充最左邊第二個值,上下同理;
(6)replicate padding:直接復制邊緣的值作為padding;
(7)Circular padding:
(8)Partial Convolution:
(9)Distribution padding:
不同padding方法在VGG-19上所呈現的凹陷現象:
三、為什么要填充
(1)保持特征圖的尺寸,根據特征圖大小的計算公式可知;
(2)減少邊緣信息的誤差,因為邊緣不能成為卷積核的中心,邊緣處理往往少於輸入信息的中間部分;
四、填充的值
(1)0值填充,這是最常用的,因為0值填充對卷積核參數、對特征歸一化的影響最小;
(2)兩種mirror padding方法的填充值;
五、怎么解決侵蝕或盲點
(1)合理的輸入大小
下采樣層(會使特征圖變小的層)的輸入應滿足:hi-1 = si · (hi - 1) + ki – 2 pi
其中h為輸入的高,s為該層卷積核的步長,k為卷積核變長,p為padding一邊的大小;
模型第一層的輸入為:hi-1 = si d · (hd - 1) + ki – 2 pi 其中hd為最后一層模型圖的高,d為下采樣層的數量;
不同輸入大小造成的影響:
(2)選擇合適的padding方法
如上面所描述的各種padding方式,可以選擇適合當前模型的。