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. AutoMLの基礎と応⽤
    ~ハイパーパラメータ探索とNAS~
    2023.03.03 (Fri.)
    東北⼤学 菅沼 雅徳

    View Slide

  2. 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]

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  13. 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

    View Slide

  14. 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

    View Slide

  15. 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

    View Slide

  16. • これまではネットワーク全体の構造を最適化していたが,探索範囲が膨⼤と
    なってしまい,計算コストが⾼かった
    • 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)
    𝑓! :特徴マップ

    View Slide

  17. 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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  22. 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

    View Slide

  23. 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

    View Slide

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

    Candidate nets
    sampling

    View Slide

  25. 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

    View Slide

  26. 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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  40. 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.

    View Slide

  41. 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
    探索中は全ての
    演算を保持
    サンプルされた
    演算のみ保持

    View Slide

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

    View Slide

  43. • 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

    View Slide

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

    View Slide

  45. • 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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  54. • 複数のデータセット上で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× @$$+',[email protected]'+
    @$$-'+

    View Slide

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

    View Slide

  56. 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

    View Slide

  57. 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

    View Slide

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




    最初の
    探索空間

    View Slide

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

    View Slide

  60. • 探索空間のサイズは⼤体𝟏𝟎𝟏𝟎~𝟏𝟎𝟏𝟎𝟎 あたり
    • 現実的な計算資源では到底探索しきれない
    • 重み共有などで効率性は劇的に向上しているが,さらに改善する必要がある
    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

    View Slide

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

    View Slide

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

    View Slide

  63. 多層になるにつれて,マルチヘッド注意機構の多様性が失われていく[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

    View Slide

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

    View Slide

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

    View Slide

  66. • そこで,枝刈り⼿法で⽤いられている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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  76. ⾊々なNAS

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  83. 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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  87. 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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  93. 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]

    View Slide

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

    View Slide

  95. 様々なサイズの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]

    View Slide

  96. 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]

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  100. • ある2サンプルをネットワークに⼊⼒した際の,ReLU後のバイナリコードが類似している
    =分離するのが難しい=ネットワークの性能良くない
    • 上記を下記式によって定量化
    100
    Neural Architecture Search without Training [Mellor+, ICMLʼ21]
    性能 良

    スコア𝑠とaccuracyには正の相関がある
    𝑁+
    : ReLUの個数
    𝑑,
    (𝐜'
    , 𝐜(
    ): サンプル𝑖, 𝑗による
    バイナリコードのハミング距離

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  116. あるハイパラ𝑥に対する𝑙 𝑥 , 𝑔 𝑥 を混合正規分布でモデル化
    • 𝑙 𝑥 = ∑~?∈ℒ@
    𝑤D
    𝒩 𝑥D
    , 𝜎D

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

    ⾜し合わせるだけ
    𝑥
    𝑙(𝑥)

    View Slide

  117. • 獲得関数には,以下の期待改善量(expected improvement)を⽤いる
    • 𝑆 = 𝐸𝐼†B 𝑥 = ∫
    €‡

    max 𝑦ˆ − 𝑦, 0 𝑝 𝑦 𝑥, ℋ• 𝑑𝑦
    • これまでに良い精度を達成しているハイパラ値の付近や未探索領域で値が⼤きくなる
    • ゆえに,次のステップ𝑡 + 1では,獲得関数の値が最⼤となるハイパラ値𝑥をサンプル
    すれば良い
    117
    TPEにおける獲得関数
    • 𝐸𝐼†B 𝑥 = ∫
    €‡

    max 𝑦ˆ − 𝑦, 0 𝑝 𝑦 𝑥, ℋ• 𝑑𝑦 を最⼤化することは,
    𝒍 𝒙
    𝒈 𝒙
    を最⼤化することと等価 [Bergstra+, JMLRʼ12]
    • ゆえに,各探索ステップでは予め決められた数だけ𝑙 𝑥 から𝑥をサンプルし,そのうちで
    . 7
    F 7
    が最⼤となる𝑥を次ステップの探索点とする

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  121. 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)

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide