次数 の決め方
次に、多項式の次数 は、どう選べばよいのでしょうか。
この問題はモデル選択(model selection)と呼ばれています。
それでは、実際に の値をいろいろと変えてみたものを見てみましょう。
(図 作成中)
次数 が小さすぎる場合、ほとんどの訓練データへの当てはまりが悪いのが分かります。
反対に、次数 が大きすぎる場合、訓練データへの当てはまりが非常に良くなっています。例えば、次数 の例では、 となっていて、誤差が無い状態です。
では の場合が一番良いのでしょうか。
そうではなさそうですよね。
関数の形が発振したようにぐにゃぐにゃになってしまっています。
このような状態では、訓練データに対する当てはまりが良すぎて、新しいデータ、つまりテストデータに対しては、うまく目標値を予測することができません。
この状態を、過学習(over-fitting)とよびます。
では、よい次数 はどうやって選べばよいのでしょうか。
…答えは単純です。
いろいろとMを変えてみて、それぞれについて誤差 を求め、比較すればいいのです。
実際には、平均二乗平方根誤差(RMS error, root-mean-square error)という指標を使います。
この指標は、
- データ数 で誤差関数を割っているため、異なるデータ数をもつデータに有効
- 平方根をとっているため、目標値 と単位が揃う
というメリットがあります。
次数 の場合の、 を訓練集合とテスト集合それぞれについて調べてみると、以下のような結果になりました。
(図 作成中)
次数が高い多項式は次数が低い多項式を特殊な場合として含むので、次数が高くなるにつれてよいモデルになりそうですが、結果は異なります。
これは多項式の次数が高すぎると、データに含まれるノイズに敏感になってしまうためと考えることができます。
データ集合のサイズを大きくする
今度は、次数 を固定したうえで、データ集合 のサイズを変えてみましょう。
(図 作成中)
どうでしょうか。
先ほど問題になっていた複雑な多項式モデル ですが、データ数 が増えたことで過学習が緩和されていることが分かります。
訓練データの数が大きくなると、より複雑なモデルをデータに当てはめることができます。
この議論で行くと、入手できる訓練データの数によって、モデルの複雑さ(この場合の次数 )を選ばなくてはならなくなってしまうので、違和感があります。
限られたサイズの訓練データに対して複雑で柔軟なモデルを使うことができるようにするために、正則化(regularization)というテクニックがあります。