勾配降下法
ニューラルネットの学習の正体は、損失(誤差)を一番低くするパラメータへ少しずつ下ること。その一歩一歩を体感します。
パラメータ
0.10
2.8
ステップ数
0
現在の x
—
損失 L(x)
—
勾配 L'(x)
—
損失曲線 L(x)
現在のパラメータ
その点での勾配(接線)
これまでの軌跡
ニューラルネットは「予測の誤差=損失」を小さくするようにパラメータを調整します。
手がかりは 勾配(傾き) ── いまの場所で損失曲線がどちらに傾いているか。傾きと逆向きに進めば下れます。
更新式は
手がかりは 勾配(傾き) ── いまの場所で損失曲線がどちらに傾いているか。傾きと逆向きに進めば下れます。
更新式は
x ← x − 学習率 × 勾配。学習率が小さすぎると遅く、大きすぎると行き過ぎて発散します。
スライダーで両極端を試してください。
いま何が起きている?
ここがディープラーニングの核心
- 学習=損失を下げる方向(勾配の逆)へパラメータを更新し続けること。
- 学習率が大きすぎると谷を飛び越えて発散、小さすぎるとなかなか収束しない。
- この曲線には谷が 2 つ。スタート位置によっては 浅い谷(局所最適)に捕まり、深い谷(大域最適)に届かない。
- 実際のネットはパラメータが何百万次元 ── 各次元で同じ「傾きを下る」を一斉にやっています。