過学習とは?正則化など防ぐ方法を初心者向けにやさしく解説

過学習とは?正則化など防ぐ方法を初心者向けにやさしく解説

訓練データの高得点を過信してよいか迷うAI初学者のイメージ
「訓練で精度99%なら、良いモデル?」
「正則化やドロップアウトって何?」
「未学習との違いもあいまい…」

訓練データでの高得点は、良いモデルの証明ではありません。

過学習とは、訓練データに合わせすぎて未知のデータで精度が落ちる状態です。手元のデータでは満点でも、現場の初見データで外す。この落とし穴が、機械学習でいちばん注意したい点です。

 

以下では、過学習の正体を押さえ、学習曲線という1枚の図で「訓練誤差は下がるのに検証誤差は途中から上がる」核をたどり、原因・5つの対策・未学習との見分けまで順に見ていきます。G検定の「機械学習の概要」対策にそのまま効きます。

 

1. 「訓練データで精度99%」は、なぜ喜べないのか

訓練データの高得点が過学習のサインになりうるイメージ

手元のデータで高い正解率が出たとき、あなたはつい「良いモデルができた」と考えたくなります。ところが機械学習では、この高得点そのものが落とし穴になることがあります。

 

過学習(オーバーフィッティング)は、学習に使ったデータには強いのに、初めて見るデータではうまく当たらなくなる状態です。モデルは本来つかんでほしい「大きな傾向」だけでなく、そのデータにたまたま混じったノイズや細かいクセまで覚え込みます。手元の答え合わせは満点なのに現場で使えない——これが過学習の怖さです。

 

あなたが本当に欲しいのは、練習で見た問題を再現する力ではなく、初めての問題に答えられる力のはずです。訓練データの成績は、その力を保証しません。むしろ高すぎる訓練成績は、合わせすぎのサインになることがあります。

 

たとえるなら、1つのコースだけを走り込んだランナーです。そのコースならタイムは抜群でも、初めての道ではペース配分を誤って失速します。決まった道に最適化しすぎた結果、どんな道でも走れる本当の走力からは遠ざかっている。過学習したモデルも、これと同じ状態に陥ります。

 

2. 学習曲線で見る — 訓練誤差は下がり、検証誤差は途中で上がる

訓練誤差と検証誤差の動きを学習曲線で比べるイメージ

過学習が起きる瞬間は、学習曲線という図で目に見えます。横軸に学習の進み(データ量や学習回数)、縦軸に誤差(外し具合)を取り、訓練データでの誤差と、検証データ(未知のデータ役)での誤差を並べて描いたものです。次の図で動きの違いをつかんでください。

 

誤差 学習の進み(データ量・学習回数)→ 過学習の始まり 訓練誤差(下がり続ける) 検証誤差(途中から上がる)

 

図の芯はこうです。学習を進めるほど、訓練誤差は下がり続けます。モデルが手元のデータへどんどん合っていくからです。ところが検証誤差は、はじめは一緒に下がるのに、ある地点から反対に上がり始めます。この折り返しこそ、モデルが傾向ではなくクセを覚え始めた合図、つまり過学習の始まりです。

 

見るべきは訓練誤差ではなく、検証誤差が上がりに転じる点です。訓練誤差だけを見ていると、下がり続ける数字に安心して過学習を見逃します。あなたが学習曲線を読むときは、まず2本の線が離れ始める場所を探してください。

 

3. なぜ「学びすぎ」が起きるのか — 複雑さとデータ量

モデルの複雑さとデータ量のバランスが崩れる原因のイメージ

では、検証誤差が途中から上がるのは、どんな条件で起きるのでしょうか。原因を知っておくと、あなたは対策の当たりを早くつけられます。主な引き金は2つです。

 

  • モデルが複雑すぎる — 表現できる幅が広すぎて、細かいクセまで拾い込む
  • 学習データが少なすぎる — わずかな例だけで判断するため、偏りをそのまま覚える

 

