机器学习中使用「正则化来防止过拟合」到底是一个什么原理?为什么正则化项就可以防止过拟合?

原文:http://www.zhihu.com/question/20700829

27 个回答

46赞同反对,不会显示你的姓名

ALAN Huang,什么都会一点点

欣然王志马克 等人赞同

Orangeprince 的回答非常学院派,也非常系统。 过拟合表现在训练数据上的误差非常小,而在测试数据上误差反而增大。其原因一般是模型过于复杂,过分得去拟合数据的噪声和outliers. 正则化则是对模型参数添加先验,使得模型复杂度较小,对于噪声以及outliers的输入扰动相对较小。 以正则化项和损失函数都是l_2 norm 为例,下面贴一张上课用的slide.
我们相当于是给模型参数w 添加了一个协方差为1/alpha 的零均值高斯分布先验。 对于alpha =0,也就是不添加正则化约束,则相当于参数的高斯先验分布有着无穷大的协方差,那么这个先验约束则会非常弱,模型为了拟合所有的训练数据,w可以变得任意大不稳定。alpha越大,表明先验的高斯协方差越小,模型约稳定, 相对的variance也越小。 

也正如其他答题者所说, 加入正则化是 在bias和variance之间做一个tradeoff.

发布于 2014-12-17 8 条评论 感谢

分享

收藏 • 没有帮助 •

举报

• 作者保留权利

20赞同反对,不会显示你的姓名

Orangeprincehttp://orangeprince.info

邹金根曾牛牛仔骨Bosco Tsang 等人赞同

一般的监督学习,大概可以抽象成这样的优化问题:
min loss( y - f(x) ) + \Omega ( f )
f()是你要学习的model,y是监督的target. 为了更直观的解释,上面的regulazed的形式也可以写成下面constrained的形式:
min loss(y - f(x)) s.t. \Omega(f) < \lambda
如果是最简单的线性回归模型,那么就是:
min || y - wX ||^2 s.t. ||w|| < \lambda, 这里面 ||w|| 越大,也就说明w向量离远点越远,模型的复杂程度越高,方法的bias越大,variance越小,也就会造成我们常说的过拟合。而一些非线性映射,或者KNN算法,则有着更高的模型复杂度。相反,\lambda越小,方法的bias也越小,能够更好地拟合训练数据,但是方法的variance更大, 输出变量于输出变量期望的差异也更大。

从概率的角度来说,对模型的正则化项其实就是对w给出一个先验的分布。如果正则化项和损失函数都是l_2 norm,其实就给了w一个期望是0,协方差矩阵是 \delta I的先验分布。之后计算w,就是在给定w的先验、x和y的情况下,用最大似然估计最大化w的后验概率,求出w的最优解。\lambda越大,表示w的先验分布的协方差越小,也就是w越稳定。其他的正则话项也可以对应其他的先验分布,比如l_1的正则话项对应Laplace先验。

发布于 2013-12-23 9 条评论 感谢

分享

收藏 • 没有帮助 •

举报

• 作者保留权利

95赞同反对,不会显示你的姓名

刑无刀,机器学习爱好者,《机器学习:实用案例解…

shadekeyilaFancCat刘壮 等人赞同

数学原理我不细说,google能得到一大坨解释,以及其他各位牛人也都回答了,奥坎姆剃刀这类概念我也不说,相信题主早就知道。我想你就差一个俗气的解释,那么我来几个俗气的解释。

解释之前,先说明这样做的目的:如果一个模型我们只打算对现有数据用一次就不再用了,那么正则化没必要了,因为我们没打算在将来他还有用,正则化的目的是为了让模型的生命更长久,把它扔到现实的数据海洋中活得好,活得久。

俗气的解释1:
让模型参数不要在优化的方向上纵欲过度。《红楼梦》里,贾瑞喜欢王熙凤得了相思病,病榻中得到一枚风月宝鉴,可以进入和心目中的女神XXOO,它脑子里的模型目标函数就是“最大化的爽”,所以他就反复去拟合这个目标,多次XXOO,于是人挂掉了,如果给他加一个正则化,让它爽,又要控制爽的频率,那么他可以爽得更久。

俗气的解释2:
假如马化腾心中的商业模型优化目标是让腾讯发展得更好,他的模型只有一个特征,就是张小龙,根据他的目标以及已有样本,它应该给张小龙赋予更大的权重,就可以一直让模型的表现朝这个目标前进,但是,突然有一天马化腾意识到:这样下去不行啊,他的权重大得没边的话,根本不可持续啊,他要是走了,他要是取代我了。于是马化腾就需要在优化这个目标的时候给这个唯一的特征加一个正则化参数,让权重不要过大,从而使得整个模型能够既朝着设定目标走,又不至于无法持续。

