机器学习——正则化与交叉验证
0正则化
模型选择的典型方法是正则化。正则化是结构风险最小化策略的实现,是在经验风险上加一个正则化项或惩罚项。正则化一般是模型复杂度的单调递增函数,模型越越复杂,正则化的值就越大,比如,正则化项可以是模型参数向量的范数:
其中,第1项是经验风险,第二项是正则化项,a>=0为调整两者之间的关系函数。
正则化项可以取不同的形式。例如,回归问题中,损失函数是平方损失,正则化项可以是参数向量L2的范数:
这里,||w||表示参数向量w的L2范数。
正则化项也可以是参数的L1范数:
这里,||w||表示参数向量w的L1范数。
第1项的经验风险较小的模型可能较复杂(有多个非零参数),这时第2项的模型复杂度会较大。正则化的作用是选择经验风险与模型复杂度同时较小的模型。
正则化复合奥卡姆剃刀原理,奥卡姆剃刀原理应用于模型选择时变为一下想法:在所有可能选择的模型中,能够很好的解释已知数据并且十分简单才是最好的模型,也就是应该选择的模型。从贝叶斯的角度来看,正则化项对应于模型的先验概率,可以假设复杂模型有较好的先验概率,简答的模型有较大的先验概率。
1交叉验证
另一种常用的模型选择方法是交叉验证
如果给定的样本数据充足,进行模型选择的一种简单的方法是随机将数据集切分成三份,分别是训练集,验证集和测试集。训练集用于训练模型,验证集用于模型的选择,而测试集用于最终对学习方的评估,在学习到的不同复杂度的模型中,选择验证集有最小预测误差的模型。由于验证集有足够多的数据,用它对模型进行选择也是有效的。
但是,在许多实际应用中数据是不充足的,为了选择好的模型,可以采用交叉验证方法。交叉验证的基本思想是重复地使用数据,给定的数据进行切分,将切分的数据集组合为训练集和测试集,在此基础上反复的进行训练,测试以及模型选择。
1.简单交叉验证
简单交叉验证方法是:首先随机地将已给的数据分为两部分,一部分作为训练集,另一部分作为测试集(例如,70%的数据训练集,30%的数据测试集);然后用训练集在各种条件下训练模型,从而得到不同的模型,在测试集上评价各个模型的测试误差,选择测试误差最小的模型。
2.S折交叉验证
应用最多的是S折交叉验证,方法如下:首先随机地将已给数据切分为S个互不相同的大小相同的子集,然后利用S-1个子集的数据训练模型,利用余下的子集测试模型,将这一过程对可能的S种选择重复进行,最后选出S次评测误差最小的模型。
3.留一交叉验证
S折交叉验证的特殊情形是S=N,称为留一交叉验证,往往在数据缺乏的情况下使用,这里,N是给定数据集的容量。