统计学习(statistical learning)是关于计算机基于数据构建概率统计模型并运用模型对数据进行预测和分析的一门学科。统计学习也称为统计机器学习(statistial machine learning)。统计学习分为监督学习,非监督学习,半监督学习和强化学习。本文内容以监督学习为主。
实现统计学习方法的步骤如下:
1) 得到一个有限的训练数据集合;
2) 确定包含所有可能的模型的假设空间,即学习模型的集合;
3) 确定模型选择的准则,即学习的策略;
4) 实现求解最优模型的算法,即学习的算法;
5) 通过学习方法选择最优模型;
6) 利用学习的最优模型对新数据进行预测或分析
监督学习
输入空间 & 特征空间 & 输出空间
在监督学习中,将输入与输出所有可能取值的集合分别称为输入空间与输出空间。输入空间与输出空间可以是无限元素的集合,也可以是整个欧式空间,输入空间与输出空间可以是同一个空间,也可以是不同的空间,但通常输出空间远远小于输入空间。
每个具体的输入就是一个实例,通常有特征向量表示,所有特征向量存在的空间称为特征空间。特征空间的每一维对应一个特征,模型实际上都是定义在特征空间上的。
监督学习从训练数据集合中学习模型,对测试数据进行预测,训练数据由输入与输出对(样本/样本点)组成。输入输出变量可以是连续的,也可以是离散的,根据不同类型建立不同模型,输出变量为连续变量时,预测问题为回归问题;输出变量为离散变量时,预测问题为分类问题;输入与输出均为变量序列的预测问题为标注问题。
统计学习三要素
统计学习方法由三要素构成:方法=模型+策略+算法
1. 模型
在监督学习中,模型是所要学习的条件概率分布或决策函数。模型的假设空间包含所有可能的条件概率分布或决策函数。参数向量
θ
θ
取值于n维欧式空间
Rn
R
n
,称为参数空间,假设空间F通常是由一个参数向量决定的函数族:
假设空间也可以定义为条件概率的集合
策略
1) 损失函数和风险函数
监督学习中需要用一个损失函数(loss function)或代价函数(cost function)来度量预测错误的程度,常用的损失函数有以下几种:
0-1损失函数(0-1 loss function)
L(Y,f(X))={1, Y≠f(X)0, Y=f(X) L ( Y , f ( X ) ) = { 1 , Y ≠ f ( X ) 0 , Y = f ( X )平方损失函数(quadratic loss function)
L(Y,f(X))=(Y−f(X))2 L ( Y , f ( X ) ) = ( Y − f ( X ) ) 2绝对损失函数(absolute loss function)
L(Y,f(X))=|Y−f(X)| L ( Y , f ( X ) ) = | Y − f ( X ) |对数(似然)损失函数(logarithmic loss function)或对数似然损失函数(log likelihood loss function)
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)的平均意义下的损失,称为风险函数(risk function)或期望损失(expected loss)
经验风险
给定一个训练数据集,模型f(X)关于训练数据集的平均损失称为经验风险(empirical risk)或经验损失(empirical loss):
监督学习的目标就是选择期望风险最小的模型,由于联合分布P(X,Y)是未知的,无法得到真实的期望风险。经验风险是模型关于训练样本集的平均损失,根据大数定理,当样本容量N趋于无穷时,经验风险趋于期望风险。所以一个很自然的想法是用经验风险估计期望风险,但是由于现实中训练样本数目有限,甚至很小,所以用经验风险估计期望风险常常不理想,需要对经验风险进行一定的矫正。
2)经验风险最小化与结构风险最小化
经验风险最小化(empirical risk minimization,ERM)
经验风险最小化的策略认为,经验风险最小的模型是最优的模型。
minf∈F1N∑i=1NL(yi,f(xi)) m i n f ∈ F 1 N ∑ i = 1 N L ( y i , f ( x i ) )
当样本容量足够大时,经验风险最小化能保证有很好的学习效果,在现实中被广泛引用。比如当模型时条件概率分布,损失函数是对数损失函数时,经验风险最小化就等于极大似然估计
当样本容量很小时,经验风险最小化学习的效果就未必很好,会产生“过拟合”的现象。结构经验最小化(structural risk minimization,SRM)是为了防止过拟合而提出来的策略,结构风险最小化等价于正则化(regularization)。结构风险在经验风险基础上加上表示模型复杂度的正则化项或罚项。在假设空间,损失函数以及训练数据确定的情况下,结构风险的定义是
Rsrm(f)=1N∑i=1NL(yi,f(xi))+λJ(f) R s r m ( f ) = 1 N ∑ i = 1 N L ( y i , f ( x i ) ) + λ J ( f )
其中J(f)是模型的复杂度,是定义在假设空间F上的泛函。模型f越复杂,复杂度J(f)就越大,反之越小。 λ≥0 λ ≥ 0 是系数,用以衡量经验风险和模型复杂度。
结构风险小需要经验风险和模型复杂度同时小,结构风险小的模型往往对训练数据以及未知的测试数据都有较好的预测。比如贝叶斯估计,模型时条件概率分布,损失函数是对数损失函数,模型复杂度由模型的先验概率表示是,结构风险最小化就等价于最大后验概率估计(MAP)
2. 算法
算法是指学习模型的具体计算方法,以求解最优模型。如果最优化问题有显式的解析解,这个最优化问题比较简单,但是通常解析解不存在,这就需要用数值计算的方法求解。如何保证找到全局最优解,并使求解的过程高效,是需要考虑的一个重要问题。
3. 模型评估与模型选择
基于损失函数的模型的训练误差和模型的测试误差是评估学习方法效果的重要标准。
过拟合
过拟合(over-fitting)是指学习时选择的模型所包含的参数过多,以至于出现这一模型对已知数据预测的很好,但对于未知数据的预测很差的现象。
模型选择旨在避免过拟合并提高模型的预测能力。

