1 定義とメカニズム
過学習(オーバーフィッティング)は、機械学習や統計モデリングにおいて、モデルが訓練データに過度に適合し、ノイズや特異なパターンまで学習してしまう現象を指す。その結果、訓練データに対する性能は極めて高くなる一方、未知のデータ(テストデータ)に対する汎化性能が著しく低下する。これはモデルの複雑性がデータの本質的な構造を超えた場合に生じる。
1.1 統計的学習理論における位置づけ
統計的学習理論では、モデルの学習は経験リスク最小化の枠組みで定式化される。過学習は、訓練データ上での経験リスクを過度に小さくしようとするあまり、真のデータ生成分布に対する期待リスク(汎化誤差)が増大する状態に対応する。これはモデルの容量(capacity)が訓練データの情報量を超えた場合に顕在化する。
1.2 バイアス-バリアンストレードオフとの関係
過学習はバイアス-バリアンストレードオフにおける高バリアンス状態の典型例である。モデルが複雑になるほどバイアスは低下するが、バリアンス(推定値の訓練データへの依存度)が増大する。適切な複雑性のモデルはバリアンスとバイアスの和である汎化誤差を最小化するが、過学習はバリアンスが過大になった状態に相当する。
1.3 過学習の数学的表現
訓練データ集合 \( \mathcal{D} = \{ (x_i, y_i) \}_{i=1}^N \) に基づき、パラメータ \(\theta\) を持つモデル \( f(x;\theta) \) を学習する場合、過学習は以下の不等式で特徴づけられる:
\( \frac{1}{N} \sum_{i=1}^N L(y_i, f(x_i;\theta)) \ll \mathbb{E}_{(x,y)\sim P}[L(y, f(x;\theta))] \)
ここで \(L\) は損失関数、\(P\) は真のデータ分布である。訓練誤差が極端に小さいにもかかわらず、テスト誤差が大きい場合に過学習と判定される。
2 過学習の原因
2.1 モデルの複雑性
2.1.1 パラメータ数の過多
モデルのパラメータ数が訓練データ数に対して過剰であると、各データ点を個別に記憶する自由度が生じる。例えば、多項式回帰において次数がサンプル数に近づくと、訓練データを完全に補間するが、中間点では大きく振動する。
2.1.2 非線形性の過度な導入
活性化関数やカーネル関数などによる強い非線形変換を多層に積み重ねると、モデルの表現力が高まり、訓練データの微細な変動にも適合しやすくなる。特に深層学習では層数やユニット数の増加が過学習を誘発する。
2.2 訓練データの特性
2.2.1 データ量の不足
訓練サンプルが少ないほど、モデルは限られたパターンを過度に学習しやすい。統計的に言えば、経験分布が真の分布を十分に近似できず、サンプル特有の偏りが学習される。
2.2.2 ノイズの存在
測定誤差やラベリングミスなどのノイズが含まれると、過学習したモデルはそのノイズ自体を規則性として捉える。特に訓練誤差をゼロに近づけるよう学習すると、ノイズの影響が増幅される。
2.2.3 データ分布の偏り
訓練データが特定のクラスや領域に偏っている場合、モデルはその偏りを学習し、テスト環境で出現頻度の低いパターンに対して誤った予測を行う。これは領域シフト(covariate shift)下での過学習の一種である。
3 過学習の検出と評価
3.1 学習曲線の分析
3.1.1 訓練誤差と検証誤差の乖離
学習曲線において、訓練誤差が単調減少する一方で検証誤差がある時点から増加に転じる場合、その時点以降が過学習領域である。この乖離の度合いは、訓練誤差と検証誤差の差として定量化できる。
3.2 交差検証の活用
3.2.1 k分割交差検証
全データをk個のサブセットに分割し、k-1個で学習、残り1個で評価をk回繰り返す。各分割で得られた検証誤差の平均と分散を観察することで、過学習の有無を判断する。分散が大きい場合は、特定の訓練データ分割に強く依存していることを示す。
3.2.2 リーブワンアウト交差検証
kをデータ数Nに設定した特殊な交差検証。各サンプルを1つずつ検証データとし、残り全てで学習する。計算コストは高いが、バイアスの少ない評価が可能であり、サンプル単位での過学習検出に有効である。
4 過学習の防止と対策
4.1 正則化手法
4.1.1 L1正則化(ラッソ回帰)
| 損失関数にパラメータの絶対値の和(L1ノルム)を加える。\( \mathcal{L} = \text{損失} + \lambda \sum | \theta_j | \)。λは正則化強度を制御するハイパーパラメータ。L1正則化は多くのパラメータを正確にゼロにし、特徴選択効果を持つ。 |
|---|
4.1.2 L2正則化(リッジ回帰)
損失関数にパラメータの二乗和(L2ノルム)を加える。\( \mathcal{L} = \text{損失} + \lambda \sum \theta_j^2 \)。パラメータをゼロに近づけるが完全にはゼロにしない。重み減衰(weight decay)として深層学習でも広く利用される。
4.1.3 Elastic Net
| L1正則化とL2正則化を線形結合した手法。\( \mathcal{L} = \text{損失} + \lambda_1 \sum | \theta_j | + \lambda_2 \sum \theta_j^2 \)。グループ選択性と特徴選択の両方を実現し、高次元データで有効である。 |
|---|
4.2 データ拡張と前処理
4.2.1 画像データの回転・反転
画像分類タスクでは、訓練画像に対してランダムな回転、水平反転、並進、スケール変更などを施す。これにより、モデルは見かけ上のバリエーションを多く経験し、本来の物体の特徴に集中できるようになる。
4.2.2 ノイズ付加
入力データにガウシアンノイズやドロップアウトノイズを加えることで、モデルの微小な摂動に対する頑健性が向上する。これは正則化効果をもたらし、過学習を抑制する。
4.3 ネットワーク構造の制御
4.3.1 ドロップアウト
学習時にランダムに一部のニューロンを確率pで無効化する。これにより、各ニューロンが他のニューロンへの過度な依存を避け、よりロバストな特徴を学習する。推論時は全ニューロンを使用し、その出力をp倍する。
4.3.2 早期停止(Early Stopping)
検証誤差が改善しなくなった時点で学習を打ち切る手法。検証セットの誤差が最小となるエポックを選択することで、過学習が進行する前に学習を停止する。計算コストが低く、実践的によく用いられる。
4.3.3 バッチ正規化
ミニバッチごとに活性化値を平均0、分散1に正規化する。これにより内部共変量シフトが軽減され、学習が安定化する。同時に弱い正則化効果もあり、過学習の抑制に寄与する。
4.4 アンサンブル手法
4.4.1 バギング
ブートストラップサンプリングによって複数の訓練データセットを生成し、それぞれ独立にモデルを学習する。それらの予測を平均または多数決することで、バリアンスを低減する。個々のモデルが過学習していても、アンサンブル全体としては汎化性能が向上する。
4.4.2 ランダムフォレスト
バギングを決定木に適用した手法。各決定木の学習時に、特徴量の一部をランダムに選択することで、木間の相関を低下させる。これにより過学習をさらに抑制し、高い汎化性能を達成する。
5 過学習と関連概念
5.1 未学習(アンダーフィッティング)との比較
未学習は過学習と逆の現象で、モデルの容量が不足し、訓練データのパターンすら十分に捉えられない状態を指す。訓練誤差も検証誤差も高いままである。過学習は訓練誤差が低い一方で検証誤差が高いのに対し、未学習は両者とも高いという違いがある。適切なモデル複雑性は、過学習と未学習の間に存在する。
5.2 汎化性能の理論限界
統計的学習理論におけるVC次元やRademacher複雑性などの概念は、モデルが過学習せずに達成可能な汎化誤差の理論的な上限を与える。これらの尺度は、訓練データ数とモデルの複雑さの関係を定量化し、過学習が避けられない条件を示す。例えば、訓練誤差が0であっても、VC次元が無限大なら汎化性能は保証されない。実用的には、これらの理論限界に近づけないよう、正則化やデータ拡張などの対策が必要となる。