Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

探索に用いられた疑似プログラム Pythonライクな言語 ● array、list、dictionaryと、それらを操作する関 数 ● NumpyとJAXと同じ数学的な関数 ● オプティマイザでよく用いられる、線形代数の 関数 ● ループや条件分岐などは良い結果をもたらさ なかったため、使わない [1]Program3: AdamWのコード

Slide 8

Slide 8 text

探索の手順 AdamW Optimizer Optimizer Optimizer Optimizer Optimizer Optimizer parent children ランダムな変異 Optimizer Optimizer Optimizer parent parent ・ ・ ・ 説明のために簡略化して表現しています 詳細は[3]のTournament Selectionについて参照してください

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

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