Google が Vision Transformer (ViT) を提案して以来、ViT は徐々に多くのビジュアル タスクのデフォルト バックボーンになってきました。 ViT 構造により、SoTA は画像分類、セグメンテーション、検出、認識などを含む多くの視覚タスクに対してさらに改良されました。
ただし、ViT をトレーニングするのは簡単ではありません。より複雑なトレーニング手法が必要になることに加えて、モデルのトレーニングに必要な計算量も以前の CNN よりもはるかに多くなることがよくあります。最近、シンガポール Sea AI LAB (SAIL) と北京大学 ZERO Lab の研究チームが共同で、 半分の計算量 train で ViT を完了できる新しい ディープ モデル オプティマイザー Adan を提案しました。 。
紙のリンク: https://arxiv.org/pdf/2208.06677.pdf
##コードリンク: https://github.com/sail-sg/Adanさらに、同じ計算量の下で、Adan
複数のシナリオ (CV、NLP、RLを含む)、複数のトレーニング方法 (教師ありおよび自己教師あり)、および 複数のネットワーク構造/アルゴリズム (Swin、ViT、ResNet、ConvNext) に取り組んできました。 、MAE、LSTM、BERT、Transformer-XL、PPO アルゴリズム)、すべて 達成されたパフォーマンスの向上。 コード、構成ファイル、トレーニング ログはすべてオープン ソースです。
ディープ モデルのトレーニング パラダイムとオプティマイザー
ImageNet 1k では、トレーニング エポックの数が、ResNet によって提案されたばかりの 90 から、ViT のトレーニングに一般的に使用される 300 に増加しました。 MAE や ViT などの一部の自己教師あり学習モデルでも、事前トレーニング エポックの数は 1.6k に達しています。トレーニング エポックの増加はトレーニング時間が大幅に延長されることを意味し、学術研究や産業での実装のコストが大幅に増加します。現時点での一般的な解決策は、トレーニング バッチ サイズを増やし、並列トレーニングを支援してトレーニング時間を短縮することですが、それに伴う問題は、多くの場合、バッチ サイズが大きいとパフォーマンスの低下を意味し、バッチ サイズが大きくなるほど、パフォーマンスの低下がより明らかになるということです。状況。
これは主に、バッチ サイズが増加するにつれてモデル パラメーターの更新数が急激に減少するためです。現在のオプティマイザは、複雑なトレーニング パラダイムの下では、少数の更新でモデルの迅速なトレーニングを達成できず、これがモデル トレーニング エポック数の増加をさらに悪化させます。
では、より少ないパラメーター更新でディープ モデルをより速く、より適切にトレーニングできる新しいオプティマイザーはあるのでしょうか?トレーニング エポックの数を減らしながら、バッチ サイズの増加による悪影響も軽減できるでしょうか?
無視されるインパルス
:
ここで、 g_kはランダム ノイズ、m_k はモーメント、eta は学習率です。アダムは、m_k の更新を累積形式から移動平均形式に変更し、学習率をスケールするために 2 次モーメント (n_k) を導入しました。つまり、
しかし、Adam がオリジナルの ViT のトレーニングに失敗したため、その改良版 AdamW が徐々に ViT や ConvNext のトレーニングに最初に選択されるようになりました。ただし、AdamW は Adam のインパルス パラダイムを変更しないため、バッチ サイズが 4,096 を超えると、AdamW によってトレーニングされた ViT のパフォーマンスが急激に低下します。
伝統的な凸最適化の分野では、ヘビー ボール法と同じくらい有名なインパルス手法があります - Nesterov インパルス アルゴリズム :
Nesterov インパルス アルゴリズムは、滑らかで一般に凸の問題では重力球法よりも理論上の収束速度が速く、理論的にはより大きなバッチ サイズにも耐えることができます。 。加重ボール法とは異なり、Nesterov アルゴリズムは現在の点での勾配を計算しませんが、力積を使用して外挿点を見つけ、この点での勾配を計算した後に力積を累積します。
外挿点は、Nesterov アルゴリズムが現在の点の周囲の幾何学的情報を事前に認識するのに役立ちます。この特性により、ネステロフ インパルスは、単に過去のインパルスに依存して鋭い局所最小点をバイパスするのではなく、事前に周囲の勾配を観察することで調整されるため、複雑なトレーニング パラダイムやモデル構造 (ViT など) により適しています。
Nesterov インパルス アルゴリズムには特定の利点がありますが、ディープ オプティマイザーで適用および検討されることはほとんどありません。主な理由の 1 つは、Nesterov アルゴリズムが外挿点での勾配を計算し、現在の点で更新する必要があるためです。この期間中に、複数のモデル パラメーターのリロードと外挿点での人工逆伝播 (BP) が必要になります。これらの不便さにより、ディープ モデル オプティマイザーでの Nesterov インパルス アルゴリズムの適用が大幅に制限されます。
Adan オプティマイザー書き換えられた Nesterov インパルスを適応最適化アルゴリズムと組み合わせ、分離された重み減衰を導入することにより、最終的な Adan オプティマイザーを取得できます。外挿点を使用することで、Adan は周囲の勾配情報を事前に認識することができるため、鋭い極小領域から効率的に回避してモデルの一般化を高めることができます。
1) 適応ネステロフ インパルス
ネステロフ インパルスにおける複数のモデル パラメーターのオーバーロードの問題を解決するにはアルゴリズムの問題、研究者は最初に Nesterov を書き換えました:
書き換えられた Nesterov インパルス アルゴリズムが元のアルゴリズムと同等であることが証明でき、反復両者の点は相互に変換でき、最終的な収束点は同じになります。勾配の微分項を導入することにより、手動パラメータの過負荷と外挿点での人為的な血圧を回避できることがわかります。
書き直された Nesterov インパルス アルゴリズムと適応クラス オプティマイザーを組み合わせます。m_k の更新を累積形式から移動平均形式に置き換え、二次モーメントを使用して学習を調整します。 rate Zoom:
これまでのところ、Adan のアルゴリズムの基本バージョンを入手しました。
2) 勾配差のインパルス
m_k の更新により、勾配とTogether では勾配の差を表現できますが、実際のシナリオでは、異なる物理的意味を持つ 2 つのアイテムを別々に処理する必要があることが多いため、研究者は勾配の差のインパルス v_k を導入します。
ここでは、勾配の力積とその差に対して異なる力積/平均係数を設定します。勾配差分項は、隣接する勾配に一貫性がない場合、オプティマイザの更新を遅くする可能性があり、逆に、勾配の方向が一貫している場合、更新を高速化することができます。
3) 分離された重み減衰
###L2 重み正則化を使用した目的関数の場合、現在一般的な AdamW オプティマイザーは、L2 正則化とトレーニング損失を分離することで、ViT および ConvNext でのパフォーマンスの向上を達成しました。ただし、AdamW が使用するデカップリング手法はヒューリスティックに偏っており、現時点ではその収束の理論的な保証はありません。
L2 規則性を分離するという考えに基づいて、分離された重み減衰戦略も Adan に導入されています。現時点では、Adan の各反復は、最適化目標 F の一次近似を最小限に抑えていると見なすことができます。
#L2 の重みにより、 F 正則化は非常に単純かつスムーズであるため、一次近似は必要ありません。したがって、トレーニング損失の一次近似のみを実行し、L2 重み正則化を無視できます。その場合、Adan の最後の反復は次のようになります。
興味深いことに、学習率ηが 0 に近い場合、AdamW の更新基準は Adan 更新基準の一次近似であることがわかります。したがって、本来のヒューリスティックな改善ではなく、近位演算子の観点から、Adan または AdamW に合理的な説明を与えることができます。
4) Adan オプティマイザー
2) と 3) の 2 つの改善点を Adan の基本バージョンに組み合わせます。以下のAdanオプティマイザを取得できます。
Adan は、適応オプティマイザー、Nesterov インパルス、および分離された重み減衰戦略の利点を組み合わせており、より大きな学習率とバッチ サイズに耐えることができ、モデルパラメータの動的L2正則化を実装します。
#5) 収束分析
##ここでは、複雑な数学的分析プロセスを省略し、結論のみを示します。
定理: ヘッセ行列の滑らかな条件が与えられる場合と与えられない場合のどちらの場合でも、Adan オプティマイザーの収束速度は、非凸確率的最適化問題ですでに達成されているレベルに達することができます。理論的な下限は既知であり、この結論は分離された重み減衰戦略でも依然として当てはまります。 #実験結果
1) 教師あり学習 — —ViT モデルViT モデルでは、研究者は ViT および Swin 構造で Adan のパフォーマンスをテストしました。
たとえば、ViT-small、ViT-base、Swin-tiny、および Swin-base では、Adan は計算リソースの半分は SoTA オプティマイザーによって得られた結果に近く、同じ計算量の下では、Adan は両方の ViT モデルで大きな利点を示します。
さらに、Adan のパフォーマンスは大きなバッチ サイズでもテストされました。を参照してください。Adan はさまざまなバッチ サイズで適切にパフォーマンスを発揮し、大きなバッチ サイズ用に設計されたオプティマイザー (LAMB) よりも優れた利点もあります。
2) 教師あり学習 - CNN モデル
研究者らは、トレーニングがより困難な ViT モデルに加えて、従来の ResNet やより高度な ConvNext など、鋭い局所最小点が比較的少ない CNN モデルでも Adan のパフォーマンスをテストしました。結果は次のとおりです。 ResNet であっても ConvNext であっても、Adan は約 2/3 以内に SoTA を超えるパフォーマンスを達成できることがわかります。トレーニングの時代の。 3) 教師なし学習 教師なしトレーニング フレームワークの下で、研究者は、 Adan は、提案されている最新の MAE でテストされました。結果は次のとおりです。 教師あり学習の結論と一致して、Adan は元の SoTA と同等かそれを上回る計算量の半分しか消費しません。オプティマイザーであり、トレーニング エポックが小さいほど、Adan の利点がより明白になります。 1) 教師あり学習 NLP の教師あり学習タスクで、古典的な LSTM と高度な Transformer-XL での Adan のパフォーマンスを観察してください。
2) 教師なし学習 Adan の教師なし学習を NLP シナリオでテストするにはタスクのモデルトレーニングステータス。研究者らは BERT をゼロからトレーニングしました。1000,000 回の事前トレーニング反復の後、Adan でトレーニングされたモデルのパフォーマンスが GLUE データセットの 7 つのサブタスクでテストされ、結果は次のとおりでした。 研究者らは、RL で一般的に使用される PPO アルゴリズムのオプティマイザーを Adan に置き換え、4 ゲームで Adan の MuJoCo エンジンのパフォーマンスをテストしました。 4 つのゲームでは、Adan をネットワーク オプティマイザーとして使用する PPO アルゴリズムにより、常に高い報酬を得ることができます。 Adan は、RL ネットワーク トレーニングでも大きな可能性を示しています。 結論と展望 Adan オプティマイザーは、現在のディープ モデル オプティマイザーに新しいインパルス パラダイムを導入します。複雑なトレーニング パラダイムの下で、少ない更新でモデルの高速トレーニングを実現します。 Adan はわずか 1/2 ~ 2/3 の計算量で既存の SoTA オプティマイザーと同等にできることがわかりました。 Adan は、複数のシナリオ (CV、NLP、RL を含む)、複数のトレーニング方法 (教師ありおよび自己教師あり)、および複数のネットワーク構造 (ViT、CNN、LSTM、Transformer など) で使用されます。 .)、すべてがパフォーマンスに大きな利点を示しています。さらに、Adan オプティマイザーの収束速度は、非凸確率的最適化の理論的下限に達しました。 #2. NLP シナリオ
以上がViTとMAEをトレーニングすると計算量が半分に! Seaと北京大学が共同で深層モデルに使用できる効率的なオプティマイザ「Adan」を提案の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。