過学習(オーバーフィッティング)とは?AIが「丸暗記」して失敗する仕組みと対策

過学習(オーバーフィッティング)とは何か。AIが訓練データに合わせすぎて新しいデータに対応できなくなる現象を、過少適合との違い、バイアス-バリアンスのトレードオフ、訓練/検証/テスト分割、正則化・早期終了・ドロップアウトといった対策、そして大規模モデルで観測される二重降下まで、図表で解説します。

過学習(オーバーフィッティング)とは?AIが「丸暗記」して失敗する仕組みと対策

過去問の答えを丸暗記して満点を取った生徒が、少しひねった本番の試験ではまるで解けなかった——そんな話を聞いたことがあるでしょう。AIにもこれとそっくりの失敗が起きます。それが 過学習(オーバーフィッティング、overfitting) です。

過学習は、機械学習を語るうえで避けて通れない最重要の落とし穴のひとつです。AIモデルを自社データで訓練したら高い精度が出たのに、いざ本番のデータに使うとまるで役に立たない——その背後にはたいてい過学習があります。そして、新しいAIモデルが「ベンチマークで高得点」と発表されたとき、その数字を鵜呑みにできない理由のひとつも、実はこの過学習に深く関わっています。

この記事では、過学習とは何かを、定義・原因・見抜き方・対策という4つの角度から、数式をほとんど使わずに掘り下げます。さらに、近年の大規模モデルで観測されている「二重降下(double descent)」という、教科書の常識をひっくり返す逆説的な現象にも触れます。AIの性能の数字を正しく読むためのリテラシーとして、知っておく価値のあるテーマです。

過学習とは:「学習」ではなく「丸暗記」

英語版Wikipediaは過学習を「特定のデータ集合にあまりに近く、あるいは完全に対応してしまう分析を作り出すことであり、その結果、追加のデータへの適合や将来の観測の予測が信頼できなくなる可能性がある」1と定義しています。

噛み砕けば、過学習とは モデルが訓練データに合わせすぎてしまい、新しいデータに対応できなくなる 現象です。Wikipediaは、過学習が起きるのは「モデルが、トレンドから汎化するよう『学習する』のではなく、訓練データを『丸暗記する』ようになり始めたとき」1だと説明します。冒頭の試験のたとえがまさにこれで、問題の解き方という本質(トレンド)を学ぶのではなく、過去問の答えそのもの(訓練データ)を覚えてしまった状態です。

ここで対になる重要な言葉が 汎化(generalization) です。汎化とは、訓練に使っていない未知のデータに対しても正しく機能する能力のことで、機械学習が本当に目指しているのはこの汎化です。Wikipediaは、フィットしたモデルは新しいデータに対して元の訓練データより性能が落ちるのが普通で、この性能低下を “shrinkage”(縮小)と呼ぶ1と述べています。訓練時の高い精度は、必ずしも本番での性能を保証しないのです。

過少適合との対比:両極端のあいだを狙う

過学習の反対側にあるのが 過少適合(アンダーフィッティング、underfitting) です。Wikipediaは過少適合を「数学的モデルがデータの背後にある構造を十分に捉えられないこと」1と定義します。これは、勉強不足で過去問のパターンすらつかめていない生徒に当たります。

機械学習では、この両極端のあいだの「ちょうどよい」ところを狙う必要があります。単純すぎるモデルはデータの本質を捉えられず(過少適合)、複雑すぎるモデルはノイズまで覚え込んでしまう(過学習)。

状態訓練データでの成績新しいデータでの成績たとえ
過少適合低い低い勉強不足でパターンを掴めない
ちょうどよい(汎化)高い高い解き方を理解している
過学習非常に高い低い答えを丸暗記しただけ

注目すべきは、過学習したモデルは 訓練データでの成績だけは非常に良く見える 点です。だからこそ厄介で、訓練時の数字だけを見ていると「優秀なモデルができた」と勘違いしてしまいます。本当の実力は、訓練に使っていないデータで測らなければわかりません。

なぜ過学習は起きるのか

過学習が起きる主な要因は、大きく2つに整理できます。

