正则化与交叉验证
前文所述的模型选择只能大体选择出一类较好的模型,即利用训练数据集学习模型,没有考虑到测试误差,而正则化与交叉验证的提出,则加入了测试误差的考量,因此,这两种方法用来选择具体模型。
正则化
正则化是结构风险最小化策略的实现,其是在经验风险加上一个正则项或罚项。一般来说,正则化项是模型复杂度的单调递增函数。正则化一般具有以下形式:
minf∈F1N∑i=1NL(yi,f(xi))+λJ(f)
min
f
∈
F
1
N
∑
i
=
1
N
L
(
y
i
,
f
(
x
i
)
)
+
λ
J
(
f
)
正则化项可以取不同形式,在回归问题中,损失函数是平方损失,正则项是参数向量的
L2
L
2
范数。正则化的目的是选取经验风险与复杂度同时较小的模型。
交叉验证
交叉验证的原理:当样本充足时,可以将数据划分为训练集、验证集、测试集,使用训练集来训练模型,验证集来选择模型,测试集用来评估模型,但在实际中,数据一般并不充足,这时可以考虑重复使用数据,即将数据切分组成训练集与测试集,在此基础上反复训练、测试、模型选择
1. 简单交叉验证:将数据随机分为两部分,一部分是训练集,一部分是测试集,使用训练集训练模型,测试集评价测试误差,选出最优模型。
2. S折交叉验证:随机将数据分为S个大小相同的子集,然后利用S-1个子集的数据训练模型,利用余下的子集测试模型;将这一过程对S种可能重复进行,选出平均测试误差最小的模型
3. 留一交叉验证:是S折交叉验证的特殊情况,S=N,N是给定数据的容量,适用于缺乏数据的情况下。
泛化能力
- 泛化误差:泛化能力,指模型对未知数据的预测能力;现实中,通常使用测试误差来评价学习方法的泛化能力,现在从理论上分析泛化能力,如果学到的模型是
fˆ
f
^
,用这个模型对未知数据预测的误差即为泛化误差:
Rexp(fˆ)=Ep[L(Y,fˆ(X))]=∫X×YL(y,fˆ(x))P(x,y)dxdy R exp ( f ^ ) = E p [ L ( Y , f ^ ( X ) ) ] = ∫ X × Y L ( y , f ^ ( x ) ) P ( x , y ) d x d y
事实上,泛化误差就是所学习到模型的期望风险。 - 泛化误差上界:比较两种学习方法的优劣通常是比较他们的泛化误差上界;泛化误差上界通常具有以下性质:它是样本容量的函数,当容量增加时,泛化上界趋于0;它是假设空间的函数,空间容量越大,模型越难学,泛化误差上界越大。
定义:对二类分类问题,当假设空间是有限个函数的集合时,对任意一个函数 f∈F f ∈ F ,至少以概率 1−δ 1 − δ ,以下不等式成立:
R(f)≤Rˆ(f)+ε(d,N,δ) R ( f ) ≤ R ^ ( f ) + ε ( d , N , δ )
其中, ε(d,N,δ)=12N(logd+log1δ)−−−−−−−−−−−−−−√ ε ( d , N , δ ) = 1 2 N ( log d + log 1 δ )
不等式左边是泛化误差,右端即为泛化误差上界, d d <script type="math/tex" id="MathJax-Element-9">d</script> 是函数个数。在泛化误差上界中,第一项是训练误差,第二项是N的单调递减函数,同时也是假设空间的函数