勾配降下法Gradient Descent
誤差が下がる方へ少しずつ動いていく方法
- 勾配降下法は、今いる場所からどちらが下り坂かだけを見て、その方へ少しずつ動いていく方法です。
- 動かす対象はモデルの中の数えきれないほど多くの値で、下がっていくのは答えがどれだけ間違っているかを表す誤差です。
- 地形全体を見渡して一気に正解の場所へ跳ぶことはしません。一歩動いてまた確かめることを何度も繰り返します。
- 一歩をどれだけ大きく動かすかは学習率が、動き方のコツはオプティマイザが受け持ちます。
- 足元が平らになれば止まります。その場所が一番低い底である保証はありません。
目次
1たとえで理解する
地下駐車場に車を入れると、窓がなくて今どの階にいるのか感覚がつかめません。それでも床が下がる方へ坂道をたどっていけば、下の階にたどり着きます。階数の案内板を見ていなくても構いません。今立っている場所で床がどちらへ傾いているかだけ分かればいいのです。
勾配降下法もこう動きます。モデルは今いる場所で誤差が減る方向を確かめ、その方へ少し動きます。動いた場所で傾きをまた確かめ、また少し動きます。この一歩を数十万回繰り返すと、最初よりずっと低い場所まで下りています。
坂道が平らになって、どちらへももう下がれなさそうに見えたら、そこが今日の到着点です。
2くわしく
下がっていくのは「間違いの度合い」
駐車場で下がるのは高さですが、学習で下がるのは誤差です。モデルが出した答えと本当の正解がどれだけ離れているかを一つの数値で測った値です。この数字が大きければまだ上の階、小さければずいぶん下りてきた場所です。
この数字を動かすつまみはモデルの中にあります。学習で調整される値、つまりつながりごとに付いた重みと偏りです。つまみを一つ回すと、誤差が少し上がったり下がったりします。勾配降下法は、このつまみを誤差が下がる方へ少しずつ回していく作業です。
大きなモデルには、つまみが数百万個から数千億個まであります。駐車場でいえば数百万方向へ傾ける床の上に立っているようなもので、絵には描けませんが、計算のやり方は方向がいくつあっても変わりません。つまみが増えても、一つずつ確かめる手間が増えるだけで、やること自体は変わらないのがこの方法の強みです。
傾きは足元しか見ないで分かる
モデルは地形全体を見下ろせません。見えるのは今立っている場所の傾きだけです。つまみを一つほんの少し回したとき誤差がどれだけ上下するかをつまみごとに計算すると、その束がそのまま今いる場所の下り方向になります。
この計算を実際にこなす手順が誤差逆伝播です。答えを出したあと、間違いの度合いを後ろの段階から順にさかのぼって分け、つまみごとに「あなたはこちらへこれだけ」という分け前を取り出します。勾配降下法は、その方向どおりに値を動かす役目を担います。
足元しか見ないことは弱点であり強みでもあります。遠くのどこがもっと低いかは最後まで分かりませんが、地形をすべて調べなくてよいので、つまみが数千億個あっても一歩を計算できます。すべての場所を一つひとつ試す方式だったら、学習は始めることさえできなかったでしょう。
一歩の大きさとコツは別に決める
下り方向が分かったからといって、どれだけ進むかが決まるわけではありません。一歩で動かす量は学習率が別に決めます。大きく取れば速く下りられる代わりに底を通り過ぎて反対側の壁を上ってしまうこともあり、小さく取れば安全ですが一日中同じ階にとどまります。
進み方のコツを整えるのはオプティマイザです。ずっと同じ方向へ下り続けているなら勢いを付け、方向によって一歩の幅を変えることもあります。方向は勾配降下法が、幅は学習率が、コツはオプティマイザが受け持つわけです。三つの役割はそれぞれ別の場所で決まりますが、実際に体に染みついた一歩として現れるのはいつも一つの動きです。
平らに見えても底とは限らない
下りていくと、四方が上り坂の場所に出くわすことがあります。もう下がれる先がないので、足が止まります。ですが、その場所が駐車場の一番下の階だという保証はありません。中間階の片隅にある浅いくぼみかもしれません。
それでも実際の学習がうまく進むのは、つまみがとても多くなると四方が完全にふさがれた浅いくぼみはまれになり、たいていの止まり場所が十分に低いからです。データを少しずつ分けて見ると足元の傾きが毎回わずかに変わることも、浅いくぼみから抜け出す助けになります。止まった場所が本当に十分低いかどうかは、結局そこから答えを出させてみて確かめるしかありません。
3もう少し正確に
勾配降下法は、誤差を測る関数を値ごとに微分して得た勾配の逆方向へ、値を少しずつ更新する手順です。勾配はその場所でしか正しくない情報なので、一度に大きく動かすと方向がずれます。そのため小さく何度も動かす方式を取り、この更新一回をステップと呼びます。ステップを数える単位とデータを一巡する単位が違う点も、あわせて知っておくとよいでしょう。呼び方は一つでも、値をどうまとめて見てから一歩動かすかによって、実際の挙動は細かく分かれます。
たとえがずれる点もあります。駐車場の床は固定されていますが、学習ではどのデータを見て傾きを測ったかによって足元が毎回少しずつ変わります。データ全体ではなくまとまり単位で傾きを測る方式が一般的で、このときは足元が少し揺れる代わりにずっと頻繁に一歩を動かせます。また駐車場は上下がはっきりしていますが、実際の地形は方向が数百万あり、人が思い浮かべる坂道の絵とはずいぶん違います。
4やってみる
5よくある誤解
勾配降下法はいつも一番良い答えを見つけてくれると思われがちですが、実際には近くの低い場所で止まることが多く、その場所でも十分使える場合がほとんどです。
誤差は一歩ごとに必ず減ると考えられがちですが、実際には上下しながら全体としては下がっていきます。
勾配降下法が正解を計算してくれると思われがちですが、実際にはどちらへ進むかを教えてくれるだけで、動かす作業は数えきれないほど繰り返す必要があります。
7ひとこと要約
つまり勾配降下法は足元の傾きだけを見て誤差が下がる方へ少しずつ動いていく、学習の基本の歩き方です。
誤りや、もっと良いたとえがありますか? 修正を提案する · 最終更新2026-09-02