L1 L2 正则化区别

文章一
文章二

机器学习中,如果参数过多,模型过于复杂,容易造成过拟合(overfit)。即模型在训练样本数据上表现的很好,但在实际测试样本上表现的较差,不具备良好的泛化能力。为了避免过拟合,最常用的一种方法是使用使用正则化,例如 L1 和 L2 正则化。

L1:
公式表示为:
∣ ∣ x ∣ ∣ 1 = ∑ i n ∣ x i ∣ ||x||_1=\sum_i^n|x_i| x1=inxi
损失函数中:
L ‘ ( θ ) = L ( θ ) + α ∑ ∣ θ i ∣ L^`(\theta)=L(\theta)+\alpha\sum|\theta_i| L(θ)=L(θ)+αθi

L2:
公式表示为:
∣ ∣ x ∣ ∣ 2 = ∑ i n x i 2 ||x||_2=\sqrt{\sum_i^nx_i^2} x2=inxi2
损失函数中:
L ‘ ( θ ) = L ( θ ) + α ∑ θ i 2 L^`(\theta)=L(\theta)+\alpha\sum\theta_i^2 L(θ)=L(θ)+αθi2
(没有开方)

比较

L1 L2 正则化区别_第1张图片
a未加入L2正则化(岭)和 b 加入L2正则化(谷)

L1 L2 正则化区别_第2张图片
图中虚线代表的是元损失函数的等高线,实线代表的是规范化项的等高线,左边a图是L2的情况,右边b图是L1的情况。当整体函数达到最小值的时候,如图a中点所示的位置,所以能够很清楚看出,L2项让整体参数都有变小的趋势。L1则会让参数的方向朝着某个轴靠近,这个性质让L1规范化后的参数更趋向于某些维度为0,也就是稀疏性。比如图b中,因为原始损失函数等高线的形状,无论L1项的系数怎么变,最终最小值一定是在横轴上。这样的约束可以让有效特征的数量变少,从而获得稀疏性。因为这个性质,L1规范化经常被用在降噪声和图像重建中。在统计学里L1规范化也有另外一个名字叫做LASSO,即Least Absolute Shrinkage and Selection Operator,是对L1规范化的一个简短概括。

另一个文章的讲解:
L1 L2 正则化区别_第3张图片
以二维情况讨论,上图左边是 L2 正则化,右边是 L1 正则化。从另一个方面来看,满足正则化条件,实际上是求解蓝色区域与黄色区域的交点,即同时满足限定条件和 Ein 最小化。对于 L2 来说,限定区域是圆,这样,得到的解 w1 或 w2 为 0 的概率很小,很大概率是非零的。

对于 L1 来说,限定区域是正方形,方形与蓝色区域相交的交点是顶点的概率很大,这从视觉和常识上来看是很容易理解的。也就是说,方形的凸点会更接近 L(θ) 最优解对应的 wlin 位置,而凸点处必有 w1 或 w2 为 0。这样,得到的解 w1 或 w2 为零的概率就很大了。所以,L1 正则化的解具有稀疏性。

扩展到高维,同样的道理,L2 的限定区域是平滑的,与中心点等距;而 L1 的限定区域是包含凸点的,尖锐的。这些凸点更接近L(θ)的最优解位置,而在这些凸点上,很多 wj 为 0。

关于 L1 更容易得到稀疏解的原因,有一个很棒的解释,请见下面的链接:

https://www.zhihu.com/question/37096933/answer/70507353

你可能感兴趣的:(L1 L2 正则化区别)