L1和L2正则再回顾与小结

33 篇文章 0 订阅
4 篇文章 0 订阅

L1和L2正则回顾与思考

衡量一个向量的大小,在机器学习领域通常用范数来衡量。形式上,$ L^p$ 范数定义如下:

∣ ∣ x ∣ ∣ p = ( ∑ i ∣ x i ∣ p ) 1 p ||x||_p=(∑_i|x_i|^p)^{\frac 1 p} xp=(ixip)p1

L0范数是指向量中非0的元素的个数。

L1范数是指向量中各个元素绝对值之和,也叫为“稀疏规则算子”(Lasso Regularization)。

L2范数不逊于L1范数,它有两个美称,在回归里面,叫“岭回归”(Ridge Regression),也有人叫它“权值衰减weight decay”。 是指向量各元素的平方和然后求平方根。

在正则化应用时,L1与L2【比较有如下差异】:

  • 下降速度:最小化权值参数L1比L2变化得快。
  • 模型空间的限制:L1会产生稀疏 L2不会。L1会趋向于产生少量的特征,而其他的特征都是0,方便特征提取。而L2会选择更多的特征,这些特征都会接近于0。
  • 泛化能力:L2范数可以防止过拟合,提升模型的泛化能力。
  • L 2 L2 L2对大数,对outlier离群点更敏感。

虽然很早知道了这几个结论,但未深入进行思考过,自我批评:平时缺乏钻研刨根问题的精神,只知其然,不知其所以然;另外,知识需要温故而知新,经常回顾,有问题挑战和交流挺好。

许多正则化方法通过对目标函数 J J J添加一个参数范数惩罚 Ω ( θ ) \Omega(\theta) Ω(θ),限制模型(如神经网络、线性回归或逻辑回归)的学习能力。 我们将正则化后的目标函数记为 J ~ : J ~ ( θ ; X , y ) = J ( θ ; X , y ) + α Ω ( θ ) \tilde{J}: \tilde{J}(\theta;X, y) = J(\theta;X, y) + \alpha \Omega(\theta) J~J~(θ;X,y)=J(θ;X,y)+αΩ(θ)其中 α ∈ [ 0 , ∞ ) \alpha \in [0, \infty) α[0,)是权衡范数惩罚项 Ω \Omega Ω和标准目标函数 J ( X ; θ ) J(X;\theta) J(X;θ)相对贡献的超参数。 将 α \alpha α设为0表示没有正则化。 α \alpha α越大,对应正则化惩罚越大。

当我们的训练算法最小化正则化后的目标函数 J ~ \tilde{J} J~时,它会降低原始目标 J J J关于训练数据的误差并同时减小在某些衡量标准下参数 θ \theta θ(或参数子集)的规模。 选择不同的参数范数 Ω \Omega Ω会偏好不同的解。 在本节中,我们会讨论各种范数惩罚对模型的影响。

在探究不同范数的正则化表现之前,我们需要说明一下,在神经网络中,参数包括每一层仿射变换的权重和偏置,我们通常 α \alpha α只对权重做惩罚而不对偏置做正则惩罚。

问题1:为啥不对偏置做正则惩罚?这是为什么呢?

精确拟合偏置所需的数据通常比拟合权重少得多。 每个权重会指定两个变量如何相互作用。 我们需要在各种条件下观察这两个变量才能良好地拟合权重。 而每个偏置仅控制一个单变量。 这意味着,我们不对其进行正则化也不会导致太大的方差。 另外,正则化偏置参数 b b b可能会导致明显的欠拟合。 因此,我们使用向量 w w w表示所有应受范数惩罚影响的权重,而向量 θ \theta θ表示所有参数(包括 w w w无需正则化的参数)。

在神经网络的情况下,有时希望对网络的每一层使用单独的惩罚,并分配不同的 α \alpha α系数。 寻找合适的多个超参数的代价很大,因此为了减少搜索空间,我们会在所有层使用相同的权重衰减。

问题2:为啥说L1更加稀疏化?

图像解释(假设X为一个二维样本,那么要求解参数 w w w也是二维):

我们结合下图来看:

原函数曲线等高线(同颜色曲线上,每一组 w 1 w_1 w1 w 2 w_2 w2 带入值都相同)

在这里插入图片描述

加了L1和L2惩罚项后的图像如下

