19
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

新規最適化手法ADOPTについて

Last updated at Posted at 2024-12-01

TL;DR

新規最適化手法ADOPTについての論文を読み、簡単にまとめました。

(補足: まとめてから気が付きましたが、1にて著者の日本語の論文もあるため適宜参考にしていただければと思います)

今回読むことになった背景

Xを見ていたところ、NeurIPSの論文をarXivに上げたというポストを見かけました。
特に、ハイパラに依存することなくに収束を保証できるという内容に興味を持ち論文を確認してみたいと考えました。

前提知識

本研究の概要を抑える前に、深層学習においての最適化手法についてある程度理解していたほうが理解が進められると考えているため、
よくまとめられている記事があるため掲載をします。
適宜参考にしていただけると幸いです。

  1. ZoneTsuyoshiさん、深層学習の最適化アルゴリズム #機械学習 - Qiita
  2. bilzardさん、AdamWにおける改善点をきちんと理解する
  3. Daisuke Okanoharaさん、オンライン凸最適化と線形識別モデル学習の最前線 - Preferred Networks Research & Development

論文[1]

要約

  1. 背景: Adamの問題点として、$\beta_2$の選択によって収束性能が変わることがあり、AMSGradの改善案があった。ただ、勾配のノイズ自体を有界という強い仮定が必要であった。また、並行してAdaShiftが提案されたが特定の問題に対してのみ有効であった。
  2. 提案手法: ADOPTという手法を提案し、Adamの収束性能を保証することができる。
  3. 実験結果: 実験として画像データや生成モデル、LLMの事前学習やファインチューニングを行った。全ての組み合わせについての確認はしていないが、Adamの派生(AdamW,Adamax)などと比較しても、ADOPTは最適な収束性能を示すことができた。

アルゴリズムの比較

上記の提案手法とAdamのアルゴリズムを比較してみると以下のようになります。

項目 ADOPT2 Adam3
必要なパラメータ - 学習率 ${\alpha_t}$
- 初期パラメータ $\theta_0$
- $\beta_1$, $\beta_2$, $\epsilon$
- 学習率 $\alpha$
- 初期パラメータ $\theta_0$
- $\beta_1$, $\beta_2$, $\epsilon$
初期化 - $v_0 \leftarrow g_0 \odot g_0$
- $m_1 \leftarrow g_1 / \max{\sqrt{v_0}, \epsilon}$
- $m_0 \leftarrow 0$
- $v_0 \leftarrow 0$
- $t \leftarrow 0$
勾配の計算 $g_t \leftarrow \nabla_{\theta} f(\theta_{t-1})$ $g_t \leftarrow \nabla_{\theta} f(\theta_{t-1})$
1次モーメント更新 $m_{t+1} \leftarrow \beta_1 \cdot m_t + (1 - \beta_1) \frac{g_{t+1}}{\max{\sqrt{v_t}, \epsilon}}$ $m_t \leftarrow \beta_1 \cdot m_{t-1} + (1 - \beta_1) \cdot g_t$
2次モーメント更新 $v_t \leftarrow \beta_2 \cdot v_{t-1} + (1 - \beta_2) \odot g_t$ $v_t \leftarrow \beta_2 \cdot v_{t-1} + (1 - \beta_2) \cdot g_t^2$
バイアス補正 なし - $\hat{m}_t \leftarrow \frac{m_t}{1 - \beta_1^t}$
- $\hat{v}_t \leftarrow \frac{v_t}{1 - \beta_2^t}$
パラメータ更新 $\theta_t \leftarrow \theta_{t-1} - \alpha_t m_t$ $\theta_t \leftarrow \theta_{t-1} - \alpha \cdot \frac{\hat{m}_t}{\sqrt{\hat{v}_t} + \epsilon}$

比較ポイント

  1. 初期化の違い:

    • ADOPT は勾配の平方を初期化に使用します。
    • Adam は 1次と 2次モーメントベクトルをゼロから始めます。
  2. モーメント更新:

    • ADOPT は勾配の平方根と最大値を使用してモーメント更新を行います。
    • Adam はバイアス補正を使用し、勾配の平方を更新します。
  3. パラメータ更新:

    • ADOPT は単純なモーメント更新で行います。
    • Adam はバイアス補正したモーメントを用いて更新します。

感想

実際に論文にある数式はとても難しく、理解はしきれなかったですが、とても興味深い内容であると感じました。

また、著者の方がGitHubにコードを公開してくださっています。一方、Transformersのライブラリと併用して学習を場合は別途対応が必要だと考えられるため、こちらについて今後どのように利用すればよいか考えたいと思います。

参考文献

  1. ADOPT: ハイパーパラメータに依存せずに最適レートで収束する適応的最適化アルゴリズムの提案
    谷口 尚平, 原田 憲旺, 峰岸 剛基, 大島 佑太, 鄭 晟徹, 長原 豪, 飯山 燈, 鈴木 雅大, 岩澤 有祐, 松尾 豊
    2024
    人工知能学会全国大会論文集, 2024, JSAI2024 巻, 第38回 (2024), セッションID 4D3-GS-2-01, p. 4D3GS201

  2. ADOPT: Modified Adam Can Converge with Any $\beta_2$ with the Optimal Rate
    Shohei Taniguchi, Keno Harada, Gouki Minegishi, Yuta Oshima, Seong Cheol Jeong, Go Nagahara, Tomoshi Iiyama, Masahiro Suzuki, Yusuke Iwasawa, Yutaka Matsuo
    2024
    arXiv:2411.02853

  3. Adam: A Method for Stochastic Optimization
    Diederik P. Kingma, Jimmy Ba
    2014
    arXiv:1412.6980

19
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?