Slide 1

Slide 1 text

AI Lab 野村 将寛 08/02(Fri)@PaperFriday 論⽂紹介 : Population Based Augmentation Efficient Learning of Augmentation Policy Schedules

Slide 2

Slide 2 text

野村 将寛 (サイバーエージェント) 論⽂の概要 • 題名 : Population Based Augmentation: Efficient Learning of Augmentation Policy Schedules • 著者 : Daniel Ho, Eric Liang, Ion Stoica, Pieter Abbeel, Xi Chen • 出典 : ICMLʼ19 • 概要 : 画像のData Augmentationを⾃動で効率的に最適化する⼿法を提案 1

Slide 3

Slide 3 text

野村 将寛 (サイバーエージェント) Data Augmentation • 画像に対して処理を加えてデータ量を増やす → 汎化性能の向上 2 https://medium.com/nanonets/how-to-use-deep-learning-when-you-have-limited-data-part-2-data-augmentation-c26971dc8ced

Slide 4

Slide 4 text

野村 将寛 (サイバーエージェント) Data Augmentation • 適切なData Augmentationはデータセットにより異なる • MNISTのデータに対してflipして良い? • 画像の情報に対して不変なtransformationである必要がある • これまで : state-of-the-artな⽅法をとりあえず使う • これから : ⾃動で最適化 • 最初に,Googleが提案したAutoAugment[Cubuk et al., 18]を紹介 3

Slide 5

Slide 5 text

野村 将寛 (サイバーエージェント) AutoAugment [Cubuk et al., 18] • 各データについて,どのような変換をすればいいかというpolicyを強化学習で探す • どのoperationを適⽤すべきか? • そのoperationの実⾏確率と,その操作の度合いをどう設定すべきか? • operationを16種類⽤意 • PILから利⽤可能なoperation + Cutout + SamplePairing • 実⾏確率 (prob) : [0., 1.]を11個に離散化 • 度合い (magnitude) : 10個に離散化 ← sub-policyを2つの(operation, prob, magnitude)として定義 ((16 x 10 x 11)^2通り) • 5つのsub-policyを1つのpolicyと定義 4

Slide 6

Slide 6 text

野村 将寛 (サイバーエージェント) AutoAugment [Cubuk et al., 18] • 各データについて,どのような変換をすればいいかというpolicyを強化学習で探す • どのoperationを適⽤すべきか? • そのoperationの実⾏確率と,その操作の度合いをどう設定すべきか? 5

Slide 7

Slide 7 text

野村 将寛 (サイバーエージェント) AutoAugment [Cubuk et al., 18] • datasetごとに獲得できるpolicyが異なることを確認 • CIFAR-10 : コントラストや明るさなどの⾊が有効 • SVHN : ⾊の反転も有効 • ImageNet : 回転も有効 6

Slide 8

Slide 8 text

野村 将寛 (サイバーエージェント) AutoAugmentの問題点 • AutoAugmentはひたすら計算が重い • CIFAR-10に対する実験では,5000 Tesla P100 GPU Hour ($7,500) • そしてちゃんと論⽂読むと4000(/50000)枚しか使っていないのに... 7

Slide 9

Slide 9 text

野村 将寛 (サイバーエージェント) Population Based Augmentation (PBA) • AutoAugmentより⾼速に,同程度の精度を達成 • [AutoAugment] 5000 GPU Hour($7,500) → [PBA] 5 GPU Hour($7.5) 8

Slide 10

Slide 10 text

野村 将寛 (サイバーエージェント) PBA : Population Based Trainingの利⽤ • Population Based Training (PBT) • Parallel SearchとSequential Searchのいいとこ取りをする枠組み • exploit, exploreの詳細は個別に設定 9 • sequential • 前の情報を利⽤できる • parallel • 全体の計算時間が短い • PBT • 両⽅のいいとこ取り

Slide 11

Slide 11 text

野村 将寛 (サイバーエージェント) PBA : Population Based Trainingの利⽤ • PBTではnaiveな⽅法でconfigurationを⼊れ替える • Exploit • 上位25%から下位25%にclone • Explore • Algorithm 2の⽅法 • 確率0.2でランダムサーチ • 確率0.8で以下の操作 • ランダムに0〜3を選択 • その数だけハイパーパラメータをずらす • domain内にclip 10

Slide 12

Slide 12 text

野村 将寛 (サイバーエージェント) 実験 • “reduced” CIFAR-10 (4000 images) とSVHN (1000 images)で学習 • 全データ + ”extra”な531,131枚を加えたデータで学習し,最終的な評価値を計算 • prob, magtitudeは0で初期化 • 仮説 : 最初は必要なく,train accとval accの乖離が⼤きくなってから効果があるのでは? • ⽐較⼿法 • Baseline : random cropとhorizontal flip • Cutout : 画像の⼀部をマスキング • AutoAugment (AA) 11

Slide 13

Slide 13 text

野村 将寛 (サイバーエージェント) 実験 12 • AutoAugmentとcompetitiveな性能を達成

Slide 14

Slide 14 text

野村 将寛 (サイバーエージェント) 実験 : CIFAR-10における最終的なschedule 13 • 各operationのmagnitudeの和 • 横軸 : epoch数 • 以下のoperationが存在感 • Cutout • Posterize • Invert • Equalize • AutoContrast

Slide 15

Slide 15 text

野村 将寛 (サイバーエージェント) 実験 : CIFAR-10における最終的なschedule 14 • 各operationの適⽤確率 (prob) • 横軸 : epoch数

Slide 16

Slide 16 text

