机器学习中使用正则化来防止过拟合是什么原理?

还请各位不吝赐教
关注者
3,509
被浏览
515,166

86 个回答

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

2013.12.3 补充:

说说为什么过拟合的时候系数会很大。

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

结合前段时间上的课程稍微说一下。

其实我们可以通过James-Stein估计量来理解。

首先,我们先看一下什么是过拟合。过拟合的意思是,样本内预测看起来非常精确,但是样本外预测却表现的一塌糊涂,比如下图,真实的预测函数是一个平方函数,但是如果我们使用了太高阶的多项式,看起来对样本的预测误差小了,但是如果给一个新的预测任务,实际上样本外预测是非常差的,特别是当x>10的时候。

举一个例子,也就是James-Stein估计量。如果我们关注10位同学的托福成绩,我们收集到了这10位同学某一次的托福成绩,现在假设同学 i 的每次托福考试成绩为 x_i\sim N\left(\theta _i,10\right)\theta_i 是假设同学 i考无数次托福的平均成绩,或者是他的真实水平吧。现在的问题是,对于同学 i,我们只看到了一个托福成绩,按照最小二乘或者极大似然的思路,同学 i的真实英文水平的最优估计应该就是 \hat{\theta }^{LS}_i=x_i 。下图中红色的点为看到的某一次 x_i ,当然也就是极大似然估计;黑色的点是真实的英语水平 \theta _i ,可以看到两者之间的误差蛮大的。

然而天才的Stein指出,从均方误差的角度,上面的极大似然估计或者最小二乘估计是很差的。如果我们希望预测同学 i下一次托福考试的成绩(样本外预测),我们有更好的办法。James and Stein指出,如果我们把所有的 x_i 都向0一定程度地收缩,那么我们就可以得到更好的样本外预测效果。实际上,不止是向0收缩,只要所有的 x_i 都向某一个方向按照一定规则收缩:

那么就一定可以得到更好的预测效果。上图中白色的点就是收缩之后的估计量,可以发现白色的点和黑色的点之间的误差似乎变小了。

这个发现蛮震撼当时的统计学界的,因为这相当于是给了传统统计学最自豪的领域:正态分布、极大似然估计,一记当头棒喝。从这点出发,统计学至少有两个分支开始蓬勃发展,即经验贝叶斯,以及收缩估计量。

也有答主从贝叶斯的先验的角度解释,实际上从上面的结论——重要的是收缩本身,而不是向哪里收缩——来看,并不是因为先验的信息增进了预测能力——先验你可以随便给,都不妨碍收缩估计量的优良性质。

实际上,传统的 \hat{\theta }^{LS}_i 是一个无偏估计量,而James-Stein估计量 \hat{\theta }^{JS}_i放弃了无偏性,同时降低了估计量的方差,从而改善了均方误差,也改善了预测效果。

所以我们来看正则化,比如在回归中常用的L2正则(岭回归)和L1正则(Lasso)回归,如下图所示,实际上就是完成了参数向0的收缩而已:

通过向0的收缩,参数变的有偏了,但是参数的方差也减小了,从而参数的均方误差有可能会降低。

很多人都在讲偏差-方差的权衡(bias-variance tradeoff),实际上在这里还有一个权衡,即样本内的误差与模型(或者参数)的误差之间的权衡。模型越「大」,则样本内的误差越小,但是参数的误差可能会很大:比如在第一张图中,如果使用了太高阶的多项式,样本点的一个小小的扰动都会使得估计出的模型(参数)有非常大的变化;而模型越「小」,样本内的均方误差会大一些,但是参数的均方误差可以变的比较小。

而正则化,就是通过收缩的办法,限制模型变的越来越「大」,牺牲样本内误差,降低模型(参数)的误差,从而提高样本外的预测效果,防止过拟合。