過学習(オーバーフィッティング)とは?
別の呼び名:過剰適合、オーバーフィッティング、オーバーフィット、Overfitting
1分で解説
過学習とは、機械学習で、AIが学習に使ったデータに合わせすぎてしまい、そのデータではよく当たるのに、初めて見るデータでは外れてしまうことです。
AIは、たくさんの例から決まりを見つけて学びます。でも、例には、偶然のずれや、答えの付けまちがいもまじっています(まとめてノイズと呼びます)。例が少なかったり、AIの作りが複雑で自由すぎたりすると、本当の決まりだけでなく、その偶然のずれまで覚えてしまいます。だから、学習に使ったデータで満点に近くても、それだけでは、よいAIかどうか分かりません。
そこで、学習に使わずに取っておいたデータで確かめます。防ぐには、データを増やす、作りを簡単にする、ちょうどよい所で学習を止める、といった工夫があります。
よくある思い込み
「過学習とは、AIにデータをたくさん学ばせすぎること」
半分だけ合っています。同じデータで学習を何周もくり返しすぎると、過学習が起きることがあります。学習に使わないデータでの誤差(まちがいの大きさ)が増え始めた所で学習を止めるのが、「早期終了」です。でも、データの量が多すぎることが、原因ではありません。むしろ、データが少ないほど、偶然のずれを本当の決まりとまちがえやすく、過学習は起きやすくなります。ふつうは、いろいろな例を多く集めることが、過学習を防ぐやり方の1つです。別の呼び名の「過剰適合」のとおり、行き過ぎているのは、学ぶデータの量ではなく、学習に使ったデータへの合わせ方なのです。
図で解説
たとえるなら
問題集の答えを丸暗記した生徒
問題集でテスト勉強をする、2人の生徒がいるとします。1人は、解き方を考えながら練習し、もう1人は、問題集の答えを丸ごと覚えました。問題集と同じ問題が出れば、2人とも満点です。でも、数字を変えた新しい問題が出ると、解き方を身につけた生徒は解けて、丸暗記した生徒は解けません。この丸暗記が、過学習です。
だから先生は、練習に使っていない問題で、実力を確かめます。AIを、学習に使わずに取っておいたデータで確かめるのと同じです。問題集の点だけを見ていては、2人を見分けられません。
ただ、たとえが合わないところもあります。生徒は、自分が丸暗記したと分かっていますが、AIは自分では気づきません。AIは、まちがいを減らすように中の数(パラメーター)を直していくうちに、本当の決まりを学ぶのと同時に、偶然のずれまで、そのまま覚えてしまうことがあります。また、大きなAIは、学習のデータにぴったり合うまで学んでも、新しいデータでよく当たることがあり、人の丸暗記と同じではありません。
ポイント解説
どうやって見つけるの?
学習に使ったデータだけで成績を測っても、過学習は見つかりません。過学習したAIほど、そのデータではよく当たるからです。そこで、データを分けます。学習に使うデータ(訓練用のデータ)とは別に、学習の途中で成績を確かめるデータ(検証用のデータ)と、最後に確かめるデータ(テスト用のデータ)を取っておきます。分け方の例は、訓練用70%・検証用15%・テスト用15%です。検証用のデータは、学習の途中で何度も見て、止める所や設定を選ぶのに使うので、くり返し使ううちに、そのデータに合わせた選び方になっていきます。だから、最後の確かめには、それまで使っていないテスト用のデータを使います。
学習の途中で、訓練用と検証用のデータの両方で誤差(まちがいの大きさ)を測り、くり返しの回数ごとにグラフにします。はじめは両方とも同じように下がります。あるところから、訓練用では下がり続けるのに、検証用では上がり始めたら、過学習のしるしです。
確かめのデータに、学習のデータと同じ例がまじっていると、過学習を見のがします。同じ例は、検証用とテスト用のデータから取り除きます。たとえば、迷惑メールを見分けるAIで、同じ文のメールを取り除かずにデータを分けると、テスト用のメールの多くを学習の中で見てしまい、テストの成績が実際よりよく見えます。公平に確かめられるのは、新しい例だけです。
なぜ起きるの?
データには、本当の決まりのほかに、偶然のずれや、答えのまちがい(ノイズ)がまじっています。データが少ないと、学習のデータにはたまたまあっても、新しいデータには無い形が多くなります。AIが、それを本当の決まりのように覚えてしまうのが、過学習です。学習のデータが、AIを実際に使う場面のデータをよく表していないとき(たとえば、昼の写真ばかりで学んだAIを、夜の写真にも使うとき)にも起きます。
AIの作りが複雑すぎることも、原因になります。たとえば、なめらかな曲線の上の値に、ノイズを足した30個の点があるとします。これに、まっすぐな線、ほどよく曲がる線、とても細かく曲がる線を合わせてみます。まっすぐな線は、学習の点にさえ合いません。ほどよく曲がる線は、元の曲線にほぼぴったり合いました。とても細かく曲がる線は、ノイズまで覚えてしまい、確かめのデータでの誤差が、けた違いに大きくなりました。
反対に、AIが簡単すぎて、学習のデータでさえよく当たらないことを、学習不足(過小適合)と呼びます。よいAIは、そのあいだの、ちょうどよい所をねらいます。初めて見るデータでも正しく当てる力を、汎化(はんか)と呼びます。
どうやって防ぐの?
まず、データを増やすことです。いろいろな例が多くあれば、偶然のずれは例ごとにばらばらなので、本当の決まりが目立ちます。ほかに、AIの作りを簡単にするやり方と、学習の目当てに、まちがいの小ささだけでなく「複雑すぎないこと」も入れるやり方があります。あとの方を正則化と呼びます。たとえば L2 正則化では、AIの中の数(重み)が大きくなりすぎないように、数の大きさにも罰をつけます(重みの2乗の合計を、まちがいの大きさに足して、両方を小さくしようとします)。重みを0に近づける力が働き、複雑すぎる答え方を避けやすくなります。重みが大きいほど、答え方は複雑になると考えるからです。正則化の強さは、ハイパーパラメーター(学習の前に人が決める設定)の1つで、検証用のデータで選びます。
早期終了は、検証用のデータでの誤差が上がり始めた所で、学習を止めるやり方です。複雑さを計算しなくてよいので手軽です。ただ、ちょうどよい強さの正則化で、じっくり学習させたAIと比べると、それほどよくなることは、まずないとされています。
2014年の論文(Srivastava ほか。トロント大学)は、ニューラルネットワーク(脳の神経のつながりをまねた計算のしくみ)向けの「ドロップアウト」というやり方を、くわしく調べてまとめました。学習のあいだ、ネットワークの中のユニット(人工のニューロン)を、でたらめに選んで一時的に外します。入口と出口のあいだの層(隠れ層)では、それぞれのユニットを半分の確率で残すのが、多くのネットワークと課題で、いちばんよい値に近い、と書いています。ユニットどうしが頼り合いすぎるのを防ぎ、たくさんのちがうネットワークの答えを平均するのに近い効果があります。手書きの数字を見分ける課題(MNIST)では、まちがいの割合が1.60%から1.35%に減りました(まちがいが約16%減った計算です)。6万個の例で、6500万個を超える中の数(パラメーター)を持つ大きなネットワークを学習させても、過学習を防げた、と書いています。
学習のデータで100点なら、よいAI?
そうとは限りません。2017年の論文(Zhang ほか。Google Brain など)は、写真を10種類(飛行機・自動車・鳥・ねこなど)に分ける課題(CIFAR10。学習用の写真5万枚)で、写真の答え(何が写っているかの名前)を全部でたらめに付けかえてから、AIに学習させました。写真と答えのあいだに、決まりは何もありません。それでもAIは、学習の写真の答えを丸ごと覚え、100%正解するようになりました。新しい写真での正解は、当てずっぽうと同じ約10%でした。
本当の答えで学習させた同じAIも、学習の写真では100%で、新しい写真では約86%でした。学習の写真での成績は、どちらも100%で同じです。決まりを学んだのか、丸暗記したのかは、取っておいたデータで確かめないと分かりません。
でたらめの答えを覚えるのにかかった時間も、本当の答えのときより少し長いだけでした。このAIの中の数(パラメーター)は約165万個で、学習の写真の数より、ずっと多くありました。覚えるための場所が、たっぷりあったということです。論文は、ニューラルネットワークには、データを丸ごと覚えられるだけの力があると書いています。また、正則化は、新しいデータでの成績をよくすることがあります。でも、正則化を使わなくても新しいデータでよく当たることがあり、正則化だけで過学習を防ぎきれるわけでもない、と論文は書いています。
大きなAIほど、過学習しやすいの?
昔からの考え方では、AIを複雑にするほど、新しいデータでの誤差は、はじめは減り、ある所から増える(U字の形)とされてきました。教科書にも、学習のデータでの誤差が0のモデル(学習したAI)は過学習していて、ふつう新しいデータではうまくいかない、と書かれてきました。ところが、いまの大きなニューラルネットワークは、学習のデータにぴったり合わせても、新しいデータでよく当たることが多いのです。
2019年の論文(Belkin ほか。オハイオ州立大学・コロンビア大学)は、AIの大きさ(中の数の多さ)を増やしていくと、新しいデータでの誤差が、学習のデータにやっとぴったり合わせられるようになる大きさ(中の数が、ちょうど足りる大きさ)の所で山になり、それより大きくすると、また下がっていくことを、いくつもの種類のAIとデータで示しました。下がった先は、U字のいちばん低い所より低くなることが多い、と書いています。2回下がるので、「二重降下(ダブル・ディセント)」と呼ばれます。
同じ年の研究(Nakkiran ほか。ハーバード大学・OpenAI)は、写真を見分けるAIや翻訳のAIなど、いまの深層学習(たくさんの層を重ねたニューラルネットワークで学ぶこと)のさまざまな課題で、二重降下が起きることを示しました。学習をくり返す回数を増やしたときにも起きました。また、翻訳の課題では、山の近くの大きさのAIで、学習のデータを4.5倍にしたのに、成績が悪くなる場合もありました。データが増えると、ぴったり合わせられるようになる大きさも変わり、山の位置がずれるためです。山がいちばんはっきり出たのは、答えにまちがいがまじったデータのときでした。まちがいの無いデータでは、山にならず、誤差がしばらく横ばいになるだけのこともありました。
つまり、大きなAIほど必ず過学習する、とも、大きいほど必ずよい、とも言えません。大事なのは、学習のデータにどれだけぴったり合っているかではなく、新しいデータで当たるかどうかです。だから、どの大きさでも、取っておいたデータで確かめることが大切です。
確認問題
問1AIの学習で、学習に使ったデータと、学習に使わずに取っておいたデータの両方で、くり返しごとに誤差(まちがいの大きさ)を測る。過学習を防ぐ「早期終了」では、どこで学習を止める?
答えと解説
答え:C 取っておいたデータの誤差が、いちばん小さい所
早期終了は、取っておいたデータ(検証用のデータ)での誤差がいちばん小さくなり、上がり始めた所で、学習を止めます。学習に使ったデータの誤差は、そのあとも下がり続けますが、それは偶然のずれまで覚え始めたからで、新しいデータでは、かえって外れるようになります。2つの誤差の差が小さくても、両方とも大きい(まだ学び足りない)ことがあるので、差だけでは止める所を決められません。
問22017年の論文で、写真を10種類に分けるAIに、名前をでたらめに付けかえた写真(ねこの写真に「飛行機」など)で学ばせた。AIは、学習に使った写真では100%当たったが、新しい写真では約10%(当てずっぽうと同じ)だった。学習の写真で100%当てられたのは、なぜ?
答えと解説
答え:B 写真1枚1枚に付いた名前を、そのまま覚えたから
名前がでたらめなので、写真と名前のあいだに決まりはありません。もし写真の中に本当の手がかりを見つけていたら、新しい写真でも当たるはずですが、約10%でした。本当の名前に気づいたのなら、でたらめの名前とは合わないので、学習の写真でも当たりません。AIは、学習の写真5万枚の名前を、1枚ずつ丸ごと覚えたのです。学習のデータでは当たるのに、新しいデータでは外れる。これが、過学習のいちばん極端な形です。
問32019年に発表された研究で、AIの大きさ(中の数の多さ)を少しずつ大きくしながら学習させ、新しいデータでの誤差を比べた。いくつもの種類のAIとデータで見られた、誤差の変わり方は?
答えと解説
答え:A 下がって上がり、そこからまた下がった
AIを大きくしていくと、新しいデータでの誤差は、はじめは下がり、学習のデータにやっとぴったり合わせられるようになる大きさの所で山になり、それより大きくすると、また下がっていきました。2回下がるので「二重降下」と呼ばれます。昔からの考え方(U字)では、いったん上がり始めたら、そのまま上がり続けるはずでした。ただし、山がどれだけはっきり出るかは、データに答えのまちがいがまじっているかなどで変わります。大きいほど必ずよい、とも言えません。
関連用語
- 機械学習
- 深層学習
- ニューラルネットワーク
- パラメーター
- ハイパーパラメーター
- 汎化
- 学習不足(過小適合)
- 正則化
- 早期終了
- ドロップアウト
- 二重降下
参考文献と確かめ方
- Google「Overfitting」(Machine Learning Crash Course。過学習・汎化・学習不足の意味、損失の曲線、起きるわけ。2026年11月10日に読んだ)
- Google「Overfitting: Interpreting loss curves」(Machine Learning Crash Course。検証用のデータの損失が途中から上がる曲線。2026年11月10日に読んだ)
- Google「Overfitting: Model complexity」(Machine Learning Crash Course。複雑さに罰を与える正則化。2026年11月10日に読んだ)
- Google「L2 regularization」(Machine Learning Crash Course の Overfitting の章。L2 正則化・正則化の強さ・早期終了の節。2026年11月10日に読んだ)
- Google「Dividing the original dataset」(Machine Learning Crash Course。訓練用・検証用・テスト用への分け方と、重なった例を取り除くこと。2026年11月10日に読んだ)
- Google「Machine Learning Glossary」(機械学習の用語集。overfitting・generalization・generalization curve・regularization・early stopping・dropout regularization の項。2026年11月10日に読んだ)
- scikit-learn「Underfitting vs. Overfitting」(scikit-learn 1.9.1 の説明書の例。cos の曲線にノイズを足した30個の点に、1次・4次・15次の式を合わせる。2026年11月10日に読んだ)
- Srivastava ほか「Dropout: A Simple Way to Prevent Neural Networks from Overfitting」(トロント大学、Journal of Machine Learning Research 15巻、1929–1958ページ、2014年。要旨・1章・6.1.1節。2026年11月10日に読んだ)
- Zhang ほか「Understanding deep learning requires rethinking generalization」(MIT・カリフォルニア大学バークレー校・Google Brain・Google DeepMind、ICLR 2017。arXiv は2016年11月、第2版は2017年2月。1章・2.1節・3章・表1・付録A。2026年11月10日に読んだ)
- Belkin ほか「Reconciling modern machine learning practice and the bias-variance trade-off」(オハイオ州立大学・コロンビア大学、PNAS、2019年。arXiv の第2版〔2019年9月〕の要旨・1章・図1・2章・図4を読んだ。2026年11月10日に読んだ)
- Nakkiran ほか「Deep Double Descent: Where Bigger Models and More Data Hurt」(ハーバード大学・OpenAI、arXiv、2019年12月。要旨・1章・図1〜3・2章・ラベルのノイズについての所。2026年11月10日に読んだ)
- AWS「オーバーフィットとは?- 機械学習における過学習、過剰適合の説明」(日本語の説明。「過学習」「過剰適合」の呼び名。2026年11月10日に読んだ)
- IBM「過剰適合とは」(日本語の説明。「過剰適合」「過小適合」の呼び名。2026年11月10日に読んだ)
このページは、上の資料をもとにAIが書き、書いたAIとは別のAIが、資料の本文と照らして確かめました(2026年11月10日)。理学の修士号と、高校理科の教員免許を持つ人も読んで確かめてから出しています。数字は、その時点のものです。わかりにくかったところ、誤りのご指摘、解説してほしい用語は、[email protected] へお寄せください。