模型选择方法
1)正则化
模型选择的典型方法是正则化,正则化是结构风险最小化策略的实现,是在经验风险上加一个正则化项,正则化项一般是模型复杂度的单调递增函数,模型越复杂,正则化值越大。正则化项可以取不同的形式:
L1范数
L(w)=1N∑i=1N(f(xi;w)−yi)2+λ2||w||1 L ( w ) = 1 N ∑ i = 1 N ( f ( x i ; w ) − y i ) 2 + λ 2 | | w | | 1L2范数
L(w)=1N∑i=1N(f(xi;w)−yi)2+λ2||w||2 L ( w ) = 1 N ∑ i = 1 N ( f ( x i ; w ) − y i ) 2 + λ 2 | | w | | 2
2)交叉验证
另一种常用的模型选择方法是交叉验证(cross validation)。
如果给定的样本数据充足,进行模型选择的一种简单方法是随机将数据集切分成三部分:训练集,验证集和测试集。训练集用于训练模型,验证集用于模型的选择,测试集用于最终对学习方法的评估。
如果给定的样本数据不充足,使用交叉验证的方法需要重复使用数据,进行数据切分。
简单交叉验证
- 随机将已给数据分为两部分:训练集和测试集(一般比例为7:3);
- 用训练集在各种条件下(如不同参数设置)训练模型,得到不同的模型;
- 在测试集上评价各个模型的测试误差,选出误差最小的模型
S折交叉验证
应用最多的是S折交叉验证:- 随机将已给数据切分为S个互不相交的大小相同的子集
- 利用S-1个子集的数据训练模型,利用剩余的子集测试模型
- 这一过程可能有S中选择重复进行,最后给出S次评测中平均测试误差最小的模型
留一交叉验证
S折交叉验证的特殊情况是S=N,N为给定数据集的容量,即1个数据一份样本,该方法称为留一交叉验证(leave-one-out cross validation)
泛化能力(generalization ability)
泛化误差
学习方法的泛化能力是指由该方法学习到的模型对未知数据的测试能力,是学习方法本质上重要的性质。采用最多的方法是通过测试误差来评价学习方法的泛化能力。但这种方法是依赖于测试数据集的,因为测试数据集有限,很可能由此得到的评价结果是不可靠的。统计学习理论从理论上对学习方法的泛化能力进行分析。
定义学习到的模型
f^
f
^
,则用这个模型对未知数据预测的误差即为泛化误差
泛化误差反映了学习方法的泛化能力,从上式可以见得泛化误差就是所学习到的模型的期望风险。
泛化误差上界
泛化误差的上界通常具有以下性质:
- 它是样本容量的函数,当样本容量增加时,泛化上界趋于0
- 它是假设空间容量的函数,假设空间容量越大,模型就越难学,泛化误差上界就越大。
【定理】
对二类分类问题,当假设空间是有限个函数的集合
F=f1,f2,...,fd
F
=
f
1
,
f
2
,
.
.
.
,
f
d
时,对任意一个函数
f∈F
f
∈
F
,至少以概率
1−δ
1
−
δ
,以下不等式成立:
其中 ϵ(d,N,δ)=12N(logd+log1δ)−−−−−−−−−−−−−√ ϵ ( d , N , δ ) = 1 2 N ( l o g d + l o g 1 δ )
不等式左边是泛化误差,右边是泛化误差的上界,其中第1项是训练误差,训练误差越小,泛化误差也越小;第2项是N的单调递减函数,当N趋于无穷时趋于0,同时它也是 logd−−−−√ l o g d 阶的函数,假设空间F包含的函数越多,其值越大。
生产模型与判别模型
监督学习方法又可以分为生成方法和判别方法,所学到的模型分别称为生成模型和判别模型。
生成模型
生成方法由数据学习联合概率分布P(X,Y),然后求出条件概率分布P(Y|X)作为预测的模型,即生成模型:
P(Y|X)=P(X,Y)P(X) P ( Y | X ) = P ( X , Y ) P ( X )
因为模型给定的输入X产生输出Y是生成关系,故叫做生成方法/模型,典型的生成模型有朴素贝叶斯法和隐式马尔科夫模型判别模型
判别方法由数据学习决策函数f(X)或者条件概率分布P(Y|X)作为预测的模型,即判别模型。判别方法关心的是对给定的输入X,应该预测什么样的输出Y,典型判别模型包括K近邻法,感知机,决策树,逻辑回归,最大熵,支持向量机,提升等
【对比】
生成方法 | 判别方法 |
---|---|
可以还原联合概率分布 P(X,Y) P ( X , Y ) | 不可以还原 P(X,Y) P ( X , Y ) |
学习收敛速度更快,样本容量增加时更快收敛 | 学习条件概率 P(Y|X) P ( Y | X ) 或决策函数,直接面对预测,学习的准确率更高 |
存在隐变量时,仍可以用生成方法学习 | 可以对数据进行各种程度的抽象、定义特征并使用特征,隐变量除外 |
三大类问题
1. 分类问题
分类是监督学习的一个核心问题,当输出变量Y取有限个离散值时,预测问题即为分类问题。输出的分类可以是两个或多个,对应二分类或多分类问题。输入变量可以是离散的,也可以是连续的,监督学习从数据中学习一个分类模型或分类决策函数,称为分类器。
对于二分类问题,评价分类器性能的指标一般是分类准确率(accuracy),常用的评价指标是精确率(precision)和召回率(recall):
- 精确率 P=TPTP+FP P = T P T P + F P
- 召回率 R=TPTP+FN R = T P T P + F N
- F值
F=11P+1R=2TP2TP+FP+FN
F
=
1
1
P
+
1
R
=
2
T
P
2
T
P
+
F
P
+
F
N
- TP 将正类预测为正类数
- FN 将正类预测为负类数
- FP 将负类预测为正类数
- TN 将负类预测为负类数
2. 标注问题
标注(tagging)也是一个监督学习问题,可以认为标注问题是分类问题的一个推广,标注问题又是更复杂的结构预测问题的简单形式,标注问题的输入是一个观测序列,输出是一个标记序列或状态序列。标注问题的目标在于学习一个模型,使它能够对观测序列给出标记序列作为预测。评价指标与分类模型一样,常用的方法由隐马尔可夫模型,条件随机场。
标注问题在信息抽取,自然语言处理等领域被广泛应用,是这些领域的基本问题。如给定一个由单词组成的句子,对句中每一个单词进行词性标注,即对一个单词序列预测其对应的词性标记序列。
3. 回归问题
回归用于预测输入变量与输出变量之间的关系,特别是当输入变量的值发生变化时,输出变量的值随之发生的变化。回归模型是表示输入变量到输出变量之间映射的函数,等价于函数拟合(选择一条函数曲线使其更好地拟合已知数据且很好地预测未知数据)
回归问题按照输入变量的个数分为一元回归和多元回归;按输入变量和输出变量的关系分为线性回归和非线性回归。回归最常用的损失函数是平方损失函数。