理解分組卷積與深度可分離卷積

這兩種卷積分別是在ResNext論文與MobileNet系列中體現的,貌似Xception中也有深度可分離卷積的體現。

作用都很簡單,爲了降參。

目錄

1. 分組卷積 group convolution 

2 深度可分離卷積 depthwise separable convolution


1. 分組卷積 group convolution 

最早出現分組卷積的是AlexNet,說實話網上介紹的blog直接一貼我也沒看懂AlexNet中是如何用分組卷積的,只知道現在因爲計算資源上去了,大家已經不在把數據分在兩塊GPU上去搞了,貼個blog有興趣的可以去看AlexNet中如何降參用分組卷積的。https://www.cnblogs.com/wangguchangqing/p/10333370.html

分組卷積,顧名思義就是相較原始卷積我們整合所有通道特徵圖的值,分組卷積只整合本組通道內特徵圖的值,話不多說上圖。

這是標準卷積的操作,輸入特徵圖爲C1×H×W,我們用C2×C1×h1×w1的卷積核執行標準卷積操作,得到C2×H×W的output特徵圖,對於輸出特徵圖上的每一個點,都是在輸入特徵圖全部通道(C1)執行multi-add操作得到的。

這是分組卷積操作,輸入特徵圖爲C1×H×W,我們按照通道數分爲g個組,每個組的特徵通道數量爲C1/g,這個時候我們用C2/g × C1/g × h1 ×w1的卷積核去對每一組進行卷積,得到C2/g × H × W的output特徵圖,又我們一共有g個組,所以最終拼接所有C2/g × H × W的output特徵圖,又可以得到和標準卷積尺度一樣的output特徵圖,即C2×H×W。

以上就是分組卷積的操作,Alex認爲分組卷積的方式可以增加filter之間的對角相關性(沒理解爲什麼,可能就是類似dropout形勢,組內的特徵可以獨立發揮最終特徵預測作用,而不是通過與其他特徵組合導致,減少耦合增加魯棒吧。),可以減少訓練參數,Group Convolution可以看成是structured sparse,對上圖所示的,C2/g × C1/g × h1× w1卷積核可以看作C2/g ×(C1 - C1/g)× h1 × w1這部分卷積核的值爲0,有時甚至可以在減少參數量的同時獲得更好的效果(相當於正則)。

2 深度可分離卷積 depthwise separable convolution

深度可分離卷積是在mobileNet和Xception中都有涉及的一個操作,在看完分組卷積後,我們考慮一種特殊情況,如果輸入特徵圖的尺寸等於輸出特徵圖的尺寸(H × W不變),如果我們把輸入特徵圖的通道數C1分成C1個組,也就是每個組都只有1個通道,那麼我們用1 × 1 × K × K的卷積核來對每組進行卷積,同時拼接C1個組的結果,得到輸出特徵圖的通道仍爲C1 × H × W,這其實就是深度可分離卷積。

對於可分離卷積,我認爲其可以分爲兩種形式,一種是空間可分離卷積,顧名思義,空間可分離就是將一個大的卷積核變成兩個小的卷積核,也就是在inception系列中出現的把3 × 3卷積分成對稱的1×3與3×1的操作,另一種就是深度可分離卷積,深度可分離卷積也可分爲兩部分,深度卷積+逐點卷積,深度卷積就是在每個通道上執行卷積,但是不整合所有對應通道上的結果(沒有通道級別對應的add操作),逐點卷積就是1*1卷積。

話不多說上圖

圖(a)代表標準卷積。假設輸入特徵圖尺寸爲  M*H*W,卷積核尺寸爲M*D_{k}*D_{k}   ,個數爲N個,輸出特徵圖尺寸爲N*H*W,標準卷積層的參數量爲:N*M*D_{k}*D_{k} 。

圖(b)就是深度卷積,把輸入特徵圖上的每一個通道單獨執行卷積操作,也就是用M個1*D_{k}*D_{k}的卷積覈對輸入特徵圖上的每一個通道執行卷積操作,最終得到的輸出特徵圖的尺寸仍然爲M*H*W,參數數量爲M*D_{k}*D_{k}

圖(c)爲逐點卷積,也就是常規的1×1卷積操作,輸入特徵圖爲M*H*W,卷積核的尺寸爲M*1*1  ,個數爲N個,輸出特徵圖尺寸爲N*H*W。參數數量爲N*M

那麼圖b與圖c的結合就是深度可分離卷積了,深度可分離卷積作用就是降參咯,我們來對比一下標準卷積與深度可分離卷積:

 \frac{ (M*D_{k}*D_{k}+N*M)}{N*M*D_{k}*D_{k}}=\frac{1}{N}+\frac{1}{D_{k}^{2}}

如果我們用3 * 3的卷積,那麼相當於我們大約可以減少10倍的參數計算量。

對於深度可分離卷積,在MobileNet1中比標準卷積在ImageNet上降低了約1%的精度。

性能下降一點的原因我覺得也比較明顯吧,就是通道數太少,特徵圖的維度太少,能獲取到足夠的有效信息嗎?

參考:

https://zhuanlan.zhihu.com/p/70703846  這篇對moblieNet系列介紹比較全面,推!~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章