勾配降下法 — 損失の谷を下るボール
機械学習の「学習」の正体は、損失という名の谷をひたすら下ること。地形全体は見えなくても、足元の傾きさえ分かれば底へたどり着けます。ボールを転がしながら、学習率ひとつで天国と地獄が分かれる様子を見ていきます。
1. 「損失の地形」を下りていく
モデルのパラメータ w を少し変えると、予測の悪さ(損失 L)も変わります。横軸にパラメータ、縦軸に損失を取ると、そこには地形が現れます。学習とは、この地形の一番低い場所を探すことです。
ただし地形の全体図は見えません。見えるのはいま立っている場所の傾き(勾配)だけ。そこで「傾きが下っている方へ一歩進む」をひたすら繰り返す — これが勾配降下法です。
1次元の谷下り — ボールを転がしてみる
水色=損失カーブ、白いボール=現在のパラメータ、オレンジの点=足あと、緑の矢印=次の一歩(−η×勾配)。キャンバスをクリックするとその位置からやり直せます。学習率を 0.1 → 0.8 → 1.8 → 2.2 と上げて、4つの挙動(のろのろ/するっと/ジグザグ/発散)を見比べてください。「谷ふたつ」ではスタート位置によって浅い方の谷(局所最小)に捕まることもあります。
POINT — 勾配は「最も急な上り」を指す矢印
勾配(gradient)∇L は、その場で損失が最も急に増える方向を指す。だからその逆向きに進めば、最も効率よく下れる。一歩の大きさを決める係数が学習率 η(イータ)。
w ← w − η ∇L(w)
w=パラメータ、L=損失、η=学習率(歩幅)。「傾き × 歩幅」のぶんだけ坂を下る、をひたすら繰り返す
2. 学習率 η — 歩幅がすべてを決める
更新式はこれ以上ないほど単純なのに、実際の学習がうまくいくかどうかは η ひとつで激変します。上のデモで見た4つの顔を整理すると:
| 学習率 | ふるまい | イメージ |
|---|---|---|
| 小さすぎ | 下るには下るが、いつまでも着かない | すり足で山を下りる |
| ちょうどよい | するっと谷底へ収束 | リズムよく駆け下りる |
| 大きすぎ | 谷を挟んで反対側へ飛び移り、ジグザグ発振 | 大股すぎて谷をまたぐ |
| 特大 | 一歩ごとに高い場所へ — 発散 | 跳ねるたびに勢いが増して谷から飛び出す |
注意 — 「損失が下がらない・NaN になる」の第一容疑者
学習中に損失がむしろ増えていく、あるいは NaN になる — 実務で頻出するこの症状の原因は、たいてい学習率が大きすぎること。まず η を 1/10 にして様子を見るのが定石。
3. 細長い谷はニガテ — 2次元で見る勾配降下
パラメータが2個になると、地形は等高線で描けます。勾配は等高線に対して直角な方向。谷が丸ければ最短コースで底へ向かいますが、細長い谷ではそうはいきません。
等高線の上を降下する — 谷の形とジグザグ
青い楕円=等高線(同じ損失の高さ)、オレンジ=降下の軌跡。クリックした場所からスタートし直せます。細長い谷では、急な縦方向が先に発振するので η を上げられず、ゆるい横方向がなかなか進まない — これがジグザグの正体。同じ η でも「丸い谷」に切り替えるとあっさり収束します。
細長い谷では「急な方向に合わせて η を小さくする」しかなく、ゆるやかな方向がほとんど進みません。実は、入力特徴量のスケールがばらばらだと損失の谷は細長くなります。学習前に特徴量を標準化(平均0・分散1に)するのは、谷を丸くして勾配降下を楽にするためです。
POINT — 等高線が丸いほど勾配降下は速い
勾配は等高線と直角。丸い谷なら「直角」がいつも谷底を向くが、細長い谷では崖の方ばかり向いてしまう。特徴量の正規化は、この地形そのものを改善する前処理。
4. 学習率レース — 3つの η で同時スタート
最後に、同じ谷・同じスタート地点から η = 0.01 / 0.1 / 0.9 の3つのボールを同時に転がして、損失の下がり方を競走させてみます。
学習率レース — 損失 vs 反復回数
左=同じ谷を下る3つのボール、右=損失の推移。小さすぎる η(水色)はじわじわとしか下がらず、大きすぎる η(赤)は谷の壁を往復するばかりでやはり進まない。両極端はどちらも遅い — ちょうどよい η(緑)だけが一直線に底へ向かいます。
5. まとめ — 勾配降下法の設計図
- 勾配 ∇L:最も急な「上り」方向。だからその逆へ進む。更新式は w ← w − η∇L。
- 学習率 η:小さすぎ=遅い、大きすぎ=ジグザグ、特大=発散。最重要ハイパーパラメータ。
- 谷の形:細長い谷はジグザグを招く。特徴量の正規化で谷を丸くできる。
- スタート位置:谷が複数あると、どこから出発するかで行き先(局所最小)が変わる。
一歩先へ — 実際の学習はもっと高次元
このページの地形は1〜2次元だが、実際のニューラルネットは数百万〜数十億次元で、谷も無数にある(局所最小・鞍点)。坂を下る勢いを記憶する Momentum、方向ごとに歩幅を自動調整する Adam など「賢い下り方」は、DNN編の「最適化アルゴリズム」で競走させながら学ぶ。