【こうばいこうかほう】
勾配降下法 とは?
最終更新:
💡 山の斜面を下りながら谷底を探す「最適解探しの登山術」
損失関数の勾配と逆の方向へパラメーターを繰り返し更新し、損失を小さくすることを目指す最適化手法。機械学習のモデルの学習に使われる。
📌 このページのポイント
- 損失(予測の誤差など)を小さくするパラメーターを探す
- 現在の勾配を計算し、その逆の方向へ更新する
- 学習率は勾配に掛ける係数で、更新の大きさを調整する
- 全データ・1件・一部のデータを使う方法がある
勾配降下法って何を「降下」するの?
損失関数の値だよ。グラフを山に見立てて、低い場所を目指すイメージだね。今いる場所の勾配を計算し、その逆の向きにパラメーターを動かす。更新後の損失を調べて、また勾配を計算するんだ。
なんで「少しずつ」移動するの?一気に谷底に行けないの?
関数によっては解を直接求められるけれど、複雑なモデルでは繰り返し更新する方法が役立つよ。学習率という係数を勾配に掛けて、更新量を決める。大きすぎると行き過ぎたり、損失が下がらなかったりするし、小さすぎると進みが遅くなるんだ。
バッチ勾配降下法とミニバッチ勾配降下法って何が違うの?
損失を下げていけば、必ず一番よい答えになるの?
必ずとはいえないよ。学習率や損失関数の形に左右されるし、更新がうまく進まないこともある。例えば深いニューラルネットワークでは、勾配がとても小さくなって学習が遅くなる場合がある。損失の変化を見ながら設定やモデルを見直すんだ。
まとめ:ざっくりこれだけ覚えればOK!
「勾配降下法」って出てきたら「傾きを手がかりに、損失を小さくするようパラメーターを調整する方法」と思えばだいたいOK!
📖 おまけ:英語の意味
「Gradient Descent」 = 勾配(傾き)降下(下る)
💬 Gradientは関数の値が増える向きを表す勾配。勾配と逆の向きに進み、損失を下げることを目指すのでDescent(降下)と呼ぶんだよ