汎化Generalization

初めて見るデータでも実力が保たれる力

ポイント
  • 汎化は学んだことを初めての状況でも使える力です。AIの本当の実力はここで分かれます。
  • 練習に使ったデータでうまくいくことは実力の証拠になりません。一度も見せていないデータで測ってはじめてわかります。
  • 一つ一つの事例を丸暗記すると汎化が崩れます。事例の裏にある繰り返し現れる規則をつかむ必要があります。
  • データは量より多様さが汎化を育てます。似たものばかり集めても幅は広がりません。
  • 汎化には通用する範囲があります。学んだ世界とかけ離れた場所ではどんなモデルも揺らぎます。
目次

1たとえで理解する

知らない町に初めて降り立っても、コンビニは大抵見つけられます。その町の地図を覚えたことがなくてもです。大通りのほうへ歩き、バス停の近くを探し、夜でも明るい看板を目で追う要領が身についているからです。町ごとに路地の形も看板の色も違いますが、コンビニが置かれる場所にはどの町でも繰り返される規則があります。その規則をつかんだ人は初めて来た町でも数分で水を一本買います。反対に、住んでいた町の道をまるごと覚えた人は一駅離れただけで迷います。AIにとって汎化とはまさにこの要領です。学習に使ったデータでだけうまくいくのではなく、初めて見るデータの前でも同じ実力を出す力です。

2くわしく

覚えた道と身につけた要領は見た目で区別できません

住んでいた町の中では二人の違いは見えません。道をまるごと覚えた人も、コンビニの場所を見つける要領を身につけた人も、同じように五分で着くからです。違いは知らない町に降り立った瞬間だけ現れます。

AIも同じです。学習に使ったデータだけを見ると、暗記したモデルと規則をつかんだモデルの点数は似ています。ひどく暗記したほうがむしろ高いこともあります。だから学習データの点数は実力を測るものさしに使えません。

一方に偏って暗記だけした状態を過学習と呼びます。汎化はその反対側にある目標です。学習させる理由は練習問題をよく当てるためではなく、まだ出会っていないデータをうまく扱うためだということを、学習の間ずっと意識しておく必要があります。

行ったことのない町を残しておいてこそわかります

実力を測るには一度も歩いたことのない町が必要です。すでに訪れた町で試験をすると、覚えた人が勝ってしまうからです。だから手持ちのデータを丸ごと学習に使わず、一部をあらかじめ取り分けておきます。

取り分けた分はさらに二つに分かれます。学習の途中で様子を見る分が検証データ、最後に一度だけ開く分がテストデータです。検証データを見ながら設定を直し続けると、そちらにもだんだん合わせ込んでしまうため、本当に最後の判定は手を付けていないテストデータで行います。

学習データの点数と初めて見るデータの点数の間の開いた差が、汎化がどれだけできていないかを教えてくれます。差が大きければ暗記しているという意味で、両方とも並んで低ければまだ学べていないという意味です。

多様さが要領を作ります

同じ町ばかり百回歩いても要領はあまり伸びません。団地と商店街と大学の周りと田舎町を一度ずつ歩いた人のほうがずっと早く感覚をつかみます。重ならない状況を何度も経験してこそ、その中で変わらない部分が見えてくるからです。

データも同じです。写真を一万枚集めても全部同じ場所、同じ照明で撮ったものなら幅は広がりません。だから写真を少し回転させたり明るさを変えたりして状況を増やすデータ拡張を使い、集める段階でわざと違う条件を混ぜ込みます。

モデルの側でも手を加えます。データに対してモデルが大きすぎると暗記する力が余ります。だから点数がこれ以上伸びる前に学習を止めたり、つながりの一部をわざと休ませたり、値が一方向に大きく育たないよう抑えたりする方法を一緒に使います。

要領にも通用する範囲があります

コンビニを見つける要領は日本の都市部でよく通じます。道が狭く看板が密集している場所ならどこでも事情が似ているからです。ですが店が少ない山あいや、道の作りがまったく違う外国の都市に行くと、その要領は力を失います。

AIの汎化にも際限はありません。学習に使ったデータと似た性質の状況までしか力が及びません。昼に撮った写真だけを見て学んだモデルは夜の写真で揺らぎ、大人の声で学んだモデルは子どもの声の前で戸惑います。うまく使えていたモデルの成績が急に落ちたなら、世界が変わったのかデータが古くなったのかをまず調べる必要があります。

だから汎化は一度達成すれば終わる状態ではありません。使っている間ずっと新しいデータで点検し、学んだ範囲を外れた入力が来たら人に引き継ぐよう最初から作っておくほうが安全です。

3もう少し正確に

汎化性能は学習に使わなかったデータでの誤差として定義します。学習データの誤差とこの誤差の差を汎化ギャップと呼び、このギャップを狭めることが学習の実際の目標です。ギャップが大きく開いたほうが過学習、両方とも大きいほうが未学習です。モデルを単純にすると暗記する力が減ってギャップは狭まりますが基本の誤差が大きくなり、複雑にすると逆になります。この兼ね合いをバイアスと分散のトレードオフと呼びます。

たとえとずれる点もあります。人はコンビニが見つからなければ通りすがりの人に尋ねたり地図アプリを開いたりして方法そのものを変えます。モデルはそうできません。学習が終わった後は学んだ規則を繰り返すだけで、規則が通じない場所でも同じように確信に満ちた答えを出します。人の要領はなぜそうなのか言葉で説明できますが、モデルがつかんだ規則は人にわかる形では残らないことがほとんどだという点も違います。

4やってみる

5よくある誤解

  • 学習データで正解率が高ければ良いモデルだと思われがちですが、実際にはその点数は暗記の結果かもしれず、初めて見るデータで測り直すまでは何も証明しません。

  • データを多く集めれば汎化は自然にできると考えられがちですが、実際には似たデータばかり増やしても幅はそのままです。増やすべきは個数より状況の種類です。

  • 汎化がうまくいったモデルはどこでも通用すると信じられがちですが、実際には学習したデータと性質の違う場所では性能ががくんと落ちます。

7ひとこと要約

つまり汎化は練習したデータをよく当てる力ではなく、一度も見たことのないデータの前でも同じ実力を出す力です。

誤りや、もっと良いたとえがありますか? 修正を提案する · 最終更新2026-09-02