勾配降下法には「谷底に着く前に、平坦な場所で足踏みしてしまう」という弱点があります。これに「慣性」という物理のアイデアで立ち向かったのがモーメンタムです。AdaGradやAdam など現代の最適化手法につながる、系譜の出発点となる重要キーワードです。
📖 ひと言でいうと
モーメンタムとは、重みを更新するときに現在の勾配だけでなく「前回どちらに動いたか」という過去の更新方向を上乗せすることで、学習を加速し停滞を防ぐ最適化手法です。名前は物理学の運動量(momentum)に由来します。
例えるなら、坂道を転がるボールです。歩いて下る人(通常の勾配降下法)は平らな場所に来ると止まってしまいますが、転がるボールは勢い(慣性)がついているので、多少の平地や小さなくぼみなら突っ切って先へ進めます。厳密には、過去の勾配方向の情報を蓄積した「速度」を保持し、それを更新に加える仕組みです。
🖼 1枚でわかるモーメンタム
📘 公式テキストの説明
モーメンタムは1990年代に提唱された最適化手法で、特にニューラルネットワークにおける「鞍点問題」に対処するためのアイデアとして発展した。この問題は、関数のある次元方向では極小、別の次元方向では極大になる鞍点にモデルが陥ることで、学習が進みにくくなる状況を指す。モーメンタムは物理の慣性を応用して、過去の勾配方向の情報を保持しつつ学習を加速させ、停滞を回避するよう設計されている。これにより、鞍点に近い平坦な領域(プラトー)での学習停滞を防ぎ、効率よく最適解へ収束しやすくする。具体的には、モーメンタム法は「慣性」の原理を使って、現在の更新方向に前回の更新方向を加えることで、加速的に更新を行う。この手法は学習初期の速度向上だけでなく、途中での減速によって過剰な飛び出しを防ぐ役割も担う。また、モーメンタムの改良版として、AdaGradやRMSprop、Adamといった手法が生まれており、これらもモーメンタムの基本原理を活かしつつ、より効率的に収束する工夫が施されている。
長い説明ですが、構造は「背景(鞍点問題)→原理(慣性)→効果(停滞回避と暴走防止)→発展(改良版の系譜)」の4段です。核心は「現在の更新方向に前回の更新方向を加える」という1文に尽きます。過去の動きを引き継ぐことで、同じ方向に進み続けるときは加速し、方向が揺れるときは互いに打ち消し合ってなだらかになる——このシンプルな仕掛けが、停滞の突破と暴走の抑制を同時に実現します。
🔍 しっかり理解する
背景: 鞍点とプラトーという落とし穴
ニューラルネットワークの誤差関数は非常に高次元で、その地形には「鞍点」が多数存在します。鞍点とは、馬の鞍のように、ある方向から見ると谷底(極小)、別の方向から見ると峠(極大)になっている地点です。鞍点の周辺では勾配がほぼゼロになるため、勾配だけを頼りに進む素朴な勾配降下法は、最適解でもないのに動けなくなってしまいます。鞍点に近い平坦な領域はプラトー(高原)と呼ばれ、学習曲線が長時間横ばいになる停滞の正体です。
原理: 「速度」を持ち越して更新する
モーメンタムでは、勾配をそのまま重みの変化量にするのではなく、更新のたびに「速度」を計算します。イメージとしては次の形です(プレーンテキストで表記)。
- 新しい速度 = 慣性係数 × 前回の速度 + 学習率 × 現在の勾配(の逆方向)
- 新しい重み = 現在の重み + 新しい速度
慣性係数は0.9などの値がよく使われ、前回までの動きをどれだけ引き継ぐかを決めます。勾配がほぼゼロの平坦地でも、前回までの速度が残っていれば進み続けられるため、鞍点・プラトーでの停滞を回避できます。また、進行方向が毎回逆転するようなジグザグ状況では、過去と現在の方向が打ち消し合って振動が緩和されます。公式テキストのいう「途中での減速によって過剰な飛び出しを防ぐ」とは、この打ち消しの働きを指しています。
- その場の勾配だけで更新方向を決める
- 勾配がほぼゼロの鞍点・プラトーで停滞
- 谷の斜面ではジグザグに振動しやすい
- 前回の更新方向(速度)を上乗せして更新
- 慣性で平坦な領域を突き抜けられる
- 逆向きの動きは打ち消され振動が緩和
発展: 現代の最適化手法への系譜
公式テキストにあるとおり、モーメンタムの後には AdaGrad・RMSprop・Adam といった手法が生まれ、より効率的に収束する工夫が加えられていきました。これらは学習率をパラメータごとに自動調整する仕組みを持ち、特に Adam は「モーメンタム的な勾配の蓄積」と「学習率の自動調整」を組み合わせた手法として広く使われています。系譜の出発点にモーメンタムがあることを押さえておくと、最適化手法の章全体が1本のストーリーとして整理できます。
💡 具体例で考える
細長い谷のような誤差関数の地形を考えてみましょう。谷の横幅方向は急勾配、谷底に沿った方向はごく緩やかな下り坂です。通常の勾配降下法は急な横幅方向に強く反応するため、谷の左右の壁を行ったり来たりするジグザグ運動に計算を浪費し、肝心の谷底方向にはなかなか進めません。モーメンタムを入れると、左右の動きは毎回逆向きなので慣性の中で打ち消し合い、谷底方向の動きは毎回同じ向きなのでどんどん蓄積されて加速します。結果として、同じ学習率でもはるかに速く谷を下れるのです。
もう1つの例が学習曲線の停滞です。深いネットワークの学習で、誤差が数十エポックにわたり横ばい(プラトー)になった後に突然また下がり始める現象はよく観察されます。モーメンタムはこの横ばい区間を「勢いで通過する」ことを狙った手法であり、学習初期の立ち上がりの速さにも寄与します。
⚠️ よくある誤解・紛らわしい用語
- 鞍点=局所最適解ではない — 鞍点はある方向では極小、別の方向では極大の点で、全方向で極小の局所最適解とは区別されます。高次元では鞍点の方が問題になりやすいとされます。
- 「常に加速するだけ」という誤解 — モーメンタムは加速装置であると同時に、方向転換時には過去の速度が逆向きに働いてブレーキになります。「過剰な飛び出しを防ぐ」役割まで含めて理解しましょう。
- モーメンタム=学習率の自動調整、という混同 — 学習率をパラメータごとに調整するのは AdaGrad や RMSprop の特徴です。モーメンタム自体は「過去の更新方向を加える」手法で、両者は別のアイデアです(Adamは両方を組み合わせています)。
- バッチノーマリゼーション等との混同 — 学習を安定化させる技術は他にもありますが、モーメンタムはあくまで重み更新則(最適化手法)の工夫です。
📝 試験でのポイント
- 「物理の慣性を応用し、現在の更新方向に前回の更新方向を加える手法はどれか」という定義問題が基本形です。
- 対処する問題として鞍点問題・プラトーでの学習停滞が挙げられる点は、選択肢の判別材料として頻出が想定されます。鞍点の定義(ある次元で極小・別の次元で極大)も一緒に問われます。
- 「1990年代に提唱された」という時期の記述は正誤判定に使われ得ます。
- AdaGrad・RMSprop・Adam がモーメンタムの後に生まれた改良の系譜である、という位置関係を問う出題も想定されます。
📚 まとめ
モーメンタムは、1990年代に提唱された最適化手法で、物理の慣性を応用し「現在の更新方向に前回の更新方向を加える」ことで学習を加速します。勾配がほぼゼロになる鞍点付近やプラトーでの停滞を勢いで突破し、方向転換時には過去の速度がブレーキとなって過剰な飛び出しも防ぎます。AdaGrad・RMSprop・Adam へと続く最適化手法の系譜の出発点として、仕組みと効果をセットで押さえておきましょう。
