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

策略
有了模型的假设空间,统计学习需要考虑如何学习或者选择最优的模型。引入了损失函数和风险函数。损失函数度量一次预测的好坏,风险函数度量平均意义下模型预测的好坏。损失函数是f(x)和Y的非负实值函数,记作 L(Y,f(X)) L ( Y , f ( X ) )
损失函数和风险函数
常用的损失函数如下所示:
- 0-1损失函数:
平方损失函数:
L(Y,f(X))=(Y−f(X))2 L ( Y , f ( X ) ) = ( Y − f ( X ) ) 2绝对损失函数:
L(Y,f(X))=|Y−f(X)| L ( Y , f ( X ) ) = | Y − f ( X ) |对数损失函数(对数似然损失函数):
L(Y,P(Y|X))=−logP(Y|X) L ( Y , P ( Y | X ) ) = − l o g P ( Y | X )
由于模型遵循联合分布P(X,Y),所以损失函数的期望如下,这是理论上模型f(X)关于联合分布P(X,Y)平均意义下的损失,称为风险函数或期望损失,记作
Rep
R
e
p
:
模型f(X)关于训练数据集的平均损失称为经验风险或经验损失,记作
Remp
R
e
m
p
:
学习目标就是选择期望风险最小的模型,由于联合分布P(X,Y)是未知的, Rexp(f) R e x p ( f ) 不能直接计算,事实上,若知道联合分布P(X,Y),可以从联合分布直接求出条件概率分布P(Y|X),也就不需要学习了。根据大数定律,当N趋于无穷时,两者趋于相同,但现实中数据不会无穷大,这时需要对经验风险进行校正,使用监督学习中的两种基本策略:经验风险最小化和结构风险最小化。
经验风险最小化和结构风险最小化
经验风险最小化就是求解最优化问题,最优模型为经验风险最小的模型:
但是当样本容量很小时容易产生过拟合,这时就需要使用结构风险最小化,等价于正则化,在经验风险上加上表示模型复杂度的正则化项或惩罚项。结构风险的定义如下:
求解最优化就是求解结构风险最小的模型。
算法
算法是指学习模型的具体计算方法,使用何种计算方法求解最优模型。如何保证找到全局最优解,并使求解的过程高效。统计学习可以使用已有的最优化方法,如梯度下降之类的,有时也需要使用独自的最优化算法。
模型评估与模型选择
训练误差与测试误差
训练误差是指模型关于训练集的平均损失,测试误差是指模型关于测试集的平均损失。当损失函数为0-1损失的时候,测试误差就变成了常见的测试数据集上面的误差率。常见的测试数据集上面的准确率为:
过拟合与模型选择
模型复杂度与预测误差的关系图如下所示,模型复杂度越高越容易导致在测试集过拟合的问题。(pixeImator画图真心好用)
正则化与交叉验证
下面介绍两种常用的模型选择方法:正则化和交叉验证
正则化
正则化是结构风险最小化策略的实现,一般具有如下形式:
其中第一项是经验风险,第二项是正则化项。正则化项可以取不同的形式,如回归问题中,损失函数是平方损失,可以是参数向量的 L2 L 2 范数,也可以是 L1 L 1 范数。
正则化的作用是选择经验风险与模型复杂度同时较小的模型。正则化符合奥卡姆剃刀原理,它应用在模型选择时变为以下想法:在所有可能选择的模型中,能够很好的解释已知数据并且十分简单才是最好的模型。
交叉验证
交叉验证是另一种常用的模型选择方法,将数据分为训练集,验证集,测试集,训练集用来训练模型,验证集用于模型的选择,测试集用于对学习方法的评估。在学习到的不同的复杂模型中,选择对验证集有最小预测误差的模型。交叉验证的基本思想是重复使用数据:把给定的数据进行划分,对划分的数据反复进行训练、测试以及模型选择。
- 简单交叉验证
将数据随机分为两个部分,(70%训练集,30%测试集),然后用训练集在各种条件下(不同参数个数)训练模型,从而得到不同的模型,在测试集上面评价各个模型的测试误差,选出测试误差的最小的模型。
S折交叉验证
这个应用最多(S-fold cross validation),首先随机划分为S个互不相交的大小相同的子集,然后用S-1个子集的数据训练模型,余下的子集测试模型,反复重新进行S种组合,最后选出S次评测中平均测试误差最小的模型。留一交叉验证
当S折交叉验证中S=N时称为留一交叉验证,N为给定数据集的容量。
泛化能力
泛化误差
泛化能力(generalization ability)是指由该方法学习到的模型对未知数据的预测能力。
泛化误差(generalization error)的定义如下:如果学习到的模型时
f∧
f
∧
,那么用这个模型对未知数据预测的误差即为泛化误差。实际上,泛化误差就是所学习到模型的期望风险。
泛化误差上界
学习方法的泛化能力分析往往通过研究泛化误差的概率上界进行,简称泛化误差上界。通过比较这个来比较两个算法的优劣。泛化误差上界通常具有以下性质:它是样本容量的函数,当样本容量增加时,泛化上界趋于0;它是假设空间容量的函数,假设空间容量越大,模型就越难学,泛化误差上界就越大。
泛化误差上界定理:对于二类分类问题,当假设空间是有限个函数的集合
F=f1,f2,...,fd
F
=
f
1
,
f
2
,
.
.
.
,
f
d
时,对任意一个函数
f∈F
f
∈
F
,至少以概率
1−δ
1
−
δ
,以下不等式成立:
其中
上面(1.1)式中左端 R(f) R ( f ) 是泛化误差(泛化误差就是所学模型的期望风险),右端即为泛化误差上界。在泛化误差上界中,第一项是训练误差,训练误差越小,泛化误差也越小。第二项 ε(d,N,δ) ε ( d , N , δ ) 是N的单调递减函数,当N趋于无穷大时趋于0;同时它是 logd‾‾‾‾√ l o g d 阶的函数,假设空间 F F 包含的函数越多,其值越大。
证明:在证明中需要用到Hoeffding不等式,如下:
对任意的函数 f∈F f ∈ F , R∧(f) R ∧ ( f ) 是N个独立的随机变量 L(Y,f(X)) L ( Y , f ( X ) ) 的样本均值, R(f) R ( f ) 是随机变量 L(Y,f(X)) L ( Y , f ( X ) ) 的期望值,如果损失函数取值与区间[0,1],即对所有的i, [ai,bi]=[0,1] [ a i , b i ] = [ 0 , 1 ] 。那么由Hoeffding不等式(1.4)不难得知,对 ε>0 ε > 0 ,以下不等式成立:
由于
F=f1,f2...fd
F
=
f
1
,
f
2
.
.
.
f
d
是一个有限集合,故:
注:其中(1)式中表示存在 f∈F f ∈ F 成立就意味着所有f的并集合**。(2)式的不等式意味着概率论里面的 P(A+B)=P(A)+P(B)−P(AB) P ( A + B ) = P ( A ) + P ( B ) − P ( A B ) ,所以 P(A+B)<=P(A)+P(B) P ( A + B ) <= P ( A ) + P ( B ) 。(3)式小于等于d个exp。
将上面的式子变形以下,等价的公式对于任意的 f∈F f ∈ F ,有
这个式子也不难理解,因为概率和为1,所以若 P(A)>0.6 P ( A ) > 0.6 则 1−P(A)≤1−0.6 1 − P ( A ) ≤ 1 − 0.6 。令:
则上面式子可以变形为:
则至少有概率 1−δ 1 − δ ,有 R(f)<R∧(f)+ε R ( f ) < R ∧ ( f ) + ε ,其中 ε ε 由式子(1.5)求得,即求得式子(1.2)。
从泛化误差上界可知,
这就是说,训练误差小的模型,其泛化误差也会小。以上讨论的只是假设空间包含有限个函数情况下的泛化误差上界,对一般的假设空间要找到泛化误差界没有这么简单。
生成模型与判别模型
监督学习的方法又可以分为生成方法和判别方法,所学到的模型就叫做生成模型和判别模型。
生成方法由数据学习联合概率分布P(X,Y),然后求出条件概率分布P(Y|X),即生成模型:
P(Y|X)=P(X,Y)P(X) P ( Y | X ) = P ( X , Y ) P ( X )
这种方法之所以称为生成方法,是因为模型表示了给定输入X产生输出Y的生成关系。典型的生成模型有:朴素贝叶斯法和隐马尔科夫模型。生成方法的特点是:生成方法可以还原出联合概率分布 P(X,Y) P ( X , Y ) ,而判别方法则不能;生成方法学习收敛速度快,即当样本增加时,学到的模型可以更快的收敛于真实模型;当存在隐变量时,仍可以用生成方法学习,但不能用判别方法。判别方法由数据直接学习决策函数 f(X) f ( X ) 或者条件概率分布 P(Y|X) P ( Y | X ) 作为预测的模型,即判别模型。判别方法关系的是对给定的输入X,应该预测什么样的输出Y。典型的判别模型包括:k近邻法、感知机、决策树、logistic回归、最大熵模型、支持向量机、提升方法和条件随机场。判别方法的特点是:判别方法直接学习的是条件概率 P(Y|X) P ( Y | X ) 或决策函数 f(X) f ( X ) ,直接面对预测,往往学习的准确率更高;由于直接学习 P(Y|X) P ( Y | X ) 或 f(X) f ( X ) ,可以对数据进行各种程度的抽象、定义特征并使用特征,可以简化学习问题。
分类问题
当输出变量Y取有限个离散值时,预测问题便成为分类问题。监督学习从数据中学习一个分类模型或分类决策函数,称为分类器。
评价分类器的性能的指标一般是分类准确率(accuracy),即正确分类的样本数和总样本数之比。对于二类分类问题常用的评价指标是查准率(precision)和查全率(recall)。通常以关注的类为正类,其他类为负类。分类器在测试数据集上的预测或正确或不正确,4种情况如下分别记录如下:
- TP——将正类预测为正类数
- TN——将负类预测为负类数
- FP——将负类预测为正类数
- FN——将正类预测为负类数
写成分类结果混淆矩阵如下:
预测结果 | 预测结果 | |
---|---|---|
真实情况 | 正例 | 反例 |
正例 | TP(真正例) | FN(假反例) |
反例 | FP(假正例) | TN(真反例) |
查准率的定义为:
查全率的定义为:
为了能够方便看出评估度量的好坏,增加了查准率和查全率的 调和均值—— F1 F 1 ,查准率和查全率 都高时, F1 F 1 值也会 高,即:
标注问题
标注(tagging)也是一个监督学习问题,输入是一个观测序列,输出是一个标记序列或状态序列。标注问题的目标在于学习一个模型,使它能够对观测序列给出标记序列作为预测。
标注常用的统计学习方法由:因马尔科夫模型、条件随机场。它在信息抽取、自然语言处理等领域被广泛应用。
回归问题
回归用于预测输入变量和输出变量之间的关系,回归模型正是表示从输入变量到输出变量之间的映射函数。回归问题的学习等价于函数拟合。选择一条函数曲线使其很好的拟合已知数据且很好的预测未知数据。
回归问题按照输入变量的个数分为一元回归和多元回归;按照输入变量与输出变量的关系的类型即模型的类型,分为线性回归和非线性回归。最常用的损失函数是平方损失函数,此时,回归问题可以由最小二乘法(least squares)求解。