クライアント提案2時間前、最終リハで…
赤崎(部長 / AI戦略推進室室長・42)

凡田、リハ用に 戦略パワポ150枚 持ってきた。これな、私の 「必殺テンプレ」 なんだ。過去5年で同じ構成のものを150案件 で使い回してる。打率95%。今日も完璧だね。

大蔵(アシスタントマネージャー・35)

あら、赤崎部長…それは 「過学習」 でいらっしゃいませんかしら? 過去案件には完璧でも、新規業界の案件 には 応用が利かない 状態。本日のクライアントは AI スタートアップ ですわよね。

赤崎

過学習? いいねいいね、その方向で。ふわっとした方向感としては、AI スタートアップ案件は…ジーパンとジャケットで行けば大丈夫だろう。

凡田(チームリーダー・38, 主人公)

(部長、過学習の意味分かってない な…これ完全に大蔵さんの指摘通り、「訓練データには満点、本番では赤点」 の典型例…)

会議室で赤崎が誇らしげに分厚いパワポ束を抱える、大蔵が冷静に
このページのまとめ
  • 過学習とは、ひとことで言えば モデルが練習問題を「丸暗記」してしまった状態。練習では満点、本番(未知のデータ)では赤点を取る。
  • これが厄介なのは 練習の成績だけ見ると「優秀」に見えてしまう こと。本番用のデータで別に試して、そこから成績が落ち始めたら丸暗記のサイン(見分け方は本文で)。
  • イメージは 過去問だけを丸暗記して臨んだ受験。答えごと覚えた問題は解けても、少しひねられた本番の問題でつまずく。

