统计学习方法都是由模型、策略和算法构成的,即统计学习方法由三要素构成,可以简单地表示为 方法=模型+策略+算法。
1、模型
在监督学习中,模型就是所要学习的条件概率分布或决策函数。模型的假设空间包括所有可能的条件概率分布或决策函数。假设空间用F表示。假设空间可以定义为决策函数的集合: F={f|Y=f(X)} 。其中,X和Y是定义在输入空间X和输出空间Y上的变量。这时F通常是由一个参数向量决定的函数族: F={f|Y=fθ(X),θ∈Rn} 。参数向量 θ 取值于n维欧式空间 Rn ,称为参数空间。
假设空间也可以定义为条件概率的集合, F={P|P(Y|X)} 。其中,X和Y是定义在输入空间X和输出空间Y上的随机变量。这时F通常是由一个参数变量决定的条件概率分布族: F={P|Pθ(Y|X),θ∈Rn} 。参数向量 θ 取值于n维欧式空间 Rn ,称为参数空间。
2、策略
统计学习的目标在于从假设空间中选取最优模型。首先引入损失函数和风险函数的概念。损失函数度量模型一次预测的好坏,风险函数度量平均意义下模型预测的好坏。
损失函数见其他文章已归纳。损失函数值越小,模型就越好。由于模型的输入、输出(X,Y)是随机变量,遵循联合分布P(X,Y),所以损失函数的期望是 Rexp(f)=Ep[L(Y,f(X))]=∫X∗YL(y,f(x))P(x,y)dxdy
这是理论上模型f(X)关于联合分布P(X,Y)的平均意义下的损失,称为风险函数或期望损失。
学习的目标就是选择期望风险最小的模型。由于联合分布P(X,Y)是未知的, Rexp(f) 不能直接计算。实际上,如果知道联合分布P(X,Y),可以从联合分布直接求出条件概率分布P(Y|X),也就不需要学习了。这样,一方面根据期望风险最小学习模型要用到联合分布,另一方面联合分布又是未知的。所以监督学习就成为一个病态问题。
给定一个训练数据集 T={(x1,y1),(x2,y2),...,(xN,yN)} ,模型f(X)关于训练数据集的平均损失称为经验风险或经验损失,记作 Remp:Remp(f)=1N∑i=1NL(yi,f(xi)) 。期望风险 Rexp(f) 是模型关于联合分布的期望损失,经验风险 Remp(f) 是模型关于训练样本的平均损失。根据大数定律,当样本容量N趋于无穷时候,经验风险 Remp(f) 趋于期望风险 Rexp(f) 。
所以一个很自然的想法就是用经验风险估计期望风险。但是,现实中训练样本数目有限,甚至很小,所以用经验风险估计期望风险常常并不理想,要对经验风险进行一定的矫正。这就关系到监督学习的两个基本策略:经验风险最小化和结构风险最小化。
2.1经验风险最小化和结构风险最小化
在假设空间、损失函数以及训练数据集确定的情况下,经验风险函数式 Remp:Remp(f)=1N∑i=1NL(yi,f(xi)) 就可以确定。经验风险最小化的策略认为,经验风险最小的模型是最优的模型。根据这一策略,按照经验风险最小化求最优模型就是求解最优化问题: minf∈F1N∑i=1NL(yi,f(xi)) 。
当样本容量足够大时,经验风险最小化能保证有很好的学习效果,在现实中被广泛采用。比如,极大似然估计就是经验风险最小化的一个例子。当模型是条件概率分布,损失函数是对数损失函数时,经验风险最小化就等价于极大似然估计。
但是,当样本容量很小时,经验风险最小化学习的效果就未必很好,会产生后面将要叙述的“过拟合”现象。
结构风险最小化是为了防止过拟合而提出来的策略,结构风险最小化等价于正则化。结构风险在经验风险上加上表示模型复杂度的正则化项或罚项。在假设空间、损失函数以及训练数据集确定的情况下,结构风险的定义是: Rsrm(f)=1N∑i=1NL(yi,f(xi))+λJ(f) 。
其中 J(f) 是模型的复杂度,是定义在假设空间上的泛函。模型f越复杂,复杂度 J(f) 就越大。也就是说,复杂度表示了对复杂模型的惩罚、 λ≥0 是系数,用以权衡经验风险和模型复杂度。结构风险小需要经验风险和模型复杂度同时小。结构风险小的模型往往对训练数据以及未知的测试数据都有较好的预测。
比如,贝叶斯估计中的最大后验概率估计就是结构风险最小化的一个例子。当模型是条件概率分布、损失函数为对数损失函数、模型复杂度由模型的先验概率表示时,结构风险最小化就等价于最大后验概率估计。
结构风险最小化的策略认为结构风险最小的模型是最优的模型。所以求最优模型,就是求解最优化问题: minf∈F1N∑i=1NL(yi,f(xi))+λJ(f) 。
3、算法
算法是指学习模型的具体计算方法。统计学习基于训练数据集,根据学习策略,从假设空间中选取最优模型,最后考虑用什么样的计算方法求解最优模型。
4、模型评估与模型选择
训练误差的大小,对判断给定的问题是不是一个容易学习的问题是有意义的,但本质不重要。测试误差反映了学习方法对未知的测试数据集的预测能力,是学习中的重要概念。显然,给定两种学习方法,测试误差小的方法具有更好的预测能力,是更有效的方法。通常将学习方法对未知数据的预测能力称为泛化能力。
常用的两种模型选择方法:正则化和交叉验证。
5、正则化
模型选择的典型方法是正则化。正则化是结构风险最小化策略的实现,是在经验风险上加一个正则化项或惩罚项。正则化项一般是模型复杂度的单调递增函数,模型越复杂,正则化值就越大。比如正则化项可以是模型参数向量的范数。
正则化一般具有如下形式: minf∈F1N∑i=1NL(yi,f(xi))+λJ(f)
其中,第一项是经验风险,第二项是正则化项。正则化项可以取不同的形式。例如回归问题中,损失函数是平方损失,正则化项可以是参数变量的L2范数: L(w)=1N∑i=1N(f(xi;w)−yi)2+λ2∥w∥2 ,这里||w||表示参数向量w的L2范数。正则化项也可以是参数变量w的L1范数: L(w)=1N∑i=1N(f(xi;w)−yi)2+λ∥w∥1 。
6、交叉验证
另一种常用的模型选择方法是交叉验证。
1、简单交叉验证
简单交叉验证方法是:首先随机地将已给数据分为两部分,一部分作为训练集,另一部分作为测试集;然后用训练集在各种条件下训练模型,从而得到不同的模型;在训练集上评价各个模型的测试误差,选出测试误差最小的模型。
2、S折交叉验证
应用最多的是S折交叉验证,方法如下:首先随机地将已给数据切分为S个互不相交的大小相同的子集;然后利用S-1个子集的数据训练模型,利用余下的子集测试模型;将这一过程对可能的S种选择重复进行;最后选出S次评测中平均测试误差最小的模型。
3、留一交叉验证
S折交叉验证的特殊情形是S=N,称为留一交叉验证,往往在数据缺乏的情况下使用。这里,N是给定数据集的容量。