1. 定義と概要
モーメンタム法とは、物理学における運動量(momentum)の考え方を借り、パラメータ(モデル内部で学習によって調整される重みなどの数値)の更新のたびに過去の更新量を「速度」として蓄積し、その慣性を加味して更新を行う最適化アルゴリズムです。
モデルの学習は、予測のズレを表す損失関数(モデルの予測が正解からどれだけズレているかを数値化したもの)を小さくする方向へ、このパラメータを繰り返し更新していく作業です。モーメンタム法は、SGDに対する改良版として、この更新のやり方を工夫した手法にあたります。
更新式は v ← γv − η∇L(θ)、θ ← θ + v と表されます。それぞれの記号が受け持つ意味は、次のとおりです。
| 記号 | 意味 |
|---|---|
| v | 蓄積された速度で、過去の更新量が積み重なった値にあたります |
| γ | モーメンタム係数・減衰率とも呼ばれ、過去の勢いをどれだけ強く次の更新に引き継ぐかを決める0〜1の数値で、代表的には0.9前後の値が使われます |
| η∇L(θ) | 現在の勾配(損失関数を小さくする方向を示す傾き)に、学習率(パラメータをどれだけ大きく更新するかを決める数値)をかけた項です |
速度 v に過去の更新量が積み重なっていく点が、モーメンタム法の性格を決めています。直前の勾配だけを見るのではなく、それまでに進んできた方向の勢いを持ち越しながらパラメータを動かしていく流れです。
SGD(確率的勾配降下法)は直前の勾配だけを見てパラメータを更新します。そのため損失関数の地形が細長い谷状になっている場合、谷の壁面を行き来するようにジグザグに振動し、収束(更新を重ねるうちに損失がほとんど変化しなくなる状態に近づくこと)が遅くなる課題を抱えていました。
この振動を抑えるために、過去の更新方向を慣性として蓄積し、同じ方向への動きを強めながら逆方向への動きを打ち消す仕組みとして導入されたのがモーメンタム法です。
2. 試験対策ポイント
モーメンタム法はSGDの改良版として位置づけられ、更新式に過去の更新量を表す速度項(慣性)を加えている点が、押さえておきたいポイントです。更新式 v ← γv − η∇L(θ)、θ ← θ + v において、γ(モーメンタム係数)が大きいほど過去の勢いを強く引き継ぎ、小さいほど直近の勾配の影響が優先されます。
効果の一つは、損失関数が細長い谷状になっている場面でのジグザグな振動の抑制です。谷の壁面のように勾配方向が交互に反転する場面では、反対方向の成分どうしが打ち消し合い、進行方向の成分は強め合うため、より直線的な経路で谷底へ近づけます。
もう一つの効果は、鞍点(ある方向では谷、別の方向では山に見え、勾配がほぼゼロになる地点)やプラトー(勾配がほぼゼロになり学習が足踏みする平坦な領域)からの脱出です。慣性の働きにより、勾配がほぼゼロの領域でも過去の勢いで動き続けられます。
発展形の位置づけとしては、ネステロフの加速勾配法(NAG、移動先を先読みしてから勾配を計算する、モーメンタム法の改良版)が、あわせて整理しておきたい発展形です。また、RMSprop(パラメータごとに直近の勾配の大きさをもとに学習率を自動調整する手法)を組み合わせたAdam(モーメンタムとRMSpropを組み合わせた、広く使われる最適化手法)も、ここでの要点の一つです。
3. 関連概念との比較・相違点
SGDとの最大の違いは、過去の更新方向を使うかどうかにあります。SGDは直前の勾配のみで更新方向を決めるため損失地形によってはジグザグに振動しやすいのに対し、モーメンタム法は過去の更新量を慣性として蓄積し、同じ方向への動きを加速しながら振動を抑えます。
AdaGrad(パラメータごとに過去の勾配の大きさの累積をもとに学習率を自動で小さくしていく手法)・RMSprop・Adamとの最大の違いは、何を改良する系統かという点です。モーメンタム法(およびNAG)は更新の「方向」を過去の慣性で補正する系統であるのに対し、AdaGradやRMSpropはパラメータごとに「学習率」の大きさを勾配の大きさに応じて自動調整する系統にあたります。
主な最適化手法を、何を改良する系統かという軸で並べると次のようになります。
| 手法 | 改良する対象 | 特徴 |
|---|---|---|
| SGD | 基本形 | 直前の勾配だけで更新方向を決める |
| モーメンタム法・NAG | 更新の方向 | 過去の慣性で振動を抑えて加速する |
| AdaGrad・RMSprop | 学習率の大きさ | パラメータごとに自動で調整する |
| Adam | 方向と学習率の両方 | 2つの系統を組み合わせる |
Adamはこの2系統を組み合わせ、モーメンタムによる慣性とRMSprop由来の学習率調整の両方を取り入れた手法として位置づけられます。方向を直す系統と学習率を直す系統という分け方を頭に入れておくと、手法名が並んだときも整理しやすくなります。
4. ビジネス・実務での活用シナリオ
画像認識モデルの開発現場では、CNN(画像の特徴を抽出する層を重ねたニューラルネットワーク)の学習にSGDだけを使うと、層構造の特性上、損失関数の谷が細長くなりやすく、パラメータが谷の壁面を行き来してなかなか谷底にたどり着きません。その結果、学習を打ち切らざるを得ない事態が起こります。
SGDにモーメンタムを組み合わせることで更新方向の振動が抑えられ、同じ学習時間でもより低い損失に到達しやすくなり、検証を回せる回数が増えます。
音声認識や自然言語処理(人間が使う言葉をコンピュータに扱わせる技術分野)の分野では、層の深いネットワークほど学習の初期段階で勾配がほぼゼロになる平坦な領域に入り込みやすい傾向があります。SGDだけでは、その領域で更新がほとんど進まないまま学習が止まってしまう現象が起こります。
モーメンタムの慣性が働くことで、勾配がほぼゼロの局面でも過去の勢いを保ったまま前進を続けられ、停滞した領域を抜けて学習を再開できます。層が深いモデルほどこの停滞は起こりやすく、モーメンタムの有無が学習全体の所要時間を左右する場面は珍しくありません。
MLOps(機械学習モデルの開発から運用までを効率的に回す取り組み)の現場では、モーメンタム係数(代表的には0.9前後)もハイパーパラメータ(学習を始める前に人があらかじめ決めておく設定値)の一つです。学習を始める前に、この値を決めておく必要があります。
値を大きくしすぎると慣性が強くなりすぎ、最適解を通り過ぎてから戻ってくるような挙動が起きやすくなります。逆に小さすぎるとSGDに近い振動が残ったままになるため、収束速度と安定性のバランスを見ながら値が調整されます。
5. 要点まとめ
- モーメンタム法は過去の更新量を慣性として蓄積し、SGDのジグザグな振動を抑えて谷底へ速く進む、SGDの改良版に位置づけられる最適化手法です。
- 更新式 v ← γv − η∇L(θ)、θ ← θ + v において、モーメンタム係数γ(代表的には0.9前後)が大きいほど過去の勢いを強く引き継ぎ、鞍点やプラトーからの脱出も助けます。
- モーメンタム法(およびNAG)は更新方向を直す系統、AdaGrad・RMSprop・Adamは学習率を直す系統であり、Adamはこの2系統を組み合わせた手法です。
6. 確認問題
問1モーメンタム法は、過去の更新量を慣性として蓄積することで、SGDにおけるパラメータ更新のジグザグな振動を抑える効果がある。
解答・解説をみる
○ 正しい
損失関数が細長い谷状になっている場面では、反対方向の成分どうしが打ち消し合い、進行方向の成分が強め合うため、より直線的な経路で谷底へ近づけます。
問2モーメンタム法は、AdaGradやRMSpropと同じく、パラメータごとに学習率の大きさを自動調整する手法である。
解答・解説をみる
× 誤り
正しくは、モーメンタム法は更新の「方向」を過去の慣性で補正する系統であり、パラメータごとに「学習率」の大きさを自動調整するのはAdaGradやRMSprop側の系統です。2つの系統の役割を取り違えやすい点です。
問3Adamは、モーメンタム法とRMSpropの考え方を組み合わせた最適化手法である。
解答・解説をみる
○ 正しい
Adamはモーメンタム由来の慣性による更新方向の改良と、RMSprop由来のパラメータごとの学習率調整の両方を取り入れた手法です。

