统计学习:正则化与交叉验证

前端之家收集整理的这篇文章主要介绍了统计学习:正则化与交叉验证前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

1. 正则化

模型选择的经典方法正则化(regularization)正规化是结构风险最小化策略的实现,是在经验风险上加一个正则化项(regularizer)或罚项(penalty term)正则化一般是模型复杂度的单调递增函数,模型越复杂,正则化值就越大。比如,正则化项可以是模型参数向量的范数。正则化一般具有如下形式

minfϵΓ1Ni=1NL(yi,f(xi))+ΛJ(f)

其中,第一项是经验风险,第二项是正则化项 Λ0 为调整两者之间关系的系数。正则化项可以取不同的形式。例如。回归问题中,损失函数是平方损失,正则化项可以是参数向量的 @H_502_256@L2
范数:

L(w)=1Ni=1N(f(xi,w@H_44_404@)y)2+Λ2w2


这里, @H_64_502@w
表示参数向量w的 L2 范数。
正则化项也可以是参数向量的 L1 范数:
L(w)=1Ni=1N(f(xi,w)y)2+Λ2w1

w1 表示参数向量 w L1 第一项的经验风险较小的模型可能较复杂(有多个非零参数),这时第二项的模型复杂度会较大。正则化的作用是选择经验风险与模型复杂度同时较小的模型。

在所有可能选择的模型中,能够很好地解释已知数据并且十分简单才是最好的模型,也就是应该选择的模型。从贝叶斯估计的角度来看,正则化项对应于模型的先验概率。可以假设复杂的模型有较小的先验概率,简单的模型有较大的先验概率。

 正则化项符合奥卡姆剃刀原理。奥卡姆剃刀原理应用于模型选择时变为一下想法:在所有可能选择的模型中,能够很好地解释已知数据并且十分简单才是好模型。从贝叶斯估计的角度来看,正则化项对应于模型的先验概率,可以假设复杂的模型有较小的先验概率,简单的模型有较大的先验概率。正则化的本质就是,给优化参数一定约束。

 可能还是对为什么正则化搞不清楚?举个不是很恰当的例子:商家制作雨伞,我喜欢的是雨伞上有斑点狗团,材料要丝绸的,带蕾丝边的,还希望雨伞上能播放点小电影。。。。但是!!!我这个需求太特殊化了,除非我有钱请一个私人厂家为我量身定制。因为如果厂家把这样的雨伞制作出来,别人估计不会买(对测试集未知数据没有很好地误差),这就叫过拟合。并且我的这些个性需求越多,那么雨伞造价就越高。厂家要制作的是满足大众需求的,具有普遍共性的雨伞。这就是姆剃刀原理,保证了大众需求的同时他又很简单。正则化就是就好比加入了成本控制项目,它是个性需求复杂度的函数


L0,L1,L2正则化(重点)

  L0范数:向量中非0元素的个数。如果用L0范数来规则化一个参数矩阵W的话,那么我们希望W的元素大部分都是0。让参数是稀疏的。L0范数的最小化问题在实际应用中是NP问题,所以在实际中不会应用。


  L1范数是向量中各个元素绝对值之和,有个美称“稀疏规则算子”,为什么L1会使权值稀疏?L1范数是L0范数的最优凸近似。既然L0可以实现稀疏,为什么不用L0,而要用L1呢?个人理解一是因为L0范数很难优化求解(NP难问题),二是L1范数是L0范数的最优凸近似,而且它比L0范数要容易优化求解。所以大家才把目光和万千宠爱转于L1范数。L1范数和L0范数可以实现稀疏,L1因具有比L0更好的优化求解特性而被广泛应用。


  参数稀疏的好处是什么?

  (1)对稀疏趋之若鹜的一个关键原因就是它能实现特征的自动选择。一般来说,样本X的大部分内容(大部分特征)都是和最终的输出y无关的或者不提供任何信息。在经验风险最小化的时候,考虑这些特征,虽然可以提高训练误差,但是在预测新的样本时,这些没用的信息反而会被考虑,从而干扰了正确的预测。稀疏规则算子就是为了完场特征自动选择的光荣使命。它会将没用的特征去掉,将这些特征对应的权重设置为0.

  (2)模型可解释性强


  L2范数是指向量各元素的平方和然后求平方根。在回归里面,把有L2 范数的回归称为岭回归,有人也称它为权值衰减。我们让L2范数的规则项最小,可以使得W的每个元素都很小,都接近于0,但与L1范数不同,它不会让它等于0,而是接近于0,这里是有很大的区别的。而越小的参数说明模型越简单,越简单的模型则越不容易产生过拟合现象。实际上L2范数就是限制了权重参数的增长。

在经验风险最小化的基础上,加入了正则化项,相当于是加了约束条件,变成了有约束条件的最优化问题。


上面这幅图很好的解释了L1范数与L2范数

L1范数:。L1的输出图像如上左图所示,发现L1图像在和每个坐标轴相交的地方都有角出现,而目标函数的等值线除非摆的非常好,否则大部分的时候都会在有角的地方相交。而在有角的地方相交会产生稀疏性。

相比之下,L2没有L1范数这样的性质,因为没有角,所以第一次相交的地方出现在具有稀疏性的地方可能性比较小。

即采用L1范数正则化项等值线与经验风险等值线的交点常常出现自坐标轴上,即W1或者W2等于0,这样就相当于减少了参数的数量。采用L2范数的时候,交点一般出现在某个象限内,即W1,W2均不为0,。换言之L1范数更易于得到稀疏解。

W取得稀疏解意味着初始的d歌特征中仅仅对应的权重w不为0的特征才会出现在最终模型中,于是求解L1范数正则化的结果是得到了仅采用一部分初始特征的模型。L1范数的求解可以采用近端梯度下降PGD。

2. 交叉验证

另一种常用的模型选择方法是交叉验证(cross validation)
如果给定的样本数据充足,进行模型选择的一种简单方法随机的降数据集分成:训练集(training set)、验证集(validation set)、测试集(test set)训练集用来训练模型,验证集用来选择模型,测试集用于最终对学习方法的评估。在学习到的不同复杂度的模型中,选择对验证集有最小预测误差的模型。由于验证集有足够多的数据,用它对模型进行选择也是有效的。

但是在实际应用中数据时不充足的。为了选择好的模型,可以采用交叉验证方法交叉验证的基本思想:重复的使用数据;把给定的数据进行切分,将切分的数据集组合为训练集与测试集,在此基础上反复的进行训练、测试及模型选择。

  1. 简单交叉验证
    方法:首先随机的将已给数据分为两部分,一部分作为训练集,另一部分作为测试集(例如70%作为训练,30%作为测试),然后用训练集在各种条件下(不同的参数个数)训练模型,从而得到不同的模型;在训练集上评价各个模型的测试误差,选出测试误差最小的模型。
  2. S折交叉验证( 应用最多)
    方法:首先随机的将已给数据切分为S个互不相交的大小相同的自己;然后利用S-1个自己的数据训练模型,利用余下的子集测试模型;将这一过程对可能的S种选择重复进行;最后选出S次评测中平均测试误差最小的模型。
  3. 留一交叉验证 S折交叉验证的特殊情形是S=N,称为留一交叉验证(leave-one-out cross validation),往往在数据缺乏的情况下使用。这里,N是给定数据集的容量。

猜你在找的正则表达式相关文章