野村 将寛 (サイバーエージェント) まとめ • Data Augmentationを効率的に⾏う⼿法PBAを提案 • 少ない計算リソースでAutoAugmentと同程度の性能を達成 • シンプルなアルゴリズムであるPBTを利⽤ • Exploit : 上位25%から下位25%にclone • Explore : ランダムサーチ or 近傍のサーチ • コードが公開されてているのですぐ使える 15

Slide 17

Slide 17 text

16 Appendix

Slide 18

Slide 18 text

野村 将寛 (サイバーエージェント) AutoAugmentの詳細 : 学習のアルゴリズム • Controller RNNがaugmentation policy Sをサンプル • operationの種類,そのoperationの適⽤確率(probability)と度合い(magnitude) • validation accuracy Rを受けとる • Rは微分不可能のため,policy gradient (PPOとか) でcontroller RNNを更新する 17

Slide 19

Slide 19 text

野村 将寛 (サイバーエージェント) AutoAugmentの詳細 : 探索空間 • policyは5つのsub-policyからなる • それぞれのsub-policyは,2つのoperationを順に適⽤する • それぞれのoperationには2つのハイパラがある. 1) probability, 2) magnitude • magnitudeを使わないoperationもある (画素値を反転するinvertなど) • PILから利⽤可能なoperation + Cutout + SamplePairingの16のoperation • ShearX/Y, TranslateX/Y, Rotate, AutoContrast, Invert, Equalize, Solarize, Posterize, Contrast, Color, Brightness, Sharpness, Cutout, SamplePairing • magnitudeを10分割,probabilityを11分割. (16 x 10 x 11)^2 の組み合わせ数 • このようなsub-policyを5つ⾒つける必要があるため, (16 x 10 x 11)^10の組み合わせ数になる • identityというoperationはない (probability=0がそれに対応) 18

Slide 20

Slide 20 text

野村 将寛 (サイバーエージェント) AutoAugmentの詳細 : controller RNNのtraining • mini-batch内のそれぞれのexampleに対して,5つのsub-policyのなかの1つがランダムに選ばれ,画像に対して augmentを⾏う • validation accuracyがreward signalとしてRNNのtrainingに使われる • それぞれのdatasetに対して,controllerは約15,000のpolicyをサンプルする • RNNはone-layer LSTM with 100 hidden units at each layer • 2 x 5B softmax prediction for the two convolutional cells (B is typically 5) • 10B predictionのそれぞれはprobabilityに対応する • child networkのjoint probabilityは10B softmaxにおける全ての確率のproductになる • joint probabilityはcontroller RNNの更新のためのgradientの計算に⽤いる • PPO, lr=0.00035, entropy penalty with a weight of 0.00001 • baseline function : exponential moving average of precvious rewards with a weight of 0.95 • weightは-0.1 ~ 0.1の間で初期化 • 最後に5 policy (つまり25 sub-policy)をpickして,これをそれぞれのdatasetに対するモデルのtrainに使う 19

Slide 21

Slide 21 text

野村 将寛 (サイバーエージェント) AutoAugmentの詳細 : 実験設定 • baseline : sotaなCIFAR-10モデルの設定に習う • standardiziing the data, horizontal flip with 50% prob, zero-padding and random crop, cutout with 16x16 pixel • AutoAugmentの場合は以下 • 1) baseline, 2) AutoAugment policy, 3) cutout (cutoutのtuningはせず,16pixelを使⽤) • cutoutはsearch spaceにも⼊っているので2回⾏う可能性があるが,probは低くなっているので実際は1回が多 い • CIFAR-10では,AutoAugmentはcolor-based transformationが多かった • 逆に,geometric transformationはgood policyには少なかった 20

Slide 22

Slide 22 text

野村 将寛 (サイバーエージェント) PBAの詳細 : Scheduleの学習 • PBT (Jaderberg et al., 2017) を利⽤ • ハイパーパラメータとネットワークのパラメータを同時に学習する • 学習されたaugmentation scheduleは,同じデータセットであれば異なるモデルに対して転⽤できる • PBTの流れ: • parellelに,モデルを初期化してtrainする • “exploit-and-explore”を⾏う • weight⾃体はそのまま引き継がれ,初期化とかはしないので効率良い • RayからPBTが利⽤可能なので,1つのGPU内で並列試⾏を簡単にできる 21

Slide 23

Slide 23 text

野村 将寛 (サイバーエージェント) PBAの詳細 : PBT • Step • gradient descentのepochをstepとする • Eval • validation accuray • Ready • 3 steps/epochsが経過したらready状態 • Exploit • 上位25%から下位25%にweightとhyperparameterをclone (Truncation Selection) • Explore • Algorithm 2の⽅法 22

Slide 24

Slide 24 text

野村 将寛 (サイバーエージェント) PBAの詳細 : Policyの探索空間 23 • 各データに対するaugmentationの実⾏⽅法 • 適⽤する回数のlimitは2回 • probとmagnitudeに応じて,operationを実⾏

Slide 25

Slide 25 text

野村 将寛 (サイバーエージェント) PBAの詳細 : Policyの探索空間 24 • PBTにおけるexploreの⽅法 • 確率0.2でランダムサーチ • 確率0.8で以下の操作 • amt <- ランダムに0〜3を選択(ステップサイズに対応) • amtだけ,いまのハイパーパラメータをずらす • domain内にclip

Slide 26

Slide 26 text

野村 将寛 (サイバーエージェント) 実験 : 動的schedule vs 固定 25 • Fixed PolicyよりもPBAのほうが良好な精度を達成