[DL輪読会]DropBlock: A regularization method for convolutional networks

>100 Views

February 22, 19

スライド概要

2019/02/22
Deep Learning JP:
http://deeplearning.jp/seminar-2/

シェア

またはPlayer版

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

(ダウンロード不可)

関連スライド

各ページのテキスト
1.

DEEP LEARNING JP [DL Papers] DropBlock: A regularization method for convolutional networks [NIPS2018] Masashi Yokota, RESTAR inc. http://deeplearning.jp/ 1

2.

書誌情報 著者: Golnaz Ghiasi, Tsung-Yi Lin, Quoc V. Le 所属: GoogleBrain 採択会議: NIPS 2018 選定理由: 手法がシンプルかつ実験内容や分析内容が非常に面白かったため。 (ザックリと紹介していなくて恐縮ですが)Dropout関連の関連研究をしっかりサー ベイしたかったので。 2

3.

概要 画像の隣り合っている画素同士には強い相関があるため、Conv層にDropoutを適 用しても前層から情報が流れてしまうため正則化効果は薄かった。筆者らは矩形 領域をドロップするDropBlockを提案し、汎化性能を向上させた。 3

4.

先行研究 ~Dropoutにインスパイアされた研究~ ピクセルをDrop ● ● ● ● Variational Dropout Information dropout alpha-dropout guided dropout ピクセル以外をDrop ● SpatialDropout ● StocasticDepth ● DropPath その他 ● zoneout ● Shake-Shake ● ShakeDrop 4

5.

先行研究 ~ピクセルをドロップ①~ 1/4 ● Variational Dropout [Kingma+ 2015] ○ Dropoutを変分アプローチの元で再解釈。 データに基づいてドロップ確率の決定が可能 ○ 参考: 鈴木さんの過去発表 https://www.slideshare.net/masa_s/dl-hacks-variational-dropout-and-the-localreparameterization-trick ● Information Dropout [Achille+ 2017] ○ Information Bottlenecの観点からDropoutを一般化。 以下の式のように入力xに対して各ユニットのドロップする確率を求める。 5

6.

先行研究 ~ピクセルをドロップ②~ 2/4 ● Alpha-Dropout [Klambauer+ NIPS2017] ○ SELUと一緒に提案されたDropout。self-normalizingの性質を担保するために入力 のもともとの値の平均と分散を保持しつつドロップする。SELU一緒に用いる ○ 参考: 若杉さんの過去発表 https://www.slideshare.net/DeepLearningJ P2016/dlselfnormalizing-neural-networks ● Guided Dropout [Alemi+ AAAI2019 ] ○ 推論に強く寄与しているノードをドロップ することで学習が不十分なノードの学習を 集中的に行う。どのノードをドロップするかも 学習によって最適化している。 Guided Dropoutの概要図 6

7.

先行研究 ~ピクセル以外をドロップ~ 3/4 ● SpatialDropout [Tompson+ CVPR2015] ○ チャネル全体を確率的にドロップ ● StocasticDepth [Huang+ ECCV2016] ○ ResNetにおいてBlockを確率的にドロップ ● DropPath [Larsson+ ICLR2017] ○ 複数ブランチが生えているモデルに対して ブランチのpathを確率的にドロップ 7

8.

先行研究 ~その他~ 4/4 ● ZoneOut [IKrueger+ CLR2017] ○ RNNに特化した正則化手法。RNNの セル/出力の更新を確率的に行うことで、 RNNに対して正則化を行う。 ● Shake-Shake Regularization [Gastaldi+ ICLR2017] ○ 2つのブランチのforwardとbackward双方で 外乱を加えることで、擬似的にデータ拡張 のような効果を与える ● ShakeDrop Regularization [Yamada+ ICLR2018] ○ StocasticDepthのようなパスのスキップと shake-shakeの外乱の双方をforwardと backward双方に入れている 8

9.

先行研究 ~Dropoutにインスパイアされた研究~ ピクセルをDrop ● ● ● ● Variational Dropout Information Dropout Alpha-Dropout Guided Dropout ピクセル以外をDrop ● SpatialDropout ● StocasticDepth ● DropPath その他 ● ZoneOut ● Shake-Shake ● ShakeDrop 従来はドロップ率やドロップする対象の自動調整する手法やピクセル以外の要素 をドロップする手法、LSTMに特化した手法などがある。提案手法はDropoutを 一般化し、CNNに特化したDropoutを提案している。 9

10.

アイディア 中間層の特徴量に対して Cutout的な事を行う Cutoutは隣接画素に相関がある画像データに対して効果的なDate augumentation と知られている。DropBlockはCutoutと同様に中間層の特徴量に対して矩形領域 をドロップすることで、Dropoutより正則化効果が高まると考えた。 10

11.

