【こうばいこうかほう】
勾配降下法 とは?
💡 山の斜面を下りながら谷底を探す「最適解探しの登山術」
📌 このページのポイント
- 損失(誤差)を最小にするパラメーターを探す手法
- 現在地の「傾き」を計算して、低い方向へ少し移動を繰り返す
- 学習率でどれだけ移動するかを調整する
- バッチ・ミニバッチ・確率的など複数の種類がある
勾配降下法って何を「降下」するの?
損失関数のグラフを「山」に見立てて、その谷底(最小値)を目指して下っていくイメージだよ。目が見えない霧の中で山を下りるときに「今足元はどっちへ傾いてるか」を触って確認して、低い方へ一歩踏み出す、という感じだね。
なんで「少しずつ」移動するの?一気に谷底に行けないの?
損失関数の形が複雑すぎて、数学的に「谷底はここ」と一発で計算できないんだよ。だから勾配(今の傾き)を手がかりに少しずつ移動する。特にニューラルネットワークは何百万ものパラメーターがあるから、一気に解を求めるのは現実的じゃないんだ。
バッチ勾配降下法とミニバッチ勾配降下法って何が違うの?
谷底に向かって進んでるはずなのに、途中で止まっちゃうことってあるの?
これがまさにベテランでも悩む「局所最適」と「鞍点」の問題なんだ。複雑な損失関数には谷底(大域最適)以外に小さなくぼみ(局所最適)があって、そこに落ちると抜け出せない。さらに厄介なのが「鞍点」で、一方向から見ると谷底なのに別の方向から見ると山頂という点で、実はニューラルネットワークではこの鞍点に引っかかるケースが多いことが研究で分かっている。Adamなどの最適化アルゴリズムはこれらをうまく抜け出すための工夫が詰まっているんだよ。
まとめ:ざっくりこれだけ覚えればOK!
「勾配降下法」って出てきたら「誤差が最小になるよう傾きを手がかりに少しずつパラメーターを調整する方法だな」と思えればだいたいOK!
📖 おまけ:英語の意味
「Gradient Descent」 = 勾配(傾き)降下(下る)
💬 Gradient(勾配)は坂道の傾きのこと。その方向に沿って下っていくイメージが名前の由来だよ