過学習のメカニズム
過学習(オーバーフィッティング)とは、モデルが訓練データのノイズや細かな変動まで学習し、未知のデータに対して予測精度が低下する現象を指す。機械学習モデルはパラメータ数が多いほど表現力が高まるが、訓練データに特化しすぎると、真のデータ分布ではなく局所的なパターンに適合する。典型的な要因として、訓練データが少ない、モデルが複雑すぎる、特徴量が多すぎるなどが挙げられる。過学習が生じると、訓練誤差は小さくなる一方で、テスト誤差が増大する。
正則化が果たす役割
正則化は、モデルの複雑さにペナルティを課すことで過学習を抑制し、汎化性能を向上させる手法である。具体的には、損失関数にパラメータの大きさや数に関する制約項を追加し、モデルが訓練データに過度に適合するのを防ぐ。これにより、バイアスはやや増加するものの、バリアンスが減少し、未知データに対する予測の安定性が高まる。正則化はバイアスとバリアンスのトレードオフを調整する重要な役割を果たす。
L1正則化(ラッソ回帰)
数式とスパース性
L1正則化は、損失関数にパラメータの絶対値の和(L1ノルム)をペナルティ項として追加する。線形回帰の場合、最小化すべき目的関数は以下のように表される。
| 最小化: \( \frac{1}{2n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2 + \lambda \sum_{j=1}^{p} | \beta_j | \) |
|---|
ここで、λ(ラムダ)は正則化の強度を制御するハイパーパラメータである。L1正則化の特徴は、解がスパース(多くのパラメータがゼロになる)になりやすい点にある。これは、L1ノルムが原点で微分不可能なため、最適解が座標軸上に位置する傾向があることに起因する。
特徴選択への応用
L1正則化は、不要な特徴量を自動的にゼロにすることで、特徴選択の機能を兼ね備える。高次元データ(p >> n)において、関連性の低い特徴量を排除し、モデルを解釈しやすくする。例えば、医学診断やテキスト分類など、多数の候補特徴から少数の重要な特徴を抽出する場面で広く利用される。
L2正則化(リッジ回帰)
数式と重み減衰
L2正則化は、損失関数にパラメータの二乗和(L2ノルムの二乗)をペナルティ項として追加する。線形回帰の場合、目的関数は以下の通り。
最小化: \( \frac{1}{2n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2 + \lambda \sum_{j=1}^{p} \beta_j^2 \)
L2正則化は、すべてのパラメータを均等にゼロに近づける(重み減衰)。これにより、パラメータの値が小さく抑えられ、モデルの複雑さが減少する。L1と異なり、パラメータが完全にゼロになることはなく、スパース性は生じない。
過学習抑制の理論的根拠
L2正則化は、パラメータの分散を小さくすることで過学習を抑制する。数学的には、正則化項を加えることで損失関数のヘッセ行列に正の寄与が加わり、解が安定する。また、ベイズ統計の観点からは、パラメータにガウス事前分布を仮定した最大事後確率推定(MAP推定)と等価である。これにより、訓練データの小さな変動による推定値の大きな変化を防ぐ。
L1とL2の比較
解の性質の違い
L1正則化はスパースな解(多くのゼロ)を生成し、L2正則化は非ゼロで小さい値の解を生成する。L1は特徴選択に有効である一方、L2は相関の高い特徴量が存在する場合にそれらを平均的に扱う傾向がある。また、L1の解は非連続的な変化を示すことがあり、L2は滑らかに変化する。
使用シナリオの選択
L1正則化は、特徴量が多く、その中に重要でないものが多数含まれる場合や、解釈性が重視される場合に適する。L2正則化は、すべての特徴量が何らかの寄与を持つと想定される場合や、特徴量間に強い相関がある場合に適する。実際の応用では、データの性質や目的に応じて使い分ける。
Elastic Net(L1+L2混合)
Elastic Netは、L1正則化とL2正則化の両方を組み合わせた手法である。目的関数には両方のペナルティ項が加わり、L1によるスパース性とL2による安定性を同時に実現する。特に、特徴量の数がサンプル数より多い場合や、特徴量間にグループ相関がある場合に有効である。調整パラメータとして、L1とL2の比率を制御する混合パラメータが導入される。
ドロップアウト
ドロップアウトは、ニューラルネットワークの学習中に、確率的に一部のニューロンを無効化(ドロップアウト)する手法である。各訓練イテレーションでランダムに選択されたニューロンの出力をゼロにすることで、ネットワークが特定のニューロンに過度に依存するのを防ぐ。これにより、異なる部分ネットワークがアンサンブルとして機能し、汎化性能が向上する。テスト時にはすべてのニューロンを使用し、出力をドロップアウト率でスケーリングする。
早期終了
早期終了は、訓練データに対する誤差が減少し続ける一方で、検証誤差が増加し始めた時点で学習を停止する手法である。過学習が発生する前に訓練を打ち切ることで、モデルの複雑さを制限する効果がある。実装が容易で、追加の正則化項を必要としないため、広く利用される。ただし、停止のタイミングには注意が必要であり、検証データの分割や監視方法が重要となる。
データ拡張
データ拡張は、既存の訓練データに小さな変換(回転、拡大縮小、ノイズ付加など)を施して水増しする手法である。これにより、見かけ上のデータ量が増え、モデルが様々なバリエーションを学習するため、過学習が抑制される。画像認識や音声認識など、データが限られている分野で特に効果的である。ただし、変換方法はタスクに応じて適切に選択する必要がある。
バッチ正規化
バッチ正規化は、ニューラルネットワークの各層の入力分布を正規化する手法である。ミニバッチごとに平均と分散を計算し、入力を標準化した後、学習可能なスケールとシフトを適用する。これにより、層間の内部共変量シフトが軽減され、学習が安定化し、過学習を防ぐ効果がある。また、大きな学習率を設定可能にし、収束を加速する。推論時には、訓練で計算された移動平均を用いて正規化を行う。
損失関数の変更とペナルティ項
正則化は、元の損失関数 \( L(\mathbf{w}) \) にペナルティ項 \( \Omega(\mathbf{w}) \) を加えた以下の形で定式化される。
\[ \tilde{L}(\mathbf{w}) = L(\mathbf{w}) + \lambda \Omega(\mathbf{w}) \]
| ここで、\( \Omega(\mathbf{w}) \) はパラメータのノルムに依存する関数であり、L1の場合は \( \|\mathbf{w}\|_1 \)、L2の場合は \( \|\mathbf{w}\|_2^2 \) を取る。λはペナルティの強度を制御するハイパーパラメータであり、λが大きいほど正則化が強く作用する。この改変により、勾配降下法などの最適化アルゴリズムでは、重み更新時にペナルティ項の勾配が加わる。 |
|---|
ハイパーパラメータ(λ)のチューニング
λの最適な値は、交差検証(クロスバリデーション)を用いて決定される。典型的には、複数のλの候補に対してモデルを訓練し、検証データ上の性能(平均二乗誤差や分類精度など)を比較する。λが小さすぎると正則化の効果が得られず、大きすぎるとモデルが過度に単純化されバイアスが増大する。対数スケールでグリッドサーチを行うことが一般的である。
実装上の注意点
特徴量のスケーリング
正則化項はパラメータの大きさに依存するため、特徴量のスケールが異なると、正則化が不均一に作用する。例えば、L2正則化では、値の大きな特徴量に対応するパラメータがより強くペナルティを受ける。したがって、正則化を適用する前に、すべての特徴量を標準化(平均0、分散1)または正規化(最小値0、最大値1)することが推奨される。
正則化の強度とモデル選択
正則化の強度(λ)は、モデルの複雑さを直接制御するため、適切な選択が重要である。λが小さいと過学習が生じやすく、λが大きいと未学習(アンダーフィッティング)のリスクがある。交差検証に加えて、情報量基準(AICやBIC)を用いた選択も可能であるが、計算コストとの兼ね合いを考慮する。実装時には、訓練データとテストデータの不均衡や、正則化項が損失関数全体に占める割合を確認し、安定した学習が行えるよう注意する。