Slide 1

Slide 1 text

AutoMLの基礎と応⽤ ~ハイパーパラメータ探索とNAS~ 2023.03.03 (Fri.) 東北⼤学 菅沼 雅徳

Slide 2

Slide 2 text

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]

Slide 3

Slide 3 text

本発表においては深層ニューラルネット(特に,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

Slide 4

Slide 4 text

CNNやViTの成功には,適切なハイパーパラメータおよびアーキテクチャが重要 4 Why AutoML? [Touvron+, ECCVʼ20] から引⽤ ハイパラの調整で ⼤幅に性能改善 ViT vs DeiT

Slide 5

Slide 5 text

重要であるが,最適な値を⼈⼿で調整するには⼿間が結構かかる 5 Why AutoML? ViTのハイパーパラメータ例 CNNのアーキテクチャ改善例 [Touvron+, ECCVʼ22] から引⽤ 各ステージの 残差ブロック数の変更 反転残差ブロックに変更 depth-wise convの位置変更 depth-wise convの カーネルサイズ変更 ReLU→GeLU 活性化関数の削減 BN→LN [Liu+, CVPRʼ22] から引⽤

Slide 6

Slide 6 text

ニューラル構造探索 (Neural Architecture Search; NAS)

Slide 7

Slide 7 text

• 強化学習ベース • 最適化対象とは別のネットワーク(コントローラ)を⽤いて,モデル構造を出⼒ • 出⼒された構造を学習し,検証データ上での精度(報酬)を最⼤化するように, コントローラを強化学習で最適化 • 進化計算ベース • 1個体=1構造とし,検証データ上での精度を最⼤化するように,⺟集団を最適化 • 勾配法ベース • 構造設計を微分可能にし,ネットワークの学習と同様にSGDで最適化 • ランダムサーチベース • 巨⼤なsupernetを学習し,学習後のsupernetから所望のモデル(subnet)を探索 7 代表的なNAS⼿法 最近の 主流

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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の有無

Slide 10

Slide 10 text

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を更新

Slide 11

Slide 11 text

11 強化学習で獲得されたCNNの例 • 右図はCIFAR-10上で獲得された構造 • 受容野が⼤きいフィルタが多く使われている • skip connectionが多い ○ CNN全体を設計可能 × ⼿法の制約上,直列的な構造しか設計できない × 計算コストの割に,精度がよろしくない • 22400 GPU daysでerror rate=3.65 引⽤: NAS-RL [Zoph+, ICLRʼ17]

Slide 12

Slide 12 text

12 進化計算法によるNAS Large-scale Evolution [Real+, ICMLʼ17] • シンプルな遺伝的アルゴリズム (GA)を⽤いた⼿法 • CIFAR-10上でError rate=5.40, 2600 GPU days(※GPU250台使⽤) 進化の様⼦ 引⽤: [Real+, ICMLʼ17]

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

• これまではネットワーク全体の構造を最適化していたが,探索範囲が膨⼤と なってしまい,計算コストが⾼かった • Cellと呼ばれる⼩さなモジュールの構造を最適化し,それを積み重ねることで 全体のネットワークを構成する⽅法が登場(現在最もよく使われている探索空間) 16 CellベースのNASの登場 Normal Cell Normal Cell Reduction Cell Output Input Reduction Cell ×𝑁 ×𝑁 𝑓! 𝑓" 𝑓# 𝑓$ • 3×3 conv • 5×5 conv • 3×3 max pool • 3×3 ave pool • identity • zero :演算候補 … Cell:有向⾮巡回グラフ(DAG) 𝑓! :特徴マップ

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

• フィルタの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の例

Slide 20

Slide 20 text

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を適⽤

Slide 21

Slide 21 text

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 進化の様⼦

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

Progressive NAS [Liu+, ECCVʼ18] • 探索空間は基本的にNAS-RLに準拠 • 1種類のCellのみを設計(strideを変えることで解像度を変更) • CIFAR-10上でerror rate=3.63, 150 GPU days 23 Sequential model-based optimization+Cellベース 獲得されたCell

Slide 24

Slide 24 text

• Cellベースにすることで探索空間の削減はできたが,依然として計算コストが⾼い (⾼い性能を⽰すためには数百〜数千GPU days必要) • 理由:アーキテクチャのサンプル → スクラッチから学習 → アーキテクチャのサンプル → … 24 さらなる⾼速化:Weight sharing ENAS [Pham+, ICMLʼ18] • 探索空間全てを包含する1つのDAG(super net)を⽤意し,アーキテクチャ候補はsuper netの サブグラフとして表現 • 探索過程でsuper netの重みは再利⽤ =各サブグラフをスクラッチから学習する必要がない Super net … Candidate nets sampling

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

これまで探索空間が離散で微分不可能なため,対象となる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

Slide 28

Slide 28 text

探索空間:各エッジでどの演算を実⾏するか • ノード:特徴マップ • エッジ:演算候補(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 𝑓!

Slide 29

Slide 29 text

探索空間:各エッジでどの演算を実⾏するか • ノード:特徴マップ • エッジ:演算候補(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

Slide 30

Slide 30 text

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つの場合

Slide 31

Slide 31 text

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つの場合

Slide 32

Slide 32 text

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で直接構造パラメータの学習が可能に ̅ 𝑜",!(𝑥)

Slide 33

Slide 33 text

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-𝑘

Slide 34

Slide 34 text

• Cell内のノード数4での結果例(CIFAR-10上で探索) • Reduction cellにはNon-learnable operationしか含まれていない 34 DARTSで獲得された構造例 Normal cell Reduction cell 引⽤:DARTS [Liu+, ICLRʼ19]

Slide 35

Slide 35 text

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)と⽐べて軽量かつ⾼精度な モデルの設計が可能

Slide 36

Slide 36 text

• 学習データへの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数も異なる

Slide 37

Slide 37 text

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抽出後の構造パラメータ

Slide 38

Slide 38 text

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)での検証

Slide 39

Slide 39 text

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は探索が失敗する

Slide 40

Slide 40 text

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.

Slide 41

Slide 41 text

ProxylessNAS [Cai+, ICLRʼ20] • これまでの⽅法では,メモリ効率などの観点から⼤規模なデータセット上で 直接構造探索ができず,CIFAR-10など⼩規模データセット(Proxy)上で構造探索し, Cell数やチャネル数などを増加させて,⼤規模データセットに転⽤させていた • ProxylessNASでは省メモリ化により,直接⼤規模データセット上での探索を可能に 41 更なるメモリ消費の抑制 Input 3×3 𝑐𝑜𝑛𝑣 5×5 𝑐𝑜𝑛𝑣 identity Output Input 3×3 𝑐𝑜𝑛𝑣 5×5 𝑐𝑜𝑛𝑣 identity Output DARTS ProxylessNAS 探索中は全ての 演算を保持 サンプルされた 演算のみ保持

Slide 42

Slide 42 text

• パスを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]

