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