L0・L1・L2 正則化
過学習を防ぐために「重みにペナルティをかける」3つの方法
1正則化(Regularization)とは?
モデルが訓練データに過度にフィットする(過学習)のを防ぐために、損失関数に「重みの大きさに対するペナルティ」を加える手法です。
なぜ重みを小さくしたいのか:重みが大きい = モデルがデータの細かいノイズにまで反応している状態です。重みにペナルティをかけて小さくすることで、モデルをシンプルに保ち、汎化性能を高めます。
日常の例えで理解する
テスト対策で例えると:
✗ 過学習(正則化なし)
過去問の答えを丸暗記。問題文のちょっとした言い回しまで記憶。似た問題が出ないと解けない。
✓ 汎化(正則化あり)
「要点だけ覚える」という制約をかける。本質的なパターンだけ学ぶので、初見の問題にも対応できる。
2具体例:家賃予測モデルの重み
5つの特徴量で家賃を予測するモデルがあるとします。正則化前の学習済みの重みが以下の通りです。
郵便番号(0.01)や部屋番号(0.002)は家賃にほぼ関係ないのに、たまたま訓練データのノイズを拾って小さな重みが残っています。正則化でこれらをどう処理するかが、L0・L1・L2で異なります。
3L0 正則化 ― 0でない重みの「個数」にペナルティ
計算例
w = [3.2, 0.8, 0.01, 5.1, 0.002]
0でない重みの個数 = 5個(全部0ではない)
L0ペナルティ = λ × 5
L0正則化後のイメージ
ペナルティを最小化するには、できるだけ多くの重みを完全に0にして、本当に重要な特徴量だけ残します。
特徴:最も直感的な「特徴量選択」。ただし「0でない個数」は微分できないため、勾配降下法で最適化できないのが致命的な弱点です。組合せ最適化問題(NP困難)になるため、実用上はほとんど使われません。
4L1 正則化(Lasso)― 重みの「絶対値の和」にペナルティ
計算例
w = [3.2, 0.8, 0.01, 5.1, 0.002]
|w₁| + |w₂| + |w₃| + |w₄| + |w₅|
= 3.2 + 0.8 + 0.01 + 5.1 + 0.002
L1ペナルティ = λ × 9.112
L1正則化後のイメージ
L1は小さな重みを完全に0に押しつぶす性質があります。結果として、不要な特徴量が自動的に除外されます(スパース化)。
キーワード:スパース化(疎にする)
L1正則化は不要な特徴量の重みを0にするため、自動的に特徴量選択を行います。回帰分析でL1正則化を用いたものをLasso回帰と呼びます。
5L2 正則化(Ridge)― 重みの「2乗の和」にペナルティ
計算例
w = [3.2, 0.8, 0.01, 5.1, 0.002]
w₁² + w₂² + w₃² + w₄² + w₅²
= 10.24 + 0.64 + 0.0001 + 26.01 + 0.000004
L2ペナルティ = λ × 36.89
L2正則化後のイメージ
L2は全体の重みをまんべんなく小さく縮めるが、完全に0にはしません。「重みの荷重減衰(Weight Decay)」とも呼ばれます。
キーワード:荷重減衰(Weight Decay)
L2正則化は重みを0にはせず「小さく抑える」。全特徴量を少しずつ使い続けるのが特徴。回帰分析でL2正則化を用いたものをRidge回帰と呼びます。ニューラルネットワークでは最も広く使われる正則化です。
6なぜL1は0にできてL2は0にできないのか
これは正則化の制約領域の「形」で直感的に理解できます。
図の読み方:等高線(ピンク楕円)は損失関数を表し、中心が損失最小の点です。制約領域(L1のひし形 / L2の円)の中で、等高線と最初に接する点が最適解になります。L1のひし形は角が軸上にあるため、接触点が軸上(=重みが0)になりやすいのです。
7おまけ:Elastic Net(L1 + L2 の組み合わせ)
L1の「不要な特徴を0にする」利点と、L2の「学習が安定する」利点を組み合わせた手法です。特徴量が多く、互いに相関のある特徴がある場合に有効です。
📋 L0・L1・L2 完全比較
|
L0 |
L1(Lasso) |
L2(Ridge) |
| ペナルティ |
0でない重みの個数 |
重みの絶対値の和 |
重みの2乗の和 |
| 数式 |
Σ 𝟙(wᵢ≠0) |
Σ|wᵢ| |
Σ wᵢ² |
| 重みを0にするか |
する |
する |
しない(小さくはする) |
| スパース化 |
最もスパース |
スパースになる |
スパースにならない |
| 特徴量選択 |
できる |
できる |
できない |
| 最適化 |
勾配降下法で不可 |
可能 |
可能(最も安定) |
| 制約領域の形 |
― |
ひし形(角あり) |
円(滑らか) |
| 回帰での名称 |
― |
Lasso回帰 |
Ridge回帰 |
| NNでの名称 |
― |
L1正則化 |
Weight Decay |
| 実用度 |
ほぼ使われない |
よく使われる |
最も広く使われる |
覚え方のイメージ
L0 = 人数制限
「使っていい選手は3人まで」
→ 誰を使うかを選ぶ
(でも最適な3人を選ぶのが超大変)
L1 = 予算制限
「全選手の給料合計を○円以内に」
→ 高コスパの選手だけ残し
不要な選手は給料0(解雇)
L2 = 給料均等化
「突出した高給取りを減らす」
→ 全選手の給料を平均的に抑える
誰もクビにはしない
G検定での出題ポイント
| L1 = Lasso |
スパース化(重みを0にする)→ 特徴量選択ができる。制約領域がひし形 |
| L2 = Ridge |
重みを小さくするが0にはしない→ Weight Decay。制約領域が円。最も広く使用 |
| Elastic Net |
L1 + L2 の組み合わせ |
| 共通の目的 |
いずれも過学習の抑制が目的。重みにペナルティをかけてモデルをシンプルに保つ |