Shufflenet論文閱讀筆記

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倍。
      這裏寫圖片描述
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章