汎化誤差 (G検定)

汎化誤差

1. 定義と概要

汎化誤差とは、学習済みモデルが訓練データ以外の未知のデータ(テストデータや実運用データ)に対してどれだけ誤った予測をするかを表す指標です。学習に使ったデータそのものへの誤差である訓練誤差(モデルを学習させるときに使ったデータそのものに対する予測の誤り具合)とは、対象となるデータが異なる別の概念です。

模擬試験でどれだけ得点できるかではなく、本番の試験でどれだけ得点できるかに近い考え方です。モデルの実力は、学習には使っていないテストデータ(モデルの学習には使わず、性能を確認するためだけに取っておくデータ)に対する予測の正確さで確かめます。

過去の顧客データで学習した与信モデルが、学習に使っていない新規顧客の審査でどれだけ正しく判定できるかは、汎化誤差の大小によって左右されます。汎化誤差は、モデルが実運用でどれだけ通用するかを測る指標として位置づけられています。

従来、機械学習モデルの性能は訓練データへの当てはまりの良さで評価されがちでした。しかし訓練データへ過剰に適合する過学習(訓練データに適合しすぎて、未知のデータへの対応力が落ちる状態)が起きると、訓練誤差は下がり続ける一方で、汎化誤差はある時点から増加に転じます。

見た目の精度が高くても、実際の運用では期待どおりの成果が出ないという事態につながります。未知データでの性能こそが実運用での価値を左右するため、汎化誤差を小さく保つことが機械学習モデル開発の中心的な目標として位置づけられています。実務で使われるモデルほど、汎化誤差を継続的に観測する重要性が増しています。

2. 試験対策ポイント

G検定では、汎化誤差をバイアス・バリアンス・ノイズの3つの要素に分解して捉えるバイアス-バリアンス分解が重要な論点になります。バイアス(モデルが単純すぎて、データの本質的なパターンを捉えきれずに生じる偏り)が大きい状態は、未学習(アンダーフィッティング)に対応します。未学習(アンダーフィッティング)は、モデルが単純すぎて訓練データの傾向すらうまく捉えられていない状態です。

一方、バリアンス(モデルが複雑すぎて、訓練データのわずかなノイズにまで反応し予測がぶれること)が大きい状態は、訓練データに適合しすぎて未知のデータへの対応力が落ちる過学習に対応します。ノイズ(データに元から含まれる誤差で、どんなモデルでも取り除けない部分)は、モデルの設計を工夫しても削減できない誤差として扱われます。

3つの要素がどの状態と結び付くのかを並べると、対応関係がつかみやすくなります。

要素 誤差が生まれる原因 対応する状態 モデルを複雑にしたとき
バイアス モデルが単純すぎる 未学習(アンダーフィッティング) 小さくなる
バリアンス モデルが複雑すぎる 過学習 大きくなる
ノイズ データに元から含まれる誤差 どのモデルでも残る部分 設計を工夫しても減らせない

この分解によって、モデルの誤差が単純さの不足によるものか、複雑さの行き過ぎによるものかを切り分けられます。

表の右端の列が示すとおり、バイアスとバリアンスはトレードオフの関係にあります。モデルを複雑にするとバイアスは小さくなる一方でバリアンスは大きくなり、逆にモデルを単純にするとバリアンスは小さくなる一方でバイアスは大きくなります。一方を減らせばもう一方が増えるという関係にあり、両者が同時に小さくなるわけではない点は、取り違えやすいポイントです。

学習を進めるほど訓練誤差は単調に減少しますが、汎化誤差はある時点から増加に転じることがあります。これが過学習の兆候として扱われます。

汎化誤差を抑える手法としては、交差検証(クロスバリデーション)、正則化、早期終了(アーリーストッピング)の3つが柱になります。交差検証(クロスバリデーション)は、データを複数のグループに分けて学習と評価を繰り返す方法です。限られたデータを学習と評価の両方に有効に使うための代表的な方法として扱われます。

正則化は、モデルが複雑になりすぎないようにペナルティを与える工夫です。早期終了(アーリーストッピング)は、検証データ(学習の途中経過を確認するために、訓練データ・テストデータとは別に取っておくデータ)での性能が悪化し始める前に学習を止める手法です。

3種類のデータは名前が似ているため、それぞれをどの場面で使うのかを対応させて覚えておくと混同を避けられます。

