L1正则为什么更容易获得稀疏解

  L1和L2正则常被用来解决过拟合问题。而L1正则也常被用来进行特征选择,主要原因在于L1正则化会使得较多的参数为0,从而产生稀疏解,将0对应的特征遗弃,进而用来选择特征。

  但为什么L1正则会产生稀疏解呢?这里利用公式进行解释。
假设只有一个参数为 w w ,损失函数为 L(w) L ( w ) ,分别加上L1正则项和L2正则项后有:

JL1(w)=L(w)+λ|w| J L 1 ( w ) = L ( w ) + λ | w |

JL2(w)=L(w)+λw2 J L 2 ( w ) = L ( w ) + λ w 2

假设 L(w) L ( w ) 在0处的倒数为 d0 d 0 ,即

L(w)ww=0=d0 ∂ L ( w ) ∂ w | w = 0 = d 0

则可以推导使用L1正则和L2正则时的导数。

引入L2正则项,在0处的导数

JL2(w)ww=0=d0+2×λ×w=d0 ∂ J L 2 ( w ) ∂ w | w = 0 = d 0 + 2 × λ × w = d 0

引入L1正则项,在0处的导数

JL1(w)ww=0=d0λ ∂ J L 1 ( w ) ∂ w | w = 0 − = d 0 − λ

JL1(w)ww=0+=d0+λ ∂ J L 1 ( w ) ∂ w | w = 0 + = d 0 + λ

可见,引入L2正则时,代价函数在0处的导数仍是 d0 d 0 ,无变化。而引入L1正则后,代价函数在0处的导数有一个突变。从 d0+λ d 0 + λ d0λ d 0 − λ ,若 d0+λ d 0 + λ d0λ d 0 − λ 异号,则在0处会是一个极小值点。因此,优化时,很可能优化到该极小值点上,即 w=0 w = 0 处。

  这里只解释了有一个参数的情况,如果有更多的参数,也是类似的。因此,用L1正则更容易产生稀疏解。

你可能感兴趣的:(machine,learning)