為什麼要用3×3卷積?偶數卷積核其實表現更強 | NeurIPS 2019

  • 2019 年 12 月 19 日
  • 筆記

作者 | BBuf 編輯 | 唐里

下面要介紹的論文發於NeurlPS2019,題為「Convolution with even-sized kernels and symmetric padding」,axriv地址為:https://arxiv.org/abs/1903.08385。

當前緊湊的卷積神經網路主要通道深度可分離卷積,擴張通道和複雜的拓撲結構來提高效率,但這也反過來加重了訓練過程。此外,在這些模型中3*3卷積核佔主要地位,而偶數大小的卷積核(2*2,4*4)很少被採用。

這篇論文通過資訊侵蝕假設來量化偶數大小的卷積核在訓練和測試時發生的特徵漂移問題,並通過在特徵圖的四個側面上應用對稱填充來消除它(C2sp,C4sp)。

對稱填充以很少的計算成本釋放了偶數大小卷積核的泛化能力,使得其在影像分類和生成任務方面優於3*3內核。此外,C2sp獲得了和最新緊湊型CNN相當的精度,而訓練期間的記憶體和時間消耗卻少得多。對稱填充和偶數大小的卷積可以很好的實現到現有框架中,為卷積體系結構提供有效的設計元素,尤其是在強調訓練在線和持續學習的場景。

1. 研究背景

深度卷積神經網路(CNN)在許多電腦視覺任務中都取得了重大成功,例如影像分類,語義分割,影像生成等。除了特定領域的應用外,還設計了各種CNN體系結構來提高性能,其中特徵提取和表示功能主要通過增加網路的寬度和深度來增強。

因此,記憶體開銷和計算複雜性極大的阻礙了它們在嵌入式AI系統中的部署。這激發了深度學習社區設計減少計算資源的緊湊型CNN,同時保持令人滿意的精度。

殘差連接和密集連接解決了網路過深梯度消失的問題。分支拓撲,組卷積,通道混洗以網路碎片為代價保證了準確性。還有深度可分離卷積也在設計緊湊的CNN時發揮了重要作用。同時最新的神經網路結構搜索NAS還通過強化學習,演化學習演算法等來優化結構。

當代的卷積神經網路都以3*3卷積為主,並且偶數卷積核被普遍認為不如奇數卷積核,因此很少被用作CNN的基本構建模組。

並且當前對模型的優化工作主要集中在前向推理階段,而模型訓練因為複雜的拓撲,擴展通道,額外的變換變得更加困難。因此這引發了人們開始對卷積核背後的數學原理重新思考。

在這篇論文中,探索了偶數大小的卷積核的泛化能力(2*2, 4*4),如果將這些卷積核直接用在分類和生成任務中性能都會下降。

論文提出通過資訊侵蝕假設對這種線性進行量化:偶數卷積核具有不對稱的感受野導致在生成的特徵圖中產生像素偏移。當堆疊多個卷積時,位置偏移會累積,從而嚴重的侵蝕空間資訊。

為了解決這一問題,論文提出使用偶數大小的卷積核的同時在特徵圖的每一層使用對稱填充(C2sp,C4sp)。對稱填充不僅很好的消除了移位問題,而且擴展了偶數偶數卷積核的感受野。

各種實驗表明 C2sp 是對 C3 的有效分解,並可節省 30%-50% 的參數和 FLOPs。另外,和緊湊的 CNN 模組 (如 DWConv, ShiftNet, 倒瓶頸結構 (MobileNetv2 引入)) 相比,C2sp 在訓練過程中具有 20% 的加速比和 35% 的記憶體節省,並且達到和他們類似的精度。在生成對抗網路中,C2sp 和 C4sp 都獲得了改進影像品質和收斂更加穩定的效果。

2. 相關工作

當代大多數網路模型壓縮方法都嘗試從預先訓練的參數網路塊中刪減權重,或者量化權重。最近還有一些工作可以在初始化階段修剪網路和在訓練期間量化模型。模型壓縮方法和設計緊湊型結構的CNN可以共同作用進一步減少記憶體消耗和計算複雜度。

偶數大小卷積核

偶數大小卷積核一般和步幅為2一起應用以調整影像大小。例如,一些GAN模型在生成器和判別器中應用4*4的偶數卷積核,並設置步長為2完成下取樣和上取樣,這樣可以避免棋盤效應。但是,當涉及到深層和大規模GAN網路時,3*3卷積核仍是首選。在關係強化學習中,採用兩個C2層來實現4個像素表示的對象的推理和計劃。

擴張卷積

擴張卷積支援感受野的指數級擴展且不會降低特徵圖解析度,這特別適合用於密集預測任務,例如語義分割。可變形卷積通過附加2D偏移量和直接從目標數據集中學習偏移量來增加卷積核的空間取樣位置。ShiftNet使用不包含參數或FLOP的移位核來迴避空間卷積,但它需要大的通道擴展才能取得令人滿意的性能。

3. 方法

3.1 移位問題