訓練(#013) 記事と 損失関数(#014) 記事で「完璧を目指すと逆に弱くなる」と何度か触れた。その正体が 過学習(Overfitting)、機械学習で最もよく聞く失敗パターン。

結論を先に: 訓練データを完璧に当てに行くと、新しいデータに対応できないモデルが完成する。これが過学習の全て。原因は「モデルが訓練データの 「本質的なパターン」 を学ぶのではなく、「個別の事例」 を丸暗記してしまう」ため。

本記事は 過学習とは何か / なぜ起きるか / どう気づくか / 対策 までを押さえる入口記事。具体的な対策アルゴリズム(Dropout、L2 正則化 等)は 正則化(#020) 記事で深掘り。

過学習とは何か — 「丸暗記モデル」の典型失敗

具体例で考える。過去の住宅成約データ 1,000件を訓練データとして、住宅価格予測モデルを作るとする。

これは、モデルが「面積×築年数×駅距離 → 価格 という一般的な関係性を学んだ」のではなく、「訓練データの 1,000件 を1件ずつ覚えた」状態。試験で例えると 「過去問の答えを丸暗記したけど、応用問題は解けない学生」

これと対極の状態が 「汎化(generalization)」。汎化したモデルは、訓練データには満点ではないかもしれないが、新規データにも対応できる。機械学習の本当の目的は満点を取ることではなく、汎化能力 を獲得すること。

目で見る過学習 — 同じデータ、ちょうど良い fit vs 暴れた fit

言葉だけだと 「ふーん」 で終わるので、図で見る。同じ訓練データ(●)に対して、2種類のモデルが fit した結果を並べる。

同じデータに対する

図2: 同じデータでも、モデルの 「覚える力」 次第で fit のされ方が違う

これが 「訓練データには満点(訓練損失ゼロ)、本番では赤点(検証損失大)」 の正体。「完璧に当てに行く」 努力が、逆に新規対応能力を破壊している。

過学習を数字で体感する — 住宅価格予測の例

もう一段具体的にする。住宅価格予測モデルを 2種類作って比べる。

モデル A(ちょうど良い) モデル B(過学習)
パラメーター数 50個(線形回帰風) 50万個(過剰に複雑な NN)
訓練データへの精度 93%(まあまあ当たる) 99.9%(ほぼ完璧)
テストデータへの精度 92%(本番でも当たる) 68%(本番で大外れ)
新業界(地方移住、コロナ影響後) 87% 41%

モデル B は 訓練データの 1,000件 を丸暗記 して 99.9% を叩き出したが、新規物件 では 3軒に1軒外す。新業界(=訓練データに無いタイプ)だと 半分以下。これでは実用にならない。

機械学習エンジニアが「精度99.9%出ました!」と報告してきたら、真っ先に疑うべきは過学習。本物の高精度モデルは、訓練精度とテスト精度の差が 5%以内 程度に収まる。

なぜ起きるか — モデルの 「覚える力」 が強すぎる時

過学習が起きる主な原因は3つ。

  1. モデルが大きすぎる: パラメーター(#010) が訓練データ件数より多すぎると、訓練データを丸暗記できる容量が物理的にある
  2. 訓練データが少なすぎる: データが少ないと 「パターン」 を抽出する材料が足りず、個別事例を覚えるしかない
  3. 訓練を回しすぎる: 同じデータを何百周も見せ続けると、最初は一般パターンを学ぶが、ある時点から細部を覚え始める

LLM の事前訓練ではこの3つすべてが厳しい制約になっている: モデルは 1,750億パラメーター(巨大)、データは 3,000億トークン(限界)、訓練エポック数は注意深く制御。過学習を避けながら学習させるのが LLM 訓練の最大の難所 と言ってもいい。

LLM 時代の逆説 — 「大きくすると過学習する」は半分間違いだった

ここで歴史的な話を1つ。2010年代までは、「モデルが大きい(パラメーターがデータより多い)= 必ず過学習する」が機械学習研究者の鉄則 だった。だから 1,750億パラメーターの GPT-3 のような巨大モデルは「作っても訓練データを丸暗記するだけで使い物にならない」と 当時の多くの研究者が予想していた

でも GPT-3(2020)が実際に示したのは、ほぼ正反対の現象だった。

これは 「ダブルディセント(double descent)」 と呼ばれる現象で、2019年頃に経験的に確認された:

この経験則を整理したのが Scaling Laws(2020 Kaplan ら)、後に Chinchilla の法則(2022 DeepMind) で「モデルサイズだけでなくデータ量も同じ割合で増やすべき」と精緻化された。

整理すると、過学習リスクは 「モデル単独の大きさ」ではなく「モデル × データ × 計算量 のバランス」 で決まる。LLM 時代の巨大モデルは、対応する巨大データセット(web 全体級)があるからこそ汎化できている。この発見がなかったら、現代の LLM ブームは無かった

実務的な含意:

気づき方 — 訓練損失 vs 検証損失の乖離

過学習が起きているかどうかを判定する標準的な方法。

訓練損失と検証損失のグラフ、ある時点から検証損失だけ上がり始める典型的な過学習パターン

図1: 過学習の典型パターン — 検証損失が上がり始める点が 「止め時」

訓練データを使って 訓練(#013) を回しながら、別途取り分けた 「検証データ(validation set)」 で性能を測る。

この 「検証損失が上がり始める点」が過学習の入口。ここで訓練を止めるのが Early Stopping(訓練(#013) 記事参照)。

実務的には、訓練データ:検証データ:テストデータ を 80%:10%:10% のように分割するのが定番。検証データは 「途中の止め時判断」 用、テストデータは 「最終的な性能評価」 用。

対策の4軸

過学習を防ぐ・抑える方法を整理する。

① Early Stopping(早期終了)

検証損失が上がり始めた瞬間に訓練を止める。追加コストゼロで最も簡単、最初に試すべき対策。LLM 時代でも基本中の基本。

② データを増やす

訓練データが多いほど 「個別暗記」 は困難になり、「パターン抽出」 を強制される。最も本質的な対策 だが、データ収集コストが現実的な制約。

派生として データ拡張(Data Augmentation): 既存データを少しずつ変形させて水増しする(画像なら回転・反転、文章なら言い換え)。実質的にデータを増やしたのと同じ効果。

③ モデルを小さくする

パラメーター数(#010) を減らす = 丸暗記する容量を物理的に削る。ただし、小さすぎると今度は 未学習(Underfitting) = 訓練データすらまともに学べない状態に陥る。

「適切な大きさ」 を選ぶのが機械学習エンジニアの腕の見せ所のひとつ。

④ 正則化(Regularization)

モデルが訓練データに過剰適合しないよう、損失関数に 追加の制約 を入れる方法。代表例:

これらは 正則化(#020) 記事で深掘り。

コンサル感覚: 「ベテランが新しい流れに対応できない」の正体

過学習の構造を、組織で起きる典型的な現象に翻訳する。

機械学習の過学習 組織での 「ベテランが対応できない」 現象
訓練データを丸暗記 過去20年の業界事例を完璧に覚えている
未知データに弱い 新業界(AI・暗号・宇宙)の案件で何を提案していいか分からない
検証データの損失が上がる 新規顧客アンケートで評価が下がり始める
Early Stopping ベテランをある時点で第一線から外し、別の役割に
データを増やす(=多様な事例に触れる) ベテランに新業界の案件を意図的に経験させる
正則化(過剰適合を抑える) 「必殺パワポ」 の使い回しを禁止、毎案件で新規構築を強制

つまり 「機械学習の過学習 = 組織の 「ベテランの陳腐化」 と同じ構造」。両方とも「過去パターンに最適化しすぎた結果、新パターンに対応できない」状態。

逆に言えば、コンサル業務で 「ベテランを別案件に異動」「テンプレ禁止」「新業界アサイン」 といった人事施策をする時、それは AI 業界でいう 「汎化能力を上げる正則化」 をやっているのと同じ構造、と言える。組織でも機械でも、過剰適合は同じ罠。

登場人物の反応 ①
赤崎(部長 / AI戦略推進室室長・42)

うーん、ふわっとした方向感としては、私の 「必殺パワポ150枚」過学習 と言われた気がするが、私の中の損失関数が 「そんなことはない」 と確率 0.99 で否定しているね。

川口(アナリスト・22)

赤崎部長、「自分を否定する確率0.99」 はまさに 過学習で訓練データを丸暗記したモデルの出力 です。検証データ(=新業界)で性能を測ると 急落する はず…(無言で過去半年の AI スタートアップ案件の結果一覧を取り出す)

大蔵(アシスタントマネージャー・35)

あら、川口くん、お見事ですわね。…部長、ちなみに AI スタートアップ 5案件受注率0% ですわよ。これは 典型的な検証損失の悪化 と申せます。

赤崎

…(沈黙)…これは PARTNER にも相談しないとね

凡田(チームリーダー・38, 主人公)

(部長の 「PARTNER に相談」 は 判断を後ろに引き延ばす Early Stopping の人間版か…でも遅すぎる Early Stopping は意味ないんだよな)

会議室で赤崎が
登場人物の反応 ②
南雲(社長・60-62)

ふむ…俺も 都銀員時代の40年過学習 だったかもしれんな。当時の融資審査の 「型」 を完璧に覚えていたから、コンサルに転身した時、最初の3年は 「何も解けない」 状態だったのを思い出した。

凡田(チームリーダー・38, 主人公)

社長、それです。40年 = 訓練データ過多 + 同じ業界の同じパターンを丸暗記。コンサルに来た時、 「検証データ(=コンサル業界)」 で初めて精度が出る、3年で再学習されたわけで。

御託(シニアコンサル・39)

フッ、過学習か。これは ニーチェ『道徳の系譜』 で論じた 「奴隷道徳」 の構造そのものだな。過去のパターンに 束縛される ことで…(スマホ通知、配信開始25分前)

大蔵

御託さん、ニーチェ先生もよろしいですけど、御託さんの 「哲学書引用」5案件中 5案件で同じ流れ ですわよね。これは 御託さんご自身が過学習 の典型例として、論文に投稿できそうですわ。

川口

あ、社長、結論として当社の人材育成を 「正則化」(=新業界アサイン + テンプレ禁止)で再設計する3カ年計画を、パワポ400枚 で…(これで休日10週連続)

南雲

うむ、いいねえ。「汎化能力経営」 だ。儲かるんだろ?

役員室で南雲が古いネイビーのアタッシュケースを見つめ、銀行員時代の40年を回顧している、温かい照明