监督学习的任务是学习一个模型,使得模型能够对任意给定的输入,对其相应的输出做一个好的预测。
输入空间、特征空间与输出空间
监督学习中将输入与输出所有可能取值的集合分别称为输入空间和输出空间
每个具体的输入是一个实例,通常由特征向量表示,所有的特征向量存在的空间为特征空间。有时假设输入空间与输出空间为相同的空间,有时假设两者为不同的空间,将实例从输入空间映射到输出空间。模型实际上都是定义在特征空间上面的。输入变量与输出变量均为连续变量的预测问题称为回归问题;输出变量为有限个离散变量的预测问题称为分类问题;输入变量与输出变量均为变量序列的预测问题称为标注问题。
联合概率分布
监督学习假设输入输出随机变量X和Y遵循联合概率分布P(X,Y),P(X,Y)表示分布函数或分布密度函数。训练数据和测试数据被看做是依联合概率分布P(X,Y)独立同分布产生的。统计学习假设数据存在一定的统计规律,X与Y具有联合概率分布的假设就是监督学习关于数据的基本假设。
假设空间
监督学习的目的在于学习一个由输入到输出的映射,这一映射由模型来表示。学习的目的在于找到最好的这样的模型。模型属于由输入空间到输出空间的映射的集合,这个集合就是假设空间(hypothesis space)。假设空间的确定意味着学习范围的确定。监督学习的模型可以是概率模型或非概率模型,由条件概率分布P(Y|X)或决策函数Y=f(X)表示。
构建一张统计学习方法就是确定具体的统计学习的三要素:
学习方法 = 模型+策略+算法
模型就是所要学习的条件概率分布或决策函数。模型的假设空间包含所有可能的条件概率分布或决策函数。例如假设决策函数是输入变量的线性函数,那么模型的假设空间就是所有这些线性函数构成的函数集合。假设空间中的模型一般有无穷多个。
假设空间用F表示,假设空间可以定义为决策函数的集合:
,也可以定义为条件概率的集合:

有了模型的假设空间,统计学习需要考虑如何学习或者选择最优的模型。引入了损失函数和风险函数。损失函数度量一次预测的好坏,风险函数度量平均意义下模型预测的好坏。损失函数是f(x)和Y的非负实值函数,记作
常用的损失函数如下所示:
- 0-1损失函数:
平方损失函数:
绝对损失函数:
对数损失函数(对数似然损失函数):
由于模型遵循联合分布P(X,Y),所以损失函数的期望如下,这是理论上模型f(X)关于联合分布P(X,Y)平均意义下的损失,称为风险函数或期望损失,记作
:
模型f(X)关于训练数据集的平均损失称为经验风险或经验损失,记作
:
学习目标就是选择期望风险最小的模型,由于联合分布P(X,Y)是未知的, 不能直接计算,事实上,若知道联合分布P(X,Y),可以从联合分布直接求出条件概率分布P(Y|X),也就不需要学习了。根据大数定律,当N趋于无穷时,两者趋于相同,但现实中数据不会无穷大,这时需要对经验风险进行校正,使用监督学习中的两种基本策略:经验风险最小化和结构风险最小化。
经验风险最小化就是求解最优化问题,最优模型为经验风险最小的模型:
但是当样本容量很小时容易产生过拟合,这时就需要使用结构风险最小化,等价于正则化,在经验风险上加上表示模型复杂度的正则化项或惩罚项。结构风险的定义如下:
算法是指学习模型的具体计算方法,使用何种计算方法求解最优模型。如何保证找到全局最优解,并使求解的过程高效。统计学习可以使用已有的最优化方法,如梯度下降之类的,有时也需要使用独自的最优化算法。
训练误差是指模型关于训练集的平均损失,测试误差是指模型关于测试集的平均损失。当损失函数为0-1损失的时候,测试误差就变成了常见的测试数据集上面的误差率。常见的测试数据集上面的准确率为:
模型复杂度与预测误差的关系图如下所示,模型复杂度越高越容易导致在测试集过拟合的问题。(pixeImator画图真心好用)
下面介绍两种常用的模型选择方法:正则化和交叉验证
正则化是结构风险最小化策略的实现,一般具有如下形式:
正则化的作用是选择经验风险与模型复杂度同时较小的模型。正则化符合奥卡姆剃刀原理,它应用在模型选择时变为以下想法:在所有可能选择的模型中,能够很好的解释已知数据并且十分简单才是最好的模型。
交叉验证是另一种常用的模型选择方法,将数据分为训练集,验证集,测试集,训练集用来训练模型,验证集用于模型的选择,测试集用于对学习方法的评估。在学习到的不同的复杂模型中,选择对验证集有最小预测误差的模型。交叉验证的基本思想是重复使用数据:把给定的数据进行划分,对划分的数据反复进行训练、测试以及模型选择。
- 简单交叉验证
将数据随机分为两个部分,(70%训练集,30%测试集),然后用训练集在各种条件下(不同参数个数)训练模型,从而得到不同的模型,在测试集上面评价各个模型的测试误差,选出测试误差的最小的模型。
S折交叉验证
这个应用最多(S-fold cross validation),首先随机划分为S个互不相交的大小相同的子集,然后用S-1个子集的数据训练模型,余下的子集测试模型,反复重新进行S种组合,最后选出S次评测中平均测试误差最小的模型。
留一交叉验证
当S折交叉验证中S=N时称为留一交叉验证,N为给定数据集的容量。
泛化能力(generalization ability)是指由该方法学习到的模型对未知数据的预测能力。
泛化误差(generalization error)的定义如下:如果学习到的模型时
,那么用这个模型对未知数据预测的误差即为泛化误差。实际上,泛化误差就是所学习到模型的期望风险。
学习方法的泛化能力分析往往通过研究泛化误差的概率上界进行,简称泛化误差上界。通过比较这个来比较两个算法的优劣。泛化误差上界通常具有以下性质:它是样本容量的函数,当样本容量增加时,泛化上界趋于0;它是假设空间容量的函数,假设空间容量越大,模型就越难学,泛化误差上界就越大。
泛化误差上界定理:对于二类分类问题,当假设空间是有限个函数的集合
时,对任意一个函数
,至少以概率
,以下不等式成立:
上面(1.1)式中左端 是泛化误差(泛化误差就是所学模型的期望风险),右端即为泛化误差上界。在泛化误差上界中,第一项是训练误差,训练误差越小,泛化误差也越小。第二项 是N的单调递减函数,当N趋于无穷大时趋于0;同时它是 阶的函数,假设空间 包含的函数越多,其值越大。
证明:在证明中需要用到Hoeffding不等式,如下:
由于