在这里插入图片描述
在这里插入图片描述
对于L2的情形,只有两圆相切在坐标轴的时候,才有极小值,其中上方等高线大圆(可为椭圆)圆心位置不固定,但要与中心惩罚项小圆相切于坐标轴上的概率是远小于L1的情形。

从第二张图也可以推断棱角越分明尖锐的几何形状,和圆形相切就越有可能落在坐标轴上。

数学角度,L1正则在一维的情况下时 J ~ : J ~ ( θ ; X , y ) = J ( θ ; X , y ) + C ∣ w ∣ \tilde{J}:\tilde{J}(\theta;X, y) = J(\theta;X, y) + C |w| J~J~(θ;X,y)=J(θ;X,y)+Cw其中 J ~ \tilde{J} J~是目标函数, J ( θ ; X , y ) J(\theta;X, y) J(θ;X,y)是没加L1正则化项前的目标函数, C ∣ w ∣ C|w| Cw 是L1正则项,那么要使得0点成为最值可能的点,虽然在0点不可导,但是我们只需要让0点左右的导数异号,即 h 左 ′ ( 0 ) ∗ h 右 ′ ( 0 ) = ( f ′ ( 0 ) + C ) ( f ′ ( 0 ) − C ) &lt; 0 h_{左}^{&#x27;}(0)*h_{右}^{&#x27;}(0) = (f^{&#x27;}(0) + C)(f^{&#x27;}(0) - C)&lt;0 h(0)h(0)=(f(0)+C)(f(0)C)<0 即可。 也就是 C &gt; ∣ f ′ ( 0 ) ∣ C &gt;|f^{&#x27;}(0)| C>f(0)的情况下,0点都是可能的最值点。

当加入L2正则化的时候,分析和L1正则化是类似的,也就是说我们仅仅是从菱形变成了圆形而已,同样还是求原曲线和圆形的切点作为最终解。当然与L1范数比,我们这样求的L2范数的从图上来看,不容易交在坐标轴上,但是仍然比较靠近坐标轴因此这也就是我们老说的,L2范数能让解比较小(靠近0),但是比较平滑(不等于0)。

问题3:图形为啥是选等高线的最外圈?
在这里插入图片描述

按照原先不加正则项的情形,梯度下降的最小值应该在登高线的圆心找到,现在加了正则惩罚项,极值怎么就在惩罚项曲线边上了呢?

首先根据目标函数,我们是要求惩罚项 α Ω ( θ ) \alpha\Omega(\theta) αΩ(θ)要极小的,这是前提。下面给出两点理解:

1、从解决过拟合的角度。原先没有正则惩罚项时最小值在等高线圆心,这正是有可能产生过拟合的一种表现;加了正则惩罚,把极值拉到了惩罚项曲线上也从侧面反映了该方法增强了模型的泛化能力。

2、从惩罚因子参数的角度, J ~ : J ~ ( θ ; X , y ) = J ( θ ; X , y ) + α Ω ( θ ) \tilde{J}:\tilde{J}(\theta;X, y) = J(\theta;X, y) + \alpha \Omega(\theta) J~J~(θ;X,y)=J(θ;X,y)+αΩ(θ)对于式中的 α \alpha α惩罚系数0表示没有正则化,而通常我们会设置到100~1000甚至更大,这样,对整个目标函数的 J ~ \tilde{J} J~的影响权重大大的依靠在后面的惩罚项上面,这也解释了为什么极值不会按原先那样在等高线圆心附近。

问题4:为啥这个切点L1更容易在坐标轴,而不是在菱形边上?

https://zhuanlan.zhihu.com/p/29360425

正则化可通过假设权重 w w w的先验分布为拉普拉斯分布,由最大后验概率估计导出;
正则化可通过假设权重 w w w的先验分布为高斯分布,由最大后验概率估计导出。
在这里插入图片描述

主要差别在于l1、l2范数球的形状差异。由于此时每条边界上w的切线和法线方向保持不变,在图中w将一直朝着 ∇ J ( w ) \nabla J(w) J(w)在切线方向的分量沿着边界向左上移动。当w跨过顶点到达w’时, ∇ J ( w ) \nabla J(w) J(w)在切线方向的分量变为右上方,因而w将朝右上方移动。最终,w将稳定在顶点处,达到最优解 w ∗ w^* w 。此时,可以看到 w 1 = 0 w_1=0 w1=0 ,这也就是采用l1范数会使产生稀疏性的原因。

l1 的解并不是稳定的. 比如用批数据训练, 每次批数据都会有稍稍不同的误差曲线
在这里插入图片描述
L2 针对于这种变动, 白点的移动不会太大, 而 L1的白点则可能跳到许多不同的地方 , 因为这些地方的总误差都是差不多的. 侧面说明了 L1 解的不稳定性。

问题5:为啥说L2更容易降低过拟合

正则化之所以能够降低过拟合的原因在于,正则化是结构风险最小化的一种策略实现。
给loss function加上正则化项,能使得新得到的优化目标函数 J ~ = J + n o r m a l \tilde{J}= J+normal J~=J+normal,需要在 J J J和normal中做一个权衡(trade-off),如果还像原来只优化 J J J的情况下,那可能得到一组解比较复杂,使得正则项normal比较大,那么 J ~ \tilde{J} J~就不是最优的,因此可以看出加正则项能让解更加简单,符合奥卡姆剃刀理论,同时也比较符合在偏差和方差(方差表示模型的复杂度)分析中,通过降低模型复杂度,得到更小的泛化误差,降低过拟合程度。

L1正则化相对于L2正则化而言:

L1正则化就是在loss function后边所加正则项为L1范数,加上L1范数容易得到稀疏解(0比较多)。L2正则化就是loss function后边所加正则项为L1范数的平方,加上L2正则相比于L1正则来说,得到的解比较平滑(不是稀疏),但是同样能够保证解中接近于0(但不是等于0,所以相对平滑)的维度比较多,降低模型的复杂度。

https://blog.csdn.net/pipisorry/article/details/52108040

问题6:什么时候用L1正则,什么时候用L2正则?使用场景的差异在哪里?

L1主要利用它的稀疏特性来做特征选择,提取特征。L2利用它解决过拟合问题的特性,提升模型的泛化能力。

问题7:L1和L2一起用的场景是怎样的?

https://www.zhihu.com/question/38081976/answer/83155215
https://en.wikipedia.org/wiki/Elastic_net_regularization

同时引入L1,L2后,变成经典的Elatic Net问题。简单总结成一句话来回答:就是说通过正则化参数 λ 1 \lambda1 λ1 λ 2 \lambda2 λ2的大小调节L1范数和L2范数的权重,来平衡稀疏和光滑两个问题。问题的关键就变成了参数的设定。

问题8:为啥L1下降速度比L2下降速度快?

我们知道,L1和L2都是规则化的方式,我们将权值参数以L1或者L2的方式放到代价函数里面去。然后模型就会尝试去最小化这些权值参数。而这个最小化就像一个下坡的过程,L1和L2的差别就在于这个“坡”不同,如下图:L1就是按绝对值函数的“坡”下降的,而L2是按二次函数的“坡”下降。所以实际上在0附近,L1的下降速度比L2的下降速度要快。所以会非常快得降到0。
在这里插入图片描述
问题9:稀疏到底有什么好处呢?

稀疏表达的意义实际在于降维。且这个降维并不局限于节省空间。更多地意义在于,在Machine Learning,Signal/Image Processing等众多领域,很多反问题(Inverse Problem)都是不适定/病态的(under-determined, ill-posed)。如:

y = A x + ϵ , x ∈ R n , A : R n → R m , y ∈ R m , m &lt; n , ϵ y=Ax+\epsilon, x\in \mathbb{R}^n, A: \mathbb{R}^n \to\mathbb{R}^m, y \in \mathbb{R}^m, m&lt;n, \epsilon y=Ax+ϵ,xRn,A:RnRm,yRm,m<n,ϵ is noise

为了能获得比较好的解,人们需要的x先验知识。而稀疏性便是众多先验知识中,最为主要的一种。这种降维主要表现于虽然原始信号x的维度很高,但实际的有效信息集中在一个低维的空间里。这种性质使得不适定的问题变得适定(well-posed),进而使获得“好的解”成为可能。

参考:

https://zhuanlan.zhihu.com/p/35356992

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

https://www.zhihu.com/question/38081976

https://zhuanlan.zhihu.com/p/29360425

https://zhuanlan.zhihu.com/p/25707761

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值