この2つが重なると、過学習はいっそう起きやすくなります。少ないデータに対して複雑なモデルをぶつけると、モデルは限られた例の隅々まで暗記できてしまうからです。逆に言えば、モデルの複雑さと、手元のデータ量のバランスが崩れたときに、問題が表面化します。

 

覚え方はシンプルです。「データの割に、モデルが賢すぎる」と過学習に傾きます。次の章の対策は、どれもこのバランスを取り戻す方向に働きます。データを足すか、モデルの自由度を抑えるか——狙いはこの2つに集約されます。

 

4. 過学習を抑える5つの手 — 対策の効きどころ

過学習を防ぐ代表的な対策を一覧で整理するイメージ

過学習には、よく知られた対策があります。あなたがG検定で問われやすいのも、まさにここです。代表的な5つを、それぞれ「何に効くか」とセットで表にしました。

 

対策 何に効くか
データを増やす 例が増え、特定のクセに引っぱられにくくする
正則化(L1・L2) モデルの複雑さにブレーキをかけ、極端なルールを抑える
ドロップアウト 学習のたびに一部を休ませ、一部への頼りすぎを防ぐ
早期終了 検証誤差が上がる前に、学習を切り上げる
交差検証 データを分けて何度も検証し、過学習を見つける

 

とくに正則化のL1とL2は、働き方の違いを押さえると得点に直結します。L1は効いていない要素をきっぱり切り捨て、L2は全体をなだらかに小さく抑えます。L1は要素を絞り込み、L2は全体を丸くならす、と向きで覚えると混ざりません。層の深い ディープラーニングとは では過学習が起きやすく、ドロップアウトがとくによく使われます。

 

早期終了は、さきほどの学習曲線と直結します。検証誤差が折り返す手前で止めれば、合わせすぎに入る前の良いモデルを残せます。交差検証は対策そのものというより、過学習していないかを確かめる健康診断の役割だと捉えてください。

 

5. 未学習との見分けと、G検定で問われる汎化

過学習と未学習を見分け、汎化を目指すイメージ

過学習とセットで押さえたいのが、反対側にある未学習(アンダーフィッティング)です。あなたが試験で取り違えないよう、ここで並べて整理します。

 

  • 過学習 — 訓練データには強いが、未知のデータに弱い(学びすぎ・合わせすぎ)
  • 未学習 — 訓練データにも未知のデータにも弱い(学びが足りない)

 

見分けの物差しは「訓練データに強いかどうか」です。訓練に強いのに未知で外すなら過学習、訓練の時点で外しているなら未学習。この一点で、2つはきれいに分かれます。目指すのは両者のちょうど間、初見のデータにも安定して当たる汎化の状態です。機械学習とはが最終的に高めたいのは、この汎化の力にほかなりません。

 

G検定の「機械学習の概要」では、過学習と未学習を見分けさせる問題や、モデルが目指すのは汎化だと確認する問題が問われます。対策の名前(正則化・ドロップアウト・早期終了)と「何に効くか」の対応も定番です。用語を丸暗記するより、学習曲線の1枚を思い出せるようにしておくと、初見の設問にも落ち着いて対応できます。

 

よくある失敗は、訓練データの成績だけを見て、モデルの良し悪しを判断してしまうことです。訓練誤差が下がっただけで安心すると、検証誤差の上昇を見逃します。あなたが評価の軸を訓練から未知のデータへ移す——この一手が、過学習を早く捕まえる決め手になります。

 

次のステップ

過学習がG検定のどの範囲でどう問われるかを含め、試験の全体像から学習の順番を決めたいなら、G検定の試験範囲と勉強法をまとめたガイドで「機械学習の概要」の位置づけをつかむところから始めると迷いません。

知識を得点に変えたいなら、G検定 機械学習の練習問題で、過学習まわりの設問に手を動かして慣れておくのが確実です。