山の頂上から谷底へ下りたい。最も急な坂を探し、その方向に一歩進む。これを繰り返す。勾配降下法はこのシンプルなアイデアである。100年以上前から知られていた手法が、なぜか巨大なニューラルネットワークで驚くほどうまく機能する。
勾配降下法 学習率 SGD Adam 最適化
勾配降下法の基本
勾配降下法(Gradient Descent)
パラメータ θ の更新則:
θ ← θ - η∇L(θ)
η: 学習率(ステップサイズ)
∇L(θ): 損失関数の勾配
勾配の逆方向(最も減少する方向)にパラメータを動かす。
学習率の重要性
| 学習率 | 挙動 | 問題 |
|---|---|---|
| 小さすぎる | 少しずつ進む | 収束が遅い、局所最適に陥りやすい |
| 大きすぎる | 大きく飛ぶ | 発散する、最適解を飛び越える |
| 適切 | バランスよく進む | 試行錯誤で見つける必要あり |
勾配降下法の変種
バッチ勾配降下法
全データを使って勾配を計算。正確だが計算コストが高い。
確率的勾配降下法(SGD)
SGD(Stochastic Gradient Descent)
1サンプル(またはミニバッチ)ごとに更新。
ノイズが入るが、局所最適から脱出しやすい。
計算効率が良い。現代の標準。
モメンタム
モメンタム(Momentum)
v ← βv + ∇L(θ)
θ ← θ - ηv
過去の勾配を「慣性」として蓄積。振動を抑え、収束を加速。
Adam
Adam(Adaptive Moment Estimation)
モメンタム + 学習率の適応的調整。
パラメータごとに学習率を自動調整。
現在最も広く使われるオプティマイザの一つ。
主要なオプティマイザ比較
| 名前 | 特徴 | 用途 |
|---|---|---|
| SGD | シンプル、汎化性能が良いことも | 画像分類など |
| SGD + Momentum | 収束が速い | 一般的 |
| Adam | 適応的、チューニングが楽 | NLP、Transformerなど |
| AdamW | Adam + 正しい重み減衰 | 大規模モデル |
実務での応用
WEB開発での応用
A/Bテスト最適化:多腕バンディットで探索と活用のバランス。
パラメータチューニング:システムの設定値を最適化。
数値最適化:コスト関数の最小化(物流、価格設定)。
AI/MLでの応用
ニューラルネットワーク訓練:すべての学習は勾配降下法の変種。
学習率スケジューリング:訓練の進行に応じて学習率を調整。
ウォームアップ:最初は小さい学習率から始める。
勾配クリッピング:勾配爆発を防ぐため上限を設定。
深掘りリンク
- Wikipedia: 勾配降下法
- 論文:Kingma & Ba (2014) "Adam: A Method for Stochastic Optimization"
- 動画:Sebastian Ruder "An overview of gradient descent optimization algorithms"
- 次のステップ:2次最適化、ベイズ最適化