過学習シミュレータ
予測モデルがいくら学習データに合っていたとしても、そのモデルで未知の新しいデータをうまく予測できるとは限りません。このシミュレータでは、予測の複雑さを変えながら、機械学習における学習不足・適合・過学習の違いを体験できます。青い点(学習用)とオレンジの点(検証用)への当てはまりを見比べてみましょう。
予測曲線と誤差を比べる
現在1次。学習誤差9.06、検証誤差9.74。
データと予測曲線
同じ傾向から生まれた点です。青い学習用の点だけから予測曲線を作ります。
複雑にすると、予測のずれはどう変わる?
丸印は今選んでいる複雑さです。学習誤差が下がっても、学習に使っていないデータへの予測がよくなるとは限りません。
条件を変えて試すデータの数・ばらつき・表示
20次のままデータを増やすと、検証誤差はどう変わりますか? ばらつきを0にした場合も比べてみましょう。ばらつきはノイズの標準偏差です。
ばらつきを加える前の曲線を、破線で表示します。
データを増やすと、学習誤差と検証誤差の差が小さくなることもあります。差が小さい場合も、その変化を観察してみてください。データ数を変えると学習用の点を配置し直し、検証用の点は保持します。
学習不足・適合・過学習の違い
学習不足
学習不足(アンダーフィッティング)は、モデルが単純すぎて、大まかな傾向を捉えきれない状態です。学習用のデータに対しても、ずれが大きく残ります。
適合
大まかな傾向を捉え、学習に使っていないデータにもよく合う状態です。ばらつきがあれば、ずれが0になる必要はありません。
過学習
過学習(オーバーフィッティング)は、学習用のデータの偶然のばらつきまで拾い、新しいデータへの予測が悪くなる状態です。学習誤差だけでは見抜けません。
このシミュレータの仕組み・誤差の意味
グラフの「学習誤差」「検証誤差」は、点と予測曲線の縦方向のずれを1つの数値にまとめたものです。学習用の点で計算した値が学習誤差、学習に使っていない検証用の点で計算した値が検証誤差です。小さいほど予測がよく当てはまり、0ならすべての点で予測と実際の値が一致します。
この教材では、RMSE(二乗平均平方根誤差)という指標を使います。各点のずれを二乗して平均し、その平方根を取ることで計算します。出力 y と同じ尺度でずれを表し、大きく外れた予測ほど値に強く影響します。
特定の題材や単位を持たない、入力 x と出力 y の架空データです。山と谷がある三次関数にランダムなノイズを加え、多項式回帰の次数を変えて比較しています。次数は表現できる曲線の複雑さを表し、1次は直線、次数を上げるほど細かく曲がれるようになります。
学習用・検証用の点は、同じ曲線と同じ大きさのばらつきから別々に生成しています。学習用の点は数値計算を安定させるために決められた位置に、検証用の点はランダムな位置に配置しています。曲線は学習用の点だけから作り、検証用の点は予測の確認に使います。複雑さを変えてもグラフの目盛りは固定しています。
「データのばらつき」の設定値は、出力 y に加えるノイズの標準偏差です。出力 y と同じ尺度でばらつきの大きさを表し、特定の単位はありません。
ここで比較しているのは1組の学習・検証データです。検証データで複雑さを選んだ後の性能を確かめるには、さらに別のテストデータが必要です。