過学習とは何か

AIの基本

機械学習やディープラーニングの話で出てくる「過学習」という言葉。英語では「オーバーフィッティング(overfitting)」と呼ばれます。

AIにとって「たくさん学ぶ」ことはよいことのように思えますが、実は学びすぎも問題になることがあります。

この記事では、過学習とは何かを身近な例で説明し、なぜ問題なのか、どう対処するのかをやさしく解説します。

過学習は「テストの答えだけ丸暗記してしまう」状態

過学習をひと言で説明すると、学習用のデータに合いすぎてしまい、新しいデータにうまく対応できなくなる状態です。

学校のテスト勉強にたとえるとわかりやすいです。

過去の問題集の答えだけを丸暗記した生徒がいるとします。過去問はスラスラ解けますが、少し問題の聞き方が変わると途端に答えられなくなります。本当に理解しているのではなく、答えのパターンだけを覚えてしまったからです。

AIでも同じことが起きます。学習用データの特徴を覚えすぎてしまい、本番で使う新しいデータに対して正しく判断できなくなるのです。

過学習が起きるとどうなるか

過学習が起きたAIの典型的な症状を見てみましょう。

  • 学習データでは正解率99% → とても優秀に見える
  • 新しいデータでは正解率60% → 実際の性能はかなり低い

学習中の成績が良いのに、本番では使い物にならない。これが過学習の厄介なところです。テストの練習では満点なのに、本番のテストで点が取れない生徒のような状態です。

なぜ過学習は起きるのか

過学習が起きる主な原因は、いくつかあります。

学習データが少なすぎる

データが少ないと、AIはその少ないデータの細かい特徴まで覚えてしまいます。たとえば、犬の写真が10枚しかなければ、「犬はみんな茶色い」と覚えてしまうかもしれません。白い犬や黒い犬が来たら、犬と認識できなくなります。

モデルが複雑すぎる

AIの構造が必要以上に複雑だと、データの本質的なパターンだけでなく、ノイズ(たまたま含まれている無関係な特徴)まで学習してしまいます。

学習回数が多すぎる

同じデータで何度も何度も学習を繰り返すと、データの細部まで記憶してしまいます。料理で言えば、同じレシピだけを何百回も作って、そのレシピの分量を1グラム単位で暗記しているような状態です。

過学習を防ぐための工夫

過学習は、AI開発では常に気をつけるべき問題です。防ぐためのいくつかの工夫を紹介します。

  • データを増やす — 多様なデータで学習させると、特定のパターンに偏りにくくなる
  • データを分けてテストする — 学習用データと検証用データを別にして、本番の性能を確認する
  • モデルをシンプルにする — 必要以上に複雑なAIを使わない
  • 学習を途中で止める — 検証データでの性能が下がり始めたら、学習を打ち切る
  • ドロップアウト — 学習中にわざと一部のノードを無効にして、特定のパターンに頼りすぎないようにする

ここは少し専門的な内容ですが、まずは「学習データと本番データの両方で性能を確認することが大切」と覚えておけば大丈夫です。

過学習の反対は「未学習」

過学習の反対の問題もあります。「未学習(アンダーフィッティング)」と呼ばれ、学習が足りずにデータのパターンすら掴めていない状態です。

テスト勉強にたとえれば、教科書をまったく読まずにテストを受けるような状態です。過学習とは逆に、学習データに対しても新しいデータに対しても性能が低くなります。

ちょうどよいバランスの学習が、もっとも良い結果を生みます。

覚えておきたい3つのポイント

  • 過学習は、学習データに合いすぎて新しいデータに対応できなくなる問題
  • データが少ない、モデルが複雑すぎる、学習しすぎなどが原因で起きる
  • データの分割やモデルの調整で防ぐことができる

過学習は機械学習ディープラーニングのどちらでも起こりうる問題です。これらの記事もあわせて読むと理解が深まります。

あわせて読みたい記事

Comment

タイトルとURLをコピーしました