l和l2正则化的区别,正则项和惩罚项

正则项和惩罚项知识预备:范数
http://blog.csdn.net/shijing_0214/article/details/51757564
我们经常会听到正则项这个概念,通过查阅资料并且结合自己的理解对正则项做了一个简单的总结,首先,从问题出发:
(1)正则项存在的意义是什么 , 为什么要使用正则项?正则项是如何防止过拟合的?
(2)有哪几种正则项,如何表示,它们的相同点和不同点是什么?
(3)不同正则项的使用场景是什么,如何选取正则项呢?
下面就来一一的进行分析吧~~~~
先引入问题 :
就拿斯坦福机器学习课程的例子来说,通过房子的面积来预测房价,建立回归方程来拟合样本数据
(一)为什么要使用正则项?
其实正则项是对参数的控制 。那么为什么要控制参数呢,控制参数有什么好处呢?
(1)实现参数的稀疏,这样可以简化模型,避免过拟合 。在一个模型中重要的特征并不是很多,如果考虑所有的特征都是有作用的,那么就会对训练集进行充分的拟合,导致在测试集的表现并不是很好,所以我们需要稀疏参数,简化模型 。
(2)尽可能保证参数小一些,这又是为啥呢?因为越是复杂的模型 , 它会对所有的样本点进行拟合,如果在这里包含异常的样本,就会在小区间内产生很大的波动 , 不同于平均水平的高点或者低点,这样的话,会导致其导数很大,我们知道在多项式导数中,只有参数非常大的时候,才会产生较大的导数,所以模型越复杂,参数值也就越大 。为了避免这种过度的拟合,需要控制参数值的大小 。
(二)正则项的分类
正则项有三种:L0、L1、L2
L0正则化的值是模型参数中非零参数的个数 。
L1正则化表示各个参数绝对值之和 。
L2正则化标识各个参数的平方的和的开方值 。
1、L0正则化
保证参数稀疏化来防止过拟合,可以用非零参数 , 来进行特征选择 。但是L0正则化不好求,因此采用L1正则化 。L1正则化是L0正则化的最优凸近似,比L0容易求解,并且可以实现稀疏的效果 。
2、L1正则化
L1正则化也叫lasso,它往往是替代L0正则化来防止过拟合的 。为啥用L1范数,因为L1范数就是各个参数的绝对值相加,我们已知,参数的值的大小和模型的复杂度是成正比的,因此复杂模型,L1范数就会大,导致损失函数大 。下面定量的分析:
在原始的代价函数后面加上一个L1正则化项,即所有权重w的绝对值的和,乘以λ/n 。如下:
?同样计算导数得:
上式中sgn(w)表示w的符号 。那么权重w的更新规则为:?
现在来观察正则求导项 , 可知当w为正时 , 更新后的w变?。坏眞为负时,更新后的w变大 。因此它的效果就是让w往0靠,使网络中的权重尽可能为0,也就相当于减小了网络复杂度,防止过拟合 。另外,上面没有提到一个问题,当w为0时怎么办?当w等于0时,|w|是不可导的,所以我们只能按照原始的未经正则化的方法去更新w,这就相当于去掉η λ sgn(w)/n这一项,所以我们可以规定sgn(0)=0,这样就把w=0的情况也统一进来了 。
3、L2正则化
L2正则化也是防止过拟合的 , 原因和L1一样一样的,就是形式不同 。L2范数是各参数的平方和再求平方根 。对于L2的每个元素都很小 , 但是不会为0 , 只是接近0 , 参数越小说明模型越简单,也就越不容易产生过拟合 。L2正则化也叫做“岭回归” 。
来让我们看看具体的例子,对于房屋价格预测我们可能有上百种特征,与刚刚所讲的多项式例子不同 , 我们并不知道 哪些是高阶多项式的项 。所以,如果我们有一百个特征,我们并不知道如何选择关联度更好的参数,如何缩小参数的数目等等 。因此在正则化里,我们要做的事情 , 就是把减小我们的代价函数(例子中是线性回归的代价函数)所有的参数值,因为我们并不知道是哪一个或哪几个要去缩小 。因此,我们需要修改代价函数,在这后面添加一项 , 就像我们在方括号里的这项 。当我们添加一个额外的正则化项的时候,我们收缩了每个参数 。
为什么加了一项就让参数尽量小呢,因为只要你想让J最?。?那么θ肯定尽可能的去小 。
注意:这里我们没有去惩罚 θ0,实践中只会有较小的差异
λ 要做的就是控制惩罚项与均方差之间的平衡关系 。
λ越大说明,参数被打压得越厉害,θ值也就越小
现在进行定量的分析:
L2正则化就是在代价函数后面再加上一个正则化项:
C0代表原始的代价函数,后面那一项就是L2正则化项 , 它是这样来的:所有参数w的平方的和,除以训练集的样本大小n 。λ就是正则项系数,权衡正则项与C0项的比重 。另外还有一个系数1/2,1/2经常会看到,主要是为了后面求导的结果方便,后面那一项求导会产生一个2,与1/2相乘刚好凑整 。L2正则化项是怎么避免overfitting的呢?我们推导一下看看,先求导:
在不使用L2正则化时 , 求导结果中w前系数为1,现在w前面系数为 1-ηλ/n,因为η、λ、n都是正的,在样本量充足的时候 , 1-ηλ/n小于1,它的效果是减小w,这也就是权重衰减的由来 。当然考虑到后面的导数项 , w最终的值可能增大也可能减小 。
(三)lasso回归和ridge回归
下面我们来看两个对比图
(1)lasso
注意到L1正则化是权值的绝对值之和,J是带有绝对值符号的函数,因此J是不完全可微的 。机器学习的任务就是要通过一些方法(比如梯度下降)求出损失函数的最小值 。考虑二维的情况 , 即只有两个权值w1和w2,此时L=|w1|+|w2| , 对于梯度下降法,求解J的过程可以画出等值线 , 同时L1正则化的函数L也可以在w1w2的二维平面上画出来 。如下图:
在图中,当J等值线与L首次相交的地方就是最优解 。上图中J与L在L的一个顶点处相交,这个顶点就是最优解 。注意到这个顶点的值是(w1,w2)=(0,w) 。可以直观想象,因为L函数有很多突出的角(二维情况下四个,多维情况下更多),J与这些角接触的机率会远大于与L其它部位接触的机率,而在这些角上,会有很多权值等于0,这就是为什么L1正则化可以产生稀疏模型,进而可以用于特征选择 。
(2)ridge
同理,假设有如下带L2正则化的损失函数,同样可以画出他们在二维平面上的图形,如下:
图2 L2正则化二维平面下L2正则化的函数图形是个圆,与方形相比,被磨去了棱角 。因此J与L相交时使得w1或w2等于零的机率小了许多 , 这就是为什么L2正则化不具有稀疏性的原因 。
总结 :L1会趋向于产生少量的特征,而其他的特征都是0,而L2会选择更多的特征,这些特征都会接近于0 。Lasso在特征选择时候非常有用,而Ridge就只是一种规则化而已 。在所有特征中只有少数特征起重要作用的情况下,选择Lasso比较合适,因为它能自动选择特征 。而如果所有特征中,大部分特征都能起作用,而且起的作用很平均,那么使用Ridge也许更合适 。
参考文章:
http://blog.csdn.net/vividonly/article/details/50723852
http://blog.sina.com.cn/s/blog_8267db980102wryn.html
http://www.mamicode.com/info-detail-517504.html
http://www.2cto.com/kf/201609/545625.html
http://blog.csdn.net/zouxy09/article/details/24971995/
简述L1正则化和L2正则化的区别在这里我们首先需要明白 结构风险最小化 原理:
我们所谓的正则化,就是在原来 Loss Function 的基础上,加了一些正则化项,或者叫做模型复杂度惩罚项 。以我们的线性回归为例子 。
优化目标(损失函数):
加上L1正则项(lasso回归):
加上L2正则项(Ridge回归):
下面我们需要理解加了正则化项之后,对于目标函数求解的时候,最终解有什么变化 。
我们从图像角度来理解:
假设X是一个二维样本 , 那么要求解的参数也 也是二维的 。下图叫做原函数曲线等高线图 。目标函数在图中的等高线(同颜色)每一组 , ? 带入值都想同,这里代表着多组解 。
下面看L1和L2正则项加入后的函数图像:
对比两幅图我们可以看出来:
下面看这几步:
L2正则化(岭回归)的证明类似 。不过结论是L1正则化比L2正则化更加容易获得稀疏解 。
我们总结一下,正则化之所以能够降低的原因在于,正则化是结构风险最小化的一种策略实现 。
给 loss function 加上正则项 , 新得到的目标函数 h = f+normal , 需要在 f 和 normal 中做一个 trade-off 。如果还是像原来只优化 f,那么normal就比较大, h 就不能得到最优解 。因此可以看出加正则项可以让解更加简单,符合奥卡姆剃刀理论;同时也符合在偏差和方差(方差表示模型的复杂度)分析中,通过降低模型复杂度 , 得到更小的泛化误差,降低过拟合 。
看一下L1正则化和L2正则化的区别:
L1正则化就是在 loss function 后面加上L1范数 , 这样比较容易求到稀疏解 。L2 正则化是在 LF 后面加 L2范数 平方,相比L1正则来说 , 得到的解比较平滑(不是稀疏) , 但是同样能够保证解中接近于0(不等0)的维度比较多,降低模型的复杂度 。
l1和l2正则化的作用及其原理正则化是一种回归的形式,它将系数估计(coefficient estimate)朝零的方向进行约束、调整或缩小 。也就是说,正则化可以在学习过程中降低模型复杂度和不稳定程度,从而避免过拟合的危险 。
如果随机变量的概率密度函数分布为:
还有涉及极大似然估计、概率论相关的先验和后验相关概率,为了控制篇幅 ,  本文就不详细介绍, wiki百科和百度百科都讲得很清楚 。
正则化通过降低模型的复杂性,达到避免过拟合的问题 。正则化是如何解决过拟合的问题的呢?从网上找了很多相关文章,下面列举两个主流的解释方式 。
如果发生过拟合 ,  参数θ一般是比较大的值, 加入惩罚项后,只要控制λ的大?。宝撕艽笫保?θ1到θn就会很?。?即达到了约束数量庞大的特征的目的 。
原因二:从贝叶斯的角度来分析 ,  正则化是为模型参数估计增加一个先验知识 , 先验知识会引导损失函数最小值过程朝着约束方向迭代 。L1正则是拉普拉斯先验,L2是高斯先验 。整个最优化问题可以看做是一个最大后验估计,其中正则化项对应后验估计中的先验信息,损失函数对应后验估计中的似然函数,两者的乘积即对应贝叶斯最大后验估计 。
给定训练数据, 贝叶斯方法通过最大化后验概率估计参数θ:
下面我们从最大后验估计(MAP)的方式,推导下加入L1和L2惩罚项的Lasso和岭回归的公式 。
首先我们看下 最小二乘公式的推导 (公式推导截图来自知乎大神)
为了帮助理解,我们来看一个直观的例子:假定x仅有两个属性,于是无论岭回归还是Lasso接触的w都只有两个分量,即w1,w2,我们将其作为两个坐标轴,然后在图中绘制出两个式子的第一项的”等值线”,即在(w1,w2)空间中平方误差项取值相同的点的连线 。再分别绘制出L1范数和L2范数的等值线,即在(w1,w2)空间中L1范数取值相同的点的连线 , 以及L2范数取值相同的点的连线(如下图所示) 。
岭回归与Lasso的解都要在平方误差项与正则化项之间折中,即出现在图中平方误差项等值线与正则化项等值线相交处 。而由上图可以看出,采用L1范数时平方误差项等值线与正则化项等值线的交点常出现在坐标轴上,即w1或w2为0,而在采用L2范数时,两者的交点常出现在某个象限中,即w1或w2均非0 。
这说明了岭回归的一个明显缺点:模型的可解释性 。它将把不重要的预测因子的系数缩小到趋近于 0,但永不达到 0 。也就是说,最终的模型会包含所有的预测因子 。但是,在 Lasso 中,如果将调整因子 λ 调整得足够大,L1 范数惩罚可以迫使一些系数估计值完全等于 0 。因此,Lasso 可以进行变量选择 , 产生稀疏模型 。注意到w取得稀疏解意味着初始的d个特征中仅有对应着w的非零分量的特征才会出现在最终模型中,于是求解L1范数正则化的结果时得到了仅采用一部分初始特征的模型;换言之 , 基于L1正则化的学习方法就是一种嵌入式特征选择方法,其特征选择过程和学习器训练过程融为一体,同时完成 。
正则动量的推导本文记录的目的是方便自己学习和复习,有误之处请谅解,欢迎指出 。
正则化是机器学习中常用解决过拟合,减低模型复杂程度的技术 。方法比较简单就是在损失函数后添加惩罚项L1、L2,两种正则化的效果也不太一样 。它们的公式如下:
最小化损失函数的本质是找到模型权重系数  , 即最小化如下函数:
我们的目的是为了减少模型复杂程度,我们可以从什么方向考虑呢?我们都知道减少特征能够降低模型的复杂度,减少特征可以通过让模型的特征系数 为0 , 来达到减少特征的目的 。因此 , 我们可以让 向量中某些元素为0或者说控制 中非零元素的个数,控制数量添加约束条件即可:
0范数表示非零元素的数量,由于0范数不宜求解,实际中常使用1范数代替0分数求解;或者2范数,二范数可以使得 中的元素很?。?接近0 。即公式如下:
加入条件后,利用拉格朗日将带约束条件的函数转为不带约束项的优化问题 。
其中,大于0,最小化 也就等价于:
模型权重 可以看成是一个随机变量 , 符合某种分布 , 根据最大后验概率估计 。
后面的 可以看成一个先验和条件,取对数得:
对于后面的先验条件,假设 符合高斯分布,则:
同理,假设 符合拉普拉斯分布:
可以看到 , 在高斯分布和拉普拉斯分布的前提下,的效果等价于损失函数中添加了L2、L1正则 。
【l和l2正则化的区别,正则项和惩罚项】


    特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。