ShuffleNet
文章介紹
- face++17年06月在arixv上放出來的文章,xiangyu Zhang, Xinyuzhou* Jian Sun。
- 提出來point wise group convolution和channel shuffle兩個操作,減少計算量的情況下保持精度。
- 在Imagenet和 MS coco 數據集上進行了實驗,驗證比MobileNet的準確率高(imagenet分類top1 ecc 低6.7%)。
與相關工作的對比
- 模型設計: Xception[3], ->Inception series; ResNeXt, MobileNet系列
- 模型加速: 對模型進行剪枝(deep compression系列);量化(Xnornet, hwgq系列);卷積加速(fft系列)
contribution:
(1) 針對在小網絡中,Xception[3], ResNeXt[37]中1*1操作多。用point wise group convolution進行改進。
(2)將group convolution和depthwise separable convolution統一成一個新的形式
核心思想
分組卷積(Group Convolution中的channel shuffle)
- 不進行channel shuffle之前分組卷積,不同顏色不互通,通道信息被阻斷.
channel shuffle將每組的輸出分成subgroup, 具體實現分爲三步。
不同卷積的group個數不同是也可以進行channel shuffle操作,並且可導,我理解的是對應的梯度進行交換,能夠進行end to end實驗。
網絡結構
子單元
不帶stride的情況- 對bottleneck上的正常的3*3卷積改爲3*3的depthwise convolution(圖上沒體現出來
- 將第一個1*1的point wise操作改成 gconv+ shufflenet兩個操作
- 第二個1*1 gconv是爲了恢復連接short cut的通道維度??
- 第二個3*3Gconv不加relu
帶stride的情況
- 在shot path上加了3*3的AVG pooling
- 將 add改爲了concat
計算複雜度分析
輸入維度爲c*h*w, bottleneck channels爲m- Resnet計算量: hw(2cm + 9m^2) FLOPs
- ResneXt計算量: hw(2cm + 9m^2/g) FLOPs
- shufflenet 計算量:hw(2cm/g + 9m^2) FLOPs
- 總網絡結構
- 只在botttleneck的特徵圖中會進行depthwise convolution
- 總的網絡結構由3個stage的build block組成,block裏面是ShuffleNet unit子單元,每一個stage第一個子單元stride均爲2
- 保證總計算複雜度(~140M FLOPs)不變,group數目不同時,調整輸出channel數目,實驗衡量tradeoff (insight: group越大,計算量節省的越多,對應的輸出 channel越大,但是每個group對應的input channel減少,可能不利於性能,trade off)
實驗
實驗設置
類似ResNeXt的設置,有2個區別
- weight decay減小,1e-4 -> 4e-5;
- 預處理的數據增廣度沒有那麼大
實驗結果
(1)驗證point wise group convolution的作用- 1*,0.5*, 0.25分別代表將shufflenet的卷積核數目scale,網絡變瘦,隨之計算量縮減爲scale^2,相對於不分group, error分別下降1%,2.4%, 3%
- 對於小網絡,group增大更有利,推測對於小網絡wider feature map更有利
- arch2對網絡的修改:去掉stage3的兩個units, 在保證計算複雜度增加feature map, 果真有提升。
(2)驗證channel shuffle 的作用
(3)與其他網絡結構的對比
- 比其他模型都好,感覺這個實驗比較 tricky, 是基於tabel1的整體網絡框架將其shufflenet unit換成其他網絡結構單元比較的。並沒有使用完整的參照網絡結構。
- 好的原因是計算量一定的情況下,shufflenet的網絡輸出feature map的通道數最高,
-跟mobile net對比,shufflenet 50多層,mobilenet28層,重點驗證好處不是由深度造成的。
(4)實驗拓展 - 在ms coco上進行了物體檢測實驗
- - 在 arm上進行了inference測速實驗,與alexnet相比,精度相當,加速了13倍。