[DL Hacks]Shake-Shake regularization Improved Regularization of Convolutional Neural Networks with Cutout

>100 Views

May 16, 18

スライド概要

2018/05/14
Deep Learning JP:
http://deeplearning.jp/hacks/

シェア

またはPlayer版

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

(ダウンロード不可)

関連スライド

各ページのテキスト
1.

DL Hacks 論文実装 論文紹介 Shake-Shake regularization 正則化の論文 実装 Shake-Shake regularization Improved Regularization of Convolutional Neural Networks with Cutout 2018.5.14 植木

2.

Content ● ● Shake-Shake概要 – Residual Networks 特徴 – SDGR ● 正則化の論文紹介 : 2017-2018年 7論文 ● State-of-the-Art : CIFAR-10 ● 実装 ● 実験 考察

3.

Shake-Shake regularization ・ベースはResNet ・Residualモジュールのネットワークを2つにを分岐し、 ネットワークの中間の特徴マップに対する data augmentation を行う ことで,強力な正則化を実現する手法 Xavier Gastaldi arXiv:1705.07485v2 https://arxiv.org/abs/1705.07485 ICLR2017 workshop 著者実装 (Pytorch) https://github.com/xgastaldi/shake-shake

4.

Residual Networks (ResNet) ある処理の出力 F(x) を次の層に渡すのではなく 入力xをショートカットし、 F(x) + x を次の層に渡す処理単位 Residualモジュール Shortcut Connections ● ● ● ● 入力を複数先のレイヤに飛ばして繋ぐ 追加のパラメータが必要ない 計算量の複雑性も増えない バックプロパゲーションで最適化可能 Kaiming He, Xiangyu Zhang, Shaoqing Ren, Jian Sun: Deep Residual Learning for Image Recognition, in arXiv:1512.03385, 2015. https://arxiv.org/abs/1512.03385

5.

Residual Networks (ResNet) Residualモジュールのバージョン

6.

Shake-Shake regularization 特徴マップレベルでのデータ拡張 ● ● ● ● 画像レベルではcroppingで画像内の物体の比率を変化 させて学習することで、画像内に含まれる物体の割合が変 動してもロバストな認識ができる 特徴マップレベルでも同じことができないか? モジュール内でネットワークを分岐させ画像レベルで各分 岐の出力をランダムな比率(α∈[0, 1])で混合する Backward時には違う比率βを利用するとこで、さらに強い 正則化の効果をもたらすと考えられる

7.

Shake-Shake regularization モジュール内でネットワークを分岐させ 画像レベルで各分岐の出力を一様乱数 αと1-αで混合する (α∈[0, 1]) Foward テストでは比率を0.5にする Backward バックプロパゲーションはαと違う比率β を使った方が良いとしてる Test

8.

Shake-Shake regularization ● ● 学習率をcosine 関数で制御し、300 エポックで学習を行う 論文が多い中、1800 エポックかけて学習している →SDGR Shake-Shakeの効果で、擬似的に学習データが非常に大 量にあるような状態となっているため、長時間のゆっくりし た学習が有効であると考えられる

9.

SDGR STOCHASTIC GRADIENT DESCENT WITH WARM RESTARTS Ilya Loshchilov, Frank Hutter https://arxiv.org/abs/1608.03983 ICLR2017

10.

Shake-Shake regularization Test error (%) and model size on CIFAR. Best results are blue. Method Depth Params C10 C100 ● ● ● ● ● Wide ResNet ResNeXt-29 16x64d DenseNet-BC (k=40) 28 29 190 36.5M 68.1M 25.6M 3.8 3.58 3.46 18.3 17.31 17.18 C10 Model S-S-I 26 26.2M 2.86 C100 Model S-E-I 29 34.4M 15.85 CIFAR-10とCIFAR-100でShake-Shakeモデルが異なる Foward: Shake, Backward: Shake, Level: Image S-S-I CIFAR-10 Foward: Shake, Backward: Even, Level: Image S-E-I CIFAR-100 Forward (Shake, Even) Backward (Shake, Even, Keep) Level (Batch, Image) Shake: 新しい係数で上書き Even: 係数は0.5 Keep: フォワードの係数をバックプロパゲーションで保持 Batch: 各Residual Block のミニバッチ内のすべての画像に対して同じ係数 Image: ミニバッチ内の各画像で異なる係数

11.

最近の正則化論文 ● ● ● ● ● ● ● ICLR2018 ShakeDrop regularization mixup: BEYOND EMPIRICAL RISK MINIMIZATION LEARNING FROM BETWEEN-CLASS EXAMPLES FOR DEEP SOUND RECOGNITION CVPR2018 Between-class Learning for Image Classification Data Augmentation by Pairing Samples for Images Classification Improved Regularization of Convolutional Neural Networks with Cutout Random Erasing Data Augmentation

12.

ShakeDrop regularization ● ● ● ● Shake-ShakeはResidual Block内に複数の変換部があるため、パラメータ数や計算速度の点 から深いネットワークの構築が難しい ShakeDropはResidual Block内の変換部を1つにし、Stochastic Depthを組み合わせて深い ネットワークの正則化を行っている Stochastic Depth: Residual Blockの変換部を足し合わせるか無視するかを確率的に処理 Shake-Shake : Residual Blockの変換部の出力に対して乱数をかける Stochastic Depth Deep Networks with Stochastic Depth Gao Huang, Yu Sun, Zhuang Liu, Daniel Sedra, Kilian Weinberger https://arxiv.org/abs/1603.09382

