本篇博客介紹在AAAI-2020發表的關於人工設計的一種高效圖像分類結構:
論文名稱:Gated Convolutional Networks with Hybrid Connectivity for Image Classification
論文地址 : https://arxiv.org/pdf/1908.09699.pdf
代碼實現:https://github.com/winycg/HCGNet
1.引言
- 作者提出了一種簡單但是高效的方法來減少DenseNet的冗餘性,即將原始bottleneck模塊的堆疊數量替換爲作者設計的SMG模塊,其中SMG模塊嵌入了局部的residual連接。
- 此外,SMG模塊配備了一個高效的two-stage pipeline,來適應DenseNet-like的結構(需要聚合先前的輸出),即:壓縮進入的informative但是冗餘的feature map通過逐層的卷積,之後激活feature map通過multi-kernel卷積,SMG模塊輸出的特徵是compact並且是具有multi-scale features的。
- 作者進一步通過引入attention機制開發了forget gate和update gate來實現新特徵和舊特徵的fusion,而不是採用ResNet中簡單相加的方式。
- 由於Hybrid Connectivity(嵌套的結合of global dense和local residual,以及Gated mechanism,我們稱最終的網絡爲HCGNet。
- 在CIFAR和Imagenet的實驗結果標明HCGNet顯著的超過了其他SOTA網絡。此外,HCGNet獲得了優秀的可解釋性和對抗魯棒性。在MS-COCO數據集上,HCGNet作爲backbone,在目標檢測和語義分割上超過了ResNet。
2.網絡結構
2.1 Hybrid connectivity混合連通性
Revisiting ResNet和DenseNet
ResNet引入了residual connectivity來實現input和output的相加在每一個micro-block.DenseNet具有dense connectivity,通過改變skip連接由additive改爲concatenation。兩種feature 聚合連通性都可以促進feature reuse,並且減輕訓練問題。下面根據參數共享,特徵學習和整體效率來進行分析:
(1)參數共享
- residual connectivity隱式地伴隨着參數共享對於reused features和newly extracted features,因爲當前卷積block處理的特徵是上一個block的reused features和newly extracted features相加之後的混合特徵。
- dense connectivity對於reused features和newly extracted features不是參數共享,因爲當前卷積block處理的特徵是上一個block的reused features和newly extracted features concate之後的混合特徵。
(2)特徵學習
-
residual connectivity中的特徵addition模式以沒有增加feature map規模的方式促進了高效的特徵重用,因此減少了參數冗餘性。但是一個潛在的事實是太多的addition特徵聚合會造成特徵表示的坍塌和組織信息流動,因此一些早期的informative特徵可能會難免被丟失。此外,參數共享機制可能會損害探索新特徵的能力。
-
dense connectivity:後來提出的DenseNet開發了全局的dense connectivity,可以將早期的feature maps傳送到後續的模塊,因此保護了先前的所有信息並且促進了現有feature 的開發。此外,不同的模塊對相同的特徵進行共同學習,促進了有效的特徵探索。
(3)整體效率
在CIFAR-10數據集,DenseNet-100利用0.8M的參數量超過了10.2M的ResNet-1001。明顯的參數差距在於DenseNet-100比ResNet-1001深度更淺,由於DenseNet-100更有效的特徵探索和利用模式,ResNet主要依靠增加的深度來提升特徵表示能力。實驗上,DenseNet每層卷積可以具有非常少的filter數量由於共同學習機制。但是一個潛在的缺點是dense connectivity對於相同特徵進行重複提取造成冗餘性。residual connectivity具有相對低的冗餘性,由於參數共享機制。
Hybrid connectivity
爲了結合residual connectivity和dense connectivity的優勢同時避免兩者的缺點,作者創建了Hybrid connectivity,採用了全局的dense connectivity和局部的residual connectivity進行嵌套的結合,即模塊內部採用residual連接,模塊外部採用dense connectivity,如下圖1所示。
作者主要的動機(motivation)
在於減少dense connectivity的冗餘性。隨着網絡深度的線性增加,skip連接的數量和需求的參數量以的速率進行增長,其中代表在dense connectivity下堆疊的模塊數量。同時,早期冗餘的特徵具有低貢獻但是還是平方級地傳到後面的模塊。所以一個簡單的方法是減少冗餘性的方法是直接減少模塊的數量,但是這樣會降低特徵的表示能力。因此作者在局部的模塊中嵌入殘差連通性來協助特徵學習,構建了新的SMG模塊。通過實驗表明,在dense connectivity下SMG模塊比經典的bottleneck模塊堆疊的數量要小很多,但是卻沒有犧牲性能。
具體的連通性細節
hybrid connectivity模式存在於hybrid block中,類似於DenseNet的dense connectivity發生在dense block中。hybrid block包含了個模塊,在這裏,模塊被命名爲SMG模塊。匹配growth rate在DenseNet的概念,每一個模塊產生個channel的feature map。SMG模塊包含2個連續的cell,稱爲cell 1和cell 2。全局地,每一個模塊的輸入時先前所有模塊的輸出的concatenation。局部地,residual connectivity提供了一個shortcut來讓cell 1的輸出繞過cell 2然後與cell 2產生的新特徵進行相加來產生輸出。
2.2 SMG模塊
爲了配合hybrid connectivity,作者設計了SMG模塊,包含了Squeeze cell (cell 1),Multi-scale excitation cell (cell 2)和Gated mechanisms。除了特殊的說明,作者採用pre-activation的卷積,主要包含3個連續的操作:batch normalization (BN)-rectified linear unit (ReLU)-Conv。
Squeeze cell (壓縮細胞)
這個cell坐落在SMG模塊的初始位置,負責壓縮進入的feature map來降低後續處理的複雜度。的卷積改變feature map的channel數量,從輸入channel數變到,其中是寬度的乘子,在這裏,代表squeeze cell的最終輸出channel數量。然後,組卷積(GConv,組數)繼續壓縮feature map將channel數由降低爲,需要被組數整除。此外,對於組卷積如果stride 可以對feature map進行降採樣。
Multi-scale Excitation Cell(多尺度激活細胞)
壓縮後的feature map進入來進行多尺度的激活通過多分支的卷積,不同分支的卷積具有不同kernel sizes。爲了進一步提升效率,作者採用和深度卷積(depthwise convolution,DWConv)。此外,的dilation卷積(dilation size=2)來近似卷積來提升效率。這個cell的輸出是2個分支產生的feature maps。
Gate機制
Update Gate (更新門)
爲了捕捉長期的依賴,作者利用更新門來從多尺度的信息中建模全局上下文特徵,上圖展示了整體的細節,包含3個階段:spatial注意力,pooling,channel注意力。
spatial注意力,pooling:作者採用全局上下文建模來計算spatial-wise權重對於每個像素位置。對於給定的特徵圖 ,一個 卷積核沿着channel維度進行收縮得到spatial注意力特徵圖, 然後一個softmax函數歸一化它得到最終的spatial注意力特徵圖 , 每一個元素爲:
作者利用全局注意力池化通過加權地平均來收縮全局spatial信息和生成全局上下文特徵圖,第個channel 爲:
這裏, 代表元素相乘。基於上述的框架, 可以通過輸入特徵圖獲得。
channel注意力: 爲了保持信息的完整性,作者連接和作爲輸入。 然後它被轉換爲一個隱藏表示, 這個通常是一個稠密的特徵圖通過設置一個縮減因子 來得到更好的效率. 這可以通過一個全連接層和非線性來實現:
其中是批歸一化, 和 表示全連接層的權重和偏置。
兩個分支的全連接層作用於融合的表示來生成兩個中間的channel注意力圖 和:
其中, and , 表示兩個全連接層的權重和偏執。然後一個簡單的softmax函數組織了歸一化在 和 之間來產生兩個最終的channel注意力圖 和:
和 可以被看作是聚合多尺度全局上下文特徵的比例。對於 和加權聚合 是更新門的最終輸出:
其中 是第 個 channel 的輸出,輸出是 .
Forget Gate (遺忘門)
爲了使用channel權重衰減重用的特徵圖, 作者在殘差連接上放置了一個遺忘門,上圖展示了整體的細節,包含3個階段:spatial注意力,pooling,channel注意力。
spatial注意力和pooling:對於給定的特徵圖, 作者使用與更新門相同的全局注意力池化機制,然後一個channel描述器 可以被得到
channel注意力: 爲了滿足加權衰減每一個通道的需求,每一個通道的權重應該在之間,因此作者採用SE模塊,堆疊兩個連續的瓶頸形狀的全連接層並且使用sigmoid函數作爲結尾。不同於SE模塊,作者嵌入了批標準化來緩解優化問題並且替換ReLU爲 函數爲非線性。總之,對於輸入,一系列的轉換如下所示:
其中 是 sigmoid函數, , , 和. 是瓶頸因子,是最終的channel注意力圖。
信息融合
對於給定進入SMG模塊的特徵圖,壓縮單元首先凝聚它爲一個稠密的特徵圖,表示爲。然後 進入多尺度激活單元並且生成兩個分支的輸出 和 通過 和 DWConvs。從這以後,可以被看作是重用的特徵圖, 和 是最新被提取的特徵。一個更新門聚合 和來建模一個全局上下文特徵圖, 並且進一步與衰減的聚合通過每一個spatial位置的相加來建立最終的輸出。可以被看出SMG模塊保留了新特徵的數量級不變同時衰減重用特診,因此能促進有效的特徵探索和保持特徵重利用的能力。
2.3 Macro-architecture (宏結構)
如上圖所示,一個具有3個hybrid block的HCGNet實例,每一個綠色的方框代表SMG模塊。開始的位置是stem, 包含一系列的函數來處理初始的輸入圖像。然後多個hybrid block堆疊起來,不同的hybrid block對應不同的spatial階段。在兩個相鄰的hybrid block之間, 作者採用轉換層(transition layer)來執行降採樣和連通性截斷。在最後的hybrid block後是一個全局平均池化和softmax函數來計算類別概率。
hybrid 塊和transition layer 都採用SMG模塊但是使用不同的超參數設置。我們僅僅堆疊一個SMG模塊來建立transition layer,一個壓縮因子被用來減少channel數量,即。對於每個SMG模塊,作者在hybrid 塊中設置 , 和 ,同時在transition layers中設置, , 和。注意作者應用標準的卷積在transition layers來獲得最佳的特徵提取能力,應用組卷積在hybrid block中來更好的權衡效率和表現。與hybrid block相比,作者設置更小的乘子和更大的縮減因子 和 來提高效率,由於在transition layers的特徵圖具有更多的channel數量 。
具體的,作者構建多個網絡作用在CIFAR和ImageNet圖像分類任務。對於CIFAR,作者採用 標準卷積並且stride=1作爲stem,輸出的channel數量是第一個hybrid block growth rate的兩部。並且作者建立了3個不同規格的網絡: HCGNet-(8,8,8)-(=12,24,36)(A1), HCGNet-(8,8,8)-(=24,36,64)(A2) and HCGNet-(12,12,12)-(=36,48,80)(A3)。格式上,第一個-元祖表明有 hybrid 塊,其中每一個數字代表在對應hybrid 塊中的SMG模塊的數量。第二個-元祖代表 hybrid blocks的個growth rates。對於ImageNet,stem包含3個連續的 Conv-BN-ReLU, (stride 2 對於最後的層),輸出channel數量爲 32, 32, 64 , 然後是一個的最大池化層(stride=2)。 作者構建了兩個網絡: HCGNet-(3,6,12,8)-(=32,48,64,96)(B,表中所示) 和HCGNet-(6,12,18,14)-(=48,56,72,112)(C ) .
實驗結果
CIFAR的實驗
上表展示了HCGNet與其他SOTA的網絡在CIFAR-10和CIFAR-100上的對比,第一部分代表人工設計的網絡,第二部分代表自動搜索的網絡。
人工設計的網絡對比
DenseNet-190每一個dense塊具有31個模塊,HCGNet-A2每一個hybrid block僅有8個模塊,因此減少了93%的冗餘性但是具有顯著的準確率增益。此外,HCGNet-A2顯著地超過了其他稀疏化的變體,例如LogDenseNet,SparseNet和CondenseNet,表明了作者對於DenseNet的優化比稀疏化方法更加有效。HCGNet-A2使用 更少的參數超過了MixNet-190,它代表了ResNet和DenseNet最泛化的形式。HCGNet-A2使用 更少的參數但是勝過了AOGNet,它是SOTA人工設計的網絡通過分層和組合式的特徵聚合。因此,作者提出的嵌套聚合是最佳的方法相比於其他ResNet和DenseNet的結合體和變體。
自動搜索的網絡對比
HCGNet比自動搜索的網絡更加有效率。在小規模的設置下,HCGNet-A2分別獲得了 1% 和 3% 的CIFAR-10和CIFAR-100錯誤率減少相對於其他的搜索獲得的網絡。此外,HCGNet-A1獲得了優越的表現伴隨着前所未有的效率。在大規模的設置下,HCGNet-A3完成了最佳的效果伴隨着最小的複雜度。有點驚訝的是,HCGNet-A3超過了最有競爭力的NASNet-A僅僅需要其22%的參數量。
ImageNet的實驗
與流行的網絡對比
HCGNets憑藉更少或相近的複雜度在流行的網絡中獲得了最佳的表現,包括Top-1和Top-5錯誤率。DenseNet-169堆疊了4個dense塊,分別有6.12.32.32個模塊,HCGNet-B利用更淺層的設計,分別有3,6,12,8個模塊對於4個hybrid block,因此減少了88%的冗餘性但是獲得了2.3%的絕對增益。此外,HCGNets產生了顯著更好的結果相對於DenseNet,MixNet以及DPN家族在相似複雜度的條件下。使用顯著的 更少的FLOPs,HCGNet-B可以超過SparseNet-201,它是SOTA DenseNet變體。HCGNet家族獲得了更好的表現相對於ResNet,ResNeXt以及WideResNet家族以及它們的attention變體,它們代表了實踐中廣泛使用的模型。卓越地,HCGNets超過了先前的SOTA AOGNet在不同的模型規格下,進一步展示HCGNet設計的優越性。
模型可解釋性
上圖對比了ImageNet預訓練模型的可解釋性,通過network dissection的方法。可解釋性是通過比較最後一個卷積層的獨特的檢測器的數量來量化的。HCGNet-B獲得了最高的分數,因此表明混合連通性設計和SMG模塊不僅能夠獲得最佳的表現,還能夠產生最佳的隱層表示。
對抗魯棒性
上圖展示了通過FGSM攻擊得到的對抗魯棒性比較。作者攻擊網絡通過不同的擾動係數 來測試模型的對抗魯棒性。圖中可以看出HCGNet-B具有最優越的魯棒性相對於其他的模型,尤其是擾動很高的時候。
目標檢測和實例分割
上圖展示了在Mask-RCNN上HCGNet-B作爲backbone的目標檢測和實例分割的性能對比。在這裏,模型都是使用的ImageNet預訓練後的。結果展示了HCGNet-B可以學習到更好的特徵相對於SOTA backbone ResNet和AOGNet。