统计学习方法-方法概论(2)
模型评估与模型选择
统计学习的目的是使学到的模型不仅对已知数据而且对位置数据都能有很好的预测能力
不同的学习方法会给出不同的模型
当损失函数给定时 基于损失函数的模型的训练误差与模型的测试误差: 为学习方法评估的标准
注意: 统计学习方法具体采用的损失函数未必是评估时使用的损失函数 当然 让两者一致是比较理想的
训练误差:
假设学习到的模型是Y=f^(X),训练误差是模型Y=f^(X)关于训练数据集的平均损失:Remp(f^)=1N∑i=1NL(yi,f^(xi))其中:N训练样本容量
测试误差:
测试误差是模型Y=f^(X)关于测试数据集的平均损失:etest=1N′∑i=1N′L(yi,f^(xi))其中N′是测试样本容量
当损失函数是0-1损失时 测试误差就变成了常见测试集上的误差率
etest=1N′∑i=1N′I(yi≠f^(Xi))这里I是指示函数即y≠f^(x)时为1否则为0
相应地,常见的测试数据集上的准确率为:
rtest=1N′∑i=1N′I(yi=f^(xi))
训练误差的大小,对判断给定的问题是不是一个容易学习的问题是有意义的,但本质上不重要
测试误差反映了学习方法对未知的测试数据集的预测能力
过拟合与模型选择
过拟合
当假设空间含有不同复杂度的模型时,就要面临模型选择的问题
我们希望选择或学习一个合适的模型
如果假设空间中存在'真'模型 那么所选择的模型应该逼近真模型
具体地 所选择的模型要与真模型的参数个数相同 所选择的模型的参数向量与真模型的参数向量相近
- 过拟合:如果一味追求提高对训练数据的预测能力 所选模型的复杂度则往往会比真模型更高 这种现象称为过拟合
过拟合是指学习时选择的模型所包含的参数过多 以致于出现这一模型对已知数据预测得很好 但对未知数据预测得很差的现象
注意: 模型的选择只在避免过拟合并提高模型的预测能力
以多项式函数拟合问题为例,说明过拟合与模型选择
回归问题:
假定给一个训练数据集
T=(x1,y1,(x2,y2),...,(xN,yN)
设M次多项式函数拟合′真模型′fM(x,w)=w0+w1x+w2x2+...+wMxM=∑j=0Mwjxj式中x是单变量输入w0,w1,...,wM是M+1个参数
确定模型的复杂度—即确定多项式的次数
然后再给定的模型复杂度下 按照经验风险最小化的策略 求解参数
即多项式系数
—求经验风险最小化
L(w)=12∑i=1N(f(xi,w)−yi)2
将模型带入训练数据
L(w)=12∑i=1N(∑j=0Mwjxji−yi)2
对wj
求偏导数并令其为0 可得:
wj=∑i=1Nxiyi∑i=1Nxj+1i,j=0,1,2...M
于是求得拟合多项式系数
w∗0,w∗1,...,w∗M
在多项式函数拟合中可以看到 随着多项式次数(模型复杂度)的增加,训练误差会减小,直至趋向于0
当时测试误差确不是如此 会随着多项式次数的增加先减小而后增大 最终目的是使得测试误差达到最小
正则化与交叉验证
正则化
模型选择的典型方法是正则化
正则化是结构风险最小化策略的实现
是在经验风险上加一个正则化项或罚项
正则化项一般是模型复杂度的单调递增函数 模型越复杂 正则化值就越大
正则化一般具有如下形式:
minf∈F1N∑i=1NL(yi,f(xi))+λJ(f)
第一项是经验风险 第二项是正则化项
λ≥0为调整两者之间关系的系数
正则化项可以取不同的形式
回归问题中,损失函数是平法损失正则化项可以是参数向量的L2范数:L(w)=1N∑i=1N(f(xi;w)−yi)2+λ2||w||2||w||表示参数向量w的L2范数
正则化项也可以是参数向量的
L1范数:L(w)=1N∑i=1N(f(xi;w)−yi)2+λ||w||1||w||1表示参数向量w的L1范数
正则化的作用是:选择风险和模型复杂度同时较小的模型
符合奥卡姆剃刀:在所有可能选择的模型中 能够很好的解释已知数据并且十分简单才是最好的模型 也就是应该选择的模型
从贝叶斯估计的角度来看,正则化项对应于模型的先验概率 可以假设复杂的模型有较大的先验概率 简单的模型有较小的先验概率
交叉验证
另一种常用的模型选择方法是交叉验证
如果给定的样本数据充足, 进行模型选择的一种简单方法是随机地将数据集切分成三部分 分别为训练集 验证集 测试集
训练集用来训练模型
验证集用于模型选择
测试集用于最终对学习方法的评估
在许多实际应用中数据是不充足的 为了选择好的模型 可以采用哪个交叉验证方法
交叉验证的基本想法是重复地使用数据 把给定的数据进行切分 将切分的数据集组合为训练集与测试集
在此基础上反复地进行训练 测试以及模型选择
- 1.简单交叉验证
随机将已给数据分为两部分 一部分作为训练集 一部分作为测试集
(70%训练 30%测试) 然后用训练集在各种条件下训练模型 从而得到不同的模型
在测试集上评价各个模型的测试误差 选出测试误差最小的模型
- 2.S折交叉验证
应用最多的是S折交叉验证
随机地将已给数据且分为S个互不相交的大小相同的子集 然后利用S-1个子集的数据训练模型
利用余下的子集测试模型 将这一过程对可能的S种选择重复进行
最后选出S次评测中平均测试误差最小的模型
- 3.留一交叉验证
S折交叉验证的特殊情形是S=N,称为留一交叉验证
泛化能力
泛化误差
学习方法的泛化能力是指由该方法学习到的模型对未知数据的预测能力 是学习方法本质上重要的性质
一般采用最多的办法是通过测试误差来评价学习方法的泛化能力
但这种评价是依赖于测试数据集的 因为测试数据集是有限的 很有可能由此得到的评价结果是不可靠的
统计学习理论视图从理论上对学习方法的泛化能力进行分析
泛化误差的定义,如果学到的模型是
f^
,那么用这个模型对未知数 据预测的误差即为泛化误差
Rexp(f^)=Ep[L(Y,f^(X))]=∫x×yL(y,f^(x))P(x,y)dxdy
泛化误差反映了学习方法的泛化能力 如果一种方法学习的模型比另一种方法学习的模型具有更小的泛化误差
事实上,泛化误差就是所学习到的模型的期望风险
泛化误差上界
- 学习方法的泛化能力分析往往是通过研究泛化误差的概率上界进行的,简称为泛化误差上界
具体:比较两种学习方法的泛化误差上界的大小来比较它们的优劣
泛化误差上界通常具有以下性质:
它是样本容量的函数 当样本容量增加时 泛化上界趋于0
它是假设空间容量的函数 假设空间容量越大 模型就越难学 泛化误差上界就越大
例子:二分类问题的泛化误差上界
已知训练数据集T={(x1,y1),(x2,y2),...,(xN,yN)}它是从联合概率分布P(X,Y)独立同分布产生的,X∈Rn,Y∈−1,+1假设空间是函数的优先集合F=f1,f2,...fd,d是函数个数设f是从F中选取的函数损失函数是0−1损失关于f的期望风险个经验风险分布为R(f)=E(L(Y,f(X))]R^(f)=1N∑i=1NL(yi,f(xi))经验风险最小化函数是fN=argminf∈FR^(f)但是其泛化能力是R(fN)=E[L(Y,fN(X))]
下面讨论 从有限集合
F=f1,f2,...,fd
中任意选出的函数f的泛化误差上界
定理(泛化误差上界):
对二类分类问题 当假设空间是有限个函数的集合
F=f1,f2,...,fd时,对任意一个函数f∈F至少以概率1−δ以下不等式成立:
R(f)≤R^(f)+ε(d,N,δ)公式1
ε(d,N,δ)=1N(logd+log1δ)−−−−−−−−−−−−−√公式2
公式1 左端是泛化误差 右端为泛化误差上界
在泛化误差上界中 第1项是训练误差 训练误差越小 泛化误差也就越小
第2项
ε(d,N,δ是N的单调递减函数当N趋于无穷时趋于0同时她也是logd−−−−√阶的函数假设空间F包含的函数越多其值越大
该定理证明需要用到
Hoeffding不等式
设Sn=∑i=1nXi是独立随机变量X1,X2,...,Xn之和,Xi∈[ai,bi],则对任意t>0,以下不等式成立P(Sn−ESn≥t)≤exp(−2t2∑i=1n(bi−ai)2P(ESn−Sn≥t)≤exp(−2t2∑i=1n(bi−ai)2
对任意函数f∈F,R^(f)是N个独立的随机变量L(Y,f(X))的样本均值,R(f)是随机变量L(Y,f(X))的期望值如果损失函数取值于区间[0,1],即对所有i,[ai,bi]=[0,1],那么由Hoeffding不等式得到,对ε>0,以下不等式成立:P(R(f)−R^(f)≥ε)≤exp(−2Nε2)
即可证明,对任意
f∈F,有P(R(f)−R^(f)<ε)≥1−dexp(−2Nε2)
即为公式1 2
通过证明得: 训练误差小泛化误差小
生成模型与判别模型
概述:
监督学习的任务就是学习一个模型 应用这一模型 对给定的输入预测相应的输出
这个模型的一般形式为决策函数:
Y=f(X)
或者条件概率分布:
P(Y|X)
监督学习方法分为: 生成方法与判别方法 所学习到的模型分别称为生成模型与判别模型
生成方法由数据学习联合概率分布
P(X,Y)
, 然后求出条件概率分布
P(Y|X)作为预测的模型,即为生成模型:P(Y|X)=P(X,Y)P(X)
生成方法之所以称为生成方法: 因为模型表示了给定输入X产生输出Y的生成关系
典型的生成模型有: 朴素贝叶斯法和隐马尔科夫模型
判别方法由数据直接学习决策函数
f(X)
或者条件概率分布
P(Y|X)
作为预测模型
判别方法关系的是对给定的输入X, 应该预测什么样的输出
Y
典型的判别方法有:KNN,感知机 决策树 逻辑回归 最大熵模型 支持向量机 提升方法 条件随机场
生成方法特点:
可以还原出联合概率分布 判别方法不能
生成方法的学习收敛速度更快
使用于存在隐变量的数据
判别方法特点:
直接面对预测 学习决策函数 学习的准确率高
可以对数据进行各种程度上的抽象 定义特征并使用 可以简化学习问题
参考文献:
《统计学习方法》,李航著