勾配降下法シミュレータ
— 最適化手法の動きを同時に比較する
同じ場所からスタートした複数の最適化手法が、損失関数の谷を下っていきます。 SGDのジグザグ、Momentumの加速、Adamの安定感——教科書の更新式が「動き」として見えます。 学習率を上げすぎたときの発散や鞍点からの脱出もぜひ体験してください。
① 細長い谷でスタート → SGD(灰色)がジグザグして進めないのに、Momentumは谷に沿って加速する
② 学習率をぐっと上げる → SGDが発散する(凡例に「発散!」が出ます)
③ 鞍点のある地形で中央付近からスタート → 勾配がほぼゼロの鞍点で減速し、そこから抜け出せるか比べる
💡 地形をクリックするとスタート地点を変更できます
背景=損失の等高線(暗いほど低い)/ ★=最小値 / 線=各オプティマイザの軌跡
各最適化手法の更新式(E資格頻出)
すべての出発点は勾配降下法 \(\theta \leftarrow \theta - \eta \nabla L\) です。 そこに「慣性」や「学習率の自動調整」を足したのが各手法—— シミュレータの動きと式を対応させて覚えましょう。
| 手法 | 更新式 | 動きの特徴(シミュレータで確認) |
|---|---|---|
| SGD | \(\theta \leftarrow \theta - \eta\, g\) | 勾配の向きへ素直に進む。細長い谷ではジグザグして遅い |
| Momentum | \(v \leftarrow \beta v - \eta\, g,\quad \theta \leftarrow \theta + v\) | 速度\(v\)に慣性を持つ。振動を打ち消しながら谷方向へ加速 |
| Nesterov(NAG) | \(v \leftarrow \beta v - \eta\, \nabla L(\theta + \beta v),\quad \theta \leftarrow \theta + v\) | Momentumの改良版。更新先を見越した位置で勾配を評価し、行き過ぎを先回りで抑える |
| AdaGrad | \(h \leftarrow h + g \odot g,\quad \theta \leftarrow \theta - \dfrac{\eta}{\sqrt{h+\varepsilon}}\, g\) | 勾配の2乗を蓄積し続けるため、進むほど歩幅が縮み、後半は止まりがち |
| RMSProp | \(h \leftarrow \beta h + (1-\beta)\, g \odot g,\quad \theta \leftarrow \theta - \dfrac{\eta}{\sqrt{h+\varepsilon}}\, g\) | 2乗勾配を指数移動平均にして、AdaGradの「止まる」欠点を解消 |
| Adam | \(m \leftarrow \beta_1 m + (1-\beta_1) g,\;\; v \leftarrow \beta_2 v + (1-\beta_2) g \odot g\) \(\hat m = \dfrac{m}{1-\beta_1^t},\;\; \hat v = \dfrac{v}{1-\beta_2^t},\quad \theta \leftarrow \theta - \dfrac{\eta\, \hat m}{\sqrt{\hat v}+\varepsilon}\) |
Momentum+RMSPropのいいとこ取り+バイアス補正。多くの場面で安定 |
※ \(g = \nabla L(\theta)\)。数式は当サイトの最適化の解説ページと同じ形(AdaGrad・RMSPropのεは\(\sqrt{h+\varepsilon}\)の中)に揃えています。解説ページで学習率を\(\alpha\)・\(\alpha_0\)と表記している箇所は、本ツールでは\(\eta\)に統一しています。 実装値:\(\beta=0.9\)(Momentum・Nesterov)、\(\beta=0.99\)(RMSProp)、\(\beta_1=0.9,\ \beta_2=0.999\)(Adam)、\(\varepsilon=10^{-8}\)。Nesterovは表示切替から有効化できます。
「細長い谷」でSGDがジグザグする理由
細長い谷(縦方向に急・横方向に緩やか=条件数が悪い関数)では、 勾配はほぼ「急な壁」の方向を向きます。SGDはその向きへ律儀に進むため、 壁と壁の間を往復するジグザグになり、谷底方向にはなかなか進めません。 Momentumは往復成分が慣性で打ち消し合い、谷方向の成分だけが積み重なるため速い—— シミュレータの軌跡は、この説明をそのまま絵にしたものです。
E資格 練習問題
最適化アルゴリズムに関する記述として、正しいものはどれか。
- AdaGradは勾配の2乗和を蓄積し続けるため、学習が進むにつれ実効的な学習率が小さくなる
- Momentumは勾配の2乗の指数移動平均を用いて学習率を調整する手法である
- AdamはMomentumの機構のみを取り入れた手法で、学習率の調整は行わない
- RMSPropはAdaGradと異なり、勾配の1乗(生の勾配)を蓄積する
解答と解説を見る
正解:A
AdaGradは \(h \leftarrow h + g \odot g\) と蓄積し続けるため分母 \(\sqrt{h}\) が増え続け、実効学習率が単調に減少します(シミュレータで後半止まりがちなのはこのため)。
BはRMSPropの説明(Momentumは速度の慣性)、CはAdamがMomentum+RMSPropの両方を取り入れている点が誤り、
DはRMSPropも2乗勾配(の指数移動平均)を使うため誤りです。
最適化の理論(数式の導出・各手法の位置づけ)は 深層モデルのための最適化の解説ページで、 実装コードの読み解きは E資格コーディング対策コース・レッスン6で深められます。
\ 公式LINE・登録無料 /
友だち追加で4大特典をプレゼント中🎁
E資格ミニ模試(全15問)/覚えておくべき数式チェック49本
医療現場の生成AI安全活用ガイド/医療AI用語事典100