本文從標準卷積核的空間相關性開始。自覺來看,用兩個C2替換C3不僅可以使性能提高,而且還可以減少11%的開銷,這是受到C5可以分解為兩個C3的啟發。但Figure3(見後文) 中的實驗證明C2的分類準確率低於C3,並且隨著網路的加深飽和速度更快。

此外,即使將3*3卷積核視為4*4卷積核的子集(包含更多的參數和FLOPs),將每個C3替換為C4也會降低準確性。為了解決這個問題,Figure1 中展示了訓練好的使用C2核的ResNet-56的激活圖。

Figure 1

圖中共有32*32,16*16,8*8三種空間尺度的特徵激活圖被展示出來。其中第一行是使用2*2卷積核(C2),第二行是使用2*2卷積同時使用論文提出的對稱填充(C2sp)方法。可以看到C2中的激活特徵逐漸偏移到空間位置的左上角。這些壓縮和扭曲的特徵已經不適合用於分類,更不用說其它基於像素的任務了,例如目標檢測和語義分割。

論文將這一問題表述為偶數卷積核的移位問題。對於一個有

個輸入通道,

個輸出通道的特徵圖

和一個大小為

的正方形卷積核

,卷積操作表示為:

其中,

枚舉了

大小的特徵圖上的感受野

。特別地,當k是奇數例如3時,感受野

被定義為:

其中,k表示從四個邊界到原點的最大像素個數。

表示向下取整函數。因為

是對稱的,所以有

。當k是一個偶數例如2或4時,因為沒有中心點,所以

的卷積操作變成了非對稱的。在大多數深度學習框架中,它很少引起注意,並被預定義的偏移量所掩蓋。例如,Tensorflow選取左上角方向最近的像素點作為原點,這給出了不對稱的感受野

發生在所有空間位置上的偏移等於卷積之前在特徵圖的底部和右側再填充一圈0。對於Caffe是在左側和頂部填充一圈0。Pytorch默認僅支援對稱填充,如果需要,用戶需要自己定義填充方式。

3.2 資訊侵蝕假設

如上所述,偶數大小的卷積核使零填充不對稱於1個像素,並且平均(兩個相反方向之間)導致生成的特徵圖偏移0.5個像素。當堆疊多層偶數大小的卷積核時,偏移位置會累積,最終會將將像素擠壓或扭曲到特徵圖空間位置上的某個角。

理想情況下,如果這種非對稱填充卷積以Tensorflow樣式執行了n次,那麼現在的特徵圖相比於原圖對應方式變成:

由於特徵圖的大小為h*w,並且通常會下取樣以進行高級特徵表示,因此邊緣影響不可忽略,因為邊緣的0填充會扭曲特徵圖的有效值,特別是在深層網路和尺寸小的特徵圖中。

我們假設資訊量等於特徵圖的平均L1範數,然後用0填充進行連續卷積以保持特徵圖大小將逐漸侵蝕資訊:

資訊侵蝕是遞歸發生的,並且難以被公式化,我們直接從包含各種內核大小的深層網路中獲取特徵圖。在Figure2中,將尺寸為32*32的10k張影像饋送到未訓練的ResNet-56模型中,其中瓶頸結構和BN層被刪除了。

Figure 2

在較大的卷積核和尺寸較小的特徵圖中逐漸減少且速度更快。此外,偶數大小的卷積核(C2,C4)中的不對稱填充顯著加快了資訊侵蝕速度,這和Figure1中的網路結果一致。可以將特徵圖看作是在水中融化的矩形冰塊,只是它只能在其4個邊緣進行熱交換。冰越小,融化過程越快。

對稱填充均勻地分布了熱梯度,從而減慢了交換速度。而不對稱的填充會在某些角上產生較大的熱梯度,從而使其加速。這個假設也為相關文獻中的一些實驗提供了解釋。

(1)退化問題發生在非常深的網路中:儘管梯度消失/爆炸的正向激活和反向梯度已經通過初始化和中間歸一化解決,但多次卷積後的空間資訊卻被邊緣侵蝕了。

(2)根據報道,在GAN中將網路深度加倍會阻礙訓練,並將內核大小增加到7或5會導致性能下降或改進。這些表明GAN需要資訊增強並且對資訊侵蝕更加敏感。

3.3 解決方案

對於等式(3)中的偶數卷積核,

不可避免的是不對稱的,因為很難在單個特徵圖中引入對稱性。因此,論文從輸入

和卷積核進行卷積操作後的輸出

入手。簡單來說,讓

表示選擇左上角的最近像素作為原點移位後的感受野

。同理選擇其它3個方向就可以得到一個移位後的集合

包括4個方向:左上,右上,左下,右下。讓

表示輸入通道索引

到移位後的感受野的映射。調整四個移位後的感受野的比例,我們可以得到:

在單個卷積中混合四個移位的

後,偶數大小的卷積核會部分擴展。例如

。如果

是4的倍數(大多數都是),通過按順序分配

,在單個卷積層內是嚴格滿足對稱性的。

如上所述,偏移的

等效於在特徵圖的某個角填充0。因此,可以通過分組填充策略很好的實現對稱性,Figure2為C2sp的示例,總之,具有偶數大小卷積核和對稱填充策略的2D卷積包含3個步驟。

(1)將輸入特徵圖分成4組。

