【こうばいこうかほう】

勾配降下法 とは?

💡 山の斜面を下りながら谷底を探す「最適解探しの登山術」
📌 このページのポイント
損失 (Loss) パラメータ 損失関数 開始 学習率 (ステップサイズ) 最小値 (ゴール) 勾配降下法とは 傾き(勾配)を計算し 損失が小さくなる方向に パラメータを更新する θ = θ - α∇L(θ) 局所最小値に 注意が必要
勾配降下法のイメージ
ひよこ ひよこ

勾配降下法って何を「降下」するの?

ペンギン先生 ペンギン先生

損失関数のグラフを「山」に見立てて、その谷底(最小値)を目指して下っていくイメージだよ。目が見えない霧の中で山を下りるときに「今足元はどっちへ傾いてるか」を触って確認して、低い方へ一歩踏み出す、という感じだね。

ひよこ ひよこ

なんで「少しずつ」移動するの?一気に谷底に行けないの?

ペンギン先生 ペンギン先生

損失関数の形が複雑すぎて、数学的に「谷底はここ」と一発で計算できないんだよ。だから勾配(今の傾き)を手がかりに少しずつ移動する。特にニューラルネットワークは何百万ものパラメーターがあるから、一気に解を求めるのは現実的じゃないんだ。

ひよこ ひよこ

バッチ勾配降下法とミニバッチ勾配降下法って何が違うの?

ペンギン先生 ペンギン先生

全データを使って勾配を計算するのがバッチ、1件ずつ使うのが確率的(SGD)、その中間がミニバッチだよ。実際の学習では32・64・128件のミニバッチが多く使われる。全データだと計算が正確だけど遅くて大量メモリが必要、1件だと速いけど方向がブレブレになる。ミニバッチはその折衷案で、実用的なバランスが取れているんだよ。

ひよこ ひよこ

谷底に向かって進んでるはずなのに、途中で止まっちゃうことってあるの?

ペンギン先生 ペンギン先生

これがまさにベテランでも悩む「局所最適」と「鞍点」の問題なんだ。複雑な損失関数には谷底(大域最適)以外に小さなくぼみ(局所最適)があって、そこに落ちると抜け出せない。さらに厄介なのが「鞍点」で、一方向から見ると谷底なのに別の方向から見ると山頂という点で、実はニューラルネットワークではこの鞍点に引っかかるケースが多いことが研究で分かっている。Adamなどの最適化アルゴリズムはこれらをうまく抜け出すための工夫が詰まっているんだよ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「勾配降下法」って出てきたら「誤差が最小になるよう傾きを手がかりに少しずつパラメーターを調整する方法だな」と思えればだいたいOK!
📖 おまけ:英語の意味
「Gradient Descent」 = 勾配(傾き)降下(下る)
💬 Gradient(勾配)は坂道の傾きのこと。その方向に沿って下っていくイメージが名前の由来だよ
← 用語集にもどる