L1,L2正则化的原理与区别


是为了求招做的笔记,笔记中的内容很大一部分来自于我所看的一大部分博客,这篇我主要看的是链接: link. 文中标号的部分是我目前还没完全理解的部分。

正则化的目的

在我们做监督学习训练时,主要应用的思想是“最小化损失函数的同时规则化参数”, 最小化损失函数的目的是降低训练误差,拟合训练数据,参数的正则化是使得模型不过分拟合训练数据,提高模型的泛化能力。同时,规则化可以使模型具有很多其他的特性,可以将人的先验知识加入到模型之中,比如稀疏,低秩等。目前有几种角度看待规则化:
1:奥卡姆剃刀原则,规则化使得模型简单
2:贝叶斯分布角度,是加入了一个先验分布,L1是拉普拉斯分布,L2是高斯分布
3:结构风险最小化的实现
机器学习中的目标函数的普遍形式如下:
w=argminiL(yi,f(xi,w))+αΩ(w)w^*=argmin\sum_{i}L(y_i,f(x_i,w))+\alpha\Omega(w)
其中Ω(w)\Omega(w)的选择是关于模型复杂度的单调递增函数,所以可以采用L0, L1,L2等范数进行计算。

L0与L1范数

L0范数是计算机非零元素的个数,可以使得参数w直接为0,可以直接地实现模型的稀疏性,但是在我们看到的模型中,都全部采用L1范数来实现模型的稀疏性。原因是L0范数的求解是NP难问题,而L1范数是它的凸近似,所以采用了L1范数近似。L1范数被称为“稀疏规则算子”。那么,为什么要实现模型的稀疏性:

  1. 稀疏性起到了特征选择的作用,如果输入1000维的特征,并不是每个特征都起到了效果,筛选出重要的特征,使其他的特征权重为0,这样,在测试其他数据的时候,与模型没关系的特征就不需要考虑进去。
  2. 稀疏性也有很好的可解释性

L2范数

L2范数也被称为“权重衰减”和“岭回归”,L2的主要作用是解决过拟合,L2范数是所有权重的平方开方和,最小化L2范数,使得权重趋近于0,但是不会为0。那么为什么参数的值小,就能避免过拟合。模型的参数比较小,说明模型简单,泛化能力强。参数比较小,说明某些多项式分支的作用很小,降低了模型的复杂程度。其次参数很大,一个小的变动,都会产生很大的不同。那么L2范数的好处:

  1. 理论方向:减少过拟合,提高泛化能力;
  2. 优化理论:这部分有点复杂,L2范数有助于处理 condition number不好的情况下矩阵求逆很困难的问题。
    condition number:当给定一个方程组,AX=B,如果A,B都稍微改变一点,就导致方程解变化很大,那么就是ill-condition,否则是well-condition,其中condition number就是它的衡量标准。(这部分理论还没明白)

L1,L2正则化区别

1:下降的速度
L1,L2都是规则化的方式,最小化目标函数,类似于一个下坡的过程,所以它们下降的坡不同,L1是按照绝对值函数下坡,L2是按照二次函数下坡,在0附近,L1的速度更快。
L1,L2正则化的原理与区别
2:模型空间的限制
L1会将模型限制一个正方形区域,L2将模型限制在一个圆的区域,二维情况如图所示:
L1,L2正则化的原理与区别
其中L1的限制,使得大部分都在角的部分相交,就使得某些参数为0,而L2没有突出的角,所以不能使得参数为0。总结就是L1会使得某些参数为0,具有稀疏性,而L2没有这个功能,使得参数的值比较小去降低过拟合。

正则化参数的选择

在正则化前面的是一个超参,控制着训练误差与参数规则化之间的权重关系,调超参是个很困难的事情,两种方法吧:
1:交叉验证,通过验证结果确定超参;
2:首先计算出大概loss的取值范围和规则化的参数范围,缩小搜索的空间。

参考

https://blog.csdn.net/zouxy09/article/details/24971995