[dl hacks 実装]shift: a zero flop, zero parameter alternative to spatial convolutions

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

Upload: deep-learning-jp

Post on 15-Mar-2018

43 views

Category:

Technology


10 download

TRANSCRIPT

論文紹介Shift: A Zero FLOP, Zero Parameter Alternative to Spatial Convolutions

物理学専攻 M1 中西

Paper information論文名: Shift: A Zero FLOP, Zero Parameter Alternative to Spatial Convolutions

著者: Bichen Wu, et. al. (UC Berkeley)

公開日: Nov 2017

※スライド中の図表は特に記述のない限り上記の論文から引用

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

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

概要

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• 簡単に言うとDepth-wise conv のconvolutionしない版• Channel方向にDF2等分して,それぞれを決まった方向にShiftさせる

積和計算不要

ShiftShift-based Modules• 1x1 convでchannel間の情報をやり取り• Shiftで空間方向の情報をやり取り

• 右の図の1回目のShiftがないものをCSC module, あるものをSC2 moduleと定義(今回紹介する結果にはCSCしか使われていない)

実験一部抜粋

• Shiftの有効性検証

• ShiftNetと他のモデルの比較(ImageNet分類)

実験

Shiftの有効性の検証

• ResNetと,ResNetのResBlockをすべてShift-based Modulesに置き換えたものを比較

• Shift-based Modulesは初めの1x1convでchannel数を何倍にするかで変数数を調整(この倍率をεとする)

• ResNetの変数数削減方法は• Block内のchannel数を削減• Blockの入出力のchannel数を削減

のうち良い結果のほうをそれぞれ採用

実験

Shiftの有効性の検証

実験

結果

パラメタ数を固定して比較するとaccuracyが大幅に向上

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

ShiftNetA ShiftNetBShiftNetAからそれぞれchannel数半分にしたもの

ShiftNetC

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

変数数が少なく精度の高いモデルを作るために今後できることは…

1. 同じ方向にShiftさせるchannel groupの中でchannel毎の出力の相関を小さくする → 相関の大きいchannelを消す

2. Channel方向にDF2等分してそれぞれをShiftさせていたが,Shiftの方向によって貢献度が異なる → 貢献度に応じて割り当てるchannel数を変える

Discussion

1. どのくらいの相関が残っているか

• Shift-based Module内のShift層において,同じ方向にShiftさせるchannel groupからの出力の相関を見る

Discussion

→ 例えば,他のchannelとの相関がある一定以上になればchannel数を削減するなどとすると良さそう

2. Shiftの方向による貢献度の違い

• 最後の1x1 convのweightを見ると各チャネルの貢献度が分かる

Discussion

→ 水平方向の貢献度が大きいことがわかる