ある判定モデルは、学習に使ったデータに対してはほとんど誤らないのに、 学習に使っていない新しいデータで試すと誤りが目立つ。 このモデルに起きていることの説明として最も適切なものはどれか。
正解:イ
アモデルが単純すぎて、学習に使ったデータの傾向そのものをとらえきれていない。
誤り。これは未学習(学習不足)の状態で、過学習とは逆向きの問題です。 未学習では学習に使ったデータでも誤りが多く出ます。今回は学習データでは ほとんど誤っていないので当てはまりません。学習しすぎか不足かが分かれ目です。
イ学習に使ったデータの細かな特徴まで覚え込み、未知のデータに対応できなくなっている。
正解。過学習の状態です。たまたまそのデータだけに含まれていた細かな癖まで 当てはめてしまうと、共通して使える傾向から離れてしまい、 本番で出会う未知のデータでは当たらなくなります。
ウ入力データに極端な値が少数混ざり、その値だけが判定結果を大きく動かしている。
誤り。これは外れ値の影響についての説明です。極端な値は学習をゆがめる原因に なりますが、その場合は学習に使ったデータに対しても結果が安定しません。 学習時だけ好成績になる理由の説明にはなりません。
エ評価に学習と同じデータを使っており、未知のデータでの性能を確かめられていない。
誤り。これは評価用データの分け方の誤りです。学習に使ったデータで評価すれば 成績はよくなりますが、問題文では学習に使っていないデータで試して差が出ています。 評価の手順自体は正しく踏めています。
過去問を丸暗記した受験生
過去問の答えを丸暗記した受験生は、その過去問なら満点を取ります。 けれども本番で少し表現の変わった問題が出ると、途端に解けません。 機械学習のモデルにも同じことが起こります。これが過学習です。
学習に使ったデータに合わせ込みすぎると、そのデータにたまたま含まれていた 細かな癖まで再現するようになります。癖は他のデータには当てはまらないので、 未知のデータに対する精度が落ちます。
どこで気づき、どう抑えるか
気づくための基本は、手元のデータを学習用と評価用に分けておくことです。 学習に使っていないデータで測って初めて、本番で通用するかが分かります。 学習用でだけ成績が良く、評価用で悪ければ過学習を疑います。
抑える手立てには次のようなものがあります。
- 学習に使うデータの量を増やし、種類にも幅を持たせる
- モデルを必要以上に複雑にしない
- 評価用データでの成績が伸びなくなった時点で学習を打ち切る
似た状態との違い
| 状態 | 学習用データでの成績 | 未知のデータでの成績 |
|---|---|---|
| 過学習 | とても良い | 悪い |
| 未学習(学習不足) | 悪い | 悪い |
| 外れ値の影響 | 安定しない | 安定しない |
「学習データでは良いのに本番で悪い」という食い違いが出てきたら過学習です。 両方とも悪いときは、学習が足りていないほうを疑います。