L1正则为什么会产生稀疏解

文章目录

  • 正则化的本质
  • L2正则化
    • 直观解释
    • 数学解释
  • L1正则化
    • 直观解释
    • 数学解释

在机器学习中,当模型过于复杂时,为了防止产生过拟合的现象,最常用的方法时采用正则化,如L1正则和L2正则.

正则化的本质

L2正则就是在原来的损失函数的基础上加上权重参数的平方和.
L = L 0 + λ ∑ j w j 2 L = L_0 + \lambda\sum_j w_j^2 L=L0+λjwj2
其中 L 0 L_0 L0是训练样本误差, λ \lambda λ是正则化参数.
正则化的目的是防止参数过多或者过大,从而避免模型过于复杂. 为了达到这一目的最直接的方法是限制参数的个数,但是这属于NP-hard问题,求解很困难,所以我们通常采取的限定条件是
∑ j w j 2 ≤ C \sum_j w_j^2\leq C jwj2C

所谓的添加正则项的损失函数,本质上是原始训练误差在给定上述约束条件下的最小化,这样我们通过拉格朗日乘数法即可将其转化为无约束问题,也就是我们添加了正则项的损失函数 L L L,拉格朗日乘子即是正则化参数.

L2正则化

直观解释

假设损失函数是在二维上求解,即参数的个数为2,我们可以绘制出如下图象,其中彩色实线是 L 0 L_0 L0的等值线,黑色的是 L 2 L2 L2的等值线,从二维空间上看, L 2 L2 L2 L 0 L_0 L0等值线相交时参数 w 1 、 w 2 w_1、w_2 w1w2等于零的概率很小,所以使用 L 2 L2 L2正则的解不具有稀疏性.

L2正则倾向于构造一个所有参数都比较小的模型,当数据产生较大的偏移时,由于参数足够小,对于结果也不会产生太大的影响,所以说抗扰动能力强.

L1正则为什么会产生稀疏解_第1张图片

数学解释

根据
L = L 0 + λ ∑ j w j 2 L = L_0 + \lambda\sum_j w_j^2 L=L0+λjwj2
为了 L L L的最小值,我们通常对其求梯度并令其为0.
▽ L = ▽ L 0 + 2 λ ∑ j w j \bigtriangledown L = \bigtriangledown L_0 + 2 \lambda \sum_j w_j L=L0+2λjwj
在参数 w j = 0 w_j=0 wj=0时,
▽ L = ▽ L 0 \bigtriangledown L = \bigtriangledown L_0 L=L0
这意味着代价函数的梯度在 w j = 0 w_j=0 wj=0处不等于零,所以对损失函数 L L L求极小值时,不会 w j = 0 w_j=0 wj=0处取到,因此 L 2 L_2 L2正则不会产生稀疏解.

L1正则化

直观解释

L = L 0 + ∑ j ∣ w j ∣ L = L_0 + \sum_j|w_j| L=L0+jwj
L1正则为什么会产生稀疏解_第2张图片

L 1 L1 L1的等值线是方形, L 0 L_0 L0 L 1 L1 L1等值线相交时很大概率上出现在顶点处,而顶点都在坐标轴上,因此必有其他参数为0,所以用 L 1 L1 L1正则的解具有稀疏性.

数学解释

同样我们对损失函数求梯度.
▽ L = ▽ L 0 + λ s i g n ( w j ) = { ▽ L 0 − λ , w j → 0 − ▽ L 0 + λ , w j → 0 + \begin{aligned} \bigtriangledown L = \bigtriangledown L_0 + \lambda sign(w_j)= \begin{cases} \bigtriangledown L_0 - \lambda , & w_j \rightarrow 0^-\\ \bigtriangledown L_0 + \lambda , & w_j \rightarrow 0^+ \end{cases} \end{aligned} L=L0+λsign(wj)={L0λ,L0+λ,wj0wj0+
▽ L 0 − λ \bigtriangledown L_0 - \lambda L0λ ▽ L 0 + λ \bigtriangledown L_0 + \lambda L0+λ异号时,则损失函数 L L L会在 w j w_j wj处产生一个极小值,因此 L 1 L1 L1正则会产生稀疏解

你可能感兴趣的:(机器学习)