ディープラーニングでは、トレーニングに多くの時間とコンピューティング リソースが必要になることが多く、これがディープラーニング アルゴリズムの開発を妨げる主な理由でもあります。分散並列トレーニングを使用してモデル学習を加速することはできますが、必要なコンピューティング リソースはまったく削減されません。より少ないリソースを必要とし、モデルの収束を早める最適化されたアルゴリズムだけが、マシンの学習速度と効果を根本的に加速することができます。Adam アルゴリズムはこの目的のために生まれました。 Adam 最適化アルゴリズムは、確率的勾配降下アルゴリズムの拡張であり、最近ではディープラーニング アプリケーション、特にコンピューター ビジョンや自然言語処理などのタスクで広く使用されています。この記事は 2 つの部分に分かれています。最初の部分では、Adam 最適化アルゴリズムの特徴と、ディープラーニングへの応用について簡単に紹介します。2 番目の部分では、Adam 最適化アルゴリズムの元の論文から始めて、そのアルゴリズムのプロセスと更新ルールを詳細に説明して導き出します。両パートをお読みいただいた上で、読者の皆様が以下の点を理解していただければ幸いです。
Adam 最適化アルゴリズムとは何ですか?Adam は、従来の確率的勾配降下法を置き換えることができる一次最適化アルゴリズムです。トレーニング データに基づいてニューラル ネットワークの重みを反復的に更新できます。 Adam は、OpenAI の Diederik Kingma 氏とトロント大学の Jimmy Ba 氏によって 2015 年の ICLR 論文 (Adam: A Method for Stochastic Optimization) で初めて提案されました。この記事の第 1 部と第 2 部はどちらも、この論文の議論と説明に基づいています。 まず、このアルゴリズムは「Adam」と呼ばれていますが、これは頭字語でも人名でもありません。その名前は適応モーメント推定に由来しています。このアルゴリズムを紹介する際、元の論文では、Adam 最適化アルゴリズムを非凸最適化問題に適用する利点を次のように挙げています。
Adam最適化アルゴリズムの基本的な仕組みAdam アルゴリズムは、従来の確率的勾配降下法とは異なります。確率的勾配降下法では、すべての重みを更新するために単一の学習率 (つまり、アルファ) が維持され、学習率はトレーニング プロセス中に変化しません。 Adam は、勾配の 1 次モーメント推定値と 2 次モーメント推定値を計算することにより、さまざまなパラメータに対して独立した適応学習率を設計します。 Adam アルゴリズムの提案者は、これを確率的勾配降下法の 2 つの拡張形式の利点を組み合わせたものだと説明しています。
Adam アルゴリズムは、AdaGrad アルゴリズムと RMSProp アルゴリズムの両方の利点を組み合わせたものです。 Adam は、RMSProp アルゴリズムのように 1 次モーメント平均に基づいて適応パラメータ学習率を計算するだけでなく、勾配の 2 次モーメント平均 (つまり、偏りのある分散/中心化されていない分散) も最大限に活用します。具体的には、アルゴリズムは勾配の指数移動平均を計算し、ハイパーパラメータ beta1 と beta2 はこれらの移動平均の減衰率を制御します。 移動平均の初期値とbeta1およびbeta2の値は1(推奨)に近いため、モーメント推定値のバイアスは0に近くなります。最初にバイアス推定値を計算し、次にバイアス補正推定値を計算することで、バイアスが改善されます。具体的な実装の詳細と導出プロセスに興味がある場合は、第 2 部と元の論文を引き続きお読みください。 アダムアルゴリズムの効率Adam は、優れた結果を非常に迅速に達成できるため、ディープラーニングの分野で非常に人気のあるアルゴリズムです。実験結果によれば、Adam アルゴリズムは実際には優れたパフォーマンスを発揮し、他の種類のランダム最適化アルゴリズムに比べて大きな利点があることがわかります。 オリジナルの論文では、著者らは Adam アルゴリズムの収束が理論分析と一致していることを経験的に証明しました。 Adam アルゴリズムは、MNIST 手書き文字認識および IMDB 感情分析データセットのロジスティック回帰アルゴリズムを最適化するために適用できます。また、MNIST データセットの多層パーセプトロン アルゴリズムや CIFAR-10 画像認識データセットの畳み込みニューラル ネットワークにも適用できます。 「大規模なモデルとデータセットを使用して、ローカルなディープラーニングの問題を解決するためのAdam最適化アルゴリズムの有効性を実証しました」と彼らは結論付けました。 多層パーセプトロンモデルにおけるアダム最適化アルゴリズムと他の最適化アルゴリズムの比較 実際、Insofar、RMSprop、Adadelta、Adam アルゴリズムはすべて比較的類似した最適化アルゴリズムであり、同様のシナリオではすべて非常に優れたパフォーマンスを発揮します。ただし、Adam アルゴリズムのバイアス補正により、勾配が疎になったときに RMSprop アルゴリズムよりも高速かつ優れた結果が得られます。 Insofar と Adam の最適化アルゴリズムは、基本的に最良のグローバルな選択肢です。また、CS231n コースでは、デフォルトの最適化アルゴリズムとして Adam アルゴリズムが推奨されています。 実際には Adam アルゴリズムは RMSProp よりも優れていますが、Adam の代わりに SGD + Nesterov モメンタムを試すこともできます。つまり、ディープラーニング モデルでは通常、Adam アルゴリズムまたは SGD + Nesterov モーメント法を使用することをお勧めします。 Adamパラメータ設定
さらに、学習率の減衰も Adam に適用できます。オリジナルの論文では、ロジスティック回帰のepoch(t)ごとに更新される減衰率alpha = alpha/sqrt(t)が使用されています。 Adam 論文で提案されたパラメータ設定: 機械学習の問題をテストするための適切なデフォルトのパラメータ設定は、alpha=0.001、beta1=0.9、beta2=0.999、epsilon=10E−8 です。 また、一般的なディープラーニング ライブラリでは、この論文で推奨されているパラメータがデフォルト設定として使用されていることもわかります。
最初の部分では、ディープラーニングにおける Adam 最適化アルゴリズムの基本的な特性と原則について説明しました。
パート 2 では、元の論文から始めて、Adam アルゴリズムのプロセスと更新ルールについて詳しく説明します。 論文: Adam: 確率的最適化手法 適応型低次モーメント推定に基づく確率的目的関数の一次勾配最適化アルゴリズムである Adam アルゴリズムを提案します。 Adam アルゴリズムは実装が簡単で、計算効率が高く、メモリ要件が低くなっています。 Adam アルゴリズムの勾配の対角再スケーリングは不変であるため、大規模なデータやパラメータを持つ問題を解決するのに非常に適しています。このアルゴリズムは、ノイズが大きく、勾配が疎な非定常問題を解決するのにも適しています。ハイパーパラメータは直感的に解釈でき、わずかな調整のみが必要です。この論文では、Adam アルゴリズムとその他の同様のアルゴリズムについても説明します。 Adam アルゴリズムの理論的な収束を分析し、収束率の区間を示します。オンライン凸最適化フレームワークでは収束速度が *** に達することを証明します。実験結果からも、Adam アルゴリズムは実際には他の確率的最適化手法に匹敵することが示されています。 *** では、無限大ノルムに基づいた Adam のバリエーションである AdaMax について説明しました。 上記のアルゴリズムで説明したように、パラメータα、β1、β2とランダム目的関数f(θ)を決定した後、パラメータベクトル、1次モーメントベクトル、2次モーメントベクトル、および時間ステップを初期化する必要があります。次に、パラメータ θ が収束しない場合、ループはさまざまな部分を反復的に更新します。つまり、タイムステップtに1を加算し、このタイムステップでのパラメータθに対する目的関数の勾配を更新し、偏差の一次モーメント推定値と二次モーメント推定値を更新し、偏差補正の一次モーメント推定値と偏差補正の二次モーメント推定値を計算し、上記の計算値を使用してモデルパラメータθを更新します。 2. アルゴリズム上記の疑似コードは、Adam アルゴリズムの基本的な手順を示しています。 f(θ) をノイズの多いターゲット関数、つまりパラメータ θ に関して微分可能なランダム スカラー関数であると仮定します。我々が興味を持っているのは、この関数の期待値、つまり異なるパラメータθに対するfの期待値E[f(θ)]をどのように減らすかということです。ここで、f1(θ)、...、fT(θ)は、後続の時間ステップ1、...、Tにおけるランダム関数の値を表します。ここでのランダム性は、ランダムなサブサンプル (ミニバッチ) の評価と固有の関数ノイズから生じます。そして、θに対するft(θ)の勾配、つまり練習ステップtにおけるθに対するftの偏微分ベクトルを表します。 アルゴリズムは勾配の指数移動平均 (mt) と二乗勾配 (vt) を更新し、パラメータ β1、β2 ∈ [0, 1) はこれらの移動平均の指数減衰率を制御します。移動平均自体は、勾配の最初のモーメント (平均) と 2 番目の生のモーメント (偏りのある分散) を使用して推定されます。ただし、これらの移動平均はゼロ ベクトルに初期化されるため、特に初期の時間ステップや減衰率が非常に小さい場合 (つまり、β が 1 に近い場合)、モーメント推定値はゼロに偏る可能性があります。しかし、良いニュースとしては、初期化バイアスは簡単にキャンセルできるため、バイアス補正された推定値 mt hat と vt hat を取得できることです。 計算の順序を変更することでアルゴリズムの効率を向上できることに注意してください。たとえば、疑似コードの最後の 3 つのループ ステートメントを次の 2 つに置き換えます。 2.1 アダムの更新規則Adam アルゴリズムの更新ルールの重要な特徴は、ステップ サイズを非常に慎重に選択することです。 ε=0 と仮定すると、時間ステップ t およびパラメータ空間における有効降下ステップサイズは です。有効降下ステップサイズには 2 つの上限があります。つまり、 の場合、有効ステップサイズの上限は を満たし、その他の場合には |∆t| ≤ α を満たします。最初のケースは、非常にスパースな場合にのみ発生します。つまり、現在のタイム ステップを除いて勾配はゼロになります。疎なケースでは、有効なステップ サイズは小さくなります。いつ のとき、 となり、したがって上限 |∆t| < α を推定できます。より一般的なシナリオでは、|E[g]/ p E[g^2]| ≤ 1なので、次のようになります。パラメータ空間における各時間ステップでの有効ステップサイズの大きさは、ステップサイズ係数 α によってほぼ制限されます。これは、現在のパラメータ値の下で信頼領域を決定するものとして理解できるため、十分な情報を提供しない現在の勾配推定よりも優れています。これにより、α の正しい範囲を事前に知ることが比較的容易になります。 多くの機械学習モデルでは、パラメータ空間内の集合のドメインにわたって極めて高い確率を持つ状態が、良好な最適状態であることがわかっています。これは珍しいことではありません。たとえば、パラメータに対して事前分布を持つことができます。 α はパラメータ空間における有効ステップサイズの大きさ(つまり、上限)を決定するため、多くの場合、正しい α の大きさを推測することができ、θ0 から始まる一定数の反復によって最適解に到達できます。これを信号対雑音比 (SNR) と呼ぶことができます。 SNR値が小さい場合、有効ステップサイズ∆tは0に近くなり、目的関数は極値に収束します。これは非常に望ましい特性です。SNR が小さいということは、方向が実際の勾配方向に対応しているかどうかについてアルゴリズムが不確実性を大きく持つことを意味するからです。たとえば、SNR 値は最適解の近くでは 0 に近づくため、パラメータ空間内の有効ステップ サイズは小さくなります。これは自動アニーリングの一種です。有効ステップ サイズ ∆t は勾配スケーリングに対して不変です。勾配 g を c 倍に再スケーリングすると、c 倍の再スケーリングと c^2 倍のスケーリングに相当し、信号対雑音比を計算するときにスケーリング係数がオフセットされます。 3 初期化偏差補正この論文のアルゴリズムの第 2 部で説明したように、Adam は初期化バイアス補正項を利用します。このセクションでは、このバイアス補正項を 2 次モーメント推定値から導出します。1 次モーメント推定値の導出もまったく同様です。まず、ランダム目的関数 f の勾配を見つけ、次に二乗勾配の指数移動平均と減衰率 β2 を使用して、その 2 次生モーメント (偏りのある分散) を推定します。 g1、...、gTを一連の時間ステップにわたる勾配とします。ここで、各勾配は潜在的な勾配分布gt ∼ p(gt)に従います。ここで、指数移動平均 v0=0 (ゼロベクトル) を初期化し、時間ステップ t での指数移動平均の更新は次のように表すことができます。ここで、gt^2 はアダマール積 gt⊙gt、つまり対応する要素間の積を表します。同様に、これを、以前のすべての時間ステップにおける勾配と減衰率のみを含む関数として書き直すことができます。つまり、v を消去します。 時間ステップtにおける指数移動平均の期待値E[vt]が真の第2モーメントとどのように関係しているかを知りたいので、これら2つの量の間の不一致を修正することができます。次に、式(1)の左辺と右辺を以下のように求めます。 真の2次モーメントE[g 2 i ]が定常であればζ = 0となる。それ以外の場合、指数移動平均が勾配にほとんど重みを割り当てないように指数減衰率 β1 を選択する必要があるため、ζ は非常に小さいままになります。したがって、平均をゼロベクトルに初期化すると、(1 − βt^2)項のみが残ります。したがって、初期化バイアスを修正するために、アルゴリズム 1 の ζ 項で割ります。 疎行列の 2 番目のモーメントの信頼性の高い推定値を取得するには、小さな β2 を選択し、多くの勾配にわたって平均化する必要があります。しかし、まさにこの小さな β2 値が初期化バイアス補正の欠如につながり、初期化ステップ サイズが大きくなりすぎてしまいます。 4. 収束分析この論文では、2003 年に Zinkevich によって提案されたオンライン学習フレームワークを使用して、Adam アルゴリズムの収束を分析します。 5. 関連研究Adam アルゴリズムに直接関連する最適化手法としては、RMSProp (Tieleman & Hinton、2012 年、Graves、2013 年) と AdaGrad (Duchi ら、2011 年) があります。 6つの実験図 1: MNIST 画像セットと 10K 個の Bag-of-Words (BoW) 特徴ベクトルを含む IMDB 映画レビュー データセットでトレーニングされた、負の対数尤度関数を使用したロジスティック回帰。 図 2: MNIST 画像データセットで多層ニューラル ネットワークをトレーニングする。 (a) 図はドロップアウトランダム正則化を備えたニューラルネットワークを示しています。 (b) 図は決定論的損失関数を使用するニューラルネットワークを示しています。 図 3: 畳み込みニューラル ネットワークのトレーニング損失。左の図は最初の 3 つのエポックのトレーニング損失を示し、右の図は 45 エポック全体のトレーニング損失を示しています。 図 4: 変分オートエンコーダ (VAE) におけるバイアス補正あり (赤) となし (緑) の損失の比較。 7 拡張機能7.1 アダマックス Adam では、単一の重みの更新ルールは、現在の勾配と過去の勾配の L^2 ノルム (スカラー) によってその勾配を逆にスケーリングすることです。 L^2 ノルムに基づく更新規則を L^p ノルムに基づく更新規則に一般化できます。このような変形は p の値が大きい場合には数値的に不安定になりますが、特別な場合には p → ∞ とすると非常に安定した単純なアルゴリズムが得られます (アルゴリズム 2 を参照)。ここで、時刻 t におけるステップ サイズが L^p ノルムを使用して vt^(1/p) に反比例して変化するこのアルゴリズムを導出します。 ここでの減衰項はβ2ではなくβ2^pに相当することに注意してください。ここでp → ∞とし、 それから、次のものがあります: この式は、非常に単純な反復式に対応します。 ここで初期値 u0 = 0 です。これは非常に便利であり、この場合、初期化バイアスを修正する必要がないことに注意してください。同様に、AdaMax パラメータ更新の順序は Adam よりも単純です (つまり、|∆t| ≤ α)。 |
>>: 畳み込みニューラルネットワークは「グラフ」構造化データを処理できないのですか?この記事でその答えが分かります
ビッグデータダイジェスト制作出典: lambdalabs編纂者:張秋月ディープラーニング モデルが強...
自動運転車のコストの40%を占めるLiDARは、その正確かつ全方位的な空間検出機能により、自動運転分...
ダボスで開催された世界経済フォーラムで、マイクロソフトの元社長兼CEOのビル・ゲイツ氏が、ヤフー・フ...
自己教師あり学習入門[[251602]]確かに、ディープラーニングは、特に画像認識タスクにおいて、機...
大きなモデルは良いですが、「深刻なナンセンス」の問題をどのように解決するのでしょうか?金融、法律、医...
[[396563]] 2021年4月27日IBM Cloud Paks コミュニティ リリースここに...
仮想現実ゲームの発展により、ゲームのプレイ方法や交流の仕方が急速に変化しています。仮想現実はゲームの...
11月25日、 XiaoIceフレームワークは11人のAI歌手をリリースし、アシスタント、同僚、親戚...
「インテリジェンス」が本格的に到来!人工知能(AI)は、科学技術革命と産業変革の新たなラウンドにおけ...
「カスタム開発された AI モデル」に対する現在の市場需要は 86% にも上ります。 [[3461...
ArcSoft ビジュアルオープンプラットフォームであるArcFace 3.0の発売以来、アルゴリ...