過学習と正則化
多項式の次数・正則化強度 λ を変えながら、フィット曲線と訓練/検証の損失曲線を観察します L = MSE + λ·‖w‖²
9
λ=0
14
0.18
訓練損失 (MSE)
—
検証損失 (MSE)
—
汎化ギャップ 検証−訓練
—
状態
—
データとフィット曲線
訓練点
検証点
真の関数
フィット
学習曲線:次数 d ごとの 訓練/検証 損失(縦軸 = MSE)
訓練損失
検証損失
現在の次数 d
モデルは訓練データに合うようにパラメータを決めますが、本当に大事なのは未知のデータ(検証データ)での精度です。
次数 d を上げてモデルを複雑にすると、訓練点を完璧に通れるようになり訓練損失は下がります。しかしノイズまで覚えてしまい曲線が激しく波打ち、検証損失はかえって上がります ── これが過学習です。
そこで損失に重みの大きさのペナルティ
次数 d を上げてモデルを複雑にすると、訓練点を完璧に通れるようになり訓練損失は下がります。しかしノイズまで覚えてしまい曲線が激しく波打ち、検証損失はかえって上がります ── これが過学習です。
そこで損失に重みの大きさのペナルティ
λ·‖w‖² を足すL2 正則化(リッジ回帰)を使うと、係数が抑えられ曲線が滑らかになります。λ を上げ過ぎると今度は当てはまらなくなる(未学習)ので、ちょうど良い複雑さを探すのがポイントです。
いま何が起きている?
ここがポイント
- 過学習 ── 訓練損失は下がり続けるのに検証損失が U 字で上がり始める点が、複雑さの限界。
- 正則化 λ·‖w‖² ── 重みの大きさを罰して曲線を滑らかにし、汎化ギャップを縮める。
- データ数 N ── 訓練データを増やすほど高次でも過学習しにくくなる(曲線が安定する)。
- ちょうど良い複雑さ ── 検証損失が最小になる次数・λ がベスト。単純すぎると未学習、複雑すぎると過学習。