大学生 → 社会人の雑記

統計学や機械学習について気紛れにメモメモするブログです。ゆるふわな感じでやっています。

L2正則化,L1正則化

メモ書きみたいなものです。ではさっそく…

線形モデル

y=Xβ+ε

を考えます。

y は目的変数

X は計画行列

β は回帰係数

ε は誤差とし
誤差ε
(1)不偏性 E(ε) = 0
(2)等分散性 V(ε) = σ^2
(3)無相関性 Cov(ε_i,ε_j) = 0
を満たすものとします。

です。

ここで、求めたい(推定したい)のは β です。そこで最小自(二)乗法を用います。つまり

  \hat{β}min S(β) = (y-Xβ)^T(y-Xβ) となるような β です。

損失関数S(β)を最小化するには微分して0と置いてやればいい。かくかくしかじかあって…
(実際にやってみるか東大出版の青本を読むかすれば簡単なのでわかります。是非やって見てください。)


正規方程式

X^TXβ=X^Ty

が得られ、左から(X^TX)^{-1} を掛けることにより

  \hat{β}=(X^TX)^{-1}X^Ty

となります。

ご覧の通り  \hat{β} を求めるのに逆行列 (X^TX)^{-1} を求めなければなりません。

逆行列が存在することの必要十分条件

det (X^TX) ≠ 0

です。しかし、特徴量の中に相関の強いものが含まれると(多重共線性)det (X^TX) の値が非常に小さくなります。


さて、逆行列は余因子行列\widetilde{X^TX} を用いて

(X^TX)^{-1} = \frac{1}{det (X^TX)}\widetilde{X^TX}

で表されます。つまり、

 (X^TX)^{-1} → ∞ as det (X^TX) → 0

となり、また

Cov(\hat{β_i},\hat{β_j}) = (X^TX)^{-1}σ^2(i,j) 要素



であるから det (X^TX)^{-1} → 0 で共分散も発散する。

これを回避しようというのが正則化という考え方です。



《Ridge回帰 〜L2正則化〜》

上記の問題を解決するためにL2正則化では、損失関数S(β) にL2ノルムを加えてやります。つまり、

S(β) = (y-Xβ)^T(y-Xβ) + λβ^Tβ

ここで λ≧0正則化の強さを調整する値(ハイパーパラメータ)です。

これにより逆行列を持たなかった (X^TX)逆行列を持つようになります。


そしてこの時、解は次のように書けます。


  \hat{β}=(X^TX+λI)^{-1}X^Ty


このように、L2正則化では解が陽に書ける事が特徴の1つです。




《Lasso回帰 〜L1正則化〜》

L1正則化では S(β) にL1ノルムを加えてやります。つまり、

S(β) = (y-Xβ)^T(y-Xβ) + λΣβ_i

ここでやはり λ≧0正則化の強さを調整する値(ハイパーパラメータ)です。

L1正則化では変数選択もできるためスパース性を持つモデルを構築できます。
しかし、L1正則化では微分微分♬で解が得られないので数値計算を行うことになります。
また、相関の強い変数は1つしか選ばないのでその辺注意する必要があります。