俗气的解释3:
我们这群技术男在公司里,如果模型目标是提高自身能力并最终能够在公司有一席之地,理想的优化方法是提高各种牛逼算法,各种高大上的计算平台的熟悉程度,尽量少开无谓的会议,少接领导扯淡的需求,但是如果只是这些的话,很可能在这个公司呆不太久,因为太关注自己的特征权重了,那么如果这个公司其实非常适合提升自己的能力,那么要能在这里呆久点,就得适当限制自己这些特征的权重绝对值,不要那么绝对坚持用到牛逼算法,偶尔也处理处理领导的扯淡需求,平衡一下,你的模型才能泛化得更广。

最后,我还是正本清源一下,正经再简单解释一下正则化,以下内容来自PRML前三章,具体页数记不清了。


上图中的模型是线性回归,有两个特征,要优化的参数分别是w1和w2,左图的正则化是l2,右图是l1。蓝色线就是优化过程中遇到的等高线,一圈代表一个目标函数值,圆心就是样本观测值(假设一个样本),半径就是误差值,受限条件就是红色边界(就是正则化那部分),二者相交处,才是最优参数。可见右边的最优参数只可能在坐标轴上,所以就会出现0权重参数,使得模型稀疏。这个图告诉我们,如果你太绝对相信那个目标了,沉迷其中,那些还没遇到的样本一来,你拔不出来就挂掉了。

最后, regularize这个词更多的意思是“使系统化”,“使体系化”,也就是说不要走极端,要建立和谐社会,科学发展观。

==================================
再补充一个角度:
正则化其实就是对模型的参数设定一个先验,这是贝叶斯学派的观点,不过我觉得也可以一种理解。
L1正则是laplace先验,l2是高斯先验,分别由参数sigma确定。
求不要追究sigma是不是也有先验,那一路追究下去可以天荒地老。

编辑于 2014-04-27 11 条评论 感谢

分享

收藏 • 没有帮助 •

举报

• 作者保留权利

42赞同反对,不会显示你的姓名

Jason Gu

余俊良哼哈罗达志 等人赞同

过拟合的时候,拟合函数的系数往往非常大,而正则化是通过约束参数的范数使其不要太大,所以可以在一定程度上减少过拟合情况。

2013.12.3 补充:
说说为什么过拟合的时候系数会很大。
如下图所示,过拟合,就是拟合函数需要顾忌每一个点,最终形成的拟合函数波动很大。在某些很小的区间里,函数值的变化很剧烈。这就意味着函数在某些小区间里的导数值(绝对值)非常大,由于自变量值可大可小,所以只有系数足够大,才能保证导数值很大。

编辑于 2013-12-04 10 条评论 感谢

分享

收藏 • 没有帮助 •

举报

• 作者保留权利

SS Wang,machine learning

无谓傅昀季显武 等人赞同

最简单的解释就是加了先验。在数据少的时候,先验知识可以防止过拟合。

举2个例子:

1. 抛硬币,推断正面朝上的概率。如果只能抛5次,很可能5次全正面朝上,这样你就得出错误的结论:正面朝上的概率是1--------过拟合!如果你在模型里加正面朝上概率是0.5的先验,结果就不会那么离谱。这其实就是正则。

2. 最小二乘回归问题:加2范数正则等价于加了高斯分布的先验,加1范数正则相当于加拉普拉斯分布先验。

----------------------

ling wei
求解释这两个“等价”

拿Lasso(1范数正则)举例

其实就是如下概率模型的最大后验。


如果不对w加拉普拉斯分布的先验,最大后验得到的是

其实正则项就是对w的先验分布

编辑于 2015-07-13 4 条评论 感谢

分享

收藏 • 没有帮助 •

举报

• 作者保留权利

1赞同反对,不会显示你的姓名

JX Consp,朱门酒肉臭,路有克苏鲁

乔海军 赞同

减少covariance以减少复杂度

可见 Bayesian 派的 Bayesian ocarm razor或 频率派的可证伪性

编辑于 2014-12-16 添加评论 感谢

分享

收藏 • 没有帮助 •

举报

• 作者保留权利

2赞同反对,不会显示你的姓名

zywang,Software Engineer

乔海军thinkpig 赞同

我更喜欢从直觉上理解这个问题。训练一个分类器就比如练习少林功夫,功力很多时候是和修练者对佛法的修行相关的。而佛法本身什么招术也没有,但可以防止修练者误入歧途,走火入魔,就好比一个分类器bias到训练数据上了。只有放弃一些细节的追求,才有更高层次上的提升。

时间: 2024-10-05 07:15:54

机器学习中使用「正则化来防止过拟合」到底是一个什么原理?为什么正则化项就可以防止过拟合?的相关文章

机器学习中的正则化和范数规则化

机器学习中的正则化和范数规则化 正则化和范数规则化 文章安排:文章先介绍了正则化的定义,然后介绍其在机器学习中的规则化应用L0.L1.L2规则化范数和核范数规则化,最后介绍规则化项参数的选择问题. 正则化(regularization)来源于线性代数理论中的不适定问题,求解不适定问题的普遍方法是:用一族与原不适定问题相“邻近”的适定问题的解去逼近原问题的解,这种方法称为正则化方法.如何建立有效的正则化方法是反问题领域中不适定问题研究的重要内容.通常的正则化方法有基于变分原理的Tikhonov正则

