過学習シミュレータ
— 多項式の次数と正則化の効果を確認する
多項式回帰の次数を上げていくと、曲線は訓練データに嘘のように密着し—— そしてテスト誤差が悪化していきます。これが過学習。 L2正則化(Ridge)のλを上げると、暴れた曲線が滑らかさを取り戻す様子まで、目の前で確かめられます。
テスト誤差(MSE): —
●=訓練データ / ○=テストデータ / 青線=学習した多項式 / 灰破線=真の関数
次数Mを横軸にした誤差カーブ(青=訓練誤差・赤=テスト誤差・▼=現在の次数)※現在のλで計算
過学習とは — 訓練誤差とテスト誤差の乖離
モデルの目的は、訓練データへの当てはまりではなく未知のデータへの予測(汎化)です。 次数の大きい多項式は表現力が高く、訓練データのノイズまで完璧に拾えてしまうため、 訓練誤差は下がり続けるのに、テスト誤差はある点から悪化に転じます。 誤差カーブのグラフで、青(訓練)と赤(テスト)が乖離していくのがまさに過学習のサインです。
- 次数が低すぎる(M=0〜1)……単純すぎてデータの構造を捉えられない=未学習(高バイアス)
- ちょうどよい(M=3前後)……真の構造を捉え、テスト誤差が最小
- 次数が高すぎる(M=10〜)……ノイズまで学習=過学習(高バリアンス)。データを作り直すたびに曲線が大きく変わる(=分散が大きい)ことも確認できます
L2正則化(Ridge)— 大きな係数に罰金を科す
正則化つきの損失関数は次の形です。
$$E(\mathbf{w}) = \frac{1}{2}\sum_{i=1}^{N}\bigl(y_i - f(x_i;\mathbf{w})\bigr)^2 + \frac{\lambda}{2}\lVert \mathbf{w} \rVert^2$$
第2項が係数の大きさへの罰金です。暴れた曲線は巨大な係数の打ち消し合いでできているため、 λを上げて係数を抑えると曲線が滑らかになります。 λを上げすぎると今度は単純化しすぎて未学習側に戻る—— λにも「ちょうどよさ」があることを、シミュレータで確認してください。 なお本ツールの解は正規方程式 \((X^{\top}X + \lambda I)^{-1} X^{\top} \mathbf{y}\) をブラウザ内で解いて求めています。
※ 正則化項を \(\lambda \lVert \mathbf{w} \rVert^2\) と書く流儀(正則化の解説ページの表記)と、 本ツールの \(\frac{\lambda}{2}\lVert \mathbf{w} \rVert^2\) は係数の置き方が違うだけで同じものです(½を付けると微分したとき勾配がちょうど \(\lambda \mathbf{w}\) になります)。 また、係数の絶対値の和を罰するL1正則化(Lasso)にすると、不要な係数がちょうど0になる(スパース化)という別の性質が現れます——L1とL2の違いも試験の定番です。
E資格 練習問題
学習の過程で「訓練誤差は下がり続けているが、検証誤差が途中から上昇に転じた」。 この状況の解釈と対処として、最も適切なものはどれか。
- 未学習であるため、モデルの表現力をさらに高めるべきである
- 過学習が起きているため、正則化・早期終了・データ拡張などを検討すべきである
- 学習率が低すぎるため、学習率を上げるべきである
- 正常な学習の進行であり、そのまま学習を続ければ検証誤差も下がる
解答と解説を見る
正解:B
「訓練誤差↓・検証誤差↑」の乖離は過学習の典型的サインです。
対処は正則化(L1/L2・weight decay)、早期終了(early stopping)、ドロップアウト、データ拡張、モデルの単純化など。
Aは逆効果、Cは無関係、Dは乖離を放置する誤りです。
このシミュレータの誤差カーブ(青と赤の乖離)を思い出せれば、迷わず選べます。
正則化の理論(L1とL2の定義・使い分け)は 正則化の解説ページで、 early stoppingやドロップアウトなどの過学習対策は 汎化性能向上テクニックの解説ページで、 scikit-learnでの体験は 機械学習入門コース・レッスン11で深められます。
\ 公式LINE・登録無料 /
友だち追加で4大特典をプレゼント中🎁
E資格ミニ模試(全15問)/覚えておくべき数式チェック49本
医療現場の生成AI安全活用ガイド/医療AI用語事典100