確率的勾配降下法

参考文献

本記事においては、特定の確率的勾配降下法に紐づく参考文献は各セクション内に示す。
ieeeperiodicals
確率的勾配降下法 - Wikipedia

Adam

Adam は、勾配そのものではなく、勾配の一次モーメント推定値 $m_t$ と二次モーメント推定値 $v_t$ を用いてパラメータを更新する最適化手法である。「ステップ $t$ の訓練サンプル (のミニバッチ) の損失の勾配」を $\nabla Q_t(w)$ とすると、Adam はまず以下を計算する ($\beta_1 = 0.9, \beta_2 = 0.999$ が推奨され、PyTorch でもその規定値になっている)。
$$ \begin{split} m_t &= \beta_1 m_{t-1} + (1-\beta_1) \nabla Q_t(w) \\ v_t &= \beta_2 v_{t-1} + (1-\beta_2) \nabla Q_t(w) \cdot \nabla Q_t(w) \end{split} $$
そして、バイアス補正後の $\hat{m}_t, \ \hat{v}_t$ を用いて
$$ w_t=w_{t-1}-\alpha\frac{\hat{m}_t}{\sqrt{\hat{v}_t}+\epsilon} $$
のようにパラメータを更新する。$m_t$ は過去の勾配方向を反映するため、勾配方向が急に変化した場合には更新方向の反応が遅れる。$v_t$ は過去に勾配が大きかった成分の更新幅を小さくする。

参考文献

  • [1412.6980] Adam: A Method for Stochastic Optimization, , 2026年6月8日参照.
  • Adam — PyTorch 2.12 documentation, , 2026年6月8日参照.

AdamW

AdamW は、Adam における weight decay の扱いを変更した最適化手法である。通常の Adam で L2 正則化を勾配に加えると、正則化項も $m_t$ や $v_t$ の計算に含まれる。一方、AdamW では weight decay を勾配更新から分離し、パラメータを直接減衰させる。すなわち、Adam と同様に $\hat{m}_t,\ \hat{v}_t$ を計算した上で、例えば以下のように更新する。
$$ w_t = w_{t-1} -\alpha\frac{\hat{m}_t}{\sqrt{\hat{v}_t}+\epsilon} -\alpha\lambda w_{t-1} $$
ここで、$\lambda$ は weight decay の係数である。この形では、勾配に基づく Adam の適応的更新と、重みを小さくする weight decay が別々に作用する。そのため、AdamW における weight decay は、Adam の二次モーメント推定値 $v_t$ による座標ごとのスケーリングを受けない。Loshchilov and Hutter は、この分離により weight decay の係数を学習率からより独立に調整しやすくなることを述べている。

参考文献

  • [1711.05101] Decoupled Weight Decay Regularization, , 2026年6月8日参照.