统计学习一:2.概论:模型选择
全文引用自《统计学习方法》(李航)
1.模型评估与模型选择
训练误差和测试误差
模型的损失函数表示了模型预测结果与真实结果之间的差别,即预测错误的程度。因此对于不同的模型,利用给定的损失函数可以评估出模型学习方法的优劣。
统计学习的目的是要使学习后的模型在训练数据和测试数据中都有很好的预测能力,因此,利用损失函数为基础的 训练误差(training error)和测试误差(test error) 就成为了该模型的学习方法的评估标准。在实际操作中,学习过程中采用的损失函数和在测试过程中采用的损失函数并非一定相同,但通常是一致的。
即,通过评价损失函数在测试数据集下的整体大小来评估模型的优劣。
假设学习到的模型是\(Y=f(x)\),
训练误差是模型\(Y=f(x)\)关于训练数据集的平均损失:
测试误差是模型\(Y=f(x)\)关于测试数据集上的平均损失:
N为数据集的样本容量。
训练误差的大小,在判断给定的问题是否是一个容易学习的问题上,具有一定的意义,但其实际价值并不大。
测试误差的大小,反应了模型在一个未知的数据集上进行预测的能力,通常称为泛化能力(generalization ability),在实际的对模型的评价中,作用更大。
2.泛化误差
泛化能力(generalization ability) 是指特定的学习方法得到的模型对未知数据的预测能力,是学习方法最为重要和本质的能力。实际中通常采用测试误差来评价学习方法的泛化能力,但由于测试数据是有限的,因此其反应的泛化能力结果也是不可靠的,因此统计学理论试图利用理论来对学习方法的泛化能力进行分析。
首先,泛化误差的定义为:如果通过某个学习方法得到的模型是\(\hat{f}\),那么用这个模型对未知数据预测的误差即为泛化误差(generalization error)
如果一个方法学习得到的泛化误差比另一个更小,那就说明其更有效。实际上,泛化误差就是学习到的模型的期望风险。
过拟合与模型选择
假设空间中通常会存在复杂度不同的模型可供选择,复杂度越高的模型,其训练误差越小,即模型越匹配训练数据。但复杂度较高的模型,其预测未知数据的准确度往往越低,即模型低泛化能力越弱,导致其测试误差更大,这种情况称为过拟合(over-fitting),而这种情况应该是我们需要极力避免的。

上图表明了模型的训练误差和测试误差与模型复杂度之间的关系。可以看出,当模型复杂度过小时,测试误差和训练误差都会很大,当模型复杂度逐渐增大时,训练误差会持续减小,说明模型复杂度越高,其对训练数据的预测能力越强。但当模型复杂度过高时,测试误差会在达到一个最低值后逐渐上升,即模型对未知数据对预测能力下降,此时便称为过拟合现象。因此,在学习的时候就需要选择一个最优复杂度的模型,使模型的测试误差最低。通常采用的方式就是正则化和交叉验证。
正则化和交叉验证
正则化(regularization) 是实现结构风险最小化策略最为常用的方法,主要指在经验风险的基础上加上一个正则化项或惩罚项。正则化项一般与模型的复杂度成正比,模型越复杂,正则化项越大。因此,若要保证模型的结构风险最小化,就必须保证模型的经验风险和正则化项都小,即保证模型的预测能力与模型的复杂度达到一个平衡。
正则化一般具有以下形式:
前一项为经验风险,后一项为正则化项,\(\lambda\geq0\)为调整两者关系的系数。
正则化项可以根据不同的需求采用不同的形式。如在回归问题中,损失函数是平方损失时,正则化项可以选择参数向量\(L_2\)范数:
其中,\(||w||\)表示参数向量w的\(L_2\)范数。
同时,正则化项也可以选择参数向量的\(L_1\)范数:
其中,\(||w||_1\)表示参数向量w的\(L_1\)范数。
由奥卡姆剃刀原理,在所有的可能选择的模型中,能够很好地解释已知数据并十分简单的模型才是最好的模型。即,我们选择模型的标准应该是,其对已知数据的预测能力很好,同时模型的复杂度应该更低。
交叉验证(cross validation) 是另一种常用的方法,其主要思想就是在数据集一定的情况下,多次将数据集随机切分成训练数据和测试数据,然后在多个训练集和测试集组上进行模型的学习和测试,而后选择测试误差最小的模型的方法。主要方式有三种,简单交叉验证、S折交叉验证以及留一交叉验证。
- 简单交叉验证:
首先将数据集随机分为训练数据和测试数据,而后在不同的条件(例如选择不同的参数个数等)下利用训练数据对模型进行训练,最后利用测试数据进行测试,选择测试误差最小的一类模型。 - S折交叉验证:
此方法应用范围最广,主要方法是,首先将数据集随机分为S个互不相交的大小相等的子集,选择其中S-1个子集作为训练集,余下的子集作为测试集,进行模型的训练和测试。可以看出,这一过程可以重复S次,选择S次测试中平均测试误差最小的模型,即作为最优的模型。 - 留一交叉验证:
当数据集较小,缺乏训练与测试数据时,往往使用S=N的特殊的S折交叉验证方法,即为留一交叉验证,每个子集只包含一条数据。N为给定的数据集的容量。
3.生成模型和判别模型
监督学习的主要任务就是学习一个模型,并应用模型对给定的输入数据预测其输出。模型的一般形式为决策函数\(Y=f(X)\)和条件概率分布\(P(Y|X)\)。而监督学习方法又可以分为生成方法(generative approach)和判别方法(discriminative approach),所学习生成的模型称为生成模型和判别模型。
生成方法 由数据学习联合概率分布\(P(X,Y)\),而后求出条件概率分布\(P(Y|X)\)作为预测模型,即:
之所以称为生成方法,是由于模型表示了输入X与输出Y之间的生成关系。典型的生成模型有:朴素贝叶斯法和隐马尔可夫模型。
判别方法 由数据直接学习决策函数或条件概率分布,其关心的并不是输入X与输出Y之间的关系,而是给定一个X之后,应该产生什么样的Y。主要的模型有:k近邻法、感知机、决策树、支持向量机等等。
生成方法的主要优点是,它能还原出联合概率分布\(P(X,Y)\),且生成方法的学习收敛速度更快,即当样本容量增加时,学到的模型可以更快收敛于真实模型,当存在隐变量时,仍可以用生成方法学习,但判别方法就不能用。
判别方法的主要优点是,其学习的目标就是为了预测,因此其准确率更高,并且可以对数据进行各种程度上的抽象、定义特征并进行应用,从而很大程度上简化学习问题。

浙公网安备 33010602011771号