本文へ移動

G検定(ジェネラリスト検定)

あだむ

アダム

Adaptive Moment Estimation

パラメータごとに学習率を適応的に調整する最適化手法。勾配の2乗の指数移動平均に加えて勾配そのものの指数移動平均も保持し、初期の偏りをバイアス補正で打ち消す。

詳しい説明

位置づけ

Adam(Adaptive Moment Estimation)は、パラメータごとに適応的な学習率を計算する最適化手法の一つです。AdadeltaやRMSpropと同じく、過去の勾配の2乗について指数関数的に減衰する平均 v_t を保持します。それに加えて、モーメンタムのように、過去の勾配そのものについても指数関数的に減衰する平均 m_t を保持します。勾配の大きさに応じて学習率を調整する仕組みと、勾配の向きをためていく仕組みを、一つの手法にまとめたものといえます。

重く、摩擦のあるボール

モーメンタムは、坂を転がり落ちるボールにたとえられます。これに対してAdamは、重く、摩擦のあるボールのようにふるまいます。摩擦があるため、誤差曲面の中でも平坦な最小値を好むとされます。

二つの移動平均

m_t と v_t は次の式で計算します。g_t は時刻 t の勾配です。

m_t = β1*m_(t-1) + (1-β1)*g_t

v_t = β2*v_(t-1) + (1-β2)*g_t^2

m_t は勾配の1次モーメント(平均)の推定値、v_t は2次モーメント(中心化しない分散)の推定値です。この二つのモーメントを推定することが、Adaptive Moment Estimation という名前の由来です。

バイアス補正

m_t と v_t は、どちらも0のベクトルで初期化されます。そのため、特に学習の初期の時刻や、減衰率が小さいとき(β1とβ2が1に近いとき)に、推定値がゼロの方向へ偏ります。Adamの提案者は、この偏りを打ち消すために、バイアスを補正した推定値を次のように計算します。

m̂_t = m_t / (1 - β1^t)

v̂_t = v_t / (1 - β2^t)

更新式

補正した推定値を使い、AdadeltaやRMSpropと同じ形でパラメータを更新します。

θ_(t+1) = θ_t - (η / (sqrt(v̂_t) + ε)) * m̂_t

η は学習率、ε は分母に加える小さな定数です。補正後の2次モーメントの平方根で学習率を割り、補正後の1次モーメントの方向へパラメータを動かす形になっています。

推奨される既定値

提案者は、β1 = 0.9、β2 = 0.999、ε = 10^(-8) を既定値として提案しています。また、Adamが実用上よく機能し、ほかの適応的な学習率の手法と比べても良好な結果を示すことを、実験によって示しています。

試験で問われること

G検定

  • AdamはAdadeltaやRMSpropと同じく勾配の2乗の指数移動平均v_tを保持し、それに加えてモーメンタムのように勾配そのものの指数移動平均m_tも保持する、パラメータごとに学習率を適応させる手法である。
  • m_tは勾配の1次モーメント(平均)、v_tは2次モーメント(中心化しない分散)の推定値であり、これらのモーメントを推定することがAdaptive Moment Estimationという名前の由来である。
  • m_tとv_tは0で初期化されるため、学習初期や減衰率が小さいとき(β1とβ2が1に近いとき)にゼロ方向へ偏り、m̂_t = m_t/(1-β1^t)とv̂_t = v_t/(1-β2^t)で補正する。
  • 更新式はθ_(t+1) = θ_t - (η/(sqrt(v̂_t)+ε))*m̂_tであり、補正後の2次モーメントの平方根で学習率を割り、補正後の1次モーメントの方向へパラメータを動かす。
  • 提案者が示す既定値はβ1=0.9、β2=0.999、ε=10^(-8)であり、坂を転がるボールにたとえられるモーメンタムに対し、Adamは重く摩擦のあるボールのようにふるまい平坦な最小値を好む。

最終更新日: 2026/09/23