Channel-wise卷積在channel維度上進行滑動,巧妙地解決卷積操作中輸入輸出的複雜全連接特性,但又不會像分組卷積那樣死板,是個很不錯的想法

來源:曉飛的算法工程筆記 公衆號

論文: ChannelNets: Compact and Efficient Convolutional Neural Networks via Channel-Wise Convolutions

  • 論文地址:https://arxiv.org/abs/1809.01330

  • 論文代碼:https://github.com/HongyangGao/ChannelNets

Introduction

深度可分離卷積能夠減少網絡的計算量和參數量,其中point-wise卷積佔據了大部分參數量,論文認爲網絡輕量化的下一個核心在於改變輸入到輸出的稠密連接方式。爲此,論文提出channel-wise卷積的概念,將輸入輸出的維度連接進行稀疏化而非全連接,區別於分組卷積的嚴格分組,讓卷積在channel維度上進行滑動,能夠更好地保留channel間的信息交流。基於channel-wise卷積的思想,論文進一步提出了channel-wise深度可分離卷積,並基於該結構替換網絡最後的全連接層+全局池化的操作,搭建了ChannelNets。

Channel-Wise Convolutions and ChannelNets

圖a爲深度可分離卷積結構,而圖b爲加入分組後的深度可分離卷積的結構,其中每個點代表一維特徵。

Channel-Wise Convolutions

Channel-wise卷積的核心在於輸入和輸出連接的稀疏化,每個輸出僅與部分輸入相連,概念上區別於分組卷積,沒有對輸入進行嚴格的區分,而是 以一定的stride去採樣多個相關輸入進行輸出(在channel維度滑動) ,能夠降少參數量以及保證channel間一定程度的信息流。假設卷積核大小爲,輸出大小維度爲,輸入特徵圖大小爲,普通卷積的參數量爲,計算量爲,而channel-wise卷積的參數量爲,一般爲遠小於的數,代表一次採樣的輸入維度,計算量爲,參數量和計算量都脫離於輸入特徵的維度。

Group Channel-Wise Convolutions

分組卷積的分組思想會導致channel間的信息阻隔,爲了增加分組間的channel信息交流,一般需要在後面添加一個融合層,繼續保持分組的同時整合所有組的特徵。論文使用分組channel-wise卷積層作爲融合層,包含個channel-wise卷積。定義輸入特徵維度,分組數,每個channel-wise卷積的stride爲(這裏指channel上滑動的步幅),輸出特徵圖(滑動次)。爲了保證每個分組的輸出涵蓋了所有的輸入,需要滿足,最後將所有的輸出concate起來,結構如圖c所示。

Depth-Wise Separable Channel-Wise Convolutions

深度可分離channel-wise卷積在深度卷積後面接一個channel-wise卷積用以融合特徵來降低參數量和計算量,結構如圖d所示。圖中的channel-wise卷積的stride爲1,爲3,在進行特徵融合的同時能夠降低參數量。

Convolutional Classification Layer

一般網絡最後都使用全局池化和全連接層進行最後的分類,但是這樣的組合的參數量十分巨大。全局池化+全連接層的組合實際可以轉換成深度可分離卷積,使用固定權重的深度卷積代替全局池化,pointwise卷積代替全連接層。因此,可以進一步使用上述的深度可分離channel-wise卷積來進行優化,而這裏由於池化和全連接之間沒有使用激活函數或BN等操作,採用常規的三維卷積進行實現更高效。

假設輸入特徵圖爲,類別數爲,深度卷積或全局池化可以認爲是卷積核大小爲,權重固定爲的三維卷積,而channel-wise可認爲是卷積核大小爲的三維卷積,兩者可以合併成一個卷積核大小爲的三維卷積。爲了符合類別數量,,即每個類別的預測僅需要使用個輸入特徵圖。

論文可視化了全連接分類層的權重,藍色是代表爲0或接近0的權重,可以看到全連接分類層的權重實際非常稀疏,即本身也只使用到部分輸入,所以這裏使用部分輸入特徵也是合理的。

ChannelNets

ChannelNet根據MobileNet的基礎結構進行構建,設計了圖3的分組模塊(GM)和分組channel-wise模塊(GCWM)。由於GM模塊存在信息阻隔的問題,所以在GM模塊前面使用GCWM來生成包含全局信息的分組特徵。

ChannelNet包含3個版本:

  • ChannelNet-v1替換了部分深度可分離卷積爲GM和GCWM,分組數爲2,共包含約370萬參數。

  • ChannelNet-v2替換最後的深度可分離卷積爲深度可分離channel-wise卷積,大約節省100萬參數,佔ChannelNet-v1的25%參數。

  • ChannelNet-v3替換最後的池化層加全連接層爲上述的Convolutional Classification Layer,大約節省了100萬(1024x1000-7x7x25)參數。

Experimental Studies

在ILSVRC 2012進行網絡性能對比。

對比更輕量的網絡性能,這裏採用MobileNet的width multiplier思想縮放每層的維度。

對比分組channel-wise卷積對ChannelNet的影響,替換GCWM爲GM模塊,考慮GCWM模塊僅增加了32個參數,這樣的性能提升是高效的。

Conclustion

Channel-wise卷積在channel維度上進行滑動,巧妙地解決卷積操作中輸入輸出的複雜全連接特性,但又不會像分組卷積那樣死板,是個很不錯的想法。但感覺論文本身的性能還不夠最優,論文對比的也只是MobileNetV1,跟MobileNetV2比差了點。

如果本文對你有幫助,麻煩點個贊或在看唄~

更多內容請關注 微信公衆號【曉飛的算法工程筆記】

work-life balance.
相關文章