ひとつは モデルが複雑すぎる こと。モデルの表現力(パラメータ数など)がデータの量や複雑さに対して過剰だと、モデルはデータの本質的なトレンドだけでなく、たまたま紛れ込んだノイズや例外まで律儀に覚え込む余力を持ってしまいます。覚える「容量」が大きすぎると、丸暗記に走りやすいのです。

もうひとつは データが少ない、あるいは偏っている こと。学習データが少なければ、モデルはわずかな例の細部に過剰に引きずられます。Wikipediaも、訓練データを増やすことが「ノイズではなく背後にあるパターンにモデルを適合させる助けになる」1と指摘しています。少ない過去問を何度も解けば答えを覚えてしまうのと同じで、データの多様性が乏しいほど過学習は起きやすくなります。

どう見抜くか:訓練・検証・テストの3分割

過学習は訓練データ上では見えません。では、どうやって検知するのでしょうか。実務での基本は、手元のデータを役割の違う3つに分けることです。

  • 訓練データ(training set): モデルの学習そのものに使う。
  • 検証データ(validation set): 学習の途中で性能を確かめ、設定を調整するために使う。学習には直接使わない。
  • テストデータ(test set): 最後に一度だけ、本番を想定して実力を測るために使う。

ポイントは、検証データとテストデータを 学習に使わない ことです。学習に使っていないデータでの成績こそが、未知のデータへの汎化能力の目安になります。訓練データでの成績が上がり続けているのに、検証データでの成績が途中から悪化し始めたら、それは過学習が始まったサインです。

誤差
 │\
 │ \____ 検証データの誤差(途中から上昇=過学習の始まり)
 │  \  /
 │   \/………………………… ← ここで学習を止めるのが理想
 │   /\
 │  /  \______ 訓練データの誤差(下がり続ける)
 │ /
 └──────────────────────► 学習の進み具合

新モデルの「ベンチマーク高得点」を鵜呑みにできない理由のひとつも、ここにあります。評価に使うテスト問題が、訓練データに混ざってしまっている(データ汚染)と、それは「答えを知っている試験」を受けているのと同じで、本当の汎化能力を過大評価してしまうからです。この点はAIベンチマークの読み方の記事でも扱っています。

バイアスとバリアンスのトレードオフ

過学習と過少適合の関係を、もう一段深く整理する枠組みが バイアス-バリアンスのトレードオフ(bias–variance tradeoff) です。Wikipediaは「バイアス-バリアンスのトレードオフは、過学習したモデルを克服するためによく用いられる」1と述べています。

  • バイアス(bias): モデルの仮定が単純すぎることによる、的外れな誤り。高いと過少適合になる。
  • バリアンス(variance): 訓練データのわずかな違いに敏感に反応しすぎることによる、ばらつき。高いと過学習になる。

Wikipediaの整理では、過少適合は「高バイアス・低バリアンス」を、過学習は「低バイアス・高バリアンス」を生みます1

バイアスバリアンス状態
単純すぎるモデル高い低い過少適合
複雑すぎるモデル低い高い過学習

的当てにたとえると、バイアスは「狙いが的の中心からずれている」こと、バリアンスは「狙いは合っていても矢が散らばる」ことです。両方を同時にゼロにはできず、片方を下げるともう片方が上がりやすい——だから「トレードオフ」と呼ばれます。よいモデルとは、この2つの誤りのバランスが取れたモデルなのです。

過学習への対策

過学習を防ぐ手法は数多く開発されてきました。Wikipediaは代表的なものとして「モデル比較、交差検証(クロスバリデーション)、正則化、早期終了、枝刈り(プルーニング)、ベイズ事前分布、ドロップアウト」1を挙げています。要点を整理しましょう。

データを増やす。 最も素直な対策です。データが多く多様であるほど、モデルは細部の暗記ではなく本質的なパターンを学ばざるを得なくなります。

正則化(regularization)。 モデルの複雑さに「罰則」を課し、必要以上に複雑な解を避けさせる手法の総称です。重みが極端に大きくなることを抑えることで、特定のデータへの過剰な適合を防ぎます。

早期終了(early stopping)。 前出の図のように、検証データの成績が悪化し始めた時点で学習を打ち切ります。丸暗記に走る前に勉強をやめる、というシンプルで効果的な方法です。

