机器学习40讲-12正则化处理:收缩方法与边际化
Posted bohu83
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了机器学习40讲-12正则化处理:收缩方法与边际化相关的知识,希望对你有一定的参考价值。
一序
本文属于极客时间机器学习40讲学习笔记系列。
12正则化处理:收缩方法与边际化
本质上讲,过拟合就是模型过于复杂,复杂到削弱了它的泛化性能。正则化(regularization)是用于抑制过拟合的方法的统称,它通过动态调整估计参数的取值来降低模型的复杂度,以偏差的增加为代价来换取方差的下降。这是因为当一些参数足够小时,它们对应的属性对输出结果的贡献就会微乎其微,这在实质上去除了非相关属性的影响。
在线性回归里,最常见的正则化方式就是在损失函数(loss function)中添加正则化项(regularizer),而添加的正则化项 R(λ) 往往是待估计参数的 p- 范数。由于正则化的作用通常是让参数估计值的幅度下降,因此在统计学中它也被称为系数收缩方法(shrinkage method)。
将正则化项应用在基于最小二乘法的线性回归中,就可以得到线性回归的不同修正(penalized linear regression)。添加正则化项之后的损失函数可以写成拉格朗日乘子的形式
其中是用来平衡均方误差和参数约束的超参数,当加入正则项是L1修正结果就是 LASSO,当加入L2的正则项就是岭回归,当加入正则项是L1、L2线性组合 就是弹性网络(elastic net)。
岭回归和 LASSO 具有不同的几何意义。上图给出的是岭回归(左)和 LASSO(右)的可视化表示。图中的蓝色点表示普通最小二乘法计算出的最优参数,外面的每个蓝色圆圈都是损失函数的等值线,每个圆圈上的误差都是相等的,从里到外误差则越来越大。红色边界表示的则是正则化项对参数可能取值的约束,这里假定了未知参数的数目是两个。岭回归中要求两个参数的平方和小于某个固定的取值,即 ,因此解空间就是浅色区域代表的圆形;而 LASSO 要求两个参数的绝对值之和小于某个固定的取值,即 ∣w1∣+∣w2∣<t.因此解空间就是浅色区域代表的方形。
不管采用哪种正则化方式,最优解都只能出现在浅色区域所代表的约束条件下,因而误差等值线和红色边界的第一个交点就是正则化处理后的最优参数。交点出现的位置取决于边界的形状,圆形的岭回归边界是平滑的曲线,误差等值线可能在任何位置和边界相切。相形之下,方形的 LASSO 边界是有棱有角的直线,因此切点最可能出现在方形的顶点上,这就意味着某个参数的取值被衰减为 0。这张图形象地说明了岭回归和 LASSO 的区别。岭回归的作用是衰减不同属性的权重,让所有属性一起向圆心收拢;LASSO 则直接将某些属性的权重降低为 0,完成的是属性过滤的任务。而弹性网络作为两者的折中,结合了不同的优点:它不会轻易地将某些属性抛弃,从而使全部信息得以保留,但对不重要的特征也会毫不手软地大幅削减其权重系数。
对正则化以上的认识都来自于频率主义的视角。贝叶斯主义对正则化的理解:正则化就是引入关于参数的先验信息。利用贝叶斯概率来确定最优参数的步骤可以归纳如下:求解的对象是已知训练数据时,测试数据的条件概率 p(y∗∣y),要计算这个条件概率就要对所有未知的参数和超参数进行积分,以消除这些变量。之前文哲老师讲过这一部分,手画了这个图加上推导了LASSO的损失函数求解过程。https://blog.csdn.net/bohu83/article/details/113932288
贝叶斯边际化处理价值就在于计算出的结果就是最优的结果。频率主义的正则化只是引入了一个正则化系数 λ,但 λ 的最优值到底是多少呢?只能靠重复试验确定,这就需要用验证数据集(validation set)来评估每个备选 λ 的最优性。贝叶斯主义的边际化就简化了最优化的过程,让边际似然概率最大的超参数就是最优的超参数。这样做的好处就是所有数据都可以用于训练,不需要额外使用验证集,这在数据较少时是非常有用的。
在 Scikit-learn 库中,线性模型模块 linear_model 中的 Lasso 类和 Ridge 类就可以实现 l1 正则化和 l2 正则化。正则化的最优参数通常会通过交叉验证进行模型选择来产生,也就是在从不同数据子集上计算出的不同 λ 中择优取之。
使用场景:
当参数的数目远远大于样本的数目的高维统计问题,并且参数的选择比较简单粗暴,其中有不少参数存在相关性时,比较建议用LASSO回归来降低参数数目。
当样本数远大于参数的数目时,岭回归计算更快。如果参数数量少而精,数值都调整好,偏度、峰度、正态化、去极值等等,而且普遍适用多种场景,参数可解释,这时比较适合用岭回归。
以上是关于机器学习40讲-12正则化处理:收缩方法与边际化的主要内容,如果未能解决你的问题,请参考以下文章