Upgrade to Pro — share decks privately, control downloads, hide ads and more …

論文紹介 : Population Based Augmentation: Efficient Learning of Augmentation Policy Schedules

論文紹介 : Population Based Augmentation: Efficient Learning of Augmentation Policy Schedules

Masahiro Nomura

August 02, 2019
Tweet

More Decks by Masahiro Nomura

Other Decks in Research

Transcript

  1. 野村 将寛 (サイバーエージェント) 論⽂の概要 • 題名 : Population Based Augmentation:

    Efficient Learning of Augmentation Policy Schedules • 著者 : Daniel Ho, Eric Liang, Ion Stoica, Pieter Abbeel, Xi Chen • 出典 : ICMLʼ19 • 概要 : 画像のData Augmentationを⾃動で効率的に最適化する⼿法を提案 1
  2. 野村 将寛 (サイバーエージェント) Data Augmentation • 画像に対して処理を加えてデータ量を増やす → 汎化性能の向上 2

    https://medium.com/nanonets/how-to-use-deep-learning-when-you-have-limited-data-part-2-data-augmentation-c26971dc8ced
  3. 野村 将寛 (サイバーエージェント) Data Augmentation • 適切なData Augmentationはデータセットにより異なる • MNISTのデータに対してflipして良い?

    • 画像の情報に対して不変なtransformationである必要がある • これまで : state-of-the-artな⽅法をとりあえず使う • これから : ⾃動で最適化 • 最初に,Googleが提案したAutoAugment[Cubuk et al., 18]を紹介 3
  4. 野村 将寛 (サイバーエージェント) 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
  5. 野村 将寛 (サイバーエージェント) AutoAugment [Cubuk et al., 18] • 各データについて,どのような変換をすればいいかというpolicyを強化学習で探す

    • どのoperationを適⽤すべきか? • そのoperationの実⾏確率と,その操作の度合いをどう設定すべきか? 5
  6. 野村 将寛 (サイバーエージェント) AutoAugment [Cubuk et al., 18] • datasetごとに獲得できるpolicyが異なることを確認

    • CIFAR-10 : コントラストや明るさなどの⾊が有効 • SVHN : ⾊の反転も有効 • ImageNet : 回転も有効 6
  7. 野村 将寛 (サイバーエージェント) AutoAugmentの問題点 • AutoAugmentはひたすら計算が重い • CIFAR-10に対する実験では,5000 Tesla P100

    GPU Hour ($7,500) • そしてちゃんと論⽂読むと4000(/50000)枚しか使っていないのに... 7
  8. 野村 将寛 (サイバーエージェント) PBA : Population Based Trainingの利⽤ • Population

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

    • Exploit • 上位25%から下位25%にclone • Explore • Algorithm 2の⽅法 • 確率0.2でランダムサーチ • 確率0.8で以下の操作 • ランダムに0〜3を選択 • その数だけハイパーパラメータをずらす • domain内にclip 10
  10. 野村 将寛 (サイバーエージェント) 実験 • “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
  11. 野村 将寛 (サイバーエージェント) 実験 : CIFAR-10における最終的なschedule 13 • 各operationのmagnitudeの和 •

    横軸 : epoch数 • 以下のoperationが存在感 • Cutout • Posterize • Invert • Equalize • AutoContrast
  12. 野村 将寛 (サイバーエージェント) まとめ • Data Augmentationを効率的に⾏う⼿法PBAを提案 • 少ない計算リソースでAutoAugmentと同程度の性能を達成 •

    シンプルなアルゴリズムであるPBTを利⽤ • Exploit : 上位25%から下位25%にclone • Explore : ランダムサーチ or 近傍のサーチ • コードが公開されてているのですぐ使える 15
  13. 野村 将寛 (サイバーエージェント) AutoAugmentの詳細 : 学習のアルゴリズム • Controller RNNがaugmentation policy

    Sをサンプル • operationの種類,そのoperationの適⽤確率(probability)と度合い(magnitude) • validation accuracy Rを受けとる • Rは微分不可能のため,policy gradient (PPOとか) でcontroller RNNを更新する 17
  14. 野村 将寛 (サイバーエージェント) 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
  15. 野村 将寛 (サイバーエージェント) 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
  16. 野村 将寛 (サイバーエージェント) 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
  17. 野村 将寛 (サイバーエージェント) PBAの詳細 : Scheduleの学習 • PBT (Jaderberg et

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

    確率0.2でランダムサーチ • 確率0.8で以下の操作 • amt <- ランダムに0〜3を選択(ステップサイズに対応) • amtだけ,いまのハイパーパラメータをずらす • domain内にclip
  20. 野村 将寛 (サイバーエージェント) 実験 : 動的schedule vs 固定 25 •

    Fixed PolicyよりもPBAのほうが良好な精度を達成