机器学习中正则化项L1和L2的直观理解

正则化(Regularization) 机器学习中几乎都可以看到损失函数后面会添加一个额外项,常用的额外项一般有两种,一般英文称作?1-norm和?2-norm,中文称作L1正则化和L2正则化,或者L1范数和L2范数. L1正则化和L2正则化可以看做是损失函数的惩罚项.对于线性回归模型,使用L1正则化的模型建叫做Lasso回归,使用L2正则化的模型叫做Ridge回归(岭回归).下图是Python中Lasso回归的损失函数,式中加号后面一项α||w||1即为L1正则化项. 下图是Python中Ri

机器学习中的正则化

1. 正则化概述(Regularization)            监督学习可以简单的理解为在最小化loss function 的同时,保证模型的复杂度尽可能的低,防止出现过拟合(overfitting).常用的loss函数有square loss(Regression),Hinge Loss(SVM),exp-loss(adaBoost) 等.关于正则化(Regularization),它一方面可用于控制模型的复杂度,提高模型的范化能力:另一方面还可以用于约束模型的特性,例如稀疏.平滑特性

斯坦福大学公开课机器学习: advice for applying machine learning | regularization and bais/variance(机器学习中方差和偏差如何相互影响、以及和算法的正则化之间的相互关系)

算法正则化可以有效地防止过拟合, 但正则化跟算法的偏差和方差又有什么关系呢?下面主要讨论一下方差和偏差两者之间是如何相互影响的.以及和算法的正则化之间的相互关系 假如我们要对高阶的多项式进行拟合,为了防止过拟合现象,我们要使用图下所示的正则化.因此我们试图通过下面的正则化项,来让参数的值尽可能小.正则化项的求和范围,照例取为j等于1到m,而非j等于0到m. 然后我们来分析以下三种情形.第一种情形:正则化参数lambda取一个比较大的值(比如lambda的值取为10000甚至更大).在这种情况下,

机器学习中的范数规则化之(一)L0、L1与L2范数

机器学习中的范数规则化之(一)L0.L1与L2范数 [email protected] http://blog.csdn.net/zouxy09 转自:http://blog.csdn.net/zouxy09/article/details/24971995 今天我们聊聊机器学习中出现的非常频繁的问题:过拟合与规则化.我们先简单的来理解下常用的L0.L1.L2和核范数规则化.最后聊下规则化项参数的选择问题.这里因为篇幅比较庞大,为了不吓到大家,我将这个五个部分分成两篇博文.知识有限,以下都是我一

机器学习中的范数规则化

机器学习中的范数规则化之(一)L0.L1与L2范数 [email protected] http://blog.csdn.net/zouxy09 今天我们聊聊机器学习中出现的非常频繁的问题:过拟合与规则化.我们先简单的来理解下常用的L0.L1.L2和核范数规则化.最后聊下规则化项参数的选择问题.这里因为篇幅比较庞大,为了不吓到大家,我将这个五个部分分成两篇博文.知识有限,以下都是我一些浅显的看法,如果理解存在错误,希望大家不吝指正.谢谢. 监督机器学习问题无非就是"minimizeyour er

(转)机器学习中的损失函数

损失函数(loss function)是用来估量你模型的预测值f(x)与真实值Y的不一致程度,它是一个非负实值函数,通常使用L(Y, f(x))来表示,损失函数越小,模型的鲁棒性就越好.损失函数是经验风险函数的核心部分,也是结构风险函数重要组成部分.模型的结构风险函数包括了经验风险项和正则项,通常可以表示成如下式子: 其中,前面的均值函数表示的是经验风险函数,L代表的是损失函数,后面的ΦΦ是正则化项(regularizer)或者叫惩罚项(penalty term),它可以是L1,也可以是L2,或

机器学习中防止过拟合的处理方法

原文地址:一只鸟的天空,http://blog.csdn.net/heyongluoyao8/article/details/49429629 防止过拟合的处理方法 过拟合 ??我们都知道,在进行数据挖掘或者机器学习模型建立的时候,因为在统计学习中,假设数据满足独立同分布(i.i.d,independently and identically distributed),即当前已产生的数据可以对未来的数据进行推测与模拟,因此都是使用历史数据建立模型,即使用已经产生的数据去训练,然后使用该模型去拟合

机器学习中的范数规则化 L0、L1与L2范数 核范数与规则项参数选择

http://blog.csdn.net/zouxy09/article/details/24971995 机器学习中的范数规则化之(一)L0.L1与L2范数 [email protected] http://blog.csdn.net/zouxy09 今天我们聊聊机器学习中出现的非常频繁的问题:过拟合与规则化.我们先简单的来理解下常用的L0.L1.L2和核范数规则化.最后聊下规则化项参数的选择问题.这里因为篇幅比较庞大,为了不吓到大家,我将这个五个部分分成两篇博文.知识有限,以下都是我一些浅显