rep论文阅读1:ACNet_Strengthening the Kernel Skeletons for Powerful CNN via Asymmetric Convolution Blocks
ACNet:通過非對稱卷積模塊增強CNN的卷積核骨架
paper:https://arxiv.org/abs/1908.03930
code:https://github.com/DingXiaoH/ACNet
?Abstract
????????為特定的應用設計合適的CNN架構本身涉及到繁重的手動工作或者需要高昂的GPU訓練時間,業界也正在尋求一些CNN結構可以方便的集成到其他成熟架構中,進一步提升應用到實際任務中的性能。本文提出了非對稱卷積模塊(Asymmetric Convolution Block,ACB)這樣一種結構無關的卷積模塊,使用一維非對稱卷積來代替卷積網絡中的常規卷積層,這樣構建出的網絡稱之為ACNet(Asymmetric Convolutional Network),可以進一步提升網絡精度;并且沒有增加任何額外的開銷。本文已經在CIFAR和ImageNet數據集上基于不同網絡都驗證了ACNet的有效性。通過實驗本文將ACB的有效性歸因于對旋轉變形的魯棒性以及增強了卷積核的中心骨架部分的能力。
?1. Introduction
????????卷積神經網絡已經在計算機視覺領域取得巨大成功,適用于可穿戴設備、安防系統、移動終端以及汽車等多種應用。由于這些終端設備常常受限于有限的計算資源,對推理的實時性也有要求,因此需要CNN網絡在有限的算力支持下達到較高精度。這樣簡單的通過增加更多可訓練的參數或者使用更多的連接來增強模型性能是不實際的。
 ????????因此本文認為更切實際的是在不增加額外的推理時間、內存或能耗的前提下進一步提升CNN性能。?另一方便對CNN結構的改進使得目前的模型精度已經顯著提高。但是現有的模型依舊不能滿足特定的需求,而設計新的結構又要消耗大量人工成本以及GPU訓練時間。
 ?????????近期學術界正關注于結構中立的CNN結構,如SE block以及quasi-hexagonal kernels,他們就可以直接應用到當前的結構中,來提升應用到具體應用上的性能。?
 ?????????近期關于CNN結構的研究主要聚焦于:?
 ?????????(1)各層之間如何互相連接。是簡單堆疊在一起,還是一一映射亦或是密集連接;?
 ?????????(2)不同層的輸出如何結合,從而提升學習到的特征表征的能力。
 ??????????考慮到這一點,本文就是為了尋求這樣一種結構中立的CNN模塊可以與許多其他結構直接結合。本文通過探究這一方面來增強常規卷積層:權重與其在kernel中空間位置的關系。?因此本文提出了非對稱卷積模塊(ACB)來代替常規的卷積層。對于原來dxd卷積,拆分為dxd,1xd,dx1三路卷積。由于1xd和dx1的卷積核并不是方形的因此將其稱之為非對稱卷積層。通過將ACB替換掉常規網絡中的方形卷積核,訓練直至網絡收斂就得到了ACNet。?具體參見Fig 1.
?????????以3x3卷積為例,將常規的3x3卷積拆分為3x3,1x3,3x1三路卷積,并將最后的結果相加。這種在卷積核不同骨架上非對稱卷積的結果相加等效于原始的方形卷積效果,這種等效變換是通過構建一個具有原始結構的新模型并使用ACNet學習到的參數來初始化它達到的。
 ????????可以看到ACNet分為訓練和推理階段,
????????訓練階段:強化了skeleton位置的權重,達到更好的特征提取效果;
? ? ? ? ? ? ? ? ? ? ? ? ? 因為3 x 3卷積是大多數網絡的基礎組件,因此ACNet的實驗都是針對3 x 3卷積進行的。訓練階段就是將現有網絡中的每一個3 x 3卷積換成3 x 1卷積 + 1?x 3卷積 +?3 x 3卷積共三個卷積層,最終將這三個卷積層的計算結果進行融合獲得卷積層的輸出。
????????測試階段:通過BN融合和分支融合,沒有增加額外的計算量。類似Tensorflow中進行fake quantization的實現?將BN后的權重系數和偏置作為新的權重系數和偏置項進行計算。
? ? ? ? ? ? ? ? ? ? ? ? ? 如圖1右圖所示,這部分主要對三個卷積核進行融合。這部分在實現過程中就是使用融合后的卷積核參數來初始化現有的網絡,因此在推理階段,網絡結構和原始網絡是完全一樣的了,只不過網絡參數采用了特征提取能力更強的參數即融合后的卷積核參數,因此在推理階段不會增加計算量。
 ?????????更好的地方在于:?
 ????????(1)ACNet沒有引入更多的超參數,從而更加方便的與其他結構結合而無需微調;?
 ????????(2)可以很方便的在主流框架TF 和 pytorch上實現;?
 ????????(3)沒有增加額外的推斷時間,也沒有增加額外的計算開銷。
