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

論文輪読会 第9回 "Lion: Symbolic Discovery of Optimization Algorithms"

AcademiX
April 22, 2023
570

論文輪読会 第9回 "Lion: Symbolic Discovery of Optimization Algorithms"

AcademiX が開催した 第9回 論文輪読会 資料

日時:2023/04/22
発表者:前田拓海さん
論文タイトル:Lion: Symbolic Discovery of Optimization Algorithms

<概要>
プログラムベースで新たなオプティマイザを探索する手法を考案し、Lionオプティマイザを発見した。Lionは既存手法に比べメモリ効率と精度で同等かそれ以上の性能を持ち、ImageNetの画像認識におけるSOTAを更新した。

AcademiX

April 22, 2023
Tweet

More Decks by AcademiX

Transcript

  1.  
    https://www.academix.jp/
    AcademiX
    論文輪読会
    Lion: Symbolic Discovery of Optimization
    Algorithms
    福井県立高志高等学校
    Takumi Maeda
    2023/4/22

    View full-size slide

  2. 目次
    ● 要約
    ● オプティマイザの探索方法
    ● Lionの性質・特性
    ● Lionのベンチマーク
    ● Adamとの比較(自分の環境で実行してみる)
    ● 自分の環境で実行してみての所感
    ● まとめ
    ● 参考文献

    View full-size slide

  3. Abstract
    ● プログラムベースで新しいアルゴリズムを作る手法を考案した
    ● このアルゴリズムを、ディープニューラルネットワークの学習に用いるオプティマイ
    ザに適応し、シンプルで効果的なLion(EvoLved Sign Momentum)を発見した
    ● Lionは既存のAdamやAdafactorに比べ、メモリ効率に優れている
    ● ImageNetの画像認識におけるSOTAを0.1%更新した

    View full-size slide

  4. オプティマイザの探索手法
    AutoML的なアプローチで探索する
    先行研究での問題点
    ● 中身がブラックボックスになりがち
    ● 限られた数の小さなタスクでトレーニングされるため、大規模かつ学習ステップが多
    いタスクでの汎用性に乏しく、SOTAを達成することが難しい
    AutoML-Zero[2]では、機械学習を構成するそれぞれの要素を探索することを試みた
    だがXiangning Chenら[1]は、SOTAを達成できるオプティマイザの探索を目指す

    View full-size slide

  5. オプティマイザの探索手法
    AutoML-Zeroと同じく、プログラムベースの探索(数式ベースではない)
    ● 実行が可能
    ● 分析したり、他のタスクに適用するのが容易
    ● プログラムの長さで複雑さを評価でき、シンプルなアルゴリズムを選択しやすくな
    り、汎化しやすくなることもある

    View full-size slide

  6. オプティマイザの探索手法
    3つの基準を満たす探索手法を考案
    1. 新しいアルゴリズムを発見するのに十分な柔軟性がある探索範囲
    2. 機械学習のワークフローに簡単に組みこめる
    3. 低レベルなプログラムの詳細ではなく、高レベルなアルゴリズムの設計に集中でき

    View full-size slide

  7. 探索に用いられた疑似プログラム
    Pythonライクな言語
    ● array、list、dictionaryと、それらを操作する関

    ● NumpyとJAXと同じ数学的な関数
    ● オプティマイザでよく用いられる、線形代数の
    関数
    ● ループや条件分岐などは良い結果をもたらさ
    なかったため、使わない
    [1]Program3: AdamWのコード

    View full-size slide

  8. 探索の手順
    AdamW
    Optimizer Optimizer
    Optimizer Optimizer
    Optimizer
    Optimizer
    parent
    children
    ランダムな変異
    Optimizer Optimizer Optimizer
    parent
    parent



    説明のために簡略化して表現しています
    詳細は[3]のTournament Selectionについて参照してください

    View full-size slide

  9. 探索の手順
    [1]Figure 2 Left: 適応率の比較
    4つの手法で比較
    ● ハイパーパラメータチューニング
    ● ランダムサーチ
    ● 提案したアルゴリズム
    ● 提案したアルゴリズムで、progressが
    300kの時にリスタートした場合

    View full-size slide

  10. ランダムな変異
    3つの方法
    1. ランダムな場所にランダムな行を挿入
    2. ランダムな行を削除
    3. ランダムな関数の引数を、ランダムな
    存在する変数もしくは定数に変更
    ※出力に関係しない行も、次の変異で作
    用する可能性があるため残す
    [1]Program8: 生成された生のLionのコード

    View full-size slide

  11. 無駄な探索を減らす工夫
    生成されたコードを実行する前に、抽象的なテストを実行する
    ● 変数の型や配列のshapeを推論し、実行できない場合は変異を続ける
    →改善が進むように
    ● 演算をhash値を用いてトラッキングし、プログラムが違っても演算の内容が同じプ
    ログラムを検出する
    →最大で10倍探索コストを低減
    ● 出力に関係しない行を検出し、その行は実行しない
    →プログラムの長さが約1/3になり、分析しやすい

    View full-size slide

  12. 無駄な探索を減らす工夫
    [1]Figure 2 Right
    探索が進むに連れ、無駄な探索が増
    えていく
    Cache hit rate: 同じ演算をしているプ
    ログラムの割合
    Redundant statement: 出力に影響し
    ない行の割合

    View full-size slide

  13. 生成されたLionオプティマイザ
    生のプログラム
    出力に関係ない行を消去
    人間の手で最終調整
    [1]Program1, 4, 8
    beta1=0.9 モーメンタムと勾配の影
    響力の比率
    beta2=0.99 モーメンタムの更新量

    View full-size slide

  14. Lionの特性
    符号アップデートと正則化
    ● sign(c_t)により、c_tの各要素が[-1,
    0, 1]に変換される
    ● sign関数による変換でノイズが発生す
    るため、そのノイズが正則化として作
    用し汎化を促す
    [1]Algorithm 2: Lionのアルゴリズム

    View full-size slide

  15. Lionの特性
    モーメンタム
    ● モーメンタムの更新量を決定する
    beta2は、AdamやMomentum SGD
    で用いられる0.9よりも大きい0.99を
    使う
    ● この変更により、最大で10倍の長さの
    モーメントの履歴を保存可能
    ● updateへのモーメンタムの影響を決
    定するbeta1は、0.9を用いる
    [1]Algorithm 2: Lionのアルゴリズム

    View full-size slide

  16. Lionの特性
    ハイパーパラメータ
    ● sign関数の影響でノルムが大きくなる分、learning_rateは小さくし、重み減衰は大
    きくする必要がある
    バッチサイズ
    ● AdamW以上に大きなバッチサイズを使えるため、モデルのスケールアップや並列
    演算に有利

    View full-size slide

  17. Lionの特性
    ハイパーパラメータチューニング
    ● 適切なlearning_rateは、AdamWの1/3-1/10
    程度
    ● AdamWに比べ、ハイパーパラメータの変化に
    対して鈍感な傾向
    ● batch_sizeが大きいときも精度が低下しにくい
    Adam Lion
    [1] Figure 8 Left
    [1] Figure 8 Middle and Right

    View full-size slide

  18. Lionの特性
    メモリ
    ● モーメンタムのみ保存するため、AdamWなどに比べて少ないメモリで実行可能
    ● 巨大なモデルやバッチサイズを使える(メモリの使用量がAdamWに比べると半分
    程度になるらしい)
    ランタイム
    ● 実験では、AdamWやAdafactorに比べ、2-15%程度高速化

    View full-size slide

  19. ベンチマーク: 画像分類
    [1]Table 2: ImageNetにおける精度(3回の平均)
    [1]Table 3: JFTで学習されたモデルの、 ImageNetでの
    ファインチューニング時の精度

    View full-size slide

  20. ベンチマーク: 画像分類
    [1]Figure 4: JFT-300Mでトレーニングされた ViTの、
    ImageNetにおけるファインチューニング時の精度

    View full-size slide

  21. [1]Figure 6: Imagenの評価
    左: text-to-image 64x64 右: 64x64→256x256
    ベンチマーク: 拡散モデル
    FID-30Kでは、振動も小さくなっている

    View full-size slide

  22. ベンチマーク: 自然言語
    [1]Figure 7: TransformerモデルにおけるLog perplexity
    左: Wiki-40Bデータセット 右: PG-19データセット
    Wiki-40Bの最大のモデルは、過学習が見られたため省略されている

    View full-size slide

  23. ベンチマーク: 他のモデルとの比較
    [1]Table 7: 様々なオプティマイザでの精度
    著者は、Lionが最高精度を達成するオプティマイザの1つではあるが、
    はっきりとした勝者は見られないとしている

    View full-size slide

  24. 実際に使ってみての所感
    Lionの実装: https://github.com/google/automl/tree/master/lion
    ● MNIST程度の小規模タスクであれば、Adamのほうが早く収束するし、精度も良さ
    そう
    ● CIFAR100をResnet50で画像分類した場合、validationデータでの精度は学習初
    期からAdamを上回り、ロスは70エポック目くらいからAdamより小さくなった
    ● 自分の環境で言うと、RTX3050(VRAM8GB)を70-100%使う程度のタスクであれ
    ば、AdamよりもLionのほうが精度が良くなる?

    View full-size slide

  25. 実際に使ってみての所感
    ● ロー〜ミドルクラスのPCや、それらで動作する程度の小規模モデル・データセットで
    あれば、わざわざLionを使ないでAdamのままでも良さそう(あくまで現時点のPCに
    おいて)
    ● 将来的にPCの性能が底上げされて、大きなモデル・データセットをローカルで動か
    せるようになれば、「とりあえずLionを使う」という風潮が発生するかもしれない
    ● 現時点で大きな影響があるのは、大量の計算資源を使える企業や研究機関に限ら
    れると思う
    ● (ひょっとしたら、GPT-4やBardなどの開発スピードが底上げされるのでは、、、)

    View full-size slide

  26. まとめ
    ● AutoMLの手法を改善し、オプティマイザの探索手法を考案した
    ● 新しいLionオプティマイザを発見した
    ● 様々なタスクで既存の手法と同等もしくはそれ以上の性能を達成し、ImageNetの
    画像分類のSOTAを更新した
    ● 既存の手法よりも収束するスピードやメモリ効率に優れているため、計算資源の削
    減に有効
    ● 小規模なモデルやデータセットにおける効果は限定的であり、Adamの完全な代替
    手法とはならないと考えられる

    View full-size slide

  27. 参考文献
    [1] [2023 Xiangning Chen et al.] Symbolic Discovery of Optimization Algorithms
    https://arxiv.org/abs/2302.06675
    [2] [2020 Esteban Real et al.] AutoML-Zero: Evolving Machine Learning
    Algorithms From Scratch https://arxiv.org/abs/2003.03384
    [3] [1991 David E. Goldberg and Kalyanmoy Deb] A Comparative Analysis of
    Selection Schemes Used in Genetic Algorithms
    https://www.cse.unr.edu/~sushil/class/gas/papers/Select.pdf

    View full-size slide