モメンタム、AdaGrad、RMSprop、Adam

機械学習における最適化アルゴリズムは、損失関数の最小化を通じてモデルのパラメータ(重み)を調整する役割を担っています。ここでは、勾配降下法の改良版として広く用いられている以下の4つの手法について詳しく説明します。


1. モメンタム(Momentum)

概要:

モメンタムは、従来の勾配降下法に「慣性」の概念を導入することで、局所的な凸部(凹凸)に囚われずに滑らかに収束を目指す手法です。

仕組み:

過去の勾配情報を指数移動平均として保持し、それに基づいて現在の更新方向を決定します。

数式:

cpp
v_t = β * v_{t-1} - η * ∇L_t) θ_{t+1} = θ_t + v_t
  • v_t:過去の勾配の加重平均(速度)

  • β:モメンタム係数(例:0.9)

  • η:学習率

  • ∇L(θ_t):現在のパラメータに対する損失関数の勾配

特徴:

  • 振動を抑えながら加速的に収束

  • 鞍点(saddle point)付近での停滞を緩和


2. AdaGrad(Adaptive Gradient)

概要:

AdaGradは、パラメータごとに学習率を調整することで、頻繁に更新されるパラメータの学習率を下げ、まれに更新されるパラメータの学習率を維持・上げるアルゴリズムです。

数式:

cpp
r_t = r_{t-1} + ∇L_t)^2 θ_{t+1} = θ_t - η / (√r_t + ε) * ∇L_t)
  • r_t:勾配の2乗の累積

  • ε:ゼロ除算を防ぐための微小値(例:1e-8)

特徴:

  • スパースデータに適している

  • 時間と共に学習率が単調減少し、収束が止まりやすい


3. RMSprop(Root Mean Square Propagation)

概要:

AdaGradの欠点(学習率が急激に減衰しすぎる)を改善するために提案された手法で、勾配の2乗の「指数移動平均」を利用します。

数式:

cpp
E[g^2]_t = γ * E[g^2]_{t-1} + (1 - γ) * ∇L_t)^2 θ_{t+1} = θ_t - η / (√E[g^2]_t + ε) * ∇L_t)
  • γ:減衰率(例:0.9)

  • E[g^2]_t:勾配の2乗の指数移動平均

特徴:

  • 学習率の減衰を制御し、安定した更新が可能

  • LSTMなどのRNNに特に有効


4. Adam(Adaptive Moment Estimation)

概要:

Adamは、モメンタムとRMSpropの利点を組み合わせた手法で、1次モーメント(平均)と2次モーメント(分散)を用いてパラメータを更新します。

数式:

cpp
m_t = β1 * m_{t-1} + (1 - β1) * ∇L_t) v_t = β2 * v_{t-1} + (1 - β2) * ∇L_t)^2_t = m_t / (1 - β1^t) v̂_t = v_t / (1 - β2^t) θ_{t+1} = θ_t - η * m̂_t / (√v̂_t + ε)
  • β1, β2:モーメントの減衰率(通常 β1=0.9, β2=0.999)

  • m̂_t, v̂_t:バイアス補正後の1次・2次モーメント

特徴:

  • 初期段階から安定した収束が可能

  • 多くのタスクで高性能を示すため、デフォルトで使用されることが多い


まとめ比較表:

アルゴリズム 特徴 弱点
モメンタム 加速的な収束、鞍点脱出に強い 最適なβの調整が必要
AdaGrad スパース特徴に有効 学習率が時間とともに減少しすぎる可能性
RMSprop AdaGradの改良、安定した学習が可能 ハイパーパラメータ調整が必要
Adam モメンタム+RMSpropの統合、収束が早い 非凸問題で最適性が保証されないことも

生成日:2025/06/01