正則化(Regularization)| Deep Learning の基礎
定義
モデルが訓練データに過剰に適合(オーバーフィッティング)しないように、意図的に制約やペナルティを加えてモデルをシンプルに保つための手法です。
基本的な考え方
損失関数にパラメータの大きさに対するペナルティ項を加えます。
\[最終的な目的関数 = 訓練データへの誤差 + \lambda \times ペナルティ項\]この λ(ラムダ、正則化係数)を調整することで、正則化の強さをコントロールします。
- λを大きくする → ペナルティが強く効く → パラメータが小さく抑えられる → モデルが単純になる(正則化を強める)
- λを小さくする(0 に近づける) → ペナルティがほぼ効かない → パラメータが自由に動ける → モデルが複雑になれる(正則化を弱める)
代表的な種類
- Dropout: 学習時に一部のニューロンをランダムに無効化する(ニューラルネットワーク特有)
- L2正則化(Ridge): $W^2$ のペナルティ → U字形状 → 重みがなめらかに縮小(0にはなりにくい)→ 過学習抑制に使える
-
L1正則化(Lasso): $ w $ のペナルティ → V字形状 → 重みが完全に0になる(スパースとよぶ) → 特徴量選択に使える - 早期終了(early stopping): 検証誤差が悪化し始めたタイミングで学習を止める
- データ拡張(augmentation): 入力データ側を加工することで汎化性能を高める
- ラベルスムージング: 正解ラベルを1.0ではなく少し緩める
過学習抑制手法:損失関数への「足し算」になるか
| 種類 | 損失への足し算 | 補足 |
|---|---|---|
| L1 / L2正則化 | される | $\lambda \sum w^2$(L2)や $\lambda \sum |w|$(L1)のような項を損失に追加する |
| Dropout | されない | ニューロン無効化という操作自体が正則化効果を生む |
| Weight decay(AdamW等) | されない | パラメータ更新式に直接組み込む |
| データ拡張 | されない | 入力 x を加工する |
| 早期終了 | されない | 学習を打ち切るタイミングの工夫 |
| ラベルスムージング | されない | 正解ラベル y を加工する |
試験対策の結論
「足し算されるのはL1/L2正則化だけ」という軸で他の手法と区別できると、選択肢の消去法に強くなる。
正則化の強さと目的関数の関係
イメージ
\[\text{目的関数} = \underbrace{\text{訓練誤差(損失)}}_{\text{小さくしたい}} + \lambda \times \underbrace{\text{正則化項}}_{\text{パラメータを抑える}}\]- λを大きくする → 正則化項の影響力が増す → パラメータが小さく抑えられる → 訓練データへのフィットは犠牲になる(アンダーフィッティング方向)
- λを小さくする(0に近づける) → 正則化の効果が弱まる → 通常の(正則化なしの)学習に近づく(オーバーフィッティング方向)
試験での問われ方
「正則化を強くしすぎるとどうなるか」という問いには「訓練誤差が増加し、未学習(アンダーフィッティング)気味になる」が正解になることが多い。
「学習が強化される」という表現は誤解を招くので、以下のように覚えておくのが安全。
- 「モデルの複雑さに制約がかかる」
- 「過学習を抑える方向に働く」
バイアス・バリアンスとの関係
- バリアンスが大きい(オーバーフィッティング)場合:λ を大きくして正則化を強め、モデルを単純に保つことでバリアンスを抑える
- バイアスが大きい(アンダーフィッティング)場合:正則化が強すぎる可能性があるため、λ を小さくして正則化を弱め、モデルがより自由にパターンを学習できるようにする。