前天看bilibili上一位叫做张弘毅主讲的《deep learning》课程,其中对线性回归的正则化项的作用解释为"make it more smooth",这是让我感到疑惑的地方,以前说正则化项的作用只是过拟合 。《Pattern Recognition And Machine Learning》中提到正则化项,是这样说的" One techniqe that is often used to conrtol the over-fitting phnomenon in such cases is that of regulariztion",按照这种说法,正则化项的出现纯粹是为了处理过拟合的问题。张弘毅提到的smooth作用,应该是说过拟合的曲线一般震荡的很厉害,而加入正则化项之后震荡不再像原来那么厉害了。
过拟合是什么?
定义:给定一个假设空间H,一个假设h属于H,如果存在其他的假设h'属于H,使得在训练样例上h的错误率比h'小,但在整个实例分布上h'比h的错误率小,那么就说假设h过度拟合训练数据。由于整个实例分布一般是获取不到的,因此使用测试集来代替。那么,过拟合是指在训练集中训练很好的模型在测试集中表现效果不好。也就是说,若是没有测试集就不可能判断出是否存在过拟合的现象,所谓的过拟合是一种“事后诸葛亮”的判断(训练并测试之后)。
过拟合是什么引起的?
所谓学习过程,即以样本为线索,去假设空间内选择一个假设。那么可以看出学习结果收到了样本,假设空间,选择方法的影响。学习结果不理想的原因不外乎是这三个因素导致的:一般样本的问题出现在无法反应样本的整体分布,至少不能反映出测试集中样本的分布,这具体体现在样本太少,或者选取样本时有偏向;假设空间的问题出现在模型的假设空间选取不合理,具体体现在参数空间太大或者太小,模型选择的错误导致的假设空间错误;选择方法的问题出现在选择时所用的目标函数不合理或最优化的过程不对。而过拟合的原因一般是样本选取的数量太少或假设空间太大。
过拟合的解决方案
-
增加样本数量。
-
缩小假设空间,这可以通过减少参数来实现,
-
修改目标函数方法,通过增加正则化项来进行解决。
-
尽管提到的比较少,但是使用bagging方法也可以防止过拟合。
为什么添加正则化项可以防止过拟合?
在增加正则化项的时候,假设空间是不变的,改变的是选择过程。在选择时,更加偏向于将正则化项减少的模型,实际上,增加正则化项将整个目标函数的极小值向原点移动了,使得原来过拟合的解不再是极小值,模型选择时,转而开始寻找原有Error与正则化项之和的极小值。可以想象的是,L2正则化项是将原来Error函数的等高线上叠加了一个碗型等高线。尽管接近于原点的解空间内与原来的过拟合的解可能不一样,单这个并不是绝对的,若是原来过拟合的点本身就接近于原点,那么增加正则化项可能并不能解决过拟合的情况,这时只能通过增加 来进行来不断调整和测试。
为什么贝叶斯线性回归中没有正则化项呢?
因为贝叶斯模型中已经隐式得包含了正则化项。比较满意的答案见于https://www.jianshu.com/p/cdfdc3d7f738
网友评论