[DL Hacks]Shift: A Zero FLOP, Zero Parameter Alternative to Spatial Convolutions

>100 Views

March 23, 18

スライド概要

2018/03/12
Deep Learning JP:
http://deeplearning.jp/hacks/

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

論文紹介 Shift: A Zero FLOP, Zero Parameter Alternative to Spatial Convolutions 物理学専攻 M1 中西

2.

Paper information 論文名: Shift: A Zero FLOP, Zero Parameter Alternative to Spatial Convolutions 著者: Bichen Wu, et. al. (UC Berkeley) 公開日: Nov 2017 ※スライド中の図表は特に記述のない限り上記の論文から引用

3.

この論文を選んだ動機 • ネットワークの軽量化に興味があった ※ネットワークの軽量化は携帯機器で推論するときなどに重要

4.

概要 depth-wise convolution を積和演算もパラメータも 不要なものに置き換えることで軽量にした

5.

Depth-wise convolution Depth-wise c onvolution • Channelごとに分けてそれぞれのChannel内で畳み込む → 計算量激減 • 通常はDepth-wise conv の直後に 1x1 conv をする (Depth-wise conv ではchannel間の情報が混ざらないので1x1 convで channel間の情報を混ぜる)

6.

Depth-wise convolution Depth-wise convolution の計算量 計算量 1/N倍 But 空間計算量 空間計算量/計算量がとても大 メモリアクセスの時間がボトルネックになっている機器では使いにくい

7.

Shift Shift • 簡単に言うとDepth-wise conv のconvolutionしない版 • Channel方向にDF2等分して,それぞれを決まった方向にShiftさせる 積和計算不要

8.

Shift Shift-b ased Mod ules • 1x1 convでchannel間の情報をやり取り • Shiftで空間方向の情報をやり取り • 右の図の1回目のShiftがないものをCSC module, あるものをSC2 moduleと定義 (今回紹介する結果にはCSCしか使われて いない)

9.

実験 実験一部抜粋 • Shiftの有効性検証 • ShiftNetと他のモデルの比較(ImageNet分類)

10.

実験 Shiftの有効性の検証 • ResNetと,ResNetのResBlockをすべてShift-based Modulesに置き換えたものを比較 • Shift-based Modulesは初めの1x1convでchannel数を何 倍にするかで変数数を調整(この倍率をεとする) • ResNetの変数数削減方法は • Block内のchannel数を削減 • Blockの入出力のchannel数を削減 のうち良い結果のほうをそれぞれ採用

11.

実験 Shiftの有効性の検証 結果 パラメタ数を固定して比較するとaccuracyが大幅に向上

12.

実験 ShiftNet • Shiftに最適化したネットワーク • これを他のSOTAモデルと比較(ImageNet分類) ShiftNetA ShiftNetB ShiftNetAから それぞれchannel数半分 にしたもの ShiftNetC

13.

実験 ShiftNet • Shiftに最適化したネットワーク • これを他のSOTAモデルと比較(ImageNet分類)

14.

Discussion 変数数が少なく精度の高いモデルを作るために今後できることは… 1. 同じ方向にShiftさせるchannel groupの中でchannel毎の出力の相関 を小さくする → 相関の大きいchannelを消す 2. Channel方向にDF2等分してそれぞれをShiftさせていたが,Shiftの方 向によって貢献度が異なる → 貢献度に応じて割り当てるchannel数 を変える

15.

Discussion 1. どのくらいの相関が残っているか • Shift-based Module内のShift層において,同じ方向にShiftさせる channel groupからの出力の相関を見る → 例えば,他のchannelとの相関がある一定以上になれば channel数を削減するなどとすると良さそう

16.

Discussion 2. Shiftの方向による貢献度の違い • 最後の1x1 convのweightを見ると各チャネルの貢献度が分かる → 水平方向の貢献度が大きいことがわかる