提案手法 block_size サンプリング領域 block_size分だけ paddingを入れる (a)ドロップする矩形領域の中心ユニットを𝛾個サンプルし、(b)サンプルした中心 ユニットのblock_size分だけ広げマスクを作り、特徴量に掛け合わせる 11

12.

アルゴリズム ドロップする矩形領域の中心ユニットはベルヌーイ分布からサンプリング。最後 にドロップした数に応じて値のスケールを合わせる。推論時は特に何も行わない。 12

13.

パラメータに関して ● block_size: ドロップする矩形領域の幅 ○ ○ block_size=1のとき、Dropoutと等しい block_sizeが特徴量の幅と等しいとき、SpatialDropoutと等しい ● keep_prob: ユニットの生存確率 ○ 最初は1にして目標の値まで徐々に下げていくと良い ○ 筆者らは線形にスケジューリングしているらしい ● 𝜸: ドロップするユニットの数 ○ 特徴量全体がマスクされないように調整したい。 筆者らは(keep_probが0.75〜0.95と見積もって)下記の式で𝛾を決定している。 P.11 の緑の領域の面積 13

14.

Pros / Cons ● Pros 1. 画像のような隣接ユニットに強い相関をもつデータに対して効果的な正則化効果 をもたらせる 2. より広い領域の特徴量を見て推論できるようになる 3. 手法が圧倒的にシンプルでわかりやすい ● Cons パラメータ数が増えた 2. チューニングが大変そう → 実験結果でパラメータによって精度が大きく左右しています 1. 14

15.

実験 本論文では、実験を通して以下の事柄を確認している 1. 既存手法と比較したDropBlockの有効性 2. 最適なkeep_prob 3. DropBlockの最適な適用箇所とblock_size 4. DropBlockが効果的に画像情報を落とせているか 5. より広域に特徴量をみているか 6. 他のモデルでも学習可能か 7. 一般物体認識以外のタスクでの効果 a. Object Detection b. Semantic Segmentation 15

16.

実験: 既存手法と比較したDropBlockの有効性 1/8 ResNet-50をベースとしてImageNet Classificationを学習 既存の正則化手法よりも性能は上がっている。また、Cutoutなどのデータ拡張手 法よりも性能があがっている。 16

17.

実験: 最適なkeep_probの大きさ 2/8 keep_probの変化でどのように精度が変化するかをImageNet Classifcationで評価。 keep_probをうまく調整すれば精度は高くなるが、keep_probが小さすぎると精度 がかなり落ちる。keep_probのスケジューリングを入れることも有益。 17

18.

実験: DropBlockの最適な適用箇所とblock_size 3/8 ImageNet Classificationでblock_sizeを変化させる。さらにResNetのGroup4(最終ブ ロック)とGroup3&4(最後から1・2番目ブロック)に適用した場合で比較。block_size 18 は多少大きくても良さそう。Group3&4適用+block_size=7が最良。

19.

実験: DropBlockが効果的に画像情報を落とせているか 4/8 推論時にDropout(左)とDropBlock(右)をそれぞれ適用する。より効果的に情報を落と せていれば大きく性能は下る。 →Dropoutよりも情報は落とせていそう。DropBlockで学習したモデルが最良。 19

20.

実験: より広域に特徴をみているか 5/8 局所的な特徴量だけでなく、より幅広い特徴を元に推論できているか検証。 ResNet-50のConv5_3に対してclass activation maps (CAM)を適用。DropBlockは より広い特徴量をみるようになっている 20

21.

実験:他のモデルでも学習可能か 6/8 AmoebaNetにも同様にDropBlockを適用しImageNet Classificationで評価。 僅かではあるが性能向上している。 21

22.

実験:一般物体認識以外のタスクでの効果 7/8 (Object Detection) RetinaNetにDropBlockを適用しMS COCOで評価。block_size=5のときが最良。 22

23.

実験:一般物体認識以外のタスクでの効果 8/8 (Object Detection) ResNet-101 FPNモデルにDropBlockを適用し、PASCAL VOC2012で評価。 fine-tuningには劣るがDropBlockを入れることで大きく性能向上。block_size=16 のときに最良。このように比較的block_sizeが大きいときが最適な場合もある。 23

24.

まとめと所感 ● 画像は隣接する画像同士の相関が強いため、矩形領域をDropすることで効果的 に情報量を落とすDropBlockを提案 ● DropBlockは既存手法や、Cutoutなどよりも性能向上させている ● keep_probやblock_sizeは、タスクやモデルに依存し性能を大幅に上下させる →block_sizeは小さすぎると正則化効果薄くkeep_probが小さいと学習しない。 block_sizeは少し大きめにして、最適なkeep_probを探すと良さそう。 ● 近い内に自動でDropBlockの自動パラメータチューニングする論文でてきそうw 24