最終更新日:2026年10月3日
fe fe-technology basic-theory ai
まず結論
過学習(Overfitting)とは、学習に使ったデータに合わせすぎて、未知のデータに対する予測がうまくいかなくなる状態です。 過適合とも呼びます。
学習に使っていない新しいデータにも対応できる能力を、汎化性能といいます。
科目Aでは、次の組合せが判断の手掛かりです。
訓練データではよく当たるのに、学習に使っていないデータでは当たらない → 過学習を疑う。
このページでは、過学習の見分け方と対策を扱います。データから予測の仕組みを作る基本は、機械学習とは?で確認できます。
直感的な説明
練習問題の答えだけを覚えた人を考えてみます。
同じ問題なら正解できますが、数値や条件が少し変わると解けません。練習問題に共通する解き方を身に付けた人なら、初めての問題にも対応できます。
機械学習でも、手元のデータにだけ当てはまる細かい特徴を拾いすぎると、似た種類の新しいデータで失敗します。
例えば、不良品の画像を判定するモデルで、不良品の形状ではなく、訓練画像に偶然写っていた背景模様まで判断に使ってしまう場合です。
目的は、過去のデータへの正解率だけを高めることではなく、新しいデータでも役立つ規則を学ぶことです。
定義・仕組み
訓練データと検証データを分ける理由
ここでは、データから作る予測・分類の仕組みを「モデル」と呼びます。
| 用語 | このページでの役割 |
|---|---|
| 訓練データ | モデルの学習に使うデータ |
| 検証データ | 学習に直接使わず、モデルの設定や学習の止めどきを選ぶために使うデータ |
| テストデータ | モデルの選択・調整を終えた後、最終的な性能の評価に使うデータ |
訓練データだけで評価すると、そのデータに合わせすぎたモデルも高く評価してしまいます。そこで、学習に使っていないデータでも予測結果を確認します。
ただし、検証結果を見ながら調整を繰り返すと、その検証データに合う設定を選びすぎることがあります。最終評価用のテストデータは、調整に使わず残しておきます。
誤差は小さいほどよい
予測と正解のずれを表す指標を、誤差といいます。このページの数値例では、誤差が小さいほど予測がよいと読みます。
- 訓練誤差:訓練データで求めた誤差
- 検証誤差:検証データで求めた誤差
正解率は高いほどよい指標なので、誤差とは数値の読み方が逆です。
過学習と未学習の典型的な違い
同じ課題に取り組む三つのモデルを、同じ訓練データ・検証データと同じ誤差指標で比較したとします。数値は説明用の仮定であり、過学習を判定する共通のしきい値ではありません。
| モデル | 訓練誤差 | 検証誤差 | 読み取るポイント |
|---|---|---|---|
| A | 30 | 32 | 両方とも大きい。必要な規則を捉えられていない未学習の典型例 |
| B | 5 | 7 | 両方とも小さい。この比較では汎化が良好な候補 |
| C | 1 | 25 | 訓練だけよい。過学習を疑う典型例 |
見るポイント:差の大きさだけでなく、訓練誤差と検証誤差それぞれの大きさを確認します。
Aは誤差の差が小さくても、両方で予測を外しています。Cは訓練誤差が最小でも、検証誤差ではBより悪いため、訓練誤差だけでCを選ぶのは不適切です。
未学習(Underfitting)は、モデルが単純すぎるなどの理由で、訓練データの規則性も十分に捉えられていない状態です。「学習を一度も実行していない」という意味に限定されません。
過学習が起こりやすい条件
モデルが表現できる規則の細かさに対してデータが少ないと、データ固有の偶然やノイズまで拾いやすくなります。
例えば、条件分岐で分類する決定木では、分岐を深くしすぎると、ごく少数の訓練例だけに合う条件が増えることがあります。また、反復的に学習するモデルでは、学習を続けるうちに訓練誤差だけが改善し、検証誤差が悪化する場合があります。
ただし、複雑なモデルや長い学習が必ず過学習を起こすわけではありません。学習に使っていないデータでの性能と合わせて判断します。
科目Aでどう出る?
説明文から状態を見分ける
| 選択肢の説明 | 判断する概念 |
|---|---|
| 訓練データの細かな変動に適合しすぎ、未知データで性能が低下する | 過学習 |
| 訓練データの規則性も十分に表現できない | 未学習 |
| 学習していないデータにも適切に予測できる | 汎化性能が高い |
| 学習時にモデルの複雑さなどに制約を加える | 正則化 |
| 検証性能を確認し、改善しなくなった段階で学習を打ち切る | 早期終了 |
対策は「合わせすぎをどう抑えるか」で読む
| 対策 | 過学習を抑える考え方 | 注意点 |
|---|---|---|
| モデルを単純化する | 決定木の深さなどを制限し、細かな偶然まで表現しすぎないようにする | 単純化しすぎると未学習になり得る |
| 正則化する | パラメータの大きさなどに制約・罰則を加え、過度な適合を抑える | 制約を強めれば常によいわけではない |
| 早期終了する | 検証性能を監視し、学習の続けすぎを防ぐ | 訓練誤差だけで止めどきを決めない |
| 適切な訓練データを増やす | 多様な例から共通の規則を学べるようにする | 同じデータの複製だけでは、新しい情報は増えない |
検証データや交差検証は、過学習の兆候を調べ、モデルや設定を選ぶための方法です。評価を行うだけで、モデルが自動的に修正されるわけではありません。
学習途中の表を読む
同じモデルを学習し、各時点の誤差を同じデータと指標で測ったとします。反復回数は、学習処理を繰り返した回数です。
| 学習の反復回数 | 訓練誤差 | 検証誤差 |
|---|---|---|
| 10回 | 20 | 22 |
| 30回 | 8 | 10 |
| 50回 | 4 | 6 |
| 70回 | 2 | 12 |
50回から70回では、訓練誤差は4から2へ改善していますが、検証誤差は6から12へ悪化しています。学習を続けたことで汎化性能が低下した可能性を読み取ります。
提示された四つの時点から検証誤差で選ぶなら、50回時点のモデルが候補です。実際の早期終了では、検証結果の揺れも考慮し、改善が一定回数見られない場合に停止するなどのルールを使います。
どんな場面で使う?
製品の不良判定モデルを導入する際、過去の画像で高い正解率が出たという理由だけで採用すると、新しい製品画像で誤判定するおそれがあります。
学習用と評価用の画像を分け、運用で扱うデータを適切に代表する条件で性能を確認する必要があります。モデルを複雑にしたときも、訓練結果だけでなく検証結果が改善したかを確認します。
過学習はディープラーニングだけの問題ではありません。決定木など、ほかの機械学習モデルでも注意する考え方です。
よくある誤解・混同
訓練データで100%正解なら最もよいモデル?
訓練データへの適合は確認できますが、未知データへの性能は分かりません。訓練で100%正解という事実だけでは、良好な汎化とも過学習とも断定できません。
学習回数を増やせば過学習は解消する?
過学習が進んでいる場合、学習を続けることで検証性能がさらに悪化することがあります。訓練誤差の改善と、汎化性能の改善を区別します。
未知データで性能が悪ければ、必ず過学習?
運用開始後に撮影条件や対象製品が変わるなど、データの性質が学習時から変化した場合も性能は低下します。実務では、訓練・検証の結果だけでなく、評価条件やデータの違いも調べます。
科目Aで過学習を選ぶ手掛かりは、「訓練データに適合しすぎたため、未知データで性能が悪くなった」という因果関係です。
正則化とデータの正規化は同じ?
正則化は、学習時に制約などを加えて過度な適合を抑える考え方です。データの正規化は、値の範囲などをそろえる前処理を指します。目的が異なるので、似た名称だけで選ばないようにします。
確認問題(科目A・オリジナル)
ある分類モデルを同じ訓練データで学習し続けたところ、訓練誤差は減少したが、別に用意した検証データでの誤差は途中から増加した。評価指標とデータの内容は途中で変えていない。この状況の解釈と対応として、最も適切なものはどれか。
- ア:未学習が進んでいるため、訓練誤差が0になるまで必ず学習を続ける。
- イ:過学習が疑われるため、検証性能を基準に学習の止めどきを検討する。
- ウ:汎化性能が改善しているため、訓練誤差が最小のモデルを無条件に採用する。
- エ:未知データでの性能を確認するため、検証データをすべて訓練データに加え、同じデータで評価する。
正解:イ
- ア:訓練誤差だけを下げ続けても、検証性能が改善するとは限りません。
- イ:訓練誤差の改善と検証誤差の悪化が同時に起きており、過学習を疑って早期終了などを検討します。
- ウ:検証誤差は増えているため、この結果から汎化性能が改善したとは判断できません。
- エ:学習に使ったデータだけで評価すると、未知データに対する性能を適切に確認できません。
公式情報・参考リンク
- IPA:基本情報技術者試験シラバス Ver.9.2
- 「基礎理論」の「情報に関する理論」で、機械学習の用語例として過学習、学習・検証・テストデータ、交差検証などが挙げられています。
- scikit-learn公式:Validation curves
- 訓練性能と検証性能を比較して、過学習・未学習を見分ける考え方を確認できます。
- scikit-learn公式:Cross-validation
- 学習用と評価用のデータを分ける理由、モデル調整用の検証データと最終評価用のテストデータの役割を確認できます。
まとめ(試験直前用)
- 過学習は、訓練データに合わせすぎて未知データへの性能が低下する状態。
- 訓練誤差は小さいのに検証誤差は大きいなら過学習を疑う。
- 両方の誤差が大きいのは未学習の典型例。差だけで判断しない。
- 対策はモデルの単純化、正則化、早期終了、適切な訓練データの追加など。
- 学習回数やモデルの複雑さを増やしても、汎化性能が必ず改善するわけではない。