【こうばいこうかほう】

勾配降下法 とは?

最終更新:
💡 山の斜面を下りながら谷底を探す「最適解探しの登山術」

損失関数の勾配と逆の方向へパラメーターを繰り返し更新し、損失を小さくすることを目指す最適化手法。機械学習のモデルの学習に使われる。

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

参考資料

← 用語集にもどる