正则项(正则项如何防止过拟合)
本篇文章给大家谈谈正则项,以及正则项如何防止过拟合对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、“正则项”字面是什么意思
- 2、自定义正则项怎么设置
- 3、如何选择正则项参数
- 4、正则项浅析
“正则项”字面是什么意思
在我们学的微分几何里面正则曲线的意思是代表在曲线上所有点的导数都不为0的曲线!
[img]自定义正则项怎么设置
自定义正则项设樱祥置是可以通过正则表达式来进行设悉哗置。自定义正则项可以通过正睁颂行则表达式来进行设置。正则表达式是指匹配或捕获字段的若干部分的特殊字符以及支配这些字符的规则。
如何选择正则项参数
我们知道,正则项通过控制参数来防止过拟合的,下面以L2正则为例,看看怎么选择lambda,以及和偏差和方差之间的关系。
首先需要做的事,就是选择出一些lambda的备选值,并且以2倍的速度进行增长选取。对于特定的lambda,极小化损失函数得到最优参数,再在验证集上观察验证损失。
加入我们选取了12个备选的lambda值,那么可以得到12组参数以及12个验证损失,颤燃我们比较这12个验证损失的值,找出最小的,就是最合适的lambda的值,然后再在测试集上测试。
下面来分析下随着lambda的变化,学习曲线的变化情况,当lambda很小的时候,最极端的是等于0,相当于没有正则项,那么很容易过拟合,而且模型偏复杂,这时候方差比较大,在训练集上表现很好,但是在验证集上表现并不是很好。但是当lambda很大的时候,那么这时候参数都很小,趋近于0,那么只有常数项,此时模型会有很大的偏差,那么训练误差和验证误差都很大。
但是当我们氏汪为模型选择合适的复杂度的时候,会得到一个验证误差的最优歼洞仔值,其实此时也是我们应该选择的lambda的值哦~~
正则项浅析
知识预备:范数
我们经常会听到正则项这个概念,通过查阅资料并且结合自己的理解对正则项做了一个简单的总结,首先,从问题出发:
(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变大。 因此它的效果就是让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也许更合适。
参考文章:
关于正则项和正则项如何防止过拟合的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。