最急降下法によるパラメータ更新
最急降下法(Gradient Descent)は、損失関数の値を最小化するようにパラメータを反復的に更新するための基本的な最適化アルゴリズムです。パラメータの更新は、損失関数の勾配(最も急な下り坂の方向)の逆方向に、学習率というステップ幅で進みます。
更新ステップの基本式
パラメータ \(w\) の更新は以下の式で行われます。
$w_{new} = w_{old} - \eta \nabla L(w_{old})$
ここで、
- \(w_{old}\): 更新前のパラメータ値
- \(w_{new}\): 更新後のパラメータ値
- \(\eta\): 学習率(ステップサイズを制御するハイパーパラメータ)
- \(\nabla L(w_{old})\): 現在のパラメータ値 \(w_{old}\) における損失関数 \(L\) の勾配(単一パラメータの場合は微分値 \(\frac{dL}{dw}\big|_{w=w_{old}}\))
今回の問題における計算
与えられた損失関数は \(L(w) = w^2 - 4w + 5\) です。
ステップ1: 勾配の計算
損失関数 \(L(w)\) を \(w\) で微分します。
$\frac{dL}{dw} = \frac{d}{dw}(w^2 - 4w + 5) = 2w - 4$
現在のパラメータ値 \(w_{old} = 3\) における勾配を計算します。
$\nabla L(w_{old}) = \frac{dL}{dw}\bigg|_{w=3} = 2(3) - 4 = 6 - 4 = 2$
ステップ2: パラメータの更新
更新式に、現在のパラメータ \(w_{old} = 3\)、学習率 \(\eta = 0.1\)、計算した勾配 \(2\) を代入します。
$ w_{new} = w_{old} - \eta \nabla L(w_{old})
= 3 - 0.1 \times 2
= 3 - 0.2
= 2.8$
したがって、最急降下法による1ステップ後のパラメータ値は 2.8 です。
最急降下法のポイント
- 学習率 (\(\eta\)): 更新のステップ幅を制御します。大きすぎると最適解を通り過ぎて発散したり、小さすぎると収束が非常に遅くなったりします。適切な設定が重要です。
- 損失関数の形状: この損失関数 \(L(w) = (w-2)^2 + 1\) は、\(w=2\) を頂点とする下に凸の放物線です。勾配は頂点に向かう方向を示し、最急降下法はその逆方向に進むことで損失を最小化します。
- 局所最適解: 損失関数が非凸(複数の谷を持つ)の場合、最急降下法は必ずしも大域的最適解(最も低い谷)に収束するとは限らず、初期値に近い局所最適解(近くの谷底)に陥る可能性があります。
- バリエーション: 計算効率や収束性を改善するために、確率的勾配降下法 (SGD)、ミニバッチ勾配降下法、Momentum、AdaGrad、RMSprop、Adamなど、様々な派生アルゴリズムが存在します。