過学習とは
過学習とは、機械学習のモデルが訓練データには高い精度を示すのに、初めて見るデータでは性能が落ちる状態です。学習の途中で訓練データの細かな癖や偶然のノイズまで覚え込んでしまうことが原因です。
主な原因は、データ量が少ない、特徴量やモデルが過度に複雑、データのばらつきが偏っている、といった条件です。例えば、少数の例から決め手にならないパターンを暗記すると、現場のデータに当てはまらなくなります。
学習では誤差を小さくするようパラメータを調整しますが、自由度が高いほど訓練誤差は下がりやすく、代わりに未知データへの汎化性能が下がります。学習曲線を見ると、過学習が起きる段階から訓練結果と評価結果の差が広がっていきます。
対策としては、訓練とテストを分けて評価する、交差検証を行う、モデルの複雑さを抑える(正則化や特徴量の見直し)、十分で多様なデータを集める、差が開いた時点で学習を打ち切る早期終了などがあります。これらにより実運用で通用するモデルを保ちます。

