AI資格ドリル
資格を選ぶ

用語比較

訓練誤差と汎化誤差の違い|テスト誤差との関係とi.i.d.の仮定(G検定)

訓練誤差と汎化誤差の違いは、誤差を測るデータです。訓練誤差は学習に使ったデータでの誤差、汎化誤差は新しい入力に対する誤差の期待値です。実際に使うときに効くのは、汎化誤差の方です。

訓練誤差は学習中に下げるもの、汎化誤差は本当に下げたいもの。汎化誤差はテストデータでの誤差(テスト誤差)で推定し、訓練誤差との差が大きいと過学習を疑います。

この記事の根拠と出典

各セクションの見出しの下に、公式資料で確認した内容か編集部の整理かをラベルで示しています。 試験日・料金・申込条件・試験方式は変わることがあるため、申込前に公式サイトで確認してください。

訓練誤差と汎化誤差の要点

訓練誤差

訓練セットで計算する誤差の尺度。学習ではこれを小さくする。

汎化誤差

新しい入力に対する誤差の期待値。テスト誤差とも呼び、訓練とは別に集めたテストセットでの性能で推定する。

2つの関係

性能を決めるのは、訓練誤差を小さくすることと、2つの誤差の差を小さくすることの2点。未学習と過学習に対応する。

違いを表で確認

比較軸訓練誤差汎化誤差
測るデータ訓練誤差:学習に使う訓練セット汎化誤差:新しい入力(テストセットで推定)
学習での扱い訓練誤差:学習で直接小さくする汎化誤差:学習では直接見えず、別のデータで推定する
知りたいこと訓練誤差:モデルが訓練データに合っているか汎化誤差:初めてのデータでも通用するか
別の呼び方訓練誤差:training error汎化誤差:generalization error(テスト誤差とも呼ぶ)
大きいと疑うこと訓練誤差が大きい:未学習訓練誤差との差が大きい:過学習
試験での手掛かり訓練誤差:「訓練データ」「学習中に下げる」汎化誤差:「未知のデータ」「期待値」「テストデータで推定」

どこで迷っているかを切り分ける

01

訓練誤差が下がれば良いモデルだと思っていた人

訓練誤差は、訓練データへの合い方しか表しません。新しいデータでの誤差、つまり汎化誤差を見て判断します。

02

汎化誤差とテスト誤差の関係が曖昧な人

汎化誤差はテスト誤差とも呼ばれ、テストセットでの性能で推定します。呼び方が2つあるだけと押さえます。

03

過学習と未学習を誤差で見分けたい人

訓練誤差の大きさと、2つの誤差の差で見分けます。下の例で数値を並べます。

具体例で使い分ける

例 1

3つのモデルの誤差を並べる

多項式の次数だけを変えた3つのモデルで、訓練誤差とテスト誤差を測りました(数値は説明用の架空の例)。次数1は訓練4.0・テスト4.2、次数3は訓練1.0・テスト1.3、次数9は訓練0.1・テスト3.5です。

  • 次数1は、2つの誤差の差が0.2と小さい一方、訓練誤差が4.0と大きく、未学習です。
  • 次数3は、訓練誤差が1.0と小さく、差も0.3と小さいので、バランスが良いモデルです。
  • 次数9は、訓練誤差は0.1と最も小さいのに、差が3.4と大きく、過学習です。

結論: 訓練誤差が一番小さい次数9を選ぶと誤りです。テスト誤差(汎化誤差の推定)が最も小さい次数3を選びます。

例 2

テストセットで汎化誤差を推定する

訓練に使っていない100件のテストデータで予測し、12件を間違えました(架空の例)。

  • 誤り率は12÷100=0.12です。これが汎化誤差の推定値になります。
  • 同書は、汎化誤差を、訓練セットとは別に集めたテストセットでの性能で推定すると説明します。
  • テストデータを学習に使うと、この推定は、新しい入力での誤差を表さなくなります。

結論: 汎化誤差は、学習に使っていないデータで測ります。同じデータで学習と評価をすると、見かけの誤差だけが小さくなります。