Slide 43

Slide 43 text

• 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

Slide 44

Slide 44 text

• 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(𝑝(𝑔:))

Slide 45

Slide 45 text

• 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

Slide 46

Slide 46 text

• Vision TransformerにNASを適⽤する際に,これまでの重み共有⽅法では, 学習が困難となることが実験的に判明(右下図) • そこで,最⼤次元数の演算⼦だけ⽤意しておき,次元数を減らす場合は最⼤次元の 演算重みから抽出する⽅法を提案 = weight entanglement 46 ViTのためのNAS:AutoFormer [Chen+, ICCVʼ21]

Slide 47

Slide 47 text

• AutoFormerの探索空間は,特徴ベクトルの次元数や注意ヘッド数で構造⾃体は固定(左下表) • 探索⾃体は,ランダムベースのNASに該当 • Supernet training • 各iterationで探索空間からランダムにサンプルし,対応するサブネットワークの学習,を繰り返す • ⼩さいサイズのパラメータをサンプルする際は,weight entanglementを使⽤ • Evolution search • supernetの学習が終了したら,進化計算によって分類精度を最⼤に,モデルサイズが最⼩と なるようなサブネットワークを探索 47 ViTのためのNAS:AutoFormer [Chen+, ICCVʼ21] 探索空間 ランダムに サンプル

Slide 48

Slide 48 text

既存のTransformer(ViT, DeiT)よりも優れた分類精度を達成 48 ViTのためのNAS:AutoFormer [Chen+, ICCVʼ21] ImageNet-1Kでの分類精度

Slide 49

Slide 49 text

• 探索空間の多様性 • ⼈間のバイアスがそれなりに含まれている • ランダムサーチでも⼗分な性能 • 構造以外のハイパーパラメータの影響 • 学習率やデータ拡張,ランダムシードなどの影響も無視できない • weight sharingの影響 • ネガティブな影響を与えることがいくつかの論⽂で⽰唆されている • 膨⼤な探索空間を探索しきれていない • 現実的な計算資源では限られた構造しか探索できていない 49 現状のNASの課題

Slide 50

Slide 50 text

• 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と探索空間が若⼲異なっていることに注意

Slide 51

Slide 51 text

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はテスト評価⽤の再訓練含む

Slide 52

Slide 52 text

• 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]

Slide 53

Slide 53 text

• 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]

Slide 54

Slide 54 text

• 複数のデータセット上で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-'+ @$$-'+

Slide 55

Slide 55 text

• 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]

Slide 56

Slide 56 text

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

Slide 57

Slide 57 text

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

Slide 58

Slide 58 text

• 現状は⼈がうまく作り込んだ探索空間内を探索している • うまく動く演算や構造になってしまっている =ランダムサーチで⼗分 • 本当に新しい構造探索ではなく,内挿をしているイメージ 58 理想的には探索空間⾃体も⾃動設計したい • 究極的には探索空間⾃体も⾃動設計して欲しい • 本当に新しい構造が発⾒する可能性 • 研究例はいくつかあるが,より計算コストがかかる [Real+, ICMLʼ17] [So+, NeurIPSʼ21] [Chen+, NeurIPSʼ21] 閉じられた探索空間内を探索 開けた探索空間を探索 ★ ★ ★ ★ 最初の 探索空間

Slide 59

Slide 59 text

• DARTS探索空間からランダムにアーキテクチャを8つサンプルし,それぞれ異なるtraining protocolで学習 • auxiliary tower, droppath, cutout, AutoAugment, larger training epoch, increase the number of channels,を適⽤ • 重要度:学習⽅法>アーキテクチャ (※ 今回の実験設定では) 59 学習⽅法およびハイパーパラメータの重要性 [Yang+, ICLRʼ20]

Slide 60

Slide 60 text

• 探索空間のサイズは⼤体𝟏𝟎𝟏𝟎~𝟏𝟎𝟏𝟎𝟎 あたり • 現実的な計算資源では到底探索しきれない • 重み共有などで効率性は劇的に向上しているが,さらに改善する必要がある 60 膨⼤な探索空間を探索しきれていない AutoFormer [Chen+, ICCVʼ21] DARTS [Liu+, ICLRʼ19] Evolved Trans. [So+, ICMLʼ19] Size of search space 1.7×10kl 1.0×10mn 7.3×10kko

Slide 61

Slide 61 text