?????????通過實驗本文部分解釋了ACNet的有效性。本文觀察到在方形卷積核中所學到的知識是不均勻的,與四周邊角相比,在中間有交叉的骨架部分(skeleton)上學習的權重更大;如果移除骨架上的這些部分對精度影響更大。在ACB中在skeleton上又額外增加了水平和垂直的兩條卷積核從而顯示的增強skeleton。有趣的地方在于在方形和水平、垂直卷積核上的權重都是隨機初始化的,很容易之間符號是相反的,因此把他們加起來可以獲得更強或更弱的skeleton。但是通過實驗本文發現總是朝著增強每一層skeleton的方向發展的。這種一致性增強的現象有助于啟發關于不同空間位置權重之間關系的進一步研究。
 ??????????本文的工作總結如下:?
 ??????????(1)本文提出非對稱卷積模塊代替常規卷積,顯式增強標準卷積核的表征能力;并且可以有效結合到已有模型中,不引入額外的參數和計算成本,不增加額外的推理時間;?
 ??????????(2)不同模型在CIFAR-10,CIFAR-100以及ImageNet上的訓練精度均有明顯提升;?
 ??????????(3)驗證了在方形卷積核中skeleton的重要性,以及ACNet在增強skeleton方面的有效性;
 ???????????(4)驗證了ACNet可以增強模型對旋轉變形的魯棒性,有助于對旋轉不變性問題的進一步研究。
2. Related work
?2.1. Asymmetric convolutions非對稱卷積
???????????非對稱卷積常用于近似常規的方形卷積用于壓縮和壓縮。已有一些前期工作[4, 17]表明常規的dxd卷積可以拆分為一個dx1卷積和一個1xd卷積,拆分后可以減少網絡參量以及所需的計算。背后的原理很簡單:如果一個2D的卷積核秩為1,就可以等效為一系列1D卷積。但是由于深度神經網絡中卷積核的分布,實際其本征的秩往往大于1,此時對卷積核直接進行變換會導致明顯的信息丟失。Denton等人通過奇異值分解進行低秩近似解決這一問題,還有通過最小化l2距離學習垂直和水平卷積核。????另一方面,非對稱卷積也廣泛用作體系結構設計元素用來保存參數和計算.比如在Inception V3中就將7x7卷積替換為了一系列1x7和7x1的卷積,但是這篇文章的作者也發現這種替換在較低層次的卷積中并不等效;ENet也用這種等效替代的方法將5x5的卷積進行精簡設計更高效的語義分割網絡,在增加少量計算成本的基礎上增加了感受野。在EDANet中也是用相似的idea將3x3卷積進行分解,在基本保持精度的前提下減少了33%的網絡參量。?而本文正相反,不是將每一層卷積進行分解,而是在訓練過程中豐富特征空間,將他們學習到的知識融合到方形卷積核中。
2.2. Architecture-neutral CNN structures體系結構中立的CNN結構
????????????本文希望不改變原有CNN結構的前提下使用一些結構中立的模塊進一步提升目前SOTA模型的性能。這種方法有效的補充了僅在網絡體系結構方面取得的創新。
 ?????????????如果一個CNN結構滿足以下條件就稱之為結構中立的:?
 ?????????????(1)無需任何假設前提,可用于任何模型;?
 ?????????????(2)有通用的提升。?
 ?????????????比如SE block就是一個結構中立的模塊,通過學習到的權重重新規劃channel的權重;另一個例子是auxiliary classifier可以插入到模型中監督模型的訓練,確實可以大幅度提升性能,雖然需要人工微調一些超參數。?
 ?????????????而本文的ACNet在訓練過程中沒有引入任何超參數,在推理階段也沒有增加任何參數或計算成本。因此在實際應用中開發者可以使用ACNet來增強各種模型,而用戶也可以在不影響推理過程的前提下享受性能的提升。