データ 使う場面
訓練データ モデルの学習そのものに使う
検証データ 学習の途中で設定の調整や早期終了の判断に使う
テストデータ 学習が終わったあとの最終評価にだけ使う

テストデータが学習完了後の最終評価にだけ使うデータであるのに対し、検証データは学習の途中で参照される点が異なります。

3. 関連概念との比較・相違点

訓練誤差との最大の違いは、対象とするデータの違いにあります。訓練誤差は学習に使ったデータそのものに対する誤差であるのに対し、汎化誤差は学習に使っていない未知のデータに対する誤差です。同じモデルから計算される値でも、測っている対象が異なります。

訓練誤差だけが極端に低いモデルを見つけた場合でも、それだけで汎化誤差が小さいとは限りません。訓練誤差だけを見てモデルの良し悪しを判断すると、訓練データにだけ強いモデルを選んでしまう恐れがあります。両者を見分ける際は、対象とするデータがどちらかという視点が分かれ目になります。

過学習との違いは、指標なのか現象なのかという位置づけの違いにあります。過学習は、訓練誤差が下がり続ける一方で汎化誤差が増加するという現象そのものを指す言葉です。これに対して汎化誤差は、その状態を数値として測る指標にあたります。

過学習が起きているかどうかは、汎化誤差の推移を見て判断することになります。汎化誤差が訓練誤差から離れて増加に転じた時点が、過学習の始まりの目安として扱われます。この位置づけの違いから、過学習を防ぐ対策の効果は、汎化誤差の変化を観測することで確認します。

4. ビジネス・実務での活用シナリオ

与信・金融審査の分野では、過去の融資データだけに適合したモデルは訓練データに対しては高精度でも、新規顧客の審査では誤判定が増えることがあります。交差検証によって汎化誤差を見積もることで、未知の申込者に対しても通用するモデルを選定できます。

審査基準の妥当性を検証データの段階で確かめておくことが、実運用でのトラブルを防ぐことにつながります。汎化誤差の小さいモデルを採用する運用は、与信判断の公平性を保つ観点からも重視されます。

需要予測・在庫管理の分野でも同様の課題があります。過去の販売実績に過剰適合したモデルは、季節変動やイレギュラーな需要変化に弱く、発注量を誤る原因になります。正則化や早期終了によって汎化誤差を抑えたモデルの方が、実運用での予測精度が安定します。

学習期間には含まれていない急な需要変動が起きた場合でも、汎化誤差の小さいモデルの方が予測のずれを抑えられます。発注量の見積もりに汎化誤差の小さいモデルを使うことで、欠品や過剰在庫といった機会損失を抑えられます。

5. 要点まとめ

  • 汎化誤差は未知データに対する誤差であり、学習データに対する訓練誤差とは区別されます。
  • 汎化誤差はバイアス・バリアンス・ノイズの3要素に分解でき、バイアスとバリアンスはトレードオフの関係にあります。
  • 学習が進むほど訓練誤差は減少し続けますが、汎化誤差はある時点から増加に転じることがあり、これは過学習の兆候にあたります。交差検証・正則化・早期終了は、汎化誤差を抑える手法としてセットで扱われます。

6. 確認問題

問1汎化誤差は、バイアス・バリアンス・ノイズの3つの要素に分解できる。

解答・解説をみる

○ 正しい

汎化誤差の期待値は、バイアス・バリアンス・削減不可能なノイズの和に分解できます。このバイアス-バリアンス分解は、汎化誤差の内訳を捉える基本的な考え方です。あわせて整理しておきたいところです。

問2モデルの複雑さを増やすと、バイアスとバリアンスは同時に小さくなる関係にある。

解答・解説をみる

× 誤り

バイアスとバリアンスはトレードオフの関係にあり、モデルを複雑にするとバイアスは小さくなる一方でバリアンスは大きくなります。正しくは一方を減らすともう一方が増える関係であり、同時に小さくなるという記述は誤りです。

問3学習を進めるほど訓練誤差は減少し続けるが、汎化誤差はある時点から増加に転じることがあり、これは過学習の兆候とされる。

解答・解説をみる

○ 正しい

訓練データへの過剰な適合が進むと、訓練誤差は下がり続ける一方で、未知データに対する汎化誤差は増加へ転じます。これは過学習の典型的な挙動として扱われます。