13.

ShakeDrop regularization Yoshihiro Yamada, Masakazu Iwamura, Koichi Kise https://arxiv.org/abs/1802.02375 ICLR2018

14.

Mixup BEYOND EMPIRICAL RISK MINIMIZATION 2つの訓練サンプルのペアをベータ分布の乱数で混合する 論文のコード ※ alphaはハイパーパラメータ for (x1, y1), (x2, y2) in zip(loader1, loader2): lam = numpy.random.beta(alpha, alpha) x = Variable(lam * x1 + (1. - lam) * x2) y = Variable(lam * y1 + (1. - lam) * y2) optimizer.zero_grad() loss(net(x), y).backward() ※ x1,x2は学習データ optimizer.step() ※ y1,y2はone-hot表現のベクトル Hongyi Zhang, Moustapha Cisse,Yann N. Dauphin, David Lopez-Paz https://arxiv.org/abs/1710.09412 ICLR2018

15.

Between-class Learning for Image Classification 2つのデータとラベルを混ぜあわせて学習することで精度を向上させる Yuji Tokozume, Yoshitaka Ushiku, Tatsuya Harada Between-class Learning for Image Classification (CVPR2018) https://arxiv.org/abs/1711.10284 LEARNING FROM BETWEEN-CLASS EXAMPLES FOR DEEP SOUND RECOGNITION (ICLR2018) https://arxiv.org/abs/1711.10282

16.

Data Augmentation by Pairing Samples for Images Classification トレーニングセットの画像を2枚ランダムで選んで重ね合わせて学習したら精度が向上 Hiroshi Inoue https://arxiv.org/abs/1801.02929

17.

CutOut Improved Regularization of Convolutional Neural Networks with Cutout サイズ固定の正方形でマスク、マスク領域は平均画素に置き換えている Terrance DeVries, Graham W. Taylor https://arxiv.org/abs/1708.04552

18.

Random Erasing Data Augmentation 各画像ごとに、マスクを行うか、マスクのサイズ、場所、アスペクト比がランダム マスク領域の画素もピクセルレベルでランダムに置き換えてる Zhun Zhong, Liang Zheng, Guoliang Kang, Shaozi Li, Yi Yang https://arxiv.org/abs/1708.04896

19.

Research Papers Claiming State-of-the-Art Results on CIFAR-10 論文 Densely Connected Convolutional Networks https://arxiv.org/abs/1608.06993 エラー率 日付 5.19 August 24, 2016 Wide Residual Networks https://arxiv.org/abs/1605.07146 4.00 May 23, 2016 Neural Architecture Search with Reinforcement Learning https://arxiv.org/abs/1611.01578 3.65 November 4, 2016 Shake-Shake regularization https://arxiv.org/abs/1705.07485 2.86 May 21, 2017 Improved Regularization of Convolutional Neural Networks with Cutout 2.56 https://arxiv.org/abs/1708.04552 Aug 15, 2017 ShakeDrop regularization https://arxiv.org/abs/1802.02375 2.31 Feb 7, 2018 Regularized Evolution for Image Classifier Architecture Search : AmoebaNets https://arxiv.org/abs/1802.01548 2.13 Feb 6, 2018 深いResidual blockを持つネットワークに対するShake Dropの有効性の検証 : ResidualDenseNetに対してShakeDropを適用 電子情報通信学会技術研究報告 = IEICE technical report 信学技報 117(443), 71-76, 2018-02-19 1.86 Feb, 2018

20.

Shake-Shake実装 TensorFlowでshake-ShakeとCutOutを実装 データセット: CIFAR-10, CIFAR-100(32x32ピクセル) ● Optimizer : Adam (Shake-Shake論文ではSGD) ● Epoch : 18 (Shake-Shake論文では1800) ● DataAugmentation : flip(左右反転)とCutOut ● Epcohごとに再度flipとCutOutを行いシャッフルする ● LearningLate : Epochの2/3進行で1/10 ● ● ubuntu16.04 Python3.6 TensorFlow1.6

21.

実験 考察 テスト結果(TestDataのAccuracy) ● ● ● CIFAR-10 : 0.9269 CIFAR-100 : 0.7215 ここでCIFAR-10のTrainingData1ラベル当たりのデータ数を CIFAR-100と同一にしたデータセットを作り、学習とテストしてみた CIFAR-10(TrainingDataは500x10ラベルに縮小) : 0.7506 CIFAR-10とCIFAR-100で認識率が大きく違うのは、教師データ1ラベ ル当たりのデータ数が主要な原因だと分かる (CIFAR-10 : 5000x10ラベル、 CIFAR-100 : 500x100ラベル) DeepLearningはデータ数が少ない場合、過学習し汎化性能が落ちる (医療や異常検知など正解データが少ないもの、不均衡データも含め)

22.

実験 考察 論文 SHAKE DROP REGULARIZATIONでは CIFAR-10のエラー率 2.31% CIFAR-100のエラー率 12.19% とエラー率の差が10%を切るまで縮まっており、1ラベルの データ数が少ないデータセットでも、正則化の手法で認識 精度をどこまで高めることができるか期待できる

23.

参照 ※スライドで掲載の論文以外 [サーベイ論文] 畳み込みニューラルネットワークの研究動向 内田祐介、 山下隆義 http://www.vision.cs.chubu.ac.jp/MPRG/F_group/F188_uchida2017.pdf