例 3

訓練とテストが同じ分布という前提

訓練データとテストデータは、互いに独立で、同じ確率分布から得られるものとして議論します。

  • この前提はi.i.d.の仮定と呼ばれ、訓練誤差とテスト誤差の関係を数学的に調べる土台になります。
  • データの分布が訓練時と運用時で大きく変わると、テスト誤差が運用時の誤差を表さなくなる、という読み方ができます。

結論: テスト誤差が汎化誤差の推定として働くのは、テストデータが、実際に出会う入力と同じ分布のときです。

問題文から答えを選ぶ手順

  1. 1

    誤差を測るデータを読む

    訓練セットなら訓練誤差、新しい入力(テストセット)なら汎化誤差です。

  2. 2

    訓練誤差の大きさを見る

    訓練誤差そのものが大きければ、未学習を疑います。

  3. 3

    2つの誤差の差を見る

    訓練誤差が小さいのに、テスト誤差が大きければ、過学習を疑います。

  4. 4

    比べる指標を選ぶ

    モデルの選択は、訓練誤差でなくテスト誤差(汎化誤差の推定)で比べます。

試験での見分け方

  • 1訓練誤差は、訓練セットで計算する誤差である。
  • 2汎化誤差は、新しい入力に対する誤差の期待値で、テスト誤差とも呼ぶ。
  • 3汎化誤差は、訓練とは別に集めたテストセットでの性能で推定する。
  • 4性能を決めるのは、訓練誤差を小さくすることと、2つの誤差の差を小さくすることである。
  • 5訓練誤差が大きければ未学習、2つの誤差の差が大きければ過学習を疑う。

誤答しやすい選択肢

訓練誤差が最も小さいモデルを選ぶ

修正: 訓練誤差が小さくても、テスト誤差が大きければ過学習です。汎化誤差の推定で比べます。

汎化誤差とテスト誤差を別のものだと考える

修正: 同書は、汎化誤差をテスト誤差とも呼ぶと述べます。ただし厳密には、テスト誤差は汎化誤差を推定する値です。

テストデータを学習に使う

修正: テストデータで学習すると、汎化誤差の推定が信頼できなくなります。学習と評価のデータは分けます。

確認問題

Q1新しい入力に対する誤差の期待値を何という?

答え: 汎化誤差

テスト誤差とも呼ばれ、テストセットでの性能で推定します。

Q2訓練誤差が小さく、汎化誤差が大きいとき、疑う状態は?

答え: 過学習

2つの誤差の差が大きいことが、過学習の手掛かりです。

Q3訓練誤差そのものが大きいとき、疑う状態は?

答え: 未学習

モデルが訓練データにも十分に合っていない状態です。

Q4訓練誤差0.1・テスト誤差3.5のモデルの、2つの誤差の差は?

答え: 3.4

3.5−0.1=3.4で、差が大きいので過学習を疑います。

到達チェック

  • 訓練誤差と汎化誤差を、測るデータで区別できる
  • 汎化誤差をテストセットで推定すると説明できる
  • 誤差の大きさと差から、未学習と過学習を見分けられる
  • i.i.d.の仮定を一言で言える

同じ資格で次に知りたいこと

よくある質問

Q訓練誤差と汎化誤差は何が違う?

A

訓練誤差は訓練セットでの誤差、汎化誤差は新しい入力に対する誤差の期待値です。汎化誤差はテストセットで推定します。

Q汎化誤差とテスト誤差は同じ?

A

Deep Learning(Goodfellowら)は、汎化誤差をテスト誤差とも呼ぶと述べます。テスト誤差は、汎化誤差をテストセットで推定した値と読むと整理しやすくなります。

QG検定に汎化誤差は出る?

A

公式シラバスの「モデルの評価と過学習」には、交差検証や過学習などの語が挙がります。汎化誤差の語自体の記載は確認していないため、過学習の説明に出る語として押さえておくと安心です。

次に見る比較

執筆: AI資格ドリル編集部(運営者情報を見る)