パラメータ更新を⼀切⾏わず,重み初期化時の状態でアーキテクチャの良し悪し を判断できれば,最も効率的 すでにいくつか提案されており, • RELU後の特徴マップに基づく⽅法 [Mellor+, ICMLʼ21][Lin+, ICCVʼ21] • Neural Tangent Kernelを利⽤した⽅法 [Shu+, ICLRʼ22] • 重みのランク等を⽤いた⽅法 [Zhou+, CVPRʼ22] などがある 61 学習不要のNAS

Slide 62

Slide 62 text

Training-free Transformer Architecture Search [Zhou+, CVPRʼ22] • 学習不要なViTのNAS • 提案指標は分類精度と強い正の相関を⽰し,AutoFormerよりも優れた構造を 探索可能 62 学習不要なViTの構造探索 AutoFormerよりも⾼精度かつ⾼速な構造探索が可能 提案指標は分類精度と⾮常に強い相関がある 図表は[Zhou+, CVPRʼ22]から引⽤

Slide 63

Slide 63 text

多層になるにつれて,マルチヘッド注意機構の多様性が失われていく[1] • どのヘッドも同じような特徴抽出を⾏う≈ 特徴マップ(⾏列)のランクが1に近くなり, 性能劣化に繋がる • ゆえに,マルチヘッド注意機構内の重み⾏列のランクが性能指標として使えそう 63 Synaptic diversity in multi-head attention [1] Dong+, Attention is not all you need: pure attention loses rank doubly exponentially with depth, ICMLʼ21

Slide 64

Slide 64 text

• ただし,重み⾏列のランクの推定は計算コストが⾼いため,重み⾏列の 核ノルムによる近似を⽤いる • 𝑊 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

Slide 65

Slide 65 text

• Transformer内のMHAとFFNは,冗⻑性に関して異なる特性をもつ • 例えば,枝刈りをそれぞれに適⽤した際,最終的な性能に与える影響が ⼤きく異なる • MHAは基本的に冗⻑なので,枝刈りしても性能劣化しにくい • ⼀⽅,FFNは性能劣化に直結する 65 Synaptic saliency in MLP

Slide 66

Slide 66 text

• そこで,枝刈り⼿法で⽤いられているSynaptic saliency[3]がFFN部分の 性能指標として使えそう • Synaptic saliencyは以下で算出 66 Synaptic saliency in MLP [3] H.Tanaka+. Pruning neural networks without any data by iteratively conserving synaptic flow. NeurIPS, 2020

Slide 67

Slide 67 text

• 先に説明した2つの指標は,分類精度に対して強い正の相関がある • これら⼆つを統合した指標を最終的な性能指標(DSS)として⽤いる 67 分類精度との相関 上記式内の損失関数𝐿は,要素が全て1の画像を ViTに⼊⼒した際の合計値を採⽤している ケンダールの順位相関が0.65 𝐷?C@ 𝑆?D%

Slide 68

Slide 68 text

1. 探索空間からランダムに8,000の構造をサンプリング 2. 各構造について指標であるDSSを計算 3. 最も⾼いDSSをもつ構造𝐴を選択 4. 通常通りに構造𝐴を学習 68 学習不要なViTの構造探索⼿順

Slide 69

Slide 69 text

探索空間:層数,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構造を⾒つけられている

Slide 70

Slide 70 text

• ケンドールの順位相関で⽐較 • 既存の指標よりも優れた性能を達成 70 既存のzero cost指標との⽐較

Slide 71

Slide 71 text

71 既存のzero cost指標との⽐較

Slide 72

Slide 72 text

72 既存のzero cost指標との⽐較 • パラメータ数の増加に伴い,分類精度も線形に向上 することがわかる • AutoFormerのような基本的な構造が固定の場合は, 単にパラメータ数を⾒るだけで⼗分にモデルの良し 悪しがわかるのでは...?

Slide 73

Slide 73 text

• 演算同⼠の接続関係をもっと柔軟に設計可能な探索空間を提案 [Suganuma, 2022] 73 探索空間をもっと複雑に • 𝑹×𝑪の2次元有向グラフでTransformerの1層を表現 • ノード:演算種類(Linear, attention, summation, …) • エッジ:接続関係(各𝑐列は前列𝑐 − 1のノードとのみ接続可能) • 同⼀構造のグラフを積み重ねることで,多層Transformer Encoderを構築

Slide 74

Slide 74 text

初期化時の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

Slide 75

