L0・L1・L2 正則化

過学習を防ぐために「重みにペナルティをかける」3つの方法

1正則化(Regularization)とは?

モデルが訓練データに過度にフィットする(過学習)のを防ぐために、損失関数に「重みの大きさに対するペナルティ」を加える手法です。

最終的な損失 = 元の損失(予測のズレ)+ λ × ペナルティ(重みの大きさ)
λ(ラムダ)= ペナルティの強さを調整するハイパーパラメータ
なぜ重みを小さくしたいのか:重みが大きい = モデルがデータの細かいノイズにまで反応している状態です。重みにペナルティをかけて小さくすることで、モデルをシンプルに保ち、汎化性能を高めます。

日常の例えで理解する

テスト対策で例えると:

✗ 過学習(正則化なし)
過去問の答えを丸暗記。問題文のちょっとした言い回しまで記憶。似た問題が出ないと解けない。
✓ 汎化(正則化あり)
「要点だけ覚える」という制約をかける。本質的なパターンだけ学ぶので、初見の問題にも対応できる。

2具体例:家賃予測モデルの重み

5つの特徴量で家賃を予測するモデルがあるとします。正則化前の学習済みの重みが以下の通りです。

家賃 = 3.2×面積 + 0.8×築年数 + 0.01×郵便番号 + 5.1×駅距離 + 0.002×部屋番号
重み w = [3.2, 0.8, 0.01, 5.1, 0.002]

郵便番号(0.01)や部屋番号(0.002)は家賃にほぼ関係ないのに、たまたま訓練データのノイズを拾って小さな重みが残っています。正則化でこれらをどう処理するかが、L0・L1・L2で異なります。

3L0 正則化 ― 0でない重みの「個数」にペナルティ

ペナルティ = λ × (0でない重みの個数)
重みの大きさは関係なく、「使っている特徴量の数」を減らそうとする
計算例
w = [3.2, 0.8, 0.01, 5.1, 0.002]
0でない重みの個数 = 5個(全部0ではない)
L0ペナルティ = λ × 5

L0正則化後のイメージ

ペナルティを最小化するには、できるだけ多くの重みを完全に0にして、本当に重要な特徴量だけ残します。

w₁
3.2
w₂
0.8
w₃
→ 0
w₄
5.1
w₅
→ 0
特徴:最も直感的な「特徴量選択」。ただし「0でない個数」は微分できないため、勾配降下法で最適化できないのが致命的な弱点です。組合せ最適化問題(NP困難)になるため、実用上はほとんど使われません。

4L1 正則化(Lasso)― 重みの「絶対値の和」にペナルティ

ペナルティ = λ × Σ|wᵢ|
各重みの絶対値を合計。L0の実用的な代替手段
計算例
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に押しつぶす性質があります。結果として、不要な特徴量が自動的に除外されます(スパース化)。

w₁
2.5
w₂
0.4
w₃
0 !
w₄
4.1
w₅
0 !
キーワード:スパース化(疎にする)
L1正則化は不要な特徴量の重みを0にするため、自動的に特徴量選択を行います。回帰分析でL1正則化を用いたものをLasso回帰と呼びます。

5L2 正則化(Ridge)― 重みの「2乗の和」にペナルティ

ペナルティ = λ × Σ wᵢ²
各重みの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)」とも呼ばれます。

w₁
2.1
w₂
0.5
w₃
0.008
w₄
3.4
w₅
0.001
キーワード:荷重減衰(Weight Decay)
L2正則化は重みを0にはせず「小さく抑える」。全特徴量を少しずつ使い続けるのが特徴。回帰分析でL2正則化を用いたものをRidge回帰と呼びます。ニューラルネットワークでは最も広く使われる正則化です。

6なぜL1は0にできてL2は0にできないのか

これは正則化の制約領域の「形」で直感的に理解できます。

L1 の制約領域(ひし形) w₁ w₂ 損失小 接触点 w₂ = 0 ! ひし形は角が尖っている → 角は軸上 → 接触しやすい → w=0 になりやすい L2 の制約領域(円) w₁ w₂ 損失小 接触点 w₁≠0, w₂≠0 円は角がない(滑らか) → 軸上で接触しにくい → w=0 にはなりにくい
図の読み方:等高線(ピンク楕円)は損失関数を表し、中心が損失最小の点です。制約領域(L1のひし形 / L2の円)の中で、等高線と最初に接する点が最適解になります。L1のひし形は角が軸上にあるため、接触点が軸上(=重みが0)になりやすいのです。

7おまけ:Elastic Net(L1 + L2 の組み合わせ)

ペナルティ = λ₁ × Σ|wᵢ| + λ₂ × Σ wᵢ²
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 の組み合わせ
共通の目的 いずれも過学習の抑制が目的。重みにペナルティをかけてモデルをシンプルに保つ