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

AutoML チュートリアル(HPOとNAS)

AutoML チュートリアル(HPOとNAS)

AutoMLに関するチュートリアル資料です。主に,ハイパーパラメータ最適化(HPO)とニューラル構造探索(NAS)に関する説明をしています。

Masanori Suganuma

March 03, 2023
Tweet

More Decks by Masanori Suganuma

Other Decks in Research

Transcript

  1. 2 ⾃⼰紹介 経歴 • 2017.10 ‒ 2021.09 特別研究員@理研AIP • 2018.10

    ‒ 現在 助教@東北⼤ (最近)関⼼のある研究分野 • Vision and Language NAS + 画像分類 [GECCOʼ17 (Best paper)] NAS+画像復元 [ICMLʼ18, CVPRʼ19] GT-1: a child is brushing her hair in the mirror GT-2: a little girl is brushing GT-1: an ele to far from a GT-2: an ele GT-2: A cat is sleeping on a skateboard. M2: a kitten laying on the floor next to a skateboard GRIT: a cat laying on a skateboard on the floor GT-2: A small standing next to M2: an elephan two birds in the GRIT: a baby e walking in a fie GT-1: a kitchen with a refrigerator next to a sink. GT-2: a red bucket sits in a sink next to an open refrigerator M2: an open refrigerator with the door open in a kitchen GRIT: a kitchen with a sink and an open refrigerator GT-1: a woman luggage past an GT-2: a woman suitcase past a f M2: a person rid down a street w GRIT: a person suitcase next to GT-1: a small teddy bear is wedged into an opening in a car dashboard GT-1: horses ra track with jocke GT-2: a group o BHSPVQPGKPDLF POB BMJUUMFHJSMCSVTIJOHIFSIBJS XJUIBCSVTI V&L [ECCVʼ20, IJCAIʼ21, ECCVʼ22]
  2. 本発表においては深層ニューラルネット(特に,CNNやViT)の • ハイパーパラメータ最適化(Hyperparameter optimization; HPO) • ⾃動構造探索(Neural architecture search; NAS)

    のことを指します 3 Automated Machine Learning(AutoML)とは 𝑐𝑜𝑛𝑣7×7 𝑐𝑜𝑛𝑣3×3 … 𝑐𝑜𝑛𝑣3×3 • 学習率,weight decay, dropout ratio等の ハイパーパラメータ • 探索範囲は,数次元〜数⼗次元 • アーキテクチャは固定 HPO NAS 最適化対象 • 各層の演算種類,各層間の接続関係 • 探索空間サイズは,10!~10"## • アーキテクチャ以外のハイパラは固定 最適化対象 𝑐𝑜𝑛𝑣 7×7 𝑐𝑜𝑛𝑣 3×3 𝑠𝑒𝑝 𝑐𝑜𝑛𝑣 3×3 𝑝𝑜𝑜𝑙𝑖𝑛𝑔 𝑐𝑜𝑛𝑣 5×5 𝑐𝑜𝑛𝑣 1×1 𝑐𝑜𝑛𝑣 3×3
  3. 重要であるが,最適な値を⼈⼿で調整するには⼿間が結構かかる 5 Why AutoML? ViTのハイパーパラメータ例 CNNのアーキテクチャ改善例 [Touvron+, ECCVʼ22] から引⽤ 各ステージの

    残差ブロック数の変更 反転残差ブロックに変更 depth-wise convの位置変更 depth-wise convの カーネルサイズ変更 ReLU→GeLU 活性化関数の削減 BN→LN [Liu+, CVPRʼ22] から引⽤
  4. • 強化学習ベース • 最適化対象とは別のネットワーク(コントローラ)を⽤いて,モデル構造を出⼒ • 出⼒された構造を学習し,検証データ上での精度(報酬)を最⼤化するように, コントローラを強化学習で最適化 • 進化計算ベース •

    1個体=1構造とし,検証データ上での精度を最⼤化するように,⺟集団を最適化 • 勾配法ベース • 構造設計を微分可能にし,ネットワークの学習と同様にSGDで最適化 • ランダムサーチベース • 巨⼤なsupernetを学習し,学習後のsupernetから所望のモデル(subnet)を探索 7 代表的なNAS⼿法 最近の 主流
  5. 8 強化学習によるNAS NAS-RL [Zoph+, ICLRʼ17] 1. RNNでCNNの各層のハイパーパラメータ(フィルタ数/サイズなど)を出⼒ 2. CNNをtraining setで訓練し,validation

    setでのaccuracyを報酬𝑅とする 3. 報酬𝑅の期待値を最⼤化するようにPolicy gradientでRNNのパラメータを最適化 コントローラ (RNN) 構造Aを訓練し, 検証精度(報酬) 𝑅を計算 報酬 𝑅を最⼤化するように,コントローラを最適化 構造Aをサンプル
  6. 9 強化学習によるNAS NAS-RL [Zoph+, ICLRʼ17] 1. RNNでCNNの各層のハイパーパラメータ(フィルタ数/サイズなど)を出⼒ 2. CNNをtraining setで訓練し,validation

    setでのaccuracyを報酬𝑅とする 3. 報酬𝑅の期待値を最⼤化するようにPolicy gradientでRNNのパラメータを最適化 各層のフィルタのハイパーパラメータ(候補は事前に定義)を推定 探索空間 • Filter height ∈ [1,3, 5,7] • Filter width ∈ [1,3, 5,7] • # of filters ∈ [24,36, 48,64] • Stride ∈ [1,2,3] • Skip connectionの有無
  7. 10 強化学習によるNAS NAS-RL [Zoph+, ICLRʼ17] 1. RNNでCNNの各層のハイパーパラメータ(フィルタ数/サイズなど)を出⼒ 2. CNNをtraining setで訓練し,validation

    setでのaccuracyを報酬𝑅とする 3. 報酬𝑅の期待値を最⼤化するようにPolicy gradientでRNNのパラメータを最適化 各層のフィルタのハイパーパラメータ(候補は事前に定義)を推定 𝐽 𝜃$ = 𝐸%('!:#;)) [𝑅] ∇)$ 𝐽 𝜃$ = 5 +," - 𝐸%('!:#;)$) [∇ )$ log𝑃 𝑎+ 𝑎+.":" ; 𝜃$ 𝑅] RNNの報酬および勾配 直感的には,⾼い性能を⽰すCNN構造に ⾼い確率を割り当てるようにRNNを更新
  8. 11 強化学習で獲得されたCNNの例 • 右図はCIFAR-10上で獲得された構造 • 受容野が⼤きいフィルタが多く使われている • skip connectionが多い ◦

    CNN全体を設計可能 × ⼿法の制約上,直列的な構造しか設計できない × 計算コストの割に,精度がよろしくない • 22400 GPU daysでerror rate=3.65 引⽤: NAS-RL [Zoph+, ICLRʼ17]
  9. 12 進化計算法によるNAS Large-scale Evolution [Real+, ICMLʼ17] • シンプルな遺伝的アルゴリズム (GA)を⽤いた⼿法 •

    CIFAR-10上でError rate=5.40, 2600 GPU days(※GPU250台使⽤) 進化の様⼦ 引⽤: [Real+, ICMLʼ17]
  10. 13 進化計算法によるNAS Large-scale Evolution [Real+, ICMLʼ17] • 個体(CNN構造)集団からランダムに2つ個体をサンプルし,性能⽐較を⾏い, 性能が良い⽅のCNN構造を変更し(mutation) ,もとの集団に戻す,を繰り返す

    • Mutationの例 • Conv層の追加・除去,strideの変更,チャネル数の変更,フィルタサイズの変更 • skip connectionの追加・除去 • 学習率の変更 • 重みの初期化 current generation next generation a. 2個体を選択 b. 2個体を⽐較し, 良い⽅を残す c. 新しい個体を⽣成(mutation)し, 元の個体と⽣成個体を戻す a〜cの繰返し … ※ validation accuracy
  11. CGPCNN [Suganuma & Shirakawa+, GECCOʼ17] • CNNの構造をDirected acyclic graph(DAG)で表現し,DAGの情報を整数列で記述 •

    Validation setでの性能を最⼤化するように,整数列を進化計算法によって最適化 14 進化計算法によるNAS Convolution 32 output channels 3º3 receptive filed Max Pooling 2º2 receptive field Stride 2 Convolution 64 output channels 5º5 receptive field Convolution 64 output channels 3º3 receptive field softmax Summation 1 3 4 2 6 Max Pooling conv (32, 3) 1 pool (max) 2 conv (64, 3) 4 conv (64, 5) 3 pool (max) 5 sum 6 input 0 7 output DAG 0 (Node no.) 1 2 Function ID 1st input node no. 2nd input node no. 4 5 3 6 7 0 2 1 0 0 3 1 2 2 2 1 1 2 2 4 3 4 O 6 整数列(Genotype) CNN + 6
  12. 15 CGPCNNによって獲得された構造例 *OQVU .BYQPPM $#   .BYQPPM $# 

     $#   $#   $#   4VN $#   4VN .BYQPPM $#   $#   $PODBU $PODBU $#   4VN $#   $#   $#   $PODBU $#   $PODBU $#   $#   $#   4PGUNBY • 右図はCIFAR-10上で獲得された構造 • Residual構造を⾃動で獲得している ◦ CNN全体を設計可能 ◦ 層数や接続関係など,より複雑な構造を設計可能 × 計算コストおよび精度が微妙 • 30 GPU daysでerror rate=5.01 ※ CB = Conv+BatchNorm+ReLU
  13. LSTMでCell内の演算種類および接続関係を決定 1. どの特徴マップを⼊⼒とするか • 前2つのCellの出⼒(ℎ% , ℎ%&! )もしくはCell内の中間層出⼒ 2. 上記で選択された2つの特徴マップに対して

    どの演算⼦を適⽤するか 3. どうやって上記2つの出⼒を結合するか • 要素和もしくはchannel次元で結合 • 上記を𝐵回分出⼒=中間層が𝐵層のCellの設計 • 𝐵 = 5のとき,探索空間のサイズ(候補アーキテクチャの総数)は10"' 17 強化学習+Cellベース NAS-Net [Zoph+, CVPRʼ18] 演算候補 • 1×1 conv • 3×3 conv • 3×3 separable conv • 5×5 separable conv • 7×7 separable conv • 3×3 dilated separable conv • 1×7 then 7×1 conv • 1×3 then 3×1 conv • 3×3 max pooling • 5×5 max pooling • 7×7 max pooling • 3×3 ave pooling • identity
  14. LSTMでCell内の演算種類および接続関係を決定 1. どの特徴マップを⼊⼒とするか • 前2つのCellの出⼒(ℎ% , ℎ%&! )もしくはCell内の中間層出⼒ 2. 上記で選択された2つの特徴マップに対して

    どの演算⼦を適⽤するか 3. どうやって上記2つの出⼒を結合するか • 要素和もしくはchannel次元で結合 • 上記を𝐵回分出⼒=中間層が𝐵層のCellの設計 • 𝐵 = 5のとき,探索空間のサイズ(候補アーキテクチャの総数)は10"' 18 強化学習+Cellベース NAS-Net [Zoph+, CVPRʼ18] Cellの例
  15. • フィルタのchannel数はreduction cell時に2倍にする(解像度は1/2) • LSTMはProximal policy optimizationで最適化 • CIFAR-10上で,error rate=3.41,

    1800 GPU days • CNN全体を設計するNAS-RL [Zoph+, ICLRʼ17]は, error rate=5.40, 22,400 GPU days 19 強化学習+Cellベース NAS-Net [Zoph+, CVPRʼ18] 獲得されたReduction Cellの例 獲得されたNormal Cellの例
  16. AmoebaNet [Real+, AAAIʼ19] • 進化計算法ベースで⾼精度な⽅法の⼀つ(しかし計算コスト⼤) • NAS-Net [Zoph+, CVPRʼ18]と同じ探索空間 •

    Mutationによって新しい構造を⽣成 • Hidden state mutation:セル内の⼀つの演算を選択し,それの⼊⼒元をランダムに変更 • Op mutation :セル内の⼀つの演算を選択し,その演算をランダムに変更 20 進化計算法+Cellベース a. 𝑆個体をランダムに選択 b. 𝑆個体中最も優れた個体を選択 a〜eの繰返し … × d. 最も古い個体を除外 e. 新しい個体を追加 c. 選択された個体に対して mutationを適⽤
  17. AmoebaNet [Real+, AAAIʼ19] • CIFAR-10上でerror rate=3.34, 3150 GPU days •

    RLベースの⼿法[Zoph+, CVPRʼ18]は, error rate=3.41, 1800 GPU days • 収束は進化計算ベースの⽅がRLベースよりも早い 21 進化計算法+Cellベース CNN全体の構造 Normal cell Reduction cell 進化の様⼦
  18. Progressive NAS [Liu+, ECCVʼ18] • ⼀気に全てのブロックに関して最適化をするのではなく, 徐々にCell内のブロック数𝑏を増やしていきながら,Cellの設計を⾏う • 𝐵 =

    𝑏時の全ての組み合わせを列挙 → LSTMで各組み合わせの性能を予測 → 上位𝐾個の組み合わせのみ学習 → LSTMの学習 → 𝐵 ← 𝑏 + 1時での 全ての組み合わせ列挙 → … 22 Sequential model-based optimization+Cellベース sep 3×3 sep 5×5 + ブロック Predictor apply and predict scores … until B=5 𝐵 = 𝑏で可能な全ての構造 … 𝐵 = 𝑏の中でのTop-K train/finetune 𝐵 = 𝑏 + 1で可能な全ての構造 … apply and predict scores
  19. • Cellベースにすることで探索空間の削減はできたが,依然として計算コストが⾼い (⾼い性能を⽰すためには数百〜数千GPU days必要) • 理由:アーキテクチャのサンプル → スクラッチから学習 → アーキテクチャのサンプル

    → … 24 さらなる⾼速化:Weight sharing ENAS [Pham+, ICMLʼ18] • 探索空間全てを包含する1つのDAG(super net)を⽤意し,アーキテクチャ候補はsuper netの サブグラフとして表現 • 探索過程でsuper netの重みは再利⽤ =各サブグラフをスクラッチから学習する必要がない Super net … Candidate nets sampling
  20. 25 さらなる⾼速化:Weight sharing ENAS [Pham+, ICMLʼ18] • Super netからのサンプリングはLSTMで実施(NASNetと同様) •

    ⼊⼒ソースの選択 • 適⽤する演算⼦の選択 1. LSTMによるCNNのサンプリングおよびCNNの学習 2. サンプルされたCNNのValidation accuracyを最⼤化するように REINFORCEでLSTMの学習 を繰り返す Input 1 Input 2 sep 5×5 id + sep 3×3 avg 3×3 + block 4 block 3 sep 3×3 sep 5×5 avg 3×3 id + LSTM
  21. 26 さらなる⾼速化:Weight sharing ENAS [Pham+, ICMLʼ18] • 例えば,次のステップで𝑠𝑒𝑝 3×3, 𝑖𝑑が選択されたときに,

    過去に使⽤した𝑠𝑒𝑝 3×3の重みを再利⽤する = スクラッチから学習する必要がないため⾼速 • CIFAR-10でerror rate=3.54, 0.45 GPU days • 論⽂内で使⽤しているセルベースの探索空間は1.3×10"" • CNN全体の構造も効率的に探索可能(探索空間は1.6×1001 ) • NAS-Net [Zoph+, CVPRʼ18]はerror rate=3.41, 1800 GPU days Input 1 Input 2 sep 5×5 id + sep 3×3 id + block 4 block 3 sep 3×3 sep 5×5 avg 3×3 id + 𝒊𝒅 LSTM
  22. これまで探索空間が離散で微分不可能なため,対象となるCNNのほかに コントローラとしてRNNが別途必要であった 27 勾配法によるNAS Differentiable Architecture Search (DARTS) [Liu+, ICLRʼ19]

    • 探索空間を微分可能にすることでコントローラを必要としない,より効率的かつ 優れたNASを実⾏可能に • Cellベース+weight sharing+SGDによるNAS.代表的なNAS⼿法の1つ • CIFAR-10でerror rate=2.76, 1 GPU days ※ 論⽂中の表では4 GPU days(4回探索をした中のベストを選択しているため) https://github.com/quark0/darts
  23. 探索空間:各エッジでどの演算を実⾏するか • ノード:特徴マップ • エッジ:演算候補(conv, pooling, identity,…) ← 探索対象 28

    DARTS [Liu+, ICLRʼ19] Normal Cell Reduction Cell Normal Cell Normal Cell … Output Input Input1 Input2 𝑓2 𝑓! 𝑓3 𝑐𝑜𝑛𝑐𝑎𝑡 𝑓" 𝑓0 𝑐𝑜𝑛𝑣1×1 𝑐𝑜𝑛𝑣1×1 𝑓!
  24. 探索空間:各エッジでどの演算を実⾏するか • ノード:特徴マップ • エッジ:演算候補(conv, pooling, identity,…) ← 探索対象 29

    DARTS [Liu+, ICLRʼ19] Normal Cell Reduction Cell Normal Cell Normal Cell … Output Input Input1 Input2 𝑓2 𝑓! 𝑓3 𝑐𝑜𝑛𝑐𝑎𝑡 𝑓" 𝑓0 𝑐𝑜𝑛𝑣1×1 𝑐𝑜𝑛𝑣1×1 𝑓! 演算候補 • 3×3 separable conv • 5×5 separable conv • 3×3 dilated separable conv • 5×5 dilated separable conv • 3×3 max pooling • 3×3 average pooling • Identity • zero
  25. 30 Continuous relaxation of the search space Input1 Input2 𝑓2

    𝑓! 𝑓3 𝑐𝑜𝑛𝑐𝑎𝑡 𝑓" 𝑓0 𝑐𝑜𝑛𝑣1×1 𝑐𝑜𝑛𝑣1×1 3×3 𝑠𝑒𝑝 𝑐𝑜𝑛𝑣 𝑖𝑑𝑒𝑛𝑡𝑖𝑡𝑦 𝛼" ",$ 𝛼% ",$ + 3×3 𝑚𝑎𝑥 𝑝𝑜𝑜𝑙 𝛼& ",$ 探索を微分可能にするために, 各演算候補に構造パラメータ𝛼C D,Eを付与 • 𝑖 = 1, … , 𝑁 − 1. 𝑗 = 3, … , 𝑁. 𝑁: ノード数 • 𝑘 = 1, … , 𝐾 𝐾: 演算候補数 Cell 例)演算候補が3つの場合
  26. 31 Continuous relaxation of the search space Input1 Input2 𝑓2

    𝑓! 𝑓3 𝑐𝑜𝑛𝑐𝑎𝑡 𝑓" 𝑓0 𝑐𝑜𝑛𝑣1×1 𝑐𝑜𝑛𝑣1×1 3×3 𝑠𝑒𝑝 𝑐𝑜𝑛𝑣 𝑖𝑑𝑒𝑛𝑡𝑖𝑡𝑦 𝛼! !,, 𝛼" !,, + 3×3 𝑚𝑎𝑥 𝑝𝑜𝑜𝑙 𝛼# !,, 探索を微分可能にするために, 各演算候補に構造パラメータ𝛼C D,Eを付与 • ⼊⼒ノードID 𝑖 = 1, … , 𝑁 − 1 • 出⼒ノードID 𝑗 = 3, … , 𝑁 • 𝑁: ノード数 • 𝑘 = 1, … , 𝐾 𝐾: 演算候補数 Cell 例)演算候補が3つの場合
  27. 32 Continuous relaxation of the search space Input1 Input2 𝑓2

    𝑓! 𝑓3 𝑐𝑜𝑛𝑐𝑎𝑡 𝑓" 𝑓0 𝑐𝑜𝑛𝑣1×1 𝑐𝑜𝑛𝑣1×1 3×3 𝑠𝑒𝑝 𝑐𝑜𝑛𝑣 𝑖𝑑𝑒𝑛𝑡𝑖𝑡𝑦 𝛼" ",$ 𝛼% ",$ + 3×3 𝑚𝑎𝑥 𝑝𝑜𝑜𝑙 𝛼& ",$ Cell 構造パラメータ𝜶𝒌 𝒊,𝒋+Softmax関数で各エッジの出⼒& 𝒐𝒌 𝒊,𝒋を計算 • ̅ 𝑜!,# 𝑥 = ∑$∈& '() *- .,/ ∑ -0∈2 '() * -0 .,/ 𝑜(𝑥) • 構造パラメータ𝛼$ !,#によって各演算𝑜(𝑥)を重み付け • 構造パラメータが計算グラフにのるので, SGDで直接構造パラメータの学習が可能に ̅ 𝑜",!(𝑥)
  28. 33 DARTSの学習⽅法 1. Validation lossを最⼩化するように構造パラメータ𝜶を更新 (1 mini-batch使⽤) • ∇*ℒ,-. 𝑤/,

    𝛼 − 𝜉∇*,0 1 ℒ23-!4 𝑤, 𝛼 ∇00ℒ,-.(𝑤/, 𝛼) • 第⼆項の計算が若⼲重いため,𝜉 = 0にすることで⾼速化も可能(First-order Approximation) 2. Training lossを最⼩化するようにCNNの重みパラメータ𝒘を更新 (1 mini-batch使⽤) • ∇0ℒ23-!4(𝑤, 𝛼) 3. 収束するまで上記を繰り返す 4. Top-𝑘の構造パラメータ𝛼をもつ演算のみ残す(論⽂では𝑘 = 2) 3×3 𝑠𝑒𝑝 𝑐𝑜𝑛𝑣 𝑖𝑑𝑒𝑛𝑡𝑖𝑡𝑦 𝛼" ',( 𝛼% ',( + 3×3 𝑚𝑎𝑥 𝑝𝑜𝑜𝑙 𝛼& ',( 3×3 𝑠𝑒𝑝 𝑐𝑜𝑛𝑣 𝑖𝑑𝑒𝑛𝑡𝑖𝑡𝑦 𝛼" ',( 𝛼% ',( + 3×3 𝑚𝑎𝑥 𝑝𝑜𝑜𝑙 𝛼& ',( Top-𝑘
  29. Test error Params (M) Search cost (GPU days) Method DenseNet

    3.46 25.6 - manual NAS-Net + cutout [Zoph+, CVPRʼ18] 2.83 3.1 1800 RL AmoebaNet + cutout [Real+, AAAIʼ19] 2.55 2.8 3150 evolution PNAS [Liu+,ECCVʼ18] 3.41 3.2 150 SMBO ENAS + cutout [Pham+, ICMLʼ18] 2.89 4.6 0.5 RL DARTS (1st order) + cutout [Liu+, ICLRʼ19] 3.00 3.3 1.5 gradient DARTS (2nd order) + cutout [Liu+, ICLRʼ19] 2.76 3.3 4 gradient 35 性能⽐較 ※ DARTSは4試⾏分のSearch cost • 勾配法で構造も直接最適化することで,効率的かつ優れたCNNの探索が可能 • NASを利⽤することで,⼿動での設計(DenseNet)と⽐べて軽量かつ⾼精度な モデルの設計が可能
  30. • 学習データへのoverfit • Skip connectionが過剰に含まれる構造が獲得されやすい • 探索空間:3×3, 5×5 sep conv,

    3×3, 5×5 dilated conv, max/ave pooling, identity, zero • 構造探索中の性能とテスト時の性能差が⽣じやすい • 探索中は全ての演算が使われるのに対して,探索後はtop-kしか使われない • メモリ消費が激しい • 全ての演算結果を保持する必要があるため 36 DARTSの使⽤はあまりオススメできない 引⽤: [Zela+, ICLRʼ20] 探索 8 Cell テスト時 20 Cell 獲得されたCellの例 探索時とテスト時で Cell数も異なる
  31. Robust DARTS [Zela+, ICLRʼ20] • DARTSが学習データにoverfitしてしまう課題について調査 • DARTSでは探索が進むにつれて,へシアン⾏列∇* 1 ℒ,-.!5

    の最⼤固有値𝜆6-7 * も増加 → loss landscapeが急峻になり,汎化性能の低い解に収束(⼤量のskip connectionなど) 37 DARTSの改良:学習データへのoverfit 引⽤: [Zela+, ICLRʼ20] Hypothetical illustration of loss landscape 異なる探索空間(S1-4) での検証 𝛼∗: 探索中の構造パラメータ 𝛼"#$%: top-k抽出後の構造パラメータ
  32. Overfitの解決策 • Early stopping • 最⼤固有値𝜆5'6 7 を監視し, 8 9&'(

    ) (:.;) 8 9&'( ) (:) < 0.75 を満たす場合,𝑖 − 𝑘 epochで探索を打ち切る • ̅ 𝜆5'6 7 : 直近𝑘エポックの𝜆5'6 7 の平均値, 𝑖 ∶ 現在のepoch, 𝑘 = 5 • 正則化 • ScheduledDroppath (DP) • L2 regularization (L2) 実践例 • Early stoppingの基準を満たした場合に, 正則化強度を上げて,学習再開(DARTS-ADA) • 異なる正則化強度の実験を並列して実施し, 最良のものを選択(R-DARTS) 38 DARTSの改良:学習データへのoverfit Test error (%) 異なる探索空間(S1-4)での検証
  33. Progressive DARTS(P-DARTS) [Chen+, IJCVʼ20] • DARTSは探索時→テスト時にCellの個数を増加させるが,この操作により, 探索時の最良構造≠テスト時の最良構造 となるケースが存在 • PC-DARTSでは,探索中に徐々にCell数を増加させていくことで,上述の問題を緩和

    • Cell増加と同時に,下位の構造パラメータ値𝛼をもつ演算を除外(8 → 5 → 3) • Cell内のSkip connection数が2となるように調整 39 DARTSの改良:探索時とテスト時の性能差の抑制 5 Cells 20 Cells 11 Cells 17 Cells Search phase Test phase Test error Search cost (GPU days) DARTS 3.00 0.5 P-DARTS on CIFAR-10 2.50 0.3 P-DARTS on CIFAR-100 2.62 0.3 Test error on CIFAR-10 ※ DARTS on CIFAR-100は探索が失敗する
  34. Partially-connected DARTS (PC-DARTS) [Xu+, ICLRʼ20] • DARTSは全ての演算候補についてForward/Backward計算を必要とするため, メモリ消費が激しい • ⼊⼒特徴マップの⼀部チャネルのみに対して演算を実施することで省メモリ化(𝑆:,<

    ∈ {0,1}) • 𝑓!,# 89 𝒙!; 𝑺!,# = ∑:∈𝒪 '() *.,/ 5 ∑ 50∈𝒪 '() *.,/ 50 N 𝑜 𝑺!,# ∗ 𝒙! + (1 − 𝑺!,#) ∗ 𝒙! 40 DARTSの改良:メモリ消費の抑制 Test error Search cost (GPU days) DARTS 3.00 0.5 P-DARTS 2.50 0.3 PC-DARTS 2.57 0.1 Test error on CIFAR-10 ※ 上記の探索コストは1080Tiを使⽤した結果. Tesla V100を使⽤すると,PC-DARTSの探索コストは0.06 days.
  35. • パスを2値化することで,特定の演算のみを実⾏する • DARTSは全ての演算結果をメモリに保持する必要があるため,メモリ消費⼤ • 2値化は,構造パラメータ𝛼をもとに多項分布からサンプリング(確率緩和) • 𝑔 = binarize

    𝑝<, … , 𝑝= = X 1,0, … , 0 with probability 𝑝< … 0,0, … , 1 with probability 𝑝= 42 ProxylessNAS Input 3×3 𝑐𝑜𝑛𝑣 5×5 𝑐𝑜𝑛𝑣 identity Output Input 3×3 𝑐𝑜𝑛𝑣 5×5 𝑐𝑜𝑛𝑣 identity Output 𝑝: = exp 𝛼: ∑; exp 𝛼; 𝑔 = [1,0,0] 𝑔 = [0,1,0]
  36. • Training lossを最⼩化するようにCNNの重みパラメータ𝒘を更新 • Mini-batchごとにbinary gate 𝑔をサンプリング • Validation lossを最⼩化するように構造パラメータ𝜶を更新

    • CNNの重みパラメータ𝑤を固定して,構造パラメータ𝛼のみを更新 上記を繰り返す 43 ProxylessNASの学習⽅法 Input 3×3 𝑐𝑜𝑛𝑣 5×5 𝑐𝑜𝑛𝑣 identity Output Input 3×3 𝑐𝑜𝑛𝑣 5×5 𝑐𝑜𝑛𝑣 identity Output 𝑔~𝑝7 (𝑔) 𝑔~𝑝7 (𝑔) update update
  37. • ProxylessNASでは,モデルのlatencyも考慮して最適化可能 • 𝐿𝑜𝑠𝑠 = 𝐿𝑜𝑠𝑠*+ + 𝜆𝔼[latency] • 𝔼

    latency = ∑! 𝔼[latency!] = ∑# 𝑝# !×𝐹(𝑜# !) • 各演算のlatency 𝐹(𝑜# !)を予測するモデルを別途⽤意 • Google Pixel 1 phoneおよびTensorFlow-Liteを⽤いて構築 • 勾配法ではなく,REINFORCEでも 構造パラメータ𝛼を最適化可能 44 ProxylessNASによるlatency考慮した構造設計 Test error Params (M) DARTS 2.83 3.4 AmoebaNet-B 2.13 34.9 ProxylessNAS-G 2.08 5.7 ProxylessNAS-R 2.30 5.8 Test error rate on CIFAR-10 𝐽 𝛼 = 𝔼=~7 𝑅 𝒩 = = 5 : 𝑝: 𝑅(𝒩(𝑒 = 𝑜)) 𝒩 ) はbinary gate𝑔に基づいた2値化されたネットワーク ∇7 𝐽 𝛼 ≈ 1 𝑀 5 :," ? 𝑅 𝒩 =* ∇7 log(𝑝(𝑔:))
  38. • DARTS [Liu+, ICLRʼ19] vs ProxylessNAS [Cai+, ICLRʼ20] vs PC-DARTS

    [Xu+, ICLRʼ20] • ImageNet50で検証 • ImageNetからランダムに50クラスをサンプリング • 実験設定は基本的に原著論⽂もしくは著者公開コードに準拠 • ProxylessNASだけうまく探索が進まなかったため,初期学習率および そのスケジューリングなど調整しました • 探索の⾼速化のために,Mixed-Precision Trainingを利⽤(https://github.com/NVIDIA/apex) • GPUはA6000を使⽤ 45 実際に動かしてみた Test error rate DARTS 14.77 PC-DARTS 12.84 ProxylessNAS 10.76
  39. • AutoFormerの探索空間は,特徴ベクトルの次元数や注意ヘッド数で構造⾃体は固定(左下表) • 探索⾃体は,ランダムベースのNASに該当 • Supernet training • 各iterationで探索空間からランダムにサンプルし,対応するサブネットワークの学習,を繰り返す •

    ⼩さいサイズのパラメータをサンプルする際は,weight entanglementを使⽤ • Evolution search • supernetの学習が終了したら,進化計算によって分類精度を最⼤に,モデルサイズが最⼩と なるようなサブネットワークを探索 47 ViTのためのNAS:AutoFormer [Chen+, ICCVʼ21] 探索空間 ランダムに サンプル
  40. • 探索空間の多様性 • ⼈間のバイアスがそれなりに含まれている • ランダムサーチでも⼗分な性能 • 構造以外のハイパーパラメータの影響 • 学習率やデータ拡張,ランダムシードなどの影響も無視できない

    • weight sharingの影響 • ネガティブな影響を与えることがいくつかの論⽂で⽰唆されている • 膨⼤な探索空間を探索しきれていない • 現実的な計算資源では限られた構造しか探索できていない 49 現状のNASの課題
  41. • Cellベース+weight sharing+ランダムサーチ [Bender+, ICMLʼ18] • 構造パラメータもしくはRNNを導⼊しなくとも,ランダムサーチでそれなりに探索可能 • Super netにDropoutを適⽤しながら学習を⾏い,学習終了後にランダムにアーキテクチャを

    サンプリングし,validation set上で最良アーキテクチャを選択 • 学習の安定化のために,Dropout ratioのスケジューリング,ghost batch normalizationなど の⼯夫は必要 50 Weight sharing + ランダムサーチ 引⽤: [Bender+, ICMLʼ18] Test error ENAS 3.5 DARTS 2.8 Bender+, ICMLʼ18 3.9 Test error rate on CIFAR-10 ※ DARTSと探索空間が若⼲異なっていることに注意
  42. DARTSの探索空間でランダムサーチを実施 [Li+, UAIʼ19] • Cell内の各ノードにおいて,演算および2つの⼊⼒元をランダムにサンプルし,学習 を繰り返す = super netの学習 •

    Super netの学習終了後,ランダムにアーキテクチャをサンプルし,0から再学習し, validation set上での最良モデルを抽出 • 下記表に⽰すように,ランダムサーチでもDARTSと遜⾊ないアーキテクチャを探索可能 51 DARTS + ランダムサーチ Test error (Best) Test error (ave) Search cost (GPU days) DARTS (2nd order) 2.62 2.78±0.12 10 Random search with weight sharing 2.71 2.85±0.08 9.7 Test error rate on CIFAR-10 ※ Search costはテスト評価⽤の再訓練含む
  43. • DARTS [Liu+, ICLRʼ19], ENAS [Pham+, ICMLʼ18], NAO [Luo+, NeurIPSʼ18],

    BayesNAS [Zhou+, ICMLʼ19] をランダムサーチと⽐較 • ランダムサーチ:探索空間はDARTSに準拠し,各ノードで演算と1つの⼊⼒元をランダムに選択. 10個のアーキテクチャをランダムにサンプルし,収束するまでそれぞれを学習. • 下記表に⽰すように,単純なランダムサーチがNAS⼿法と同等程度の性能を達成可能 → 探索空間がリッチすぎる or NAS⼿法の探索が失敗している? 52 ランダムサーチ vs NAS Test error (Average) Test error (Best) DARTS 3.38±0.23 3.20 NAO 3.14±0.17 2.90 ENAS 3.24±0.10 3.05 BayesNAS 4.01±0.25 3.59 Random 3.52±0.18 3.26 Test error rate on CIFAR-10 • 各⼿法は異なるランダムシードで10回試⾏ • NAS⼿法はvalidation set上での最良モデルを 再訓練し,test set上で評価 • 学習エポック数は全て同じ [Yu+, ICLRʼ20]
  44. • NASBench-101*にNAS⼿法を適⽤し,探索が良好に実⾏されているのかを検証 • NASBench-101では探索空間の縮⼩を⾏い,探索空間からサンプル可能な全てのアーキテクチャの 性能を記録している(node数7の場合だと,合計で423624個のアーキテクチャが存在) • NASによって発⾒されたアーキテクチャのrankingを確認することで,探索性能の検証が可能 • どのNAS⼿法も最良のアーキテクチャを発⾒できていないことがわかる •

    NAOが良さそうにみえるが,毎回初期poolから最良アーキテクチャが選択されていたため, 探索が良好に⾏われているとは断⾔できない 53 NASの探索性能の検証 Test error (Average) Test error (Best) Best ranking DARTS 7.19±0.61 6.98 57079 NAO 7.41±0.59 6.67 19552 ENAS 8.17±0.42 7.46 96939 Random 9.07±5.84 4.94 - Test error rate on NASBench (10試⾏) * Ying+, NAS-Bench-101: Towards Reproducible Neural Architecture Search, ICMLʻ19 [Yu+, ICLRʼ20]
  45. • 複数のデータセット上でNAS⼿法をランダムサーチと⽐較 • ランダムサーチ:探索空間からランダムにアーキテクチャを8つサンプルし,学習 • NAS:構造探索を8試⾏ • PDARTS以外のNAS⼿法は安定してランダムサーチよりも優れているとは⾔い難い • ランダムサーチに劣っているケースも⾒られる

    54 ランダムサーチ vs NAS(別論⽂) [Yang+, ICLRʼ20] NAS method CIFAR-10 CIFAR-100 Sport8 MIT67 Flowers102 DARTS 0.32 0.23 -0.13 0.10 0.25 PDARTS 0.52 1.20 0.51 1.19 0.20 ENAS 0.01 -3.44 0.67 0.13 0.47 NAO 0.44 -0.01 -2.05 -1.53 -0.13 Relative improvement over random search (higher is better) 𝑅𝐼 = 100× @$$+',.@AA-'+ @$$-'+
  46. • NASBench-101を使⽤して,Weight sharing(WS)の影響について検証 • WSありで学習,WSなしで学習(ground truth)間の相関を確認 • WSありでは,mini-batchごとにアーキテクチャを⼀様分布からサンプリングして, 200エポック学習 •

    上記の学習を10試⾏し,各試⾏で200アーキテクチャをサンプルし,Kendall Tau metricを 算出( [−1.0, 1.0]の値をとり,1.0に近いほどrankingが近いことを⽰す) • 結果として,Kendall Tau metric=0.195かつ下記表から,WSはモデルサンプリングに悪影響を 与えることがわかる 55 Weight sharingの検証 Test error (Average) Test error (Best) Best ranking NAO 6.92±0.71 5.89 3543 ENAS 6.46±0.45 5.96 4610 Test error rate on NASBench (WSなし) Test error (Average) Test error (Best) Best ranking 7.41±0.59 6.67 19552 8.17±0.42 7.46 96939 WSあり 引⽤:Yu+, Evaluating the search space of neural architecture search, ICLRʻ20 [Yu+, ICLRʼ20]
  47. TuNAS [Bender+, CVPRʼ20] • 先の結果は⼩さいデータセットが影響している,探索空間が⼩さい,Tuningが難しいだけ • よりeasy-to-tune and scalableなNASとして,TuNASを提案 •

    ImageNet + ProxylessNASの探索空間では,random searchより優れている • より⼤きな探索空間でも同様 • WSを調整すれば,ほかのドメインでも良好に動作可能(データセット,タスク) 56 上述の結果への反論 Search space Complexity of search space TuNAS Random search 𝑵 = 𝟓𝟎 ProxylessNAS ~100" 76.3±0.2 75.4±0.2 ProxylessNAS-Enlarged ~100B 76.4±0.1 74.6±0.3 MobileNetV3-Like ~1032 76.6±0.1 74.6±0.3 Test accuracy on the three search spaces
  48. 1. ⽅策𝜋(確率分布)からアーキテクチャ𝛼をサンプル(𝛼~𝜋) 2. サンプルされたアーキテクチャ+validation setで精度𝑄(𝛼)および推論速度𝑇(𝛼)をもとに 報酬𝑅(𝛼)を算出し,REINFORCEで𝜋を更新(探索序盤25%は更新しない) 3. Training setでアーキテクチャ𝛼の重み𝑤を更新,を繰り返す •

    最終的なアーキテクチャは,𝜋から尤もらしいものを選択して構築 探索の⾼精度化のために以下の2つのテクニックを導⼊ • Filter Warmup • 探索空間中で最⼤のchannel数をもつconvでほかのconvを表現 • 96チャネルのconvは128チャネルのconvの後⽅32チャネル分をマスクすることで表現 • 探索序盤の25%において,確率𝑝> で全てのチャネルを有効にする(𝑝* : 1.0 → 0.0 でスケジューリング) • Op Warmup • 探索序盤の25%では確率𝑝: で全ての演算を使⽤して重み𝑤を更新 • 探索序盤の25%が終了するまでに,𝑝:: 1.0 → 0.0となるようにスケーリングする 57 TuNAS
  49. • 現状は⼈がうまく作り込んだ探索空間内を探索している • うまく動く演算や構造になってしまっている =ランダムサーチで⼗分 • 本当に新しい構造探索ではなく,内挿をしているイメージ 58 理想的には探索空間⾃体も⾃動設計したい •

    究極的には探索空間⾃体も⾃動設計して欲しい • 本当に新しい構造が発⾒する可能性 • 研究例はいくつかあるが,より計算コストがかかる [Real+, ICMLʼ17] [So+, NeurIPSʼ21] [Chen+, NeurIPSʼ21] 閉じられた探索空間内を探索 開けた探索空間を探索 ★ ★ ★ ★ 最初の 探索空間
  50. • DARTS探索空間からランダムにアーキテクチャを8つサンプルし,それぞれ異なるtraining protocolで学習 • auxiliary tower, droppath, cutout, AutoAugment, larger

    training epoch, increase the number of channels,を適⽤ • 重要度:学習⽅法>アーキテクチャ (※ 今回の実験設定では) 59 学習⽅法およびハイパーパラメータの重要性 [Yang+, ICLRʼ20]
  51. Training-free Transformer Architecture Search [Zhou+, CVPRʼ22] • 学習不要なViTのNAS • 提案指標は分類精度と強い正の相関を⽰し,AutoFormerよりも優れた構造を

    探索可能 62 学習不要なViTの構造探索 AutoFormerよりも⾼精度かつ⾼速な構造探索が可能 提案指標は分類精度と⾮常に強い相関がある 図表は[Zhou+, CVPRʼ22]から引⽤
  52. • ただし,重み⾏列のランクの推定は計算コストが⾼いため,重み⾏列の 核ノルムによる近似を⽤いる • 𝑊 6 4?> = trace 𝑊

    6 @𝑊 6 • フロベニウスノルム 𝑊 6 A < 1のとき, 𝑊 6 4?> で⾏列𝑊 6 のランクを近似可能[2] • 各重みの重要性を考慮するために, 勾配情報を乗算することで,最終的な MHAにおける指標「Synaptic diversity」を計算 64 Synaptic diversity in multi-head attention [2] Fazel, Matrix rank minimization with applications. PhD thesis, Stanford University, 2002
  53. 探索空間:層数,MLP ratio, ヘッド数,埋め込み次元数 • E.g. Smallの場合:層数 [12, 13, 14], MLP

    ratio [3.0, 3.5, 4.0], ヘッド数 [5, 6, 7], 次元数 [320, 384, 448] 69 AutoFormerの探索空間における結果 提案⼿法は⾼速かつ⾼精度な ViT構造を⾒つけられている
  54. • 演算同⼠の接続関係をもっと柔軟に設計可能な探索空間を提案 [Suganuma, 2022] 73 探索空間をもっと複雑に • 𝑹×𝑪の2次元有向グラフでTransformerの1層を表現 • ノード:演算種類(Linear,

    attention, summation, …) • エッジ:接続関係(各𝑐列は前列𝑐 − 1のノードとのみ接続可能) • 同⼀構造のグラフを積み重ねることで,多層Transformer Encoderを構築
  55. 初期化時のInfoNCE損失値とMLM/ITM損失値間に負の相関があることを 発⾒ [Suganuma, 2022] • MLM : masked language modeling

    • ITM : image-text matching • モデルはVinVL [Zhang+, CVPRʼ21] 74 学習不要なTransformer for V&Lの構造探索 ランダムに1000構造をサンプリングした結果 V&LではMLM等が事前学習として 幅広く利⽤されているため,初期化時の InfoNCE損失値でTransformerの構造の 良し悪しがわかるのでは? 相関係数:−0.791 ケンドールの順位相関:−0.503
  56. 300万ほどアーキテクチャをサンプリングし,性能Top-2の構造を確認したところ, オリジナルのTransformerと酷似したアーキテクチャが獲得された • Linear→Attention→skip connectionの接続関係,Attentionの数,位置など似ている • やはり,原著のTransformerが最適なのか? • V&Lタスクでの性能としては,探索結果のモデルの⽅が若⼲優れている 75

    Transformerの再発明でした ! ∶ !#$%&' !! ∶ !#$%&' (/ *+#, -.$$%-/#.$ 0 ∶ 001 2 ∶ *344&/#.$ 5 ∶ 5//%$/#.$ 6 ∶ 67%$/#/8 !" ∶ !#$%&' (/ 9%!: ! ! ! " " " " # # $ $! $ ∶ $&'()* $! ∶ $&'()* +/ -.&/ 01''(02&1' # ∶ ##3 " ∶ -455)2&1' 6 ∶ 622('2&1' 6 ! ∶ !7('2&28 6 " # " # # # " #! # " $! " ! $" ∶ $&'()* +/ 9($: ! ! "! " # $ " ! " % 探索結果 探索結果 7BOJMMB5SBOTGPSNFS ! ! ! " " " " # # $ $! $ ∶ $&'()* $! ∶ $&'()* +/ -.&/ 01''(02&1' # ∶ ##3 " ∶ -455)2&1' 6 ∶ 622('2&1' 6 ! ∶ !7('2&28 6 " $" # # $" #! # " $! " ! $" ∶ $&'()* +/ 9($:
  57. MnasNet [Tan+, CVPRʼ19] 1. RNNからCNN modelをサンプルし,対象タスクで訓練,性能評価 2. モバイル器上(Pixel Phone)で実⾏し,推論時のlatencyを実際に取得 3.

    報酬を計算 4. 報酬を最⼤化するようにRNNのパラメータをProximal Policy Optimizationで更新 79 NAS + 多⽬的最適化 𝑅𝑒𝑤𝑎𝑟𝑑(𝑚) = 𝐴𝐶𝐶(𝑚) N 𝐿𝐴𝑇 𝑚 𝑇 0 𝑤 = o 𝛼, 𝑖𝑓 𝐿𝐴𝑇(𝑚) ≤ 𝑇 𝛽, 𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒 𝑇 = 80𝑚𝑠, 𝛼 = 𝛽 = −0.07 を論⽂では使⽤ wはlatencyに関する制約
  58. • MobileNetV3 [Howard+, ICCVʼ19]の各ブロックサイズ,ブロック内の各レイヤ におけるカーネルサイズとチャネル数の選択肢を徐々に増やしながら学習 • ブロックサイズ ∶ 4, →

    4, 3 → 4,3,2 • カーネルサイズ: 7, → 7, 5 → 7,5,3 • チャネル拡⼤率: 6, → 6,4 → 6,4,3 81 Once-for-all [Cai+, ICLRʼ20] の学習⽅法 • 各iterationでは,選択肢からランダムにカーネルサイズなどをサンプルし, サンプルされた⼦ネットワークを学習,を繰り返す • ⼩さいカーネルサイズがサンプルされたときは,⼤きいカーネルサイズの重みを転⽤ • ⼩さいチャネル数がサンプルされたときは,チャネルのL1ノルムに応じてソートし, ノルムが⼤きいチャネルを残す
  59. NAS-FPN [Ghiasi+, CVPRʼ19] • RetinaNetをベースにFeature Pyramid Networkの構造を最適化(NAS-FPN) • NAS-FPNはN個のmerging cellで構成

    • RNN controllerでmerging cell内の以下を決定 • どの⼆つの⼊⼒特徴マップを受け取るか • Sum or Global pooling • 出⼒スケール 83 Object detection + NAS Binary Op
  60. Auto-DeepLab [Liu+, CVPRʼ19] • CellレベルとNetworkレベルの⼆つの探索空間で構成 • Cell : DARTSと同じ •

    Network : L層までのパスを探索(解像度を2倍,1/2倍,維持,のいずれかを選択). 各パスに重み𝛽C E を割りふる • 学習⽅法もDARTSと同様 • ネットワークの重み𝑤を更新 • 構造パラメータ𝛼, 𝛽を更新,を繰り返す 85 Semantic segmentation + NAS
  61. Auto-DeepLab [Liu+, CVPRʼ19] • NASを利⽤することで,⼈⼿で設計した場合と 同等程度の性能を達成可能 • 探索コストは3 GPU days

    • 序盤は⾼解像度,終盤は低解像度での処理を ⾏う過程が獲得されている 86 Semantic segmentation + NAS
  62. 87 Adversarial training + NAS [Guo+, CVPRʼ20] One-shot NASを利⽤して,多数のCNNを⽣成し, それらCNNのAdversarial

    attackに対する頑健性を調査 Supernet … sampling Finetuning the network with adversarial training and evaluate it on eval samples Subnets … … Finetuning the network with adversarial training and evaluate it on eval samples
  63. CNNのdensityとadversarial robustnessには正の相関があることが判明 • architecture density 𝐷 = |C758897:9;| |C| =

    ∑.,/,- * - (.,/) |C| 88 Adversarial attackに頑健なCNNの構造は? top300とlast300を分類する線形分類器 を学習させた際の重みの分布
  64. 89 Adversarial training + NAS [Guo+, CVPRʼ20] Q1. Adversarial attackに頑健なCNNの構造は何なのか?

    A1. Densely connected pattern Q2. パラメータ数に制限がある場合,どのように畳み込み層を配置すべきか? A2. 少ないパラメータ制約下では,隣接するノード間に畳み込み層を配置 Q3. 統計的に頑健性を計る指標は何が良いか? A3. Flow of solution procedure (FSP) matrix loss より詳しい解説はこちら
  65. 注意機構への⼊⼒表現および接続関係の最適化 • 注意機構への⼊⼒するrepresentationと接続関係の最適化(右下図) • 探索空間は演算選択と,どの層からの⼊⼒を受け付けるか • One-shot NAS (Supernet) +

    進化計算で1000アーキテクチャをサンプルして評価 • text classification, graph representationタスクで良好な結果 90 AutoAttend: Automated Attention Representation Search [Guan+, ICMLʼ21]
  66. 注意機構の構造を探索 • 全体の構造は畳み込み層と注意機構層の積み重ね • 注意機構の探索には,primitiveな演算の組み合わせを使⽤ • 重み共有+進化計算で探索 • 探索コストは1000 GPU

    days (760 candidates are evaluated) • 様々な⾔語タスク上でBERTよりも⾼精度 91 AutoBERT-Zero: Evolving BERT Backbone from Scratch [Gao+, AAAIʼ22] 最適化された構造例
  67. Transformerの構造をprimitiveな演算から探索 • 四則演算⼦などの基本的な演算のみでのTransformerの構造探索 • ただし,探索空間が膨⼤すぎるので,vanilla Transformerから探索を開始する • 進化計算で探索(Regularized Evolution) •

    探索コストは1145.8 TPUv2 days • 様々な⾔語タスク上で良好な結果(e.g. , Primer improves the original T5 architecture on C4 auto-regressive language modeling, reducing the training cost by 4X) 92 Primer: Searching for Efficient Transformers for Language Modeling [So+, NeurIPSʼ21] 獲得された構造例
  68. • ある2サンプルをネットワークに⼊⼒した際の,ReLU後のバイナリコードが類似している =分離するのが難しい=ネットワークの性能良くない • 上記を下記式によって定量化 100 Neural Architecture Search without

    Training [Mellor+, ICMLʼ21] 性能 良 悪 スコア𝑠とaccuracyには正の相関がある 𝑁+ : ReLUの個数 𝑑, (𝐜' , 𝐜( ): サンプル𝑖, 𝑗による バイナリコードのハミング距離
  69. EvoPrompt [Chen+, arXiv:2302.14838] • PALM(62B params,Chowdhery+, 2022)と進化計算を⽤いて,Pythonコード レベルで構造探索 • 各個体をモデル(pythonで記述)とし,事例学習で新しいモデルを記述

    • 記述されたモデルの学習,選択,を繰り返す(進化計算) 101 ⾔語モデルでNAS few-shot learning • パラメータ数,精度,実際のpythonコードを 事例として与える • 進化計算の探索においては親個体としてみなす パラメータ数,精度を達成するようなモデルの pythonコードを記述させる
  70. • Arch-Graph: Acyclic Architecture Relation Predictor for Task-Transferable Neural Architecture

    Search • Distribution Consistent Neural Architecture Search • ISNAS-DIP: Image-Specific Neural Architecture Search for Deep Image Prior • Performance-Aware Mutual Knowledge Distillation for Improving Neural Architecture Search • BaLeNAS: Differentiable Architecture Search via the Bayesian Learning Rule • HyperSegNAS: Bridging One-Shot Neural Architecture Search with 3D Medical Image Segmentation using HyperNet • Global Convergence of MAML and Theory-Inspired Neural Architecture Search for Few-Shot Learning • Neural Architecture Search with Representation Mutual Information • Training-free Transformer Architecture Search • Demystifying the Neural Tangent Kernel from a Practical Perspective: Can it be trusted for Neural Architecture Search without training? • β-DARTS: Beta-Decay Regularization for Differentiable Architecture Search • Shapley-NAS: Discovering Operation Contribution for Neural Architecture Search 103 CVPR2022に採択されているNAS論⽂リスト
  71. • Robust Network Architecture Search via Feature Distortion Restraining •

    SuperTickets: Drawing Task-Agnostic Lottery Tickets from Supernets via Jointly Architecture Searching and Parameter Pruning • U-Boost NAS: Utilization-Boosted Differentiable Neural Architecture Search • EAGAN: Efficient Two-stage Evolutionary Architecture Search for GANs • Spectrum-Aware and Transferable Architecture Search for Hyperspectral Image Restoration • Compiler-Aware Neural Architecture Search for On-Mobile Real-time Super-Resolution • EAutoDet: Efficient Architecture Search for Object Detection • A Max-Flow based Approach for Neural Architecture Search • UniNet: Unified Architecture Search with Convolution, Transformer, and MLP • ViTAS: Vision Transformer Architecture Search • LidarNAS: Unifying and Searching Neural Architectures for 3D Point Clouds • Neural Architecture Search for Spiking Neural Networks • Data-Free Neural Architecture Search via Recursive Label Calibration • EASNet: Searching Elastic and Accurate Network Architecture for Stereo Matching 104 ECCV2022に採択されているNAS論⽂リスト
  72. • MnasNet [Tan+, CVPRʼ19]の探索空間をもとにベースとなるアーキテクチャを探索 • 探索結果をEfficientNet-B0とする • EfficientNet-B0のdepth, channel数,⼊⼒解像度を定数倍することでモデルを拡⼤ •

    𝑑 = 𝛼D, 𝑤 = 𝛽D, 𝑟 = 𝛾D • 𝑠. 𝑡. 𝛼 ⋅ 𝛽0 ⋅ 𝛾 ≈ 2, 𝛼 ≥ 1, 𝛽 ≥ 1, 𝛾 ≥ 1 • 𝛼, 𝛽, 𝛾はグリッドサーチで探索,𝜙はユーザが指定 105 参考になるNASの使い⽅:EfficientNet [Tan+, ICMLʼ19, 21] 𝝓を増加 EfficientNet [Tan+, ICMLʼ19] EfficientNetV2 [Tan+, ICMLʼ21]
  73. • 探索するのはベースとなるモデルのみ(1番⼩さいモデル) • 訓練時間および探索空間が削減できるため,⼤きなモデルを直接探索するより効率的 • モデルを⼤きくするためには,単純にベースモデルを定数倍するだけでも⼗分な性能 106 参考になるNASの使い⽅:EfficientNetでの参考ポイント • ネットワーク全体を複数ステージに分解し,各ステージをNASで最適化

    • 全く同じcellを積み重ねるよりも表現⼒の向上が期待できる • ネットワークの深さに応じて適切な畳み込み演算があることも実験的に報告 [Tan+, ICMLʼ21] EfficientNetV2のベースモデル例 EfficientNetみたいに モデル全体の構造を探索 ConvNeXtみたいに 各ステージの構造をさらに探索 という流れも良いかもしれない
  74. 現状の主な課題 • 探索空間の多様性 • 探索時とテスト時の性能差 • 構造以外のハイパーパラメータの影響も無視できない • 膨⼤な探索空間を探索しきれていない 107

    NASのまとめ 現状の参考となるNASの使い⽅ • EfficientNetのようにベースとなるモジュールをNASで探索し, あとはシンプルにモデル全体を拡⼤ • 敵対的攻撃に対する解析のように,モデル(モジュール)の解析ツールとして利⽤
  75. 深層学習において,対象となるハイパーパラメータは, • 最適化周り • 学習率(とそのスケジューリング),weight decay,momentum, ... • 正則化周り •

    dropout rate,stochastic depth rate, label smoothing rate, ... • データ拡張周り • RandAug, mixup, cutmix, ... • アーキテクチャ周り • ネットワークの層数 • 活性化関数の種類 など • 探索範囲は数次元〜数⼗次元程度であることが多い 109 深層学習におけるハイパーパラメータ最適化の対象
  76. • ブラックボックス最適化 • 現在,最も標準的なHPO⼿法 • ランダムサーチ,グリッドサーチ,ベイズ最適化,進化計算など • グレーボックス最適化 • 最適化⽅法を⼯夫することで,ブラックボックス最適化を⾼速化する⽅法

    • 探索の早期打ち切り(Successive Halving),データセットのサブサンプリングなど • 勾配法による最適化 • オプティマイザのハイパーパラメータに関する勾配を求め,SGDで直接最適化 110 代表的なHPO⼿法
  77. 各ハイパラに対していくつかの値をサンプリングし,それらの全組み合わせを 探索する • メリット • 探索空間の設計が容易 • ⾮同期に並列処理可能 • 網羅的に探索可能

    • デメリット • 探索効率は悪い • ⽀配的でないハイパラが多い場合, 特に探索効率が悪い(右図) • 探索途中の情報を活⽤できない 111 グリッドサーチ サンプリング点 ⼭の⾼さ=検証データ上での精度
  78. ⼀様乱数や擬似乱数列(e.g. メルセンヌツイスター)に基づいてハイパラを サンプリングする 112 ランダムサーチ • メリット • 探索空間の設計が容易 •

    ⾮同期に並列処理可能 • グリッドサーチよりも⽀配的なハイパラ に対して密に探索可能 • デメリット • 似たハイパラがサンプルされるため, 探索効率は良くはない • 探索途中の情報を活⽤できない 酷似したハイパラをサンプルする可能性が しばしばある ⽀配的なハイパラ(x軸)を密に探索できている
  79. • 類似したサンプリングを防ぐための分布列(e.g., Sobol列, Halton列) • 擬似乱数列に⼀様性を導⼊したものといえる • ⼀様乱数よりも性能が良いことも報告されている [Bergstra+, JMLRʼ12]

    113 超⼀様分布列(quasi-random search based on low-discrepancy sequence) ⼀様性にこだわるならグリッドサーチで 良いのでは? • グリッドサーチは⽀配的なハイパラが ある場合,探索効率が⾮常に悪い • また,次元数が増えると,格⼦点が爆発的に 増えてしまう • 10次元空間の各軸を4分割しただけで, 4"# ≈ 1.04×10F ものサンプリング点が必要 Sobol列でのサンプリング例
  80. これまでの⽅法は探索途中の結果を活⽤できていないため,⾮効率 • 探索点と検証精度のペアデータから,次の有望な探索点を予測することで効率化可能 114 Sequential Model-based Global Optimization (SMBO) 0.

    ℋ ← ∅ 1. For 𝑡 ← 1 to 𝑇 2. 5 𝑥 ← 𝑎𝑟𝑔𝑚𝑖𝑛~ 𝑆 𝑥, 𝑀•€• 3. Evaluation of 𝑓(5 𝑥) 4. ℋ ← ℋ ∪ (5 𝑥, 𝑓(5 𝑥)) 5. Fit a new model 𝑀• to ℋ 6. return ℋ 現状最も有望なパラメータ€ 𝑥 関数𝑀2 の更新 実際にパラメータ€ 𝑥 を使⽤ 履歴集合ℋ の更新 𝑀2 ∶ パラメータ𝑥 を使⽤した際のモデルの損失𝑓 ⋅ を予測する関数(代理モデル) ℋ ∶ Observation history = 𝑥!, 𝑦! = 𝑓 𝑥! !E< = 𝑆 ∶ パラメータ𝑥 を使⽤した際のモデルの期待損失を出⼒する関数(獲得関数)
  81. 115 Tree-structured Parzen Estimator(TPE) • カーネル密度推定に基づく代理モデルを採⽤ • 具体的には,性能の良いハイパラ分布𝑙 𝑥 と性能の悪いハイパラ分布𝑔

    𝑥 の 2つをカーネル密度推定によって推定する • 𝑀 = 𝑝 𝑥 𝑦 = ; 𝑙 𝑥 𝑖𝑓 𝑦 < 𝑦′ 𝑔 𝑥 𝑖𝑓 𝑦 ≥ 𝑦′ 𝑦>はTPEのハイパラで,上位𝑋個分のハイパラを性能の良い ハイパラとみなすかを決定するための値. 例えば,Optunaでは𝑋 = min 0.1𝑡, 25 がデフォルト. 𝑡はこれまでの探索数. ℋ† = 𝑥k , 𝑦k , … , 𝑥† , 𝑦† 𝑥% : 𝑖番⽬の探索でサンプルされたハイパラ集合 𝑦% : 𝑥% を使って得られた検証データ上での 損失値 𝑦 < 𝑦G 𝑦 ≥ 𝑦G ℒ2 = 𝑥! | 𝑦! < 𝑦/ を使って 𝑙(𝑥)をカーネル密度推定 𝐺2 = 𝑥! | 𝑦! ≥ 𝑦/ を使って 𝑔(𝑥)をカーネル密度推定
  82. あるハイパラ𝑥に対する𝑙 𝑥 , 𝑔 𝑥 を混合正規分布でモデル化 • 𝑙 𝑥 =

    ∑~?∈ℒ@ 𝑤D 𝒩 𝑥D , 𝜎D „ • 𝑤: = " ℒ/ など所定の⽅法で計算 • 𝜎: 0 はℒ+ 内の各要素をソートし,𝑥: の両隣の𝑥との差分を計算し,⼤きい⽅を𝜎ℒ 0とする 116 TPEにおけるカーネル密度推定 • 各ハイパラを独⽴に扱う単変量TPEと全ハイパラを考慮する多変量TPEが存在するが,以降は単変量TPEの説明 • また,ハイパラが連続変数,カテゴリ変数などでモデル化の⽅法が異なるが,以降は連続変数を想定 各ハイパラ𝑥% を中⼼に正規分布𝒩 𝑥%, 𝜎% " を描画し,それらを重み𝑤% で ⾜し合わせるだけ 𝑥 𝑙(𝑥)
  83. • 獲得関数には,以下の期待改善量(expected improvement)を⽤いる • 𝑆 = 𝐸𝐼†B 𝑥 = ∫

    €‡ ‡ max 𝑦ˆ − 𝑦, 0 𝑝 𝑦 𝑥, ℋ• 𝑑𝑦 • これまでに良い精度を達成しているハイパラ値の付近や未探索領域で値が⼤きくなる • ゆえに,次のステップ𝑡 + 1では,獲得関数の値が最⼤となるハイパラ値𝑥をサンプル すれば良い 117 TPEにおける獲得関数 • 𝐸𝐼†B 𝑥 = ∫ €‡ ‡ max 𝑦ˆ − 𝑦, 0 𝑝 𝑦 𝑥, ℋ• 𝑑𝑦 を最⼤化することは, 𝒍 𝒙 𝒈 𝒙 を最⼤化することと等価 [Bergstra+, JMLRʼ12] • ゆえに,各探索ステップでは予め決められた数だけ𝑙 𝑥 から𝑥をサンプルし,そのうちで . 7 F 7 が最⼤となる𝑥を次ステップの探索点とする
  84. 118 GP:ガウス過程を代理モデルとして使う • ハイパラ𝑥と⽬的関数値𝑦の関係を次式でモデル化(導出過程は[Barber, 2012]などを参照) 𝒚 𝑦∗ ~𝒩 𝟎, 𝑲

    𝒌∗ 𝒌∗ ‹ 𝑘∗∗ • 𝒌∗ = 𝑘 𝑥∗, 𝑥G , … , 𝑘 𝑥∗, 𝑥H , 𝑘 ⋅ ∶ カーネル関数,𝑥∗: 新しい探索点 • 𝑘∗∗ = 𝑘 𝑥∗, 𝑥∗ • 𝑲 ∶ 𝑖, 𝑗 成分が𝑘 𝑥I , 𝑥J であるような,(𝑡 − 1)×(𝑡 − 1) ⾏列 • 多変量ガウス分布の条件付き分布の公式から,新しい探索点𝑥∗に対する ⽬的関数値𝑦∗は次式で計算できる • 𝑝 𝑦∗ 𝑥∗, ℋ = 𝒩 𝒌∗ •𝑲€•𝑦, 𝑘∗∗ − 𝒌∗∗ • 𝑲€•𝒌∗ 11 ! ( > ܧײ * "
  85. 119 GP:獲得関数 GPでは期待改善量や信頼上限(upper confidence bound; UCB)などが獲得関数として 利⽤されることが多い 期待改善量の場合 • 𝑆

    = 𝐸𝐼Œ! 𝑥 = ∫ •Ž Ž max 𝑦• − 𝑦, 0 𝑝 𝑦 𝑥, ℋ† 𝑑𝑦 • 𝑦′はこれまでに評価した損失の最良値などを⽤いる • 上記の期待改善量は解析的に解くことができる [Snoek+, NeurIPSʼ12] • 𝑆 = 𝐸𝐼†B 𝑥 = 𝜎 𝑥, ℋ• 𝛾 𝑥 Φ 𝛾(𝑥) + 𝒩 𝛾 𝑥 ; 0,1 • 𝜎 𝑥, ℋ2 = 𝑘∗∗ − 𝒌∗ 𝑥 𝑲H𝟏𝒌∗ 𝑥 • 𝛾 𝑥 = J∗HK 7, ℋ: M 7,ℋ: , 𝜇 𝑥, ℋ2 = 𝒌∗ 𝑥 @ 𝑲 + 𝜎1𝑰 H<𝒚 ,𝜎"は⽬的関数の観測値にノイズの分散を表す この期待改善量𝑺が最⼤となる𝒙を次ステップの探索点とする
  86. 遺伝的アルゴリズム(genetic algorithm; GA) • 各個体=1つのハイパラ設定 • 各個体の表現⽅法は実数値列が最も⼀般的(だが他の表現⽅法も可能) • 新しい個体の⽣成⽅法も柔軟に設計可能であるため,⾮常に⾃由度が⾼い問題設計が可能 •

    交叉 :2つの個体の各要素をランダムに組み替える • 突然変異:1つの個体の各要素をそれぞれランダムに変更する など 120 進化計算によるHPO:遺伝的アルゴリズム 0.01 lr weight decay dropout 0.0 0.1 突然変異(mutation)のみを⽤いた個体⽣成例 個体の表現例
  87. Covariance Matrix Adaptation Evolution Strategy(CMA-ES) • 個体は正規分布𝒩 𝒎, 𝜎1𝐂 から⽣成

    • 探索においては,個体の⽣成→各個体の評価→ 𝒎, 𝜎1, 𝐂の更新,を繰り返すことで, 正規分布が最適解におけるDirac-Delta分布へと収束していく(下記図参照) • アルゴリズムの詳細は[Hansen+, 2014]や[秋本, 2016]を参照 121 進化計算によるHPO:CMA-ES 探索の様⼦例(☆が最適解) 図はCMA-ESの改良⼿法であるCMA-ES with margin [Hamano+, GECCOʼ22] から引⽤ (https://github.com/EvoConJP/CMA-ES_with_Margin)
  88. 122 ブラックボックス最適化のまとめ 並列性 ⼀様性 扱える 探索空間 探索向き or 活⽤向き ⾼次元/

    探索点数 グリッドサーチ ◎ ◦ 連続・離散・カテゴリ 探索 ×: 𝒪 𝑛𝑑 ランダムサーチ ◎ ◦ 連続・離散・カテゴリ 探索 ◎ : 𝒪 𝑑 超⼀様分布列 ◎ ◎ 連続・離散・カテゴリ 探索 ◎ TPE △ △ 連続・離散・カテゴリ 活⽤ ◦: 𝒪 𝑛𝑑 log 𝑛 GP(ガウス過程) △ △ 連続・離散・カテゴリ 活⽤ ×: 𝒪 𝑛2 GA ◦ △ 連続・離散・カテゴリ 活⽤ ◦ CMA-ES ◦ △ 連続・離散 活⽤ ×: 𝒪 𝑑2 𝑑 ∶ 𝑑𝑖𝑚𝑒𝑛𝑠𝑖𝑜𝑛, 𝑛 ∶ 𝑠𝑎𝑚𝑝𝑙𝑒 𝑛𝑢𝑚 ⽀配的な変数に 滅法弱いため 個体⽣成⽅法や 表現⽅法に依る 探索点のサンプルに かかる時間計算量 分布の⽣成⽅法に依る 対象とする問題の性質や⼿元の計算資源の状況,実装⽅法,探索⽬的によって状況が 変わることに注意 • 並列実⾏可能な計算機が多い場合,CMA-ES等の進化計算も有⼒な候補となる • TPEやGPも並列実⾏できるが(実際,Optunaでは利⽤可能),探索性能とはトレードオフの関係 • 探索⽬的でかつ並列環境が整っている場合,超⼀様分布列は有⼒な候補となる など • ランダムサーチに2倍の探索コストをかけると,TPEやSMACなどと同程度の探索性能を達成 可能な報告もある [Li+, JMLRʼ18] ※相対的な⽐較
  89. • 学習率やモメンタムなどのオプティマイザ周りのハイパラをSGDで最適化 • SGDにおける学習率のような簡易なものであれば,解析的に最適化可能だが, ほかのハイパラや複雑なオプティマイザとなると,解析的に解くのは容易ではない 123 勾配法によるハイパラ最適化 [Chandra+, NeurIPSʼ22] •

    ⾃動微分の実装を少し変更するだけで最適化可能に • 重みに関する勾配はdetach()することで,計算グラフから切り離す • ハイパラ⾃⾝に関する更新時もdetach()するが,重み更新時にはdetach()しない 通常のSGD HyperSGD
  90. 125 まず⾏うべきこと:実験の初期設定 • ⼿元の問題と類似した問題を扱っている論⽂や⽂献を探す • ⾒つかった場合,論⽂内で使われているモデルをまずは初期モデルとして採⽤ • ハイパーパラメータ等も同じものを⽤いる(著者らがすでに最適化済みであることを期待) • もし,⾒つからなかったら

    • 幅広く⽤いられているシンプルなモデルを初期モデルとして選定 • e.g., ResNet, Swin-Transformer • 同分野で代表的なオプティマイザを選定 • e.g., Adam, AdamW, SGD w/ momentum • ミニバッチサイズ,学習率は⼩規模な実験で選定 • ミニバッチサイズはGPUに載るギリギリに設定 • 学習率は⼤きすぎず⼩さすぎず,1.0×10HNあたり(lossが下がることが前提) • 学習初期が不安定な場合は,warmup or gradient clippingを採⽤ ※ 両者とも以降の最適化の効率化のために,⼩規模〜中規模モデルを採⽤する
  91. 126 まず⾏うべきこと:ハイパラ探索の計画を⽴てる すべてのハイパラを含む巨⼤な探索空間をHPOで直接探索するのは⾮現実的 • そのような条件下で良好に動くHPO⼿法は未だに存在しない(と思った⽅がよい) • 論⽂等での評価は⼈が予め設計した探索空間での性能評価であることに注意 • そのため,ある程度は⼿動で探索範囲を決定する必要がある 探索空間を分割し,段階的にハイパラ探索していくのが現実的

    • 前ページのシンプルな初期設定をもとに,徐々にリッチにしていく • 各探索ステップでの意図を明確し,HPO⼿法を⽤いて効率的に探索する • 固定化できそうなハイパラから始められると効率的 オプティマイザ 正則化 データ拡張 学習率周り Adam or SGD? • Adamを使⽤ • どの正則化を 使う? • Adam,前段で最良 結果を⽰した正則化 • どのDAを使う? これまでの最良設定を ⽤いて,最適化周りを 探索 例
  92. ⼿元の計算資源で探索可能な探索空間であれば,状況に応じてHPO⼿法を選択 • 計算時間 ≈ (実⾏時間/回 × 探索空間サイズ)/ 計算機数 • 並列で動かせる計算機が多い場合は,進化計算やランダムサーチ

    • そうでない場合は,探索履歴を活⽤できるTPEやGPが選択肢となる ※ OptunaではTPEの並列実⾏なども可能 127 性能に⼤きな影響を与えるハイパラが経験的にわかる場合 ⼿元の計算資源で 探索可能な探索空間サイズ 探索空間の分解 並列実⾏性 進化計算 or 超⼀様分布列 SMBO GP TPE, SMAC yes no 低い ⾼い 探索空間が 低次元 ⾼次元 指針例
  93. 128 性能に⼤きな影響を与えるハイパラが経験的にわかる場合 ⼿元の計算資源で探索可能な探索空間でなければ,探索空間を分解する • 各探索空間での探索⽬的が明確になるように分解する • 可能な範囲で,相互作⽤が少ない探索空間に分解できると良い シンプルな分解例:オプティマイザの選択 • 探索空間1(SGD)

    :学習率,モメンタム • 探索空間2(Adam):学習率,𝛽G , 𝛽K , 𝜖 • 上記それぞれの最良結果を⽐較することで,どちらのオプティマイザが良いかが 明確にわかる(各探索空間で⼗分に探索することが前提) • 仮に1つの探索空間として定義して探索し,仮にSGD側で有効な学習率がサンプル され,Adam側でサンプルされなかった場合,誤った検証結果になる可能性がある = 巨⼤な1つの探索空間を探索する際に気をつけるべきポイント
  94. • 互いに影響し合うハイパラがある場合,同じ探索空間に⼊れないと不公平な 探索になってしまう • 例えば,最適なオプティマイザを決定するときは,学習率もちゃんと探索する必要がある • モデルの層数を決定する際の学習率も同様 • そうなると⾃然と探索空間が⼤きくなってしまうが,どのように分解するかは 計算資源と問題の性質による

    • 計算資源にあわせて,探索空間のサイズを制御する • ハイパラの挙動は問題によって変わるため,分解の仕⽅には問題に対する知識が必要 • もしくは,超⼀様分布列によって検証精度に敏感/鈍感なハイパラをみつける 130 性能に⼤きな影響を与えるハイパラが経験的にわかる場合
  95. まず固定できそうなハイパラを固定する(※ 問題に依ります) • アーキテクチャに関するハイパラ • 計算時間の変化が⼤きく,計算資源の管理が難しくなるため • ミニバッチサイズ • 効率化のため,GPUに載る最⼤のミニバッチサイズに設定

    • オプティマイザ周り • 同分野の代表的なオプティマイザを選定 • 学習初期が不安定な場合,warmup, gradient clippingを採⽤ • これらのハイパラは⼩規模に探索しておいて,固定しておく 131 どのハイパラが重要か不明な場合
  96. 136 まとめ 探索空間の⾒通しが良い 探索空間の分解 並列実⾏性 進化計算 or 超⼀様分布列 SMBO GP

    TPE, SMAC yes no 低い ⾼い 探索空間が 低次元 ⾼次元 • 分解⽅法は,計算資源と問題の性質に依る • 分解された各探索空間での探索⽬的を明確にする • 不必要なハイパラを固定していき,徐々に探索空間を⼩さくしていく • 重要なハイパラはなるべく探索空間に含める
  97. ⽂献 • 尾崎,野村,⼤⻄:機械学習におけるハイパパラメータ最適化⼿法:概要と 特徴,電⼦情報通信学会論⽂誌 D Vol. J103‒D No. 9 pp.

    615‒631 137 HPOでとても役⽴つ⽂献およびツール HPOを実⾏するためのツール • Optuna : https://github.com/optuna/optuna • Vizier : https://github.com/google/vizier
  98. • [Chandra+, NeurIPSʼ22] : Gradient Descent: The Ultimate Optimizer •

    [Sonek+, NeurIPSʼ12] : Practical Bayesian Optimization of Machine Learning Algorithms • [Touvron+, ECCVʼ22] : DeiT III: Revenge of the ViT • [Liu+, CVPRʼ22] : A ConvNet for the 2020s • [Zoph+, ICLRʼ17] : Neural Architecture Search with Reinforcement Learning • [Real+, ICMLʼ17] : Large-Scale Evolution of Image Classifiers • [Pham+, ICMLʼ18] : Efficient Neural Architecture Search via Parameters Sharing • [Liu+, ICLRʼ19] : DARTS: Differentiable Architecture Search • [Cai+, ICLRʼ19] : ProxylessNAS: Direct Neural Architecture Search on Target Task and Hardware • [Xu+, ICLRʼ20] : PC-DARTS: Partial Channel Connections for Memory-Efficient Architecture Search • [Chen+, ICCVʼ21] : AutoFormer: Searching Transformers for Visual Recognition • [Li+, UAIʼ19] : Random Search and Reproducibility for Neural Architecture Search • [So+, NeurIPSʼ21] : Searching for Efficient Transformers for Language Modeling • [Yang+, ICLRʼ20] : NAS evaluation is frustratingly hard • [So+, ICMLʼ19] : The Evolved Transformer • [Mellor+, ICMLʼ21] : Neural Architecture Search without Training • [Lin+, ICCVʼ21] : Zen-NAS: A Zero-Shot NAS for High-Performance Image Recognition 138 参考⽂献
  99. • [Shu+, ICLRʼ22] : NASI: Label- and Data-agnostic Neural Architecture

    Search at Initialization • [Zhou+, CVPRʼ22] : Training-free Transformer Architecture Search • [Tanaka+, NeurIPSʼ20] : Pruning neural networks without any data by iteratively conserving synaptic flow • [Suganuma, 2022] : 視覚⾔語融合タスクにおけるTransformerの⾃動構造探索 • [Zhang+, CVPRʼ21] : VinVL: Revisiting Visual Representations in Vision-Language Models • [Tan+, CVPRʼ19] : MnasNet: Platform-Aware Neural Architecture Search for Mobile • [Tan+, ICMLʼ19] : EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks • [Tan+, ICMLʼ21] : EfficientNetV2: Smaller Models and Faster Training • [Chen+, arXiv:2302.14838] : EvoPrompting: Language Models for Code-Level Neural Architecture Search • [Chowdhery+, arXiv:2204:22311] : PaLM: Scaling Language Modeling with Pathways • [Velickovic+, ICMLʼ22] : The CLRS Algorithmic Reasoning Benchmark • [Bergstra+, NeurIPSʼ11] : Algorithms for Hyper-Parameter Optimization • [Barber, 2012] : Bayesian Reasoning and Machine Learning • [Hansen+, 2014] : Principled Design of Continuous Stochastic Search: From Theory to Practice • [秋本,2016] : Evolution Strategies による連続最適化 ̶CMA-ES の設計原理と理論的基盤 • [Hamamo+, GECCOʼ22] : CMA-ES with Margin: Lower-Bounding Marginal Probability for Mixed-Integer Black-Box Optimization 139 参考⽂献
  100. • [Suganuma & Shirakawa+, GECCOʼ17] : A genetic programming approach

    to designing convolutional neural network architectures • [Zoph+, CVPRʼ18] : Learning Transferable Architectures for Scalable Image Recognition • [Real+, AAAIʼ19] : Regularized Evolution for Image Classifier Architecture Search • [Liu+, ECCVʼ18] : Progressive Neural Architecture Search • [Zela+, ICLRʼ20] : Understanding and Robustifying Differentiable Architecture Search • [Chen+, IJCVʼ21] : Progressive DARTS: Bridging the Optimization Gap for NAS in the Wild • [Bender+, ICMLʼ18] : Understanding and Simplifying One-Shot Architecture Search • [Luo+, NeurIPSʼ18] : Neural architecture optimization • [Zhou+, ICMLʼ19] : BayesNAS: A Bayesian Approach for Neural Architecture Search • [Bender+, CVPRʼ20] : Can weight sharing outperform random architecture search? An investigation with TuNAS • [Cai+, ICLRʼ20] : Once-for-All: Train One Network and Specialize it for Efficient Deployment • [Howard+, ICCVʼ19] : Searching for MobileNetV3 • [Ghiasi+, CVPRʼ19] : NAS-FPN: Learning Scalable Feature Pyramid Architecture for Object Detection • [Liu+, CVPRʼ19] : Auto-DeepLab: Hierarchical Neural Architecture Search for Semantic Image Segmentation 140 参考⽂献
  101. • [Guo+, CVPRʼ20] : When NAS Meets Robustness: In Search

    of Robust Architectures against Adversarial Attacks • [Guan+, ICMLʼ21] : AutoAttend: Automated Attention Representation Search • [Gao+, AAAIʼ22] : AutoBERT-Zero: Evolving BERT Backbone from Scratch • [Ding+, CVPRʼ21] : HR-NAS: Searching Efficient High-Resolution Neural Architectures with Lightweight Transformers • [Zhao+, ACL-IJCNLPʼ21] : Memory-Efficient Differentiable Transformer Architecture Search • [Gao+, arXiv:2106.02242] : Scalable Transformers for Neural Machine Translation • [Liao+, arXiv:2109.00642] : Searching for Efficient Multi-Stage Vision Transformers • [Chen+, NeurIPʼ21] : Searching the Search Space of Vision Transformer • [Zhu+, arXiv:2012:09742] : AutoCaption: Image Captioning with Neural Architecture Search • [Touvron+, ECCVʼ20] : Training data-efficient image transformers & distillation through attention 141 参考⽂献