Slide 75 text

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($:

Slide 76

Slide 76 text

⾊々なNAS

Slide 77

Slide 77 text

MnasNet [Tan+, CVPRʼ19] • Accuracyと処理速度の良好なトレードオフを達成するCNNをNASで設計 • Controller(RNN)の報酬に推論時のlatencyを追加 • ImageNet classificationでMovileNetV2よりも良好なパレート解を獲得可能 77 NAS + 多⽬的最適化 Channel数を増加させたときの性能⽐較 他⼿法との⽐較

Slide 78

Slide 78 text

MnasNetの探索空間:Factorized hierarchical search space • 全体のネットワークを複数のブロックに分割 • 各ブロックでは同じレイヤがN層繰り返される • 各ブロックでのレイヤをRNN controllerによって探索する 78 NAS + 多⽬的最適化

Slide 79

Slide 79 text

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に関する制約

Slide 80

Slide 80 text

• 特定の条件やデバイス向けのアーキテクチャを探索するとなると, その条件ごとに最適化を実⾏する必要があり,コストがかかる(𝒪 𝑛 ) • Once-for-all(OFA)[Cai+, ICLRʼ20]では,1つの親ネットワークを学習する だけで,特定条件を満たす⼦ネットワークを訓練なしで抽出可能(𝒪 1 ) 80 Once-for-all [Cai+, ICLRʼ20] [Cai+, ICLRʼ20]から引⽤

Slide 81

Slide 81 text

• 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ノルムに応じてソートし, ノルムが⼤きいチャネルを残す

Slide 82

Slide 82 text

親ネットワークの学習後に,進化計算法を⽤いて⽬的となる精度と推論速度を 達成する⼦ネットワークを探索する • 探索時には,アーキテクチャ情報(ブロック数,カーネルサイズなど)から分類精度を予測 可能な3層のMLPを利⽤する • こちらは事前に,16K個の⼦ネットワークをサンプリングして,学習しておく • 推論速度は,ルックアップテーブルを利⽤する [Cai+, ICLRʼ19] 82 Once-for-allにおける⼦ネットワークのサンプル⽅法 様々なデバイス上で優れた性能 性能および探索コスト

Slide 83

Slide 83 text

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

Slide 84

Slide 84 text

• NASを利⽤することで,精度・推論速度ともに良好な構造を設計可能 • ⼈⼿で構築したモデルよりも優れたパレート解を獲得できている 84 Object detection + NAS 獲得されたNAS-FPNの例 引⽤: NAS-FPN [Ghaisi+, CVPRʼ19]

Slide 85

Slide 85 text

Auto-DeepLab [Liu+, CVPRʼ19] • CellレベルとNetworkレベルの⼆つの探索空間で構成 • Cell : DARTSと同じ • Network : L層までのパスを探索(解像度を2倍,1/2倍,維持,のいずれかを選択). 各パスに重み𝛽C E を割りふる • 学習⽅法もDARTSと同様 • ネットワークの重み𝑤を更新 • 構造パラメータ𝛼, 𝛽を更新,を繰り返す 85 Semantic segmentation + NAS

Slide 86

Slide 86 text

Auto-DeepLab [Liu+, CVPRʼ19] • NASを利⽤することで,⼈⼿で設計した場合と 同等程度の性能を達成可能 • 探索コストは3 GPU days • 序盤は⾼解像度,終盤は低解像度での処理を ⾏う過程が獲得されている 86 Semantic segmentation + NAS

Slide 87

Slide 87 text

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

Slide 88

Slide 88 text

CNNのdensityとadversarial robustnessには正の相関があることが判明 • architecture density 𝐷 = |C758897:9;| |C| = ∑.,/,- * - (.,/) |C| 88 Adversarial attackに頑健なCNNの構造は? top300とlast300を分類する線形分類器 を学習させた際の重みの分布

Slide 89

Slide 89 text

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 より詳しい解説はこちら

Slide 90

Slide 90 text

注意機構への⼊⼒表現および接続関係の最適化 • 注意機構への⼊⼒するrepresentationと接続関係の最適化(右下図) • 探索空間は演算選択と,どの層からの⼊⼒を受け付けるか • One-shot NAS (Supernet) + 進化計算で1000アーキテクチャをサンプルして評価 • text classification, graph representationタスクで良好な結果 90 AutoAttend: Automated Attention Representation Search [Guan+, ICMLʼ21]

Slide 91

Slide 91 text

注意機構の構造を探索 • 全体の構造は畳み込み層と注意機構層の積み重ね • 注意機構の探索には,primitiveな演算の組み合わせを使⽤ • 重み共有+進化計算で探索 • 探索コストは1000 GPU days (760 candidates are evaluated) • 様々な⾔語タスク上でBERTよりも⾼精度 91 AutoBERT-Zero: Evolving BERT Backbone from Scratch [Gao+, AAAIʼ22] 最適化された構造例

Slide 92

Slide 92 text

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] 獲得された構造例

Slide 93

Slide 93 text

CNNとTransformerが混在するモデルにおけるハイパーパラメータ探索 • CNNにおけるカーネルサイズ,TransformerにおけるToken数を探索 • One-shot NAS (Supernet) で探索 • 画像分類,姿勢推定,セマンティックセグメンテーション,3D物体検出タスクで良好な結果 93 HR-NAS: Searching Efficient High-Resolution Neural Architectures with Lightweight Transformers [Ding+, CVPRʼ21]

Slide 94

Slide 94 text

DARTSのメモリ効率を改善し,Transformerに適⽤ • DARTS+Transformerの探索空間ではメモリ消費が激しく,Transformerに適⽤不可 • 層の最終出⼒の保持のみだけから学習可能にすることで,これを解決 • Transformerの構造ではなく,演算の種類を探索(右下図:探索結果例) • 3つの機械翻訳タスクで良好な結果 94 Memory-Efficient Differentiable Transformer Architecture Search [Zhao+, ACL-IJCNLPʼ21]

Slide 95

Slide 95 text

様々なサイズのTransformerを⼀度に探索可能な⼿法 • いわゆるOnce-for-all [Cai+, ICLRʼ20]と同じように,supernetからサンプルすることで サイズの異なるモデルを獲得する⽅法 • 学習はsupernetからのランダムサンプリング+知識蒸留による3段階で構成 • 機械翻訳タスクで良好な性能(24 GPU days search cost) 95 Scalable Transformers for Neural Machine Translation [Gao+, arXiv:2106.02242]

Slide 96

Slide 96 text

ViTのハイパーパラメータ探索⼿法(Once-for-all [Cai+, ICLRʼ20]のViT版) • ViTのembeddingサイズ,隠れ層サイズ,MHAの数などを探索 • supernetの学習+進化計算による最適なモデルのサンプリング(subnetの探索) • ImageNetで良好な結果 96 Searching for Efficient Multi-Stage Vision Transformers [Liao+, arXiv:2109.00642]

Slide 97

Slide 97 text

ViTの探索空間も探索可能なNAS • 基本探索空間は,embeddingサイズ,ウィンドウサイズ,ヘッド数,隠れ層次元など • 構造探索は,AutoFormerと同様にsupernetを学習+進化計算を実⾏することで達成 • 探索空間は論⽂内で定義されたスケーリング則に基づいて進化させる • ImageNetで良好な精度 97 Searching the Search Space of Vision Transformer [Chen+, NeurIPSʼ21]

