1行定義
過学習とは、モデルが学習データのノイズまで覚え込み、学習データではよく当たる一方で、未知のデータに対する予測の精度が下がる状態のことです。
くわしく
過学習は、モデルが学習データに合わせ込みすぎて、新しいデータに対する予測が悪くなる状態です。試験勉強にたとえると、問題集の答えを丸暗記して、同じ問題なら満点を取れるのに、少し形を変えた問題には答えられない状態です。
なぜ起こるのか
学習データには、本来の規則性に加えて、測定の誤差や偶然のばらつき(ノイズ)が含まれます。データの量に比べてモデルの表現力が高すぎると、規則性だけでなくノイズまで覚えてしまいます。主な原因は次のとおりです。
- データの件数が少ない
- 特徴量やパラメータの数が多く、モデルが複雑すぎる
- ニューラルネットワークで学習を長く続けすぎる
見つけ方
機械学習で目指すのは、学習に使っていない未知のデータでも正しく予測できること、つまり汎化性能の高さです。そこで、データを学習用と検証用に分け、両方の誤差を比べます。学習を進めると学習データの誤差は下がり続けるのに、検証データの誤差が下げ止まったり上がり始めたりしたら、過学習が起きています。学習の進み具合と誤差の関係を表したグラフを学習曲線といいます。
主な対策
- 学習データを増やす(画像なら、回転や反転で水増しするデータ拡張も使います)
- 正則化で、パラメータの値が大きくなりすぎないように罰則を加える
- ドロップアウトで、学習中に一部のニューロンを無作為に無効にする
- 早期終了で、検証データの誤差が悪化し始めた時点で学習を止める
- 特徴量を絞る、より単純なモデルを選ぶ
反対に、モデルが単純すぎて学習データの傾向すらとらえられず、学習データでも検証データでも誤差が大きいままの状態を未学習(学習不足)といいます。複雑さは上げすぎても下げすぎてもうまくいきません。ちょうどよい複雑さを探すことが、モデル選択の中心的な課題です。
覚え方
「練習問題だけ得意で本番に弱いのが過学習」と覚えます。
G検定での出題
出題のされ方
学習データと検証データの誤差の推移から過学習を見抜く形や、正則化・ドロップアウト・早期終了・データの追加といった対策の選択、未学習との違いが問われます。
◯×チェック
次の文が正しいか、誤りかを選んでください。
-
学習データの件数を増やすことは、過学習を抑える方法の1つである。
答えを見る
答え ◯ 正しい
データが多いほど、偶然のばらつきに合わせ込みにくくなります。画像では、回転や反転で水増しするデータ拡張もよく使われます。
-
過学習が起きているかどうかは、学習データに対する誤差の推移だけを見れば判断できる。
答えを見る
答え × 誤り
過学習が起きても、学習データの誤差は下がり続けます。検証データの誤差と比べ、差が開いていくかどうかで判断します。
-
学習データでも未知のデータでも誤差が大きいままの状態は、過学習ではなく未学習と呼ばれる。
答えを見る
答え ◯ 正しい
未学習はモデルが単純すぎて傾向をとらえきれていない状態です。過学習とは逆の方向の失敗です。