ドロップアウト(dropout)。 ニューラルネットワーク向けの代表的な手法です。原典は、Nitish Srivastava、Geoffrey Hintonら5名による2014年の論文「Dropout: A Simple Way to Prevent Neural Networks from Overfitting」2です。論文の要旨は「多数のパラメータを持つ深層ニューラルネットは非常に強力だが、過学習は深刻な問題である。ドロップアウトはこの問題に対処する技術だ。その核心は、訓練中にユニットを(その接続ごと)ランダムに脱落させることにある。これによりユニットどうしが過剰に共適応(co-adapt)するのを防ぐ」2と述べています。

ドロップアウトの面白さは、毎回ランダムに一部のニューロンを「お休み」させることで、特定のニューロンの組み合わせに依存しすぎないネットワークを育てる点にあります。論文は、この手法が「過学習を大幅に減らし、他の正則化手法に対して大きな改善をもたらす」2と報告しています。チームで仕事をするとき、毎回ランダムに誰かが欠けても回るよう全員が幅広く力をつける、というイメージに近いでしょう。

対策何をするか直感的なたとえ
データを増やす学習データの量と多様性を増やすたくさんの問題で練習する
正則化複雑さに罰則を課す余計に凝った解答を減点する
早期終了検証成績が悪化したら学習を止める丸暗記する前に切り上げる
ドロップアウト一部のニューロンをランダムに休ませる誰が欠けても回るチームにする

現代の逆説:二重降下(double descent)

ここまでは「モデルを複雑にしすぎると過学習する」という古典的な常識を見てきました。ところが、近年の大規模モデルでは、この常識を覆す不思議な現象が観測されています。それが 二重降下(double descent) です。

この現象を現代の機械学習コミュニティに広めたのが、Mikhail Belkinらによる2019年の論文「Reconciling modern machine learning practice and the bias-variance trade-off(現代の機械学習の実践とバイアス-バリアンスのトレードオフの調和)」3です。論文は、モデルの容量を「補間点」——つまり訓練データを完全に当てはめてしまう点——を超えてさらに増やすと、性能がふたたび向上することを示しました3

古典的な常識では、モデルを複雑にしていくと性能はいったん良くなった後、過学習で悪化する(U字を描く)はずでした。ところが、訓練データを完全に暗記できるほど巨大にしてさらに大きくしていくと、性能が もう一度 良くなり始める。誤差が「下がって・上がって・また下がる」というこの二段階の挙動が、二重降下という名前の由来です。Belkinらの枠組みは、従来のU字型のバイアス-バリアンス関係を包含しつつ、なぜ現代の過剰パラメータなモデル(巨大なニューラルネットワークなど)が、訓練データを完全に当てはめてもなお、よく汎化できるのかを説明する手がかりになっています3

これは、今日のLLMが「パラメータを増やすほど賢くなる」傾向と無関係ではありません。ただし二重降下は現在も研究と解釈が続いている現象であり、「大きくすればいつでも汎化する」という単純な話ではない点には注意が必要です。

ビジネスにとっての示唆

過学習は、AIを業務に導入するうえで実務的な意味を持ちます。社内データでファインチューニングしたモデルの「訓練時の高精度」をそのまま信じてはいけないこと。モデルの良し悪しは必ず、学習に使っていないデータで評価すべきこと。そして、ベンダーが示すベンチマークスコアも、評価データの扱い次第で過大評価され得ること——いずれも過学習という概念を知っていてこそ正しく判断できます。

「訓練データで良い成績=実用で良い成績」ではない。この一見当たり前の、しかし見落とされがちな事実が、過学習というテーマの核心です。AIの数字を読む力をさらに高めたい方は、スコアの意味を整理したAIベンチマークの読み方や、モデルの大きさを表すパラメータ数の記事へ読み進めると、AIの性能評価がより立体的に見えてきます。

Sources

  1. Overfitting - Wikipedia(過学習・過少適合・バイアスバリアンス・対策)
  2. Dropout: A Simple Way to Prevent Neural Networks from Overfitting - Srivastava, Hinton ら、JMLR 15:1929-1958(2014年)。ドロップアウトの原典
  3. Reconciling modern machine learning practice and the bias-variance trade-off - Belkin ら、2019年。二重降下の原典論文

最新のAIニュースを毎日お届けしています。

RSSで購読する 更新をいち早くチェックできます。

他のキーワードで探す →