確率的勾配降下法(SGD)は、ランダムに選択されたデータの部分集合を用いて勾配を推定することで、勾配降下法を近似する反復最適化手法である。SGDの限界、例えば収束の遅さや学習率への感度に対処するため、様々な変種が開発されてきた。これらの変種には、モメンタム、ネステロフ加速勾配、AdaGrad、RMSProp、そしてAdamのような現代的な適応手法が含まれ、これらは機械学習や深層学習においてモデルを効率的に訓練するために広く使用されている。
SGDの核となるアイデアは、1950年代のRobbins–Monroアルゴリズムに遡り、根を求めるための確率的近似を導入した。機械学習では、SGDは通常、各サンプルの損失関数の和である目的関数を最小化する。基本的な更新則は \( w := w - \eta \nabla Q_i(w) \) であり、ここで \( \eta \) は学習率、\( Q_i \) は \( i \) 番目のサンプルの損失である。単純ではあるが、この更新は収束が遅く、特に損失関数の谷間で振動する可能性がある。変種は、更新方向、学習率、またはその両方を修正することでこれらの問題に対処する。
モメンタム
モメンタムは、持続的な勾配の方向に速度ベクトルを蓄積することでSGDを加速する手法である。1964年にBoris Polyakによって導入され、モメンタムは物理的な慣性を模倣する。ステップ \( t \) での更新は \( v_t = \mu v_{t-1} - \eta \nabla Q_i(w_t) \) および \( w_{t+1} = w_t + v_t \) であり、ここで \( \mu \) はモメンタム係数(しばしば0.9)である。これにより、オプティマイザは一貫した方向に速く移動し、高曲率領域での振動を抑える。モメンタムは、ノイズの多い勾配推定を平滑化するため、深層ネットワークの訓練に特に効果的である。
ネステロフ加速勾配
ネステロフ加速勾配(NAG)は、先読みステップを追加した変種である。1983年にYurii Nesterovによって提案され、NAGは現在の位置ではなく、投影された位置 \( w_t + \mu v_{t-1} \) で勾配を計算する。更新は \( v_t = \mu v_{t-1} - \eta \nabla Q_i(w_t + \mu v_{t-1}) \) および \( w_{t+1} = w_t + v_t \) となる。この修正はオーバーシュートを減らし、将来の勾配のより正確な推定を提供し、凸設定での収束を速める。NAGはニューラルネットワークの訓練でしばしば使用され、多くのライブラリに組み込まれている。
AdaGrad
AdaGradは、2011年にJohn Duchi、Elad Hazan、Yoram Singerによって導入され、過去の二乗勾配の合計に基づいてパラメータごとに学習率を適応させる。各パラメータ \( w_j \) について、更新は \( w_j := w_j - \frac{\eta}{\sqrt{G_{j,j} + \epsilon}} \nabla Q_i(w_j) \) であり、ここで \( G_{j,j} \) は二乗勾配を蓄積し、\( \epsilon \) は数値的安定性のための小さな定数である。AdaGradはスパースデータに対してうまく機能し、頻度の低い特徴に大きな更新を与える。しかし、二乗勾配の蓄積により学習率が時間とともに縮小し、訓練が早期に停止する可能性がある。
RMSProp
RMSPropは、2012年にGeoffrey Hintonの講義ノートで提案され、AdaGradの学習率減少問題を、二乗勾配の指数減衰平均を使用することで対処する。更新は移動平均 \( E[g^2]_t = \rho E[g^2]_{t-1} + (1-\rho) g_t^2 \) を維持し、ここで \( \rho \) は減衰率(通常0.9)である。パラメータ更新は \( w := w - \frac{\eta}{\sqrt{E[g^2]_t + \epsilon}} g_t \) である。RMSPropは非凸設定で効果的であり、リカレントネットワークや深層学習モデルの訓練で広く使用されている。
Adam
Adam(適応モーメント推定)は、2015年にDiederik KingmaとJimmy Baによって導入され、モメンタムとRMSPropを組み合わせたものである。勾配の一次モーメント(平均)と二次モーメント(分散)の両方を維持し、初期ステップのバイアス補正を行う。更新は \( m_t = \beta_1 m_{t-1} + (1-\beta_1) g_t \)、\( v_t = \beta_2 v_{t-1} + (1-\beta_2) g_t^2 \)、および \( \hat{m}_t = m_t / (1-\beta_1^t) \)、\( \hat{v}_t = v_t / (1-\beta_2^t) \) である。パラメータ更新は \( w := w - \eta \frac{\hat{m}_t}{\sqrt{\hat{v}_t} + \epsilon} \) である。Adamは、その堅牢性と高速な収束により、多くの深層学習タスクのデフォルトオプティマイザとなっている。重み減衰を分離するAdamWや、収束問題に対処するAMSGradなどの変種も開発されている。
現代の適応手法
Adam以外にも、いくつかの適応手法が提案されている。AdaBelief(2020年)は、現在の勾配方向への信念に基づいてステップサイズを調整する。RAdam(Rectified Adam)は、初期訓練フェーズを安定化するための整流器を導入する。Lion(Evolved Sign Momentum)は、2023年にGoogle Brainによって発見され、符号演算を使用してメモリ使用量を削減し、競争力のある性能を示している。これらの手法は、大規模言語モデルやその他の大規模システムの訓練でしばしば使用され、効率性と安定性が重要である。
実用的な考慮事項
適切なSGD変種の選択は問題に依存する。凸問題では、NAGが理論的な保証を提供することが多い。深層ネットワークでは、AdamやRMSPropが一般的な出発点である。ウォームアップや減衰などの学習率スケジューリングは、これらのオプティマイザと組み合わせられることが多い。ミニバッチサイズも性能に影響し、大きなバッチはより滑らかな勾配を提供するが、より多くのメモリを必要とする。分散訓練では、LARS(層ごとの適応レートスケーリング)やLAMB(層ごとの適応モーメント)などの変種が、AWS TrainiumやGoogle Cloudなどのシステムで見られるように、大きなバッチにスケーリングするために使用される。
機械学習への影響
SGD変種は、現代の人工知能の成功に不可欠であった。これらは、OpenAI、Google DeepMind、Anthropicなどの組織が行うように、大規模なデータセット上で数百万のパラメータを持つ深層ネットワークの訓練を可能にする。オプティマイザの選択は、モデルの精度と訓練速度に大きく影響する可能性がある。研究はこれらの手法を洗練し続けており、新しい変種が定期的に登場している。それらの特性を理解することは、機械学習および関連分野の実践者にとって不可欠である。