Slide 98

Slide 98 text

進化計算によるTransformerの構造探索 • 探索空間はNASNetに準拠(Cell - block).各ブロックは2⼊⼒を受け付け,それぞれ 別の演算を実⾏後,結果を統合し出⼒する. • Encoder, Decoderの構造をそれぞれ探索 • 構造探索は進化計算で実施 • ⾔語タスク上で良好な精度 98 The Evolved Transformer [So+, ICMLʼ19]

Slide 99

Slide 99 text

Image captioningのために,RNN構造を強化学習で探索 • REINFORCEを⽤いて,構造サンプリング⽤のLSTMを最適化(NASNet,ENASと同等) • 探索空間は活性化関数,層数,embeddingサイズ,隠れ層サイズなど • 良好な性能(右下図) 99 AutoCaption: Image Captioning with Neural Architecture Search [Zhu+, arXiv:2012.09742]

Slide 100

Slide 100 text

• ある2サンプルをネットワークに⼊⼒した際の,ReLU後のバイナリコードが類似している =分離するのが難しい=ネットワークの性能良くない • 上記を下記式によって定量化 100 Neural Architecture Search without Training [Mellor+, ICMLʼ21] 性能 良 悪 スコア𝑠とaccuracyには正の相関がある 𝑁+ : ReLUの個数 𝑑, (𝐜' , 𝐜( ): サンプル𝑖, 𝑗による バイナリコードのハミング距離

Slide 101

Slide 101 text

EvoPrompt [Chen+, arXiv:2302.14838] • PALM(62B params,Chowdhery+, 2022)と進化計算を⽤いて,Pythonコード レベルで構造探索 • 各個体をモデル(pythonで記述)とし,事例学習で新しいモデルを記述 • 記述されたモデルの学習,選択,を繰り返す(進化計算) 101 ⾔語モデルでNAS few-shot learning • パラメータ数,精度,実際のpythonコードを 事例として与える • 進化計算の探索においては親個体としてみなす パラメータ数,精度を達成するようなモデルの pythonコードを記述させる

Slide 102

Slide 102 text

• PALMは1.3Tのwebテキストとコードで学習されたものを,さらにGithubから 取得したpythonコード(64Bトークン)でファインチューニング • MNIST-1DとCLRSデータセット [Velickovic+, ICMLʼ22] で性能評価 • CLRSはグラフニューラルネットワークを⽤いた,アルゴリズム理解のためのベンチマーク • 両者において,EvoPromptが良好な性能を達成 102 ⾔語モデルでNAS CLRS上での性能結果 ⽣成されたコード例

Slide 103

Slide 103 text

• 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論⽂リスト

Slide 104

Slide 104 text

• 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論⽂リスト

Slide 105

Slide 105 text

• 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]

Slide 106

Slide 106 text

• 探索するのはベースとなるモデルのみ(1番⼩さいモデル) • 訓練時間および探索空間が削減できるため,⼤きなモデルを直接探索するより効率的 • モデルを⼤きくするためには,単純にベースモデルを定数倍するだけでも⼗分な性能 106 参考になるNASの使い⽅:EfficientNetでの参考ポイント • ネットワーク全体を複数ステージに分解し,各ステージをNASで最適化 • 全く同じcellを積み重ねるよりも表現⼒の向上が期待できる • ネットワークの深さに応じて適切な畳み込み演算があることも実験的に報告 [Tan+, ICMLʼ21] EfficientNetV2のベースモデル例 EfficientNetみたいに モデル全体の構造を探索 ConvNeXtみたいに 各ステージの構造をさらに探索 という流れも良いかもしれない

Slide 107

Slide 107 text

現状の主な課題 • 探索空間の多様性 • 探索時とテスト時の性能差 • 構造以外のハイパーパラメータの影響も無視できない • 膨⼤な探索空間を探索しきれていない 107 NASのまとめ 現状の参考となるNASの使い⽅ • EfficientNetのようにベースとなるモジュールをNASで探索し, あとはシンプルにモデル全体を拡⼤ • 敵対的攻撃に対する解析のように,モデル(モジュール)の解析ツールとして利⽤

Slide 108

Slide 108 text

ハイパーパラメータ最適化 (Hyperparameter Optimization; HPO)

Slide 109

Slide 109 text

深層学習において,対象となるハイパーパラメータは, • 最適化周り • 学習率(とそのスケジューリング),weight decay,momentum, ... • 正則化周り • dropout rate,stochastic depth rate, label smoothing rate, ... • データ拡張周り • RandAug, mixup, cutmix, ... • アーキテクチャ周り • ネットワークの層数 • 活性化関数の種類 など • 探索範囲は数次元〜数⼗次元程度であることが多い 109 深層学習におけるハイパーパラメータ最適化の対象

Slide 110

Slide 110 text

• ブラックボックス最適化 • 現在,最も標準的なHPO⼿法 • ランダムサーチ,グリッドサーチ,ベイズ最適化,進化計算など • グレーボックス最適化 • 最適化⽅法を⼯夫することで,ブラックボックス最適化を⾼速化する⽅法 • 探索の早期打ち切り(Successive Halving),データセットのサブサンプリングなど • 勾配法による最適化 • オプティマイザのハイパーパラメータに関する勾配を求め,SGDで直接最適化 110 代表的なHPO⼿法

Slide 111

Slide 111 text

各ハイパラに対していくつかの値をサンプリングし,それらの全組み合わせを 探索する • メリット • 探索空間の設計が容易 • ⾮同期に並列処理可能 • 網羅的に探索可能 • デメリット • 探索効率は悪い • ⽀配的でないハイパラが多い場合, 特に探索効率が悪い(右図) • 探索途中の情報を活⽤できない 111 グリッドサーチ サンプリング点 ⼭の⾼さ=検証データ上での精度