3. Asymmetric Convolutional Network非對稱卷積網絡
?3.1. Formulation公式
??????????????對于D個大小為HxW的卷積核(F),輸入C通道的特征圖(M),輸出的特征圖表述為:
?????????其中x表示為二維卷積。而CNN中為了克服過擬合以及加速訓練過程廣泛使用,經常放在線性變換之后用來增強模型的特征表述能力,經過BN處理后,輸出變為:
?????????其中 μ j 和σ j 分別對應逐通道的均值和方差,gamma和beta分別學習的是縮放因子和偏置項。
3.2. Exploiting the additivity of convolution?利用卷積的可加性
???????????本文致力于尋找一種不增加推理計算成本的方式將非對稱卷積引入到常規的卷積中。本文發現了卷積的一種特性:?如果多個大小兼容的二維卷積以相同的步長對同樣的輸入進行操作,從而產生相同分辨率的輸出,并將它們的結果相加;那么將這些卷積核在對應位置上相加,獲得的卷積核是等效的,會產生同樣的輸出。
????????比如分別對同樣的輸入進行3x3,1x3,3x1的卷積操作,可以看到這三個卷積核對應的滑窗是一樣的,因此通過將這三路的輸出相加在數學上與,現將1x3,3x1的卷積核加到3x3卷積核得到新的卷積核,最后得到的輸出是一樣的。
 ????????也就是利用卷積的可加性特性,有:
?
?
????????其中+表示的是將兩個卷積核對應位置進行element-wise addition。需要注意的是I可以進行一定的裁剪或者填充。?而compatiable兼容的意思指的是可以將較小的卷積核patch(貼?)到較大的卷積核上,比如1x3和3x1的卷積核就是3x3兼容的。 ?
 ????????通過卷積的滑動計算就可以證明.
3.3. ACB for free inference-time improvements
?????????本文聚焦于在CNN中廣泛使用的3x3卷積。對于任意CNN架構,本文將每一個3x3卷積層替換為本文的ACB,也就是分別包含3x3,1x3,3x1三路卷積,每一路卷積后都經過BN作為一個分支,而且沒有任何超參數要調整。?而使用ACNet可以獲得更高的精度,在訓練完成后本文會將每個ACB的輸出轉換為產生相同輸出的標準卷積層,這樣可以獲得性能更好的網絡而沒有增加任何額外的計算,而這種轉換是通過以下兩步實現的:BN融合和分支融合。
????????Fig 3展示了BN與分支融合。假設I是特征圖譜的任意通道輸入,對于每個分支會先等價的將BN的參數融合到卷積核與偏置項中,然后將融合后的結果進行相加。
????????BN fusion:
 ????????卷積的同質性允許將BN和線性縮放變換等價的融合到具有偏置的卷積層中。也就是對每一個分支 ,計算出新的偏置項,就可以產生與原始卷積同樣的輸出。?
????????Branch fusion:
 ????????通過將不對稱卷積核添加到方形卷積核對應的位置上,完成將三個BN分支合并成一個標準卷積。實際應用中這種變換是通過在原始網絡結構中使用融合后的權重進行初始化完成的,從而可以產生與ACNet相同的輸出。
????????對于每一個卷積核j,F’是融合后的三維卷積核,bj是偏置項,Fbar和F^分別對應1x3和3x1卷積層,因此融合后的輸出表述為:?
?
????????需要注意的是,雖然ACB可以等效的轉換為標準層,但是只在推理時是等效的,因為訓練過程中權重是隨機初始化,基于此計算出來的梯度也不同因此在訓練過程中是不等價的。
4. Experiments
略
5. Conclusion
????????為了提升各種CNN結構的性能,本文提出了非對稱卷積模塊,其結果是三路卷積(水平核、垂直核、卷積核)的加和輸出。通過將CNN中常規卷積替換為非對稱卷積可以搭建非對稱卷積網絡ACNet,并且在訓練之后可以將其轉換回原始的結構。
 ???????????通過在CIFAR數據集和ImageNet數據集上基于費對稱卷積搭建多種網絡模型(殘差網絡、密集連接網絡等)都顯示出ACNet可以增強模型對于旋轉變形的魯棒性,部分原因是ACNet會顯式增強卷積核中骨架部分skeleton的重要性。
 ????????????值得關注的一點是,ACNet沒有引入額外的超參數或者增加任何推斷時間,非常容易就可以整合進主流的模型框架中。
總結
以上是生活随笔為你收集整理的rep论文阅读1:ACNet_Strengthening the Kernel Skeletons for Powerful CNN via Asymmetric Convolution Blocks的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 原生JS的插件库jQuery
- 下一篇: 键盘录入、提高成绩(金山打字通)
