L1和L2正则常被用来解决过拟合问题。而L1正则也常被用来进行特征选择,主要原因在于L1正则化会使得较多的参数为0,从而产生稀疏解,将0对应的特征遗弃,进而用来选择特征。
但为什么L1正则会产生稀疏解呢?这里利用公式进行解释。
假设只有一个参数为
w
w
w,损失函数为
L
(
w
)
L(w)
L(w),分别加上L1正则项和L2正则项后有:
J
L
1
(
w
)
=
L
(
w
)
+
λ
∣
w
∣
J_{L1}(w) = L(w) + \lambda \lvert w \rvert
JL1(w)=L(w)+λ∣w∣
J
L
2
(
w
)
=
L
(
w
)
+
λ
w
2
J_{L2}(w) = L(w) + \lambda w^2
JL2(w)=L(w)+λw2
假设
L
(
w
)
L(w)
L(w)在0处的导数为
d
0
d_0
d0,即
∂
L
(
w
)
∂
w
∣
w
=
0
=
d
0
\frac{\partial L(w)}{\partial w} \bigg |_{w=0} =d_0
∂w∂L(w)∣∣∣∣w=0=d0
则可以推导使用L1正则和L2正则时的导数。
引入L2正则项,在0处的导数
∂
J
L
2
(
w
)
∂
w
∣
w
=
0
=
d
0
+
2
×
λ
×
w
=
d
0
\frac{\partial J_{L2}(w)}{\partial w} \bigg |_{w=0} =d_0 + 2 \times \lambda \times w = d_0
∂w∂JL2(w)∣∣∣∣w=0=d0+2×λ×w=d0
引入L1正则项,在0处的导数
∂
J
L
1
(
w
)
∂
w
∣
w
=
0
−
=
d
0
−
λ
\frac{\partial J_{L1}(w)}{\partial w} \bigg |_{w=0^-} =d_0 - \lambda
∂w∂JL1(w)∣∣∣∣w=0−=d0−λ
∂ J L 1 ( w ) ∂ w ∣ w = 0 + = d 0 + λ \frac{\partial J_{L1}(w)}{\partial w} \bigg |_{w=0^+} =d_0 + \lambda ∂w∂JL1(w)∣∣∣∣w=0+=d0+λ
可见,引入L2正则时,代价函数在0处的导数仍是 d 0 d_0 d0,无变化。而引入L1正则后,代价函数在0处的导数有一个突变。从 d 0 + λ d_0 + \lambda d0+λ到 d 0 − λ d_0 - \lambda d0−λ,若 d 0 + λ d_0 + \lambda d0+λ和 d 0 − λ d_0 - \lambda d0−λ异号,则在0处会是一个极小值点。因此,优化时,很可能优化到该极小值点上,即 w = 0 w=0 w=0处。
这里只解释了有一个参数的情况,如果有更多的参数,也是类似的。因此,用L1正则更容易产生稀疏解。