[DL Hacks 実装]Shift: A Zero FLOP, Zero Parameter Alternative to Spatial Convolutions
-
Upload
deep-learning-jp -
Category
Technology
-
view
43 -
download
10
Transcript of [DL Hacks 実装]Shift: A Zero FLOP, Zero Parameter Alternative to Spatial Convolutions
Paper information論文名: Shift: A Zero FLOP, Zero Parameter Alternative to Spatial Convolutions
著者: Bichen Wu, et. al. (UC Berkeley)
公開日: Nov 2017
※スライド中の図表は特に記述のない限り上記の論文から引用
Depth-wise convolutionDepth-wise convolution• Channelごとに分けてそれぞれのChannel内で畳み込む → 計算量激減• 通常はDepth-wise conv の直後に 1x1 conv をする(Depth-wise conv ではchannel間の情報が混ざらないので1x1 convでchannel間の情報を混ぜる)
Depth-wise convolutionDepth-wise convolution の計算量
計算量
空間計算量
空間計算量/計算量がとても大
1/N倍
But
メモリアクセスの時間がボトルネックになっている機器では使いにくい
ShiftShift-based Modules• 1x1 convでchannel間の情報をやり取り• Shiftで空間方向の情報をやり取り
• 右の図の1回目のShiftがないものをCSC module, あるものをSC2 moduleと定義(今回紹介する結果にはCSCしか使われていない)
Shiftの有効性の検証
• ResNetと,ResNetのResBlockをすべてShift-based Modulesに置き換えたものを比較
• Shift-based Modulesは初めの1x1convでchannel数を何倍にするかで変数数を調整(この倍率をεとする)
• ResNetの変数数削減方法は• Block内のchannel数を削減• Blockの入出力のchannel数を削減
のうち良い結果のほうをそれぞれ採用
実験
実験ShiftNet• Shiftに最適化したネットワーク• これを他のSOTAモデルと比較(ImageNet分類)
ShiftNetA ShiftNetBShiftNetAからそれぞれchannel数半分にしたもの
ShiftNetC
変数数が少なく精度の高いモデルを作るために今後できることは…
1. 同じ方向にShiftさせるchannel groupの中でchannel毎の出力の相関を小さくする → 相関の大きいchannelを消す
2. Channel方向にDF2等分してそれぞれをShiftさせていたが,Shiftの方向によって貢献度が異なる → 貢献度に応じて割り当てるchannel数を変える
Discussion
1. どのくらいの相関が残っているか
• Shift-based Module内のShift層において,同じ方向にShiftさせるchannel groupからの出力の相関を見る
Discussion
→ 例えば,他のchannelとの相関がある一定以上になればchannel数を削減するなどとすると良さそう