Slide 112

Slide 112 text

⼀様乱数や擬似乱数列(e.g. メルセンヌツイスター)に基づいてハイパラを サンプリングする 112 ランダムサーチ • メリット • 探索空間の設計が容易 • ⾮同期に並列処理可能 • グリッドサーチよりも⽀配的なハイパラ に対して密に探索可能 • デメリット • 似たハイパラがサンプルされるため, 探索効率は良くはない • 探索途中の情報を活⽤できない 酷似したハイパラをサンプルする可能性が しばしばある ⽀配的なハイパラ(x軸)を密に探索できている

Slide 113

Slide 113 text

• 類似したサンプリングを防ぐための分布列(e.g., Sobol列, Halton列) • 擬似乱数列に⼀様性を導⼊したものといえる • ⼀様乱数よりも性能が良いことも報告されている [Bergstra+, JMLRʼ12] 113 超⼀様分布列(quasi-random search based on low-discrepancy sequence) ⼀様性にこだわるならグリッドサーチで 良いのでは? • グリッドサーチは⽀配的なハイパラが ある場合,探索効率が⾮常に悪い • また,次元数が増えると,格⼦点が爆発的に 増えてしまう • 10次元空間の各軸を4分割しただけで, 4"# ≈ 1.04×10F ものサンプリング点が必要 Sobol列でのサンプリング例

Slide 114

Slide 114 text

これまでの⽅法は探索途中の結果を活⽤できていないため,⾮効率 • 探索点と検証精度のペアデータから,次の有望な探索点を予測することで効率化可能 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< = 𝑆 ∶ パラメータ𝑥 を使⽤した際のモデルの期待損失を出⼒する関数(獲得関数)

Slide 115

Slide 115 text

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

Slide 116

Slide 116 text

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

Slide 117

Slide 117 text

• 獲得関数には,以下の期待改善量(expected improvement)を⽤いる • 𝑆 = 𝐸𝐼†B 𝑥 = ∫ €‡ ‡ max 𝑦ˆ − 𝑦, 0 𝑝 𝑦 𝑥, ℋ• 𝑑𝑦 • これまでに良い精度を達成しているハイパラ値の付近や未探索領域で値が⼤きくなる • ゆえに,次のステップ𝑡 + 1では,獲得関数の値が最⼤となるハイパラ値𝑥をサンプル すれば良い 117 TPEにおける獲得関数 • 𝐸𝐼†B 𝑥 = ∫ €‡ ‡ max 𝑦ˆ − 𝑦, 0 𝑝 𝑦 𝑥, ℋ• 𝑑𝑦 を最⼤化することは, 𝒍 𝒙 𝒈 𝒙 を最⼤化することと等価 [Bergstra+, JMLRʼ12] • ゆえに,各探索ステップでは予め決められた数だけ𝑙 𝑥 から𝑥をサンプルし,そのうちで . 7 F 7 が最⼤となる𝑥を次ステップの探索点とする

Slide 118

Slide 118 text

118 GP:ガウス過程を代理モデルとして使う • ハイパラ𝑥と⽬的関数値𝑦の関係を次式でモデル化(導出過程は[Barber, 2012]などを参照) 𝒚 𝑦∗ ~𝒩 𝟎, 𝑲 𝒌∗ 𝒌∗ ‹ 𝑘∗∗ • 𝒌∗ = 𝑘 𝑥∗, 𝑥G , … , 𝑘 𝑥∗, 𝑥H , 𝑘 ⋅ ∶ カーネル関数,𝑥∗: 新しい探索点 • 𝑘∗∗ = 𝑘 𝑥∗, 𝑥∗ • 𝑲 ∶ 𝑖, 𝑗 成分が𝑘 𝑥I , 𝑥J であるような,(𝑡 − 1)×(𝑡 − 1) ⾏列 • 多変量ガウス分布の条件付き分布の公式から,新しい探索点𝑥∗に対する ⽬的関数値𝑦∗は次式で計算できる • 𝑝 𝑦∗ 𝑥∗, ℋ = 𝒩 𝒌∗ •𝑲€•𝑦, 𝑘∗∗ − 𝒌∗∗ • 𝑲€•𝒌∗ 11 ! ( > ܧײ * "

Slide 119

Slide 119 text

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<𝒚 ,𝜎"は⽬的関数の観測値にノイズの分散を表す この期待改善量𝑺が最⼤となる𝒙を次ステップの探索点とする

Slide 120

Slide 120 text

遺伝的アルゴリズム(genetic algorithm; GA) • 各個体=1つのハイパラ設定 • 各個体の表現⽅法は実数値列が最も⼀般的(だが他の表現⽅法も可能) • 新しい個体の⽣成⽅法も柔軟に設計可能であるため,⾮常に⾃由度が⾼い問題設計が可能 • 交叉 :2つの個体の各要素をランダムに組み替える • 突然変異:1つの個体の各要素をそれぞれランダムに変更する など 120 進化計算によるHPO:遺伝的アルゴリズム 0.01 lr weight decay dropout 0.0 0.1 突然変異(mutation)のみを⽤いた個体⽣成例 個体の表現例

Slide 121

Slide 121 text

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)

Slide 122

Slide 122 text

