定義
AIは、たくさんの例を見ながらルールを身につけていきます。ところが、練習に使ったデータのささいな特徴まで丸ごと覚えてしまうと、初めて見るデータの前では、かえって成績が下がってしまいます。このように、学んだデータにだけ合わせすぎて、新しいデータでは力を発揮できない状態を過学習と呼びます。
過去問の答えだけを暗記した友だち
テスト期間に過去問題集だけにかじりついて、答えを丸ごと暗記した友だちを見たことはありませんか?その問題集をもう一度解けば、ほぼ満点が出ます。ところが、肝心の本番では点数がガクッと落ちてしまいます。
この友だちが頭に入れたのは、問題の解き方ではありませんでした。「3問目の答えは2番」のような答えの位置を覚えたに近いのです。だから、問題の順番が変わったり、数字が少し違ったりするだけで、手も足も出なくなります。
AIもこんなふうに勉強してしまうことがあります。データを見て共通するルールを探す代わりに、データ一つひとつを丸ごと暗記してしまうのです。
すると、練習に使ったデータでは目を見張るような成績が出ます。けれども新しいデータに出会うと、過去問だけを暗記した友だちのようにぐらついてしまいます。この状態を過学習と呼びます。
なぜ理解せずに、暗記してしまうのでしょうか
人間でも、ルールを理解するほうが難しく、答えを暗記するほうが楽です。特に出題範囲が狭くて問題数が少ないと、暗記の誘惑が強くなります。問題が5問だけなら、わざわざ原理を考える理由がありませんから。
AIも事情は似ています。学ぶデータは少ないのに記憶できる容量がたっぷりあると、ルールを探すよりデータを丸ごと詰め込むほうが楽な道になってしまいます。
同じデータを何度も繰り返し見るときも同じです。最初の数回は、実力がぐんぐん伸びます。ところがある時点から、データにたまたま混ざっていたささいなノイズまで覚え始めます。
そこで開発者は、テスト用紙を別に取り分けておきます。練習に一度も使わなかったデータを残しておいて、最後に採点するのです。過去問題集ではなく、初めて見る模擬試験で実力を測るわけです。
もう少し正確に言うと
練習の点数が高いこと自体は、欠点ではありません。注目したいのは、練習の点数と初めて見るデータの点数との開いた差です。どちらも高ければうまく学べているということで、前者だけが高ければ、暗記に近い状態です。
反対向きの失敗もあります。問題集をあまりにざっと眺めただけで、練習の点数まで低いケースです。この場合は、むしろもっと長く、もっと丁寧に勉強する必要があります。この二つの失敗の間のちょうどよい地点を探すことが、学習の核心です。
その地点を探す方法も、勉強が上手な生徒のコツに似ています。問題集を何冊にも増やし、答えではなく解き方の過程を見させ、点数がそれ以上伸びなくなったら本を閉じるのです。そうすれば、頭に残るのは答えの位置ではなく、問題を解くルールになります。
よくある誤解
学習に使ったデータでほぼ満点が出るなら、性能の良いAIだ。
練習に使ったデータの点数は、答えを先に見てから採点したようなものです。実力は、学習に一度も使っていないデータで測ってはじめてわかります。
過学習は、長く学習させないから起きる問題だ。
むしろ同じデータを長く繰り返し見すぎたときに起きやすくなります。ある地点を過ぎると、データに混ざったささいなノイズまで覚え始めるからです。
日常で出会う場面
犬と猫を見分けるプログラムが、学習用の写真に写っていた芝生の背景まで覚えてしまい、芝生に座っている猫を犬だと答えてしまうケースです。
ここ数か月の売上データにぴったり合うように作った予測プログラムが、来月の売上は大きく外してしまうケースです。
つまり ひとことで
練習したデータを丸ごと暗記してしまったために、そのデータでは満点に近いのに、初めて見るデータでは力を発揮できない状態です。