过拟合本质上是模型太过复杂,复杂到消弱了模型的泛化能力。由于训练数据时有限的,因此总可以通过增加参数的的方式来提升模型的复杂度,降低训练误差。可正如你学习的领域越专精,可应用的范围可能越窄,则在模型训练中就是指过拟合。
如图所示的红色曲线就是过拟合。
正则化是用于抑制过拟合方法的统称,通过动态调整模型参数的取值 来降低模型的复杂度。这是因为当一些参数的取值足够小时,参数对应的属性对结果的影响微乎其微,这在实质上去除了非相关属性的影响。
在线性回归里,最常见的正则化方式就是在损失函数中添加正则化项,而添加的正则化项往往是待估计参数的 p- 范数。将均方误差和参数的范数之和作为一个整体来进行约束优化,相当于额外添加了一重关于参数的限制条件,避免大量参数同时出现较大的取值。由于正则化的作用通常是让参数估计值的幅度下降,因此在统计学中它也被称为系数收缩方法。
w1,w2都是模型的参数,要优化的目标参数。蓝色的圆圈表示没有经过限制的损失函数在寻找最小值过程中,w的不断迭代(随最小二乘法,最终目的还是使损失函数最小)变化情况,表示的方法是等高线,z轴的值就是 E(w)。
那个红色边框包含的区域,其实就是解空间,只能在这个缩小了的空间中,寻找使得目标函数最小的w1,w2。左边图是岭回归,是由于采用了L2范数正则化项的缘故,要求两个参数的平方和小于某个固定的参数,所以是圆形。右边的LASSO,是由于采用了L1范数作为正则化项,要求两个参数的绝对值之和小于某个固定值,所以解空间是方形。
图中蓝色和红色的交点就是最优参数解,交点出现的位子取决于边界的情况,岭回归的边界是曲线,误差等值线可以在任意位置和边界相切。LASSO边界是直线,因此切点最可能出现在方形的顶点上,这就意味着某个参数的取值为0。
岭回归 :衰减不同属性的权重,让所有属性向圆心收拢。
LASSO :直接将某些属性的权重降为0,是对属性的过滤筛选。
当属性的数目远远大于样本的数目的高纬度统计问题,并且不少属性间还存在着相关性时,建议使用LASSO回归来属性的数目。LASSO回归会让很多属性的系数变成0,保留一些系数较大的属性,这个时候系数的取值会对结果又较大影响,因此需要对属性的取值范围进行调整,比如标准化。
当样本数远大于属性数时,岭回归更快,岭回归不会删除属性,会对属性的取值范围进行压缩,特征值小的特征向量会被压缩的很厉害,因此要求属性的取值范围差不多,这样系数差不多,压缩更有意义。
参考资料:王天一,机器学习40讲。
正则化:1. 正则化的目的:防止过拟合!
2. 正则化的本质:约束(限制)要优化的参数。
关于第1点,过拟合指的是给定一堆数据,这堆数据带有噪声,利用模型去拟合这堆数据,可能会把噪声数据也给拟合了,这点很致命,一方面会造成模型比较复杂(想想看,本来一次函数能够拟合的数据,现在由于数据带有噪声,导致要用五次函数来拟合,多复杂!),另一方面,模型的泛化性能太差了(本来是一次函数生成的数据,结果由于噪声的干扰,得到的模型是五次的),遇到了新的数据让你测试,你所得到的过拟合的模型,正确率是很差的。
关于第2点,本来解空间是全部区域,但通过正则化添加了一些约束,使得解空间变小了,甚至在个别正则化方式下,解变得稀疏了。这一点不得不提到一个图,相信我们都经常看到这个图,但貌似还没有一个特别清晰的解释,这里我尝试解释一下,图如下:
这里的w1,w2都是模型的参数,要优化的目标参数,那个红色边框包含的区域,其实就是解空间,正如上面所说,这个时候,解空间“缩小了”,你只能在这个缩小了的空间中,寻找使得目标函数最小的w1,w2。左边图的解空间是圆的,是由于采用了L2范数正则化项的缘故,右边的是个四边形,是由于采用了L1范数作为正则化项的缘故,大家可以在纸上画画,L2构成的区域一定是个圆,L1构成的区域一定是个四边形。
再看看那蓝色的圆圈,再次提醒大家,这个坐标轴和特征(数据)没关系,它完全是参数的坐标系,每一个圆圈上,可以取无数个w1,w2,这些w1,w2有个共同的特点,用它们计算的目标函数值是相等的!那个蓝色的圆心,就是实际最优参数,但是由于我们对解空间做了限制,所以最优解只能在“缩小的”解空间中产生。
蓝色的圈圈一圈又一圈,代表着参数w1,w2在不停的变化,并且是在解空间中进行变化(这点注意,图上面没有画出来,估计画出来就不好看了),直到脱离了解空间,也就得到了图上面的那个w*,这便是目标函数的最优参数。
对比一下左右两幅图的w*,我们明显可以发现,右图的w*的w1分量是0,有没有感受到一丝丝凉意?稀疏解诞生了!是的,这就是我们想要的稀疏解,我们想要的简单模型。
还记得模式识别中的剃刀原理不?倾向于简单的模型来处理问题,避免采用复杂的。【剃刀原理:剃刀是一种经验法则,用于允许排除(刮掉)不可能的解释或者情况。另提一句,剃刀是一种有效的思维方式,但事实上并不是严格意义上的“定理”。】
这里必须要强调的是,这两幅图只是一个例子而已,没有说采用L1范数就一定能够得到稀疏解,完全有可能蓝色的圈圈和四边形(右图)的一边相交,得到的就不是稀疏解了,这要看蓝色圈圈的圆心在哪里。
此外,正则化其实和“带约束的目标函数”是等价的,二者可以互相转换。关于这一点,
通过熟悉的拉格朗日乘子法(注意这个方法的名字),
看到没,这两个等价公式说明了,正则化的本质就是,给优化参数一定约束,所以,正则化与加限制约束,只是变换了一个样子而已。
此外,我们注意,正则化因子,也就是里面的那个lamda,如果它变大了,说明目标函数的作用变小了,正则化项的作用变大了,对参数的限制能力加强了,这会使得参数的变化不那么剧烈(仅对如上数学模型),直接的好处就是避免模型过拟合。反之,自己想想看吧。。。
个人感觉,“正则化”这几个字叫的实在是太抽象了,会吓唬到人,其实真没啥。如果改成“限制化”或者是“约束化”,岂不是更好?
L1正则假设参数的先验分布是Laplace分布,可以保证模型的稀疏性,也就是某些参数等于0;
L2正则假设参数的先验分布是Gaussian分布,可以保证模型的稳定性,也就是参数的值不会太大或太小
在实际使用中,如果特征是高维稀疏的,则使用L1正则;如果特征是低维稠密的,则使用L2正则。
最后,附一张示意图。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)