122 ブラックボックス最適化のまとめ 並列性 ⼀様性 扱える 探索空間 探索向き or 活⽤向き ⾼次元/ 探索点数 グリッドサーチ ◎ ○ 連続・離散・カテゴリ 探索 ×: 𝒪 𝑛𝑑 ランダムサーチ ◎ ○ 連続・離散・カテゴリ 探索 ◎ : 𝒪 𝑑 超⼀様分布列 ◎ ◎ 連続・離散・カテゴリ 探索 ◎ TPE △ △ 連続・離散・カテゴリ 活⽤ ○: 𝒪 𝑛𝑑 log 𝑛 GP(ガウス過程) △ △ 連続・離散・カテゴリ 活⽤ ×: 𝒪 𝑛2 GA ○ △ 連続・離散・カテゴリ 活⽤ ○ CMA-ES ○ △ 連続・離散 活⽤ ×: 𝒪 𝑑2 𝑑 ∶ 𝑑𝑖𝑚𝑒𝑛𝑠𝑖𝑜𝑛, 𝑛 ∶ 𝑠𝑎𝑚𝑝𝑙𝑒 𝑛𝑢𝑚 ⽀配的な変数に 滅法弱いため 個体⽣成⽅法や 表現⽅法に依る 探索点のサンプルに かかる時間計算量 分布の⽣成⽅法に依る 対象とする問題の性質や⼿元の計算資源の状況,実装⽅法,探索⽬的によって状況が 変わることに注意 • 並列実⾏可能な計算機が多い場合,CMA-ES等の進化計算も有⼒な候補となる • TPEやGPも並列実⾏できるが(実際,Optunaでは利⽤可能),探索性能とはトレードオフの関係 • 探索⽬的でかつ並列環境が整っている場合,超⼀様分布列は有⼒な候補となる など • ランダムサーチに2倍の探索コストをかけると,TPEやSMACなどと同程度の探索性能を達成 可能な報告もある [Li+, JMLRʼ18] ※相対的な⽐較

Slide 123

Slide 123 text

• 学習率やモメンタムなどのオプティマイザ周りのハイパラをSGDで最適化 • SGDにおける学習率のような簡易なものであれば,解析的に最適化可能だが, ほかのハイパラや複雑なオプティマイザとなると,解析的に解くのは容易ではない 123 勾配法によるハイパラ最適化 [Chandra+, NeurIPSʼ22] • ⾃動微分の実装を少し変更するだけで最適化可能に • 重みに関する勾配はdetach()することで,計算グラフから切り離す • ハイパラ⾃⾝に関する更新時もdetach()するが,重み更新時にはdetach()しない 通常のSGD HyperSGD

Slide 124

Slide 124 text

実際に想定されうるシナリオに対して

Slide 125

Slide 125 text

125 まず⾏うべきこと:実験の初期設定 • ⼿元の問題と類似した問題を扱っている論⽂や⽂献を探す • ⾒つかった場合,論⽂内で使われているモデルをまずは初期モデルとして採⽤ • ハイパーパラメータ等も同じものを⽤いる(著者らがすでに最適化済みであることを期待) • もし,⾒つからなかったら • 幅広く⽤いられているシンプルなモデルを初期モデルとして選定 • e.g., ResNet, Swin-Transformer • 同分野で代表的なオプティマイザを選定 • e.g., Adam, AdamW, SGD w/ momentum • ミニバッチサイズ,学習率は⼩規模な実験で選定 • ミニバッチサイズはGPUに載るギリギリに設定 • 学習率は⼤きすぎず⼩さすぎず,1.0×10HNあたり(lossが下がることが前提) • 学習初期が不安定な場合は,warmup or gradient clippingを採⽤ ※ 両者とも以降の最適化の効率化のために,⼩規模〜中規模モデルを採⽤する

Slide 126

Slide 126 text

126 まず⾏うべきこと:ハイパラ探索の計画を⽴てる すべてのハイパラを含む巨⼤な探索空間をHPOで直接探索するのは⾮現実的 • そのような条件下で良好に動くHPO⼿法は未だに存在しない(と思った⽅がよい) • 論⽂等での評価は⼈が予め設計した探索空間での性能評価であることに注意 • そのため,ある程度は⼿動で探索範囲を決定する必要がある 探索空間を分割し,段階的にハイパラ探索していくのが現実的 • 前ページのシンプルな初期設定をもとに,徐々にリッチにしていく • 各探索ステップでの意図を明確し,HPO⼿法を⽤いて効率的に探索する • 固定化できそうなハイパラから始められると効率的 オプティマイザ 正則化 データ拡張 学習率周り Adam or SGD? • Adamを使⽤ • どの正則化を 使う? • Adam,前段で最良 結果を⽰した正則化 • どのDAを使う? これまでの最良設定を ⽤いて,最適化周りを 探索 例

Slide 127

Slide 127 text

⼿元の計算資源で探索可能な探索空間であれば,状況に応じてHPO⼿法を選択 • 計算時間 ≈ (実⾏時間/回 × 探索空間サイズ)/ 計算機数 • 並列で動かせる計算機が多い場合は,進化計算やランダムサーチ • そうでない場合は,探索履歴を活⽤できるTPEやGPが選択肢となる ※ OptunaではTPEの並列実⾏なども可能 127 性能に⼤きな影響を与えるハイパラが経験的にわかる場合 ⼿元の計算資源で 探索可能な探索空間サイズ 探索空間の分解 並列実⾏性 進化計算 or 超⼀様分布列 SMBO GP TPE, SMAC yes no 低い ⾼い 探索空間が 低次元 ⾼次元 指針例

Slide 128

Slide 128 text

128 性能に⼤きな影響を与えるハイパラが経験的にわかる場合 ⼿元の計算資源で探索可能な探索空間でなければ,探索空間を分解する • 各探索空間での探索⽬的が明確になるように分解する • 可能な範囲で,相互作⽤が少ない探索空間に分解できると良い シンプルな分解例:オプティマイザの選択 • 探索空間1(SGD) :学習率,モメンタム • 探索空間2(Adam):学習率,𝛽G , 𝛽K , 𝜖 • 上記それぞれの最良結果を⽐較することで,どちらのオプティマイザが良いかが 明確にわかる(各探索空間で⼗分に探索することが前提) • 仮に1つの探索空間として定義して探索し,仮にSGD側で有効な学習率がサンプル され,Adam側でサンプルされなかった場合,誤った検証結果になる可能性がある = 巨⼤な1つの探索空間を探索する際に気をつけるべきポイント