(2)根據該組中定義的方向填充特徵圖。

(3)執行標準卷積操作。

4. 實驗

在這一節,對稱填充的有效性在CIFAR10/100和ImageNet分類任務以及CIFAR10,LSUN,和CelebA-HQ生成任務中得到了驗證。首先,論文證明了移位問題已經通道對稱填充消除。

在Figure1的對稱情況下,特徵圖沒有出現特徵漂移現象,顯示出了合理的幅值和形狀。在Figure2中,就資訊量Q而言,C2sp個C4sp的衰減率和C4sp的衰減率比C2和C4低很多。此外,C2sp具有比C3更大的Q。

4.1 探索各種卷積核大小

為了探索各種卷積核的泛化能力,這裡選擇沒有瓶頸層的ResNet作為主幹網路。並且將所有其它組件和訓練超參數保持相同,僅僅將每個C3替換為C4,C2,C2sp。在CIFAR10上訓練深度為6n + 2,n∈{3,6,…,24}的網路。參數精度曲線如Figure3左圖所示:

Figure 3

原始的偶數大小的4×4、2×2核的性能較差,並且隨著網路的加深,飽和度會更快。與C3相比,C2sp僅使用60%-70%的參數以及線性相關的FLOPs即可達到相似的精度。實驗還發現,對稱填充只會稍微提高C4sp的準確性。

在這樣的網路深度中,邊緣效應可能會主導4×4內核的資訊侵蝕,而不是特徵移位問題,這與Figure2中的衰減曲線一致。基於ResNets在CIFAR10上的結果,進一步評估了CIFAR100的C2sp和C3。此時,具有多個深度6n+ 4,n∈{3,6,…,18}的DenseNet是主幹網路,結果如Figure3中圖所示。

隨著網路深度的加深,相同深度下C2sp的精度和C3相當。訓練損失表明C2sp比C3具有更好的泛化性能和過擬合。在相似精度的標準下,C2sp模型在CIFAR評估中節省30%-50%的參數和FLOPs。因此,本文推薦在分類任務中使用C2sp作為C3的更好替代品。

4.2 和緊湊的CNN模組對比

這一節和當前在模型結構方面設計的一些高效CNN模組如Shift Net, 深度可以分離卷積,反瓶頸結構(Mobilenetv2引入)進行對比。主要對比了錯誤率,參數量,FLOPs,通道擴展速率,記憶體,速度等指標。具體的測試結果如Table1所示。

同時論文對比了C2sp和當前的一些NAS網路模型:NASNet,PNASNet和AmoebaNet等。論文應用Wide-DenseNet並調整深度和寬度(K=48,L=50)以具有大約3.3M參數。和SOAT的自動生成模型相比,C2sp的準確率損失了不到0.2%,並且使用cutout和數據增強策略後模型的準確率相比SOAT精度還可以提升0.21%。

雖然NAS模型使用分離的運算符如池化,組卷積,深度可分離卷積來提高相同參數量模型的準確率,但標準的Wide-DenseNet具有更好的記憶體和運行時的計算效率。作者在TitanXP上針對NASNet-A和Wide-DenseNet的訓練速度分別是200和400sps。具體測試結果如Table2所示。

4.3 ImageNet影像分類任務

這一節沒什麼的好解釋的了,論文對比了Resnet-50,DenseNet-121,MobileNet v1, MobileNet V2在ImageNet影像分類數據集上的表現。注意在Table3中網路後面接的0.5x表示通道數是原始網路的0.5倍,其他數字類推。具體測試結果如Tabel3所示。

4.4 影像生成任務

對稱填充的有效性進一步在GAN中得到了驗證。Table4展示了使用不同類型的卷積核在CIFAR10,LSUN和CelebA上的測試結果。

然後論文還給出了由不同卷積核構成的GAN的可視化生成結果,如Figure4所示。

論文還出了分類實驗和GAN生成實驗的一些超參數設置,具體細節見原論文。

5. 結論

這篇論文探索了偶數大小卷積核的(2×2、4×4)的泛化能力,並通過資訊腐蝕假設量化了特徵漂移問題。然後,論文引入了對稱填充以在單個卷積層內優雅的實現對稱性。

在分類任務中,和CIFAR10/100的C3相比,C2sp節省了30%-50%的參數和FLOPs,並且在ImageNet上將C2的準確率提升了2.5%。和現有的緊湊的CNN結構相比,C2sp以更少的通道和更簡單的架構實現了具有競爭力的精度結果,減少了>35%的記憶體消耗並加快了>20%的訓練速度。

在影像生成任務中,C2sp和C4sp都可以提高影像品質並穩定收斂。具有對稱填充的偶數大小的卷積核為強調在線和持續學習的CNN體系結構設計提供了更有效的結構單元。

參考文獻:

[28] TakeruMiyato, Toshiki Kataoka, Masanori Koyama, and Yuichi Yoshida. Spectralnormalizationfor generative adversarial networks. InInternational Conference onLearning Representations,2018.

,內嵌到標準的數學框架(例如現在的3M:Mathematica、Matlab、Maple)的求解器當中,這會大大提升它們的性能。