Slide 129

Slide 129 text

129 性能に⼤きな影響を与えるハイパラが経験的にわかる場合 ⼿元の計算資源で探索可能な探索空間でなければ,探索空間を分解する • 各探索空間での探索⽬的が明確になるように分解する • 可能な範囲で,相互作⽤が少ない探索空間に分解できると良い そのほかの分解例 • 探索空間1:データ拡張(RandAug, mixup, cutmix, erasing, ...) • 探索空間2:正則化(label smoothing, dropout, stoch. depth, grad clip, ...)

Slide 130

Slide 130 text

• 互いに影響し合うハイパラがある場合,同じ探索空間に⼊れないと不公平な 探索になってしまう • 例えば,最適なオプティマイザを決定するときは,学習率もちゃんと探索する必要がある • モデルの層数を決定する際の学習率も同様 • そうなると⾃然と探索空間が⼤きくなってしまうが,どのように分解するかは 計算資源と問題の性質による • 計算資源にあわせて,探索空間のサイズを制御する • ハイパラの挙動は問題によって変わるため,分解の仕⽅には問題に対する知識が必要 • もしくは,超⼀様分布列によって検証精度に敏感/鈍感なハイパラをみつける 130 性能に⼤きな影響を与えるハイパラが経験的にわかる場合

Slide 131

Slide 131 text

まず固定できそうなハイパラを固定する(※ 問題に依ります) • アーキテクチャに関するハイパラ • 計算時間の変化が⼤きく,計算資源の管理が難しくなるため • ミニバッチサイズ • 効率化のため,GPUに載る最⼤のミニバッチサイズに設定 • オプティマイザ周り • 同分野の代表的なオプティマイザを選定 • 学習初期が不安定な場合,warmup, gradient clippingを採⽤ • これらのハイパラは⼩規模に探索しておいて,固定しておく 131 どのハイパラが重要か不明な場合

Slide 132

Slide 132 text

段階的にハイパラ探索を実⾏していく • 計算コストがそれなりにかかるが,しょうがない(逆に専⾨家はこの部分をカットできるので強い) • 網羅的に探索したいため,ベイズ最適化/進化計算よりも超⼀様分布列の⽅がベター 132 どのハイパラが重要か不明な場合 例えば,このようなハイパラリストに対して 最適化周り 正則化周り データ拡張周り とわけて,それぞれで探索をする

Slide 133

Slide 133 text

なるべく固定化できそうなハイパラから探索をしていく(※ 問題に依ります) • ほかのハイパラ探索に影響を強く与えるハイパラは常に探索空間に⼊れる • 例えば,正則化周りから探索していくとすると,「正則化周り+学習率」の探索空間に 対して,ハイパラ最適化を⾏う 133 探索を⾏っていく順番 正則化周り+学習率 データ拡張周り )10 有効な正則化ハイパラを 選定

Slide 134

Slide 134 text

• 次のステップでは,前段で得られた正則化周りのハイパラを固定して, 「データ拡張周り+学習率」で同様に探索を⾏う • といったステップを繰り返していき,徐々にモデルの性能を上げつつ,探索空間を 縮⼩させていく • 学習率みたいにほかのハイパラに影響を強く与えるものが多いと,このように段階的に 出来ないため,計算資源を増やすか,探索精度を妥協するしかない 134 探索を⾏っていく順番 正則化周り+学習率 データ拡張周り+学習率 )10 有効なデータ拡張 ハイパラを選定

Slide 135

Slide 135 text

超⼀様分布列/ランダムサーチによって敏感/鈍感なハイパラをみつける • 「最適化」「正則化」「データ拡張」のように分割するのが必ずしも最適ではない • 超⼀様乱数列などで網羅的に探索し,精度に敏感/鈍感なハイパラ,互いに相互作⽤ しやすいハイパラをみつける • 鈍感なハイパラは固定 • 相互作⽤しやすいハイパラ同⼠は同じ探索空間に⼊れる 135 どのハイパラが重要か不明な場合 ௒Ұ༷෼෍ྻ • どのハイパラが敏感/鈍感か • どのハイパラ同⼠の依存関係が強い/弱いか

Slide 136

Slide 136 text

136 まとめ 探索空間の⾒通しが良い 探索空間の分解 並列実⾏性 進化計算 or 超⼀様分布列 SMBO GP TPE, SMAC yes no 低い ⾼い 探索空間が 低次元 ⾼次元 • 分解⽅法は,計算資源と問題の性質に依る • 分解された各探索空間での探索⽬的を明確にする • 不必要なハイパラを固定していき,徐々に探索空間を⼩さくしていく • 重要なハイパラはなるべく探索空間に含める

Slide 137

Slide 137 text

⽂献 • 尾崎,野村,⼤⻄:機械学習におけるハイパパラメータ最適化⼿法:概要と 特徴,電⼦情報通信学会論⽂誌 D Vol. J103‒D No. 9 pp. 615‒631 137 HPOでとても役⽴つ⽂献およびツール HPOを実⾏するためのツール • Optuna : https://github.com/optuna/optuna • Vizier : https://github.com/google/vizier

Slide 138

Slide 138 text

• [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 参考⽂献

Slide 139

Slide 139 text

• [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 参考⽂献

Slide 140

Slide 140 text

• [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 参考⽂献

Slide 141

Slide 141 text

• [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 参考⽂献