文章目录
第一章 统计学习方法概论
1.1 统计学习
一、统计学习的特点
(1)平台:计算机及网络,是建立在计算机及网络之上的;
(2)研究对象:数据,是数据驱动的学科;
(3)目的:对数据进行预测与分析;
(4)中心:方法,统计学习方法构建模型并应用模型进行测试与分析;
(5)交叉学科:概率论、统计学、信息论、计算理论、最优化理论以及计算机科学等多个领域的交叉学科。
二、统计学习的对象
统计学习的对象是数据,包括数字、文字、图像、视频等以及他们的组合。
数据 → \to →提取数据特征 → \to →抽象数据模型 → \to →发现数据中的知识 → \to →回到对数据的分析和预测中
关于数据的基本假设:
同类数据具有一定的统计规律性,也是前提。
数据分为连续型和离散型,本书主要讨论离散型
三、统计学习目的
统计学习用于对数据进行预测和分析,特别是对未知新数据进行预测和分析。对数据进行预测和分析是通过构建概率统计模型实现的。
总目标: 学习怎样的模型、如何学习模型,以使模型能够对数据进行准确的预测和分析,同时也要提高学习效率。
四、统计学习的方法
方法: 基于数据构建统计模型从而对数据进行预测和分析
方法分类:
监督学习(supervised leaning)
无监督学习(unsupervised leaning)
半监督学习(semi-supervised leaning)
强化学习(reinfoucement leaning)
主要讨论监督学习:
1)从给定的、有限的、用于学习的训练数据(training data)集合出发,假设数据是独立同分布产生的;
2)假设要学习的模型属于某个函数的集合,称为假设空间(hypothesis space);
3)应用某个评价准则(evaluation criterion),从假设空间中选取一个最优的模型,使它对已知训练数据及未知测试数据(test data)在给定的评价准则下有最优的预测;
4)最优模型的选取由算法实现;
统计学习三要素:
模型的假设空间、模型选择的准则、模型学习的算法
统计学习方法=模型(model)+策略(strategy)+算法(algorithm)
模型: 找到一个能够解决问题的条件概率或者决策函数。
策略: 找到一个能够可以优化模型(或者衡量模型的)损失函数(比如0-1损失)。
算法: 找到一种可以优化损失函数的方法(比如:梯度下降法)。
统计学习的步骤:
- 得到一个有限的训练数据集
- 确定假设空间(即所有可能的模型)
- 确定选择模型的准则(即策略)
- 实现求解最优化模型的算法(即算法)
- 选择最优模型
- 利用最优模型对新来的数据进行预测和分析
五、统计学习的研究
包括统计学习方法、理论、应用
- 统计学习方法的研究——发现新的学习方法
- 统计学习理论的研究——提高统计学习方法的有效性和效率
- 统计学习应用的研究——-将统计学习方法应用到实际问题中去,解决实际问题。
1.2 监督学习
监督学习的任务是学习一个模型,使得模型能够对任意给定的输入,对其相应的输出做一个好的预测(此处的输入、输出是指某个系统的输入、输出,而非学习的输入与输出)
1.2.1 基本概念
一、输入空间、特征空间、输出空间
输入空间:输入的所有可能取值
输出空间:输出的所有可能取值
两个空间可以是有限的元素集合,也可以是整个欧式空间,可以使不同空间或同一空间,但是输出空间通常远远小于输入空间。
输入实例 x x x的特征向量:
x
=
(
x
(
1
)
,
x
(
2
)
,
.
.
.
,
x
(
i
)
,
.
.
.
,
x
(
n
)
)
T
x=(x^{(1)},x^{(2)},...,x^{(i)},...,x^{(n)})^T
x=(x(1),x(2),...,x(i),...,x(n))T
x
(
i
)
x^{(i)}
x(i)表示
x
x
x的第
i
i
i个特征,
x
i
x_i
xi通常表示多个输入变量中的第
i
i
i个。
监督学习从训练数据集合中学习模型,对测试数据进行预测,训练数据由输入与输出对组成,训练集通常表示为:
T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x N , y N ) } T=\{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\} T={(x1,y1),(x2,y2),...,(xN,yN)}
输入输出对又称为样本或样本点
预测任务:
回归:输入与输出变量均为连续变量的预测问题
分类:输出变量为有限个离散变量的预测问题
标注:输入变量与输出变量均为变量序列的预测问题
二、联合概率分布
监督学习假设输入与输出的随机变量X和Y遵循联合概率分布 P ( X , Y ) P(X,Y) P(X,Y), P ( X , Y ) P(X,Y) P(X,Y)表示分布函数或分布密度函数。
统计学习假设数据存在一定的统计规律,X和Y具有联合概率分布的假设就是监督学习关于数据的基本假设。
三、假设空间
监督学习的目标:学习一个由输入到输出的映射,这一映射由模型来表示。
模型可以是概率模型或非概率模型,由条件概率分布 P ( Y ∣ X ) P(Y|X) P(Y∣X)或决策函数 Y = f ( X ) Y=f(X) Y=f(X)表示。
监督学习分为学习和预测两个过程,由学习系统与预测系统组成,如下图:
1)给定训练数据集
T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x N , y N ) } T=\{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\} T={(x1,y1),(x2,y2),...,(xN,yN)}
其中, ( x i , y i ) (x_i,y_i) (xi,yi)称为样本或样本点, x i ∈ X x_i\in X xi∈X是输入的观测值,也叫输入或实例, y i ∈ Y y_i\in Y yi∈Y是输出的观测值,也称为输出。
2)学习过程:
假设训练数据和测试数据是依照联合概率分布 P ( X , Y ) P(X,Y) P(X,Y)独立同分布产生的。
学习过程中,学习系统利用给定训练数据集,通过学习(或训练)得到一个模型,表示为概率分布 P ^ ( X , Y ) \hat{P}(X,Y) P^(X,Y)或决策函数 Y = f ^ ( X ) Y=\hat f(X) Y=f^(X),两者描述输入与输出随机变量间的映射关系。
3)预测过程:
预测系统对于给定的测试样本集中的输入 x N + 1 x_{N+1} xN+1,由模型 y N + 1 = a r g m a x y N + 1 P ^ ( y N + 1 ) y_{N+1}=argmax_{y_N+1}\hat P(y_{N+1}) yN+1=argmaxyN+1P^(yN+1)或 y N + 1 = f ^ ( x N + 1 ) y_{N+1}=\hat f(x_{N+1}) yN+1=f^(xN+1)给出相应的输出 y n + 1 y_{n+1} yn+1。
如果模型有很好的预测能力,训练样本输出 y i y_i yi和模型输出 f ( x i ) f(x_i) f(xi)之间的差就应该足够小。
1.3 统计学习三要素
统计学习=模型+策略+算法
1.3.1 模型
模型就是所要学习的条件概率分布或决策函数,模型的假设空间包含所有可能的条件概率分布或决策函数。
(1)非概率模型:
(2)概率模型:
1.3.2 策略
策略是学习或选择最优模型的准则,统计学习的目标在于从假设空间中选取最优模型。
损失函数:度量模型一次预测的好坏
风险函数:度量平均意义下模型预测的好坏
一、损失函数和风险函数
监督学习的问题是在假设空间F中选取模型 f f f作为决策函数,对于给定的输入X,由 f ( X ) f(X) f(X)给出相应的输出Y,这个输出的预测值 f ( X ) f(X) f(X)与真实值Y可能一致也可能不一致,用损失函数或代价函数来度量预测错误的程度。
损失函数是 f ( X ) f(X) f(X)和 Y Y Y的非负实值函数,记作 L ( Y , f ( X ) ) L(Y,f(X)) L(Y,f(X))。
统计学ex的常用损失函数:
损失函数越小,模型就越好,由于模型的输入、输出是随机变量,遵循联合概率分布
P
(
X
,
Y
)
P(X,Y)
P(X,Y),所以损失函数的期望值是:
这是理论模型 f ( X ) f(X) f(X)关于联合分布 P ( X , Y ) P(X,Y) P(X,Y)的平均意义下的损失,称为风险函数(risk function)或期望损失(expected loss)。
学习的目标:选择期望风险最小的模型
由于联合分布 P ( X , Y ) P(X,Y) P(X,Y)是未知的, R e x p ( f ) R_{exp}(f) Rexp(f)不能直接计算,事实上如果知道了 P ( X , Y ) P(X,Y) P(X,Y),可以从联合分布直接求 P ( X ∣ Y ) P(X|Y) P(X∣Y),也就不需要学习了,正是因为不知道 P ( X , Y ) P(X,Y) P(X,Y),所以才要学习。
过程:一方面根据期望风险最小学习模型要用到联合分布,另一方面联合分布又是未知的,所以监督学习就是一个病态问题。
经验风险(empirical risk) / 经验损失 R e m p ( f ) R_{emp}(f) Remp(f): 模型 f ( X ) f(X) f(X)关于训练数据集的平均损失
期望风险 R e x p ( f ) R_{exp}(f) Rexp(f): 模型关于联合分布的期望损失
两者近似的条件: 根据大数定律,当样本容量 N N N趋于无穷时,经验风险趋于期望风险。
难点: 现实中训练样本数目有限,所以用经验风险估计期望风险并不理想,要对经验风险进行一定的矫正。
监督学习的两个基本策略: 经验风险最小化、结构风险最小化
二、经验风险最小化与结构风险最小化
(1)经验风险最小化(empirical risk minimization,ERM)
在假设空间、损失函数及训练数据集确定的情况下,经验风险函数 R e m p ( f ) = 1 N ∑ i = 1 N L ( y i , f ( x i ) ) R_{emp}(f)=\frac{1}{N}\sum_{i=1}^N L(y_i,f(x_i)) Remp(f)=N1∑i=1NL(yi,f(xi))就可以确定,ERM的策略认为,经验风险最小的模型就是最优模型,按照经验风险最小化求最优模型就是求解最优化问题:
m i n 1 N ∑ i = 1 N L ( y i , f ( x i ) ) min \frac{1}{N}\sum_{i=1}^N L(y_i,f(x_i)) minN1i=1∑NL(yi,f(xi))
应用效果:
- 当样本容量足够大时,ERM能保证有很好的学习效果,如极大似然估计就是其例子,当模型是条件概率分布,且损失函数是对数损失函数时,就ERM就等价于极大似然估计。
- 当样本容量很小时,ERM学习效果就未必很好,会产生“过拟合”现象。
(2)结构风险最小化(structural risk minimization,SRM)
是为了防止过拟合提出的策略,等价于正则化(regularization)。
结构: 在经验风险上附加表示模型复杂度的正则化项或罚项
定义:
R
s
r
m
(
f
)
=
1
N
∑
i
=
1
N
L
(
y
i
,
f
(
x
i
)
)
+
λ
J
(
f
)
R_{srm}(f)=\frac{1}{N}\sum_{i=1}^N L(y_i,f(x_i))+\lambda J(f)
Rsrm(f)=N1i=1∑NL(yi,f(xi))+λJ(f)
-
J ( f ) J(f) J(f):模型复杂度,模型越复杂,复杂度 J ( f ) J(f) J(f)就越大,反之,模型越简单,复杂度 J ( f ) J(f) J(f)就越小,复杂度表示了对复杂模型的惩罚
-
λ \lambda λ: λ > = 0 \lambda>=0 λ>=0是系数,用于权衡经验风险和模型复杂度,结构风险最小,需要经验风险和模型复杂度同时小。
-
意义:结构风险小的模型往往对训练数据和测试数据都有较好的预测
-
举例:贝叶斯估计中的最大后验概率估计(maximum posterior probability estimation,MAP)
-
求解:
m i n 1 N ∑ i = 1 N L ( y i , f ( x i ) ) + λ J ( f ) min \frac{1}{N}\sum_{i=1}^N L(y_i,f(x_i))+\lambda J(f) minN1i=1∑NL(yi,f(xi))+λJ(f)
- 总结:监督问题就变为经验风险最优化或结构风险最优化的问题,该两个函数相当于最优化的目标函数。
三、算法
统计学习问题归结为以上的最优化问题,这样,统计学习的算法就是求解最优化问题的算法。如果最优化问题有显示的解析解,这个最优化问题就比较简单,但通常这个解析解不存在,所以就需要利用数值计算的方法来求解。统计学习可以利用已有的最优化算法,也可以开发独自的最优化算法。
1.4 模型评估与模型选择
1.4.1 训练误差和预测误差
损失函数给定时,基于损失函数的模型的训练误差和模型的测试误差就自然成为学习方法评估的标准。
学习到的模型: Y = f ^ ( X ) Y=\hat{f}(X) Y=f^(X)
训练误差: 模型
Y
=
f
^
(
X
)
Y=\hat{f}(X)
Y=f^(X)关于训练数据集的平均损失(
N
N
N为训练样本容量):
R
e
m
p
(
f
^
)
=
1
N
∑
i
=
1
N
L
(
y
i
,
f
^
(
x
i
)
)
R_{emp}(\hat f)=\frac{1}{N}\sum_{i=1}^N L(y_i,\hat f(x_i))
Remp(f^)=N1i=1∑NL(yi,f^(xi))
测试误差: 模型
Y
=
f
^
(
X
)
Y=\hat{f}(X)
Y=f^(X)关于测试数据集的平均损失(
N
′
N'
N′为测试样本容量):
e
t
e
s
t
=
1
N
′
∑
i
=
1
N
′
L
(
y
i
,
f
^
(
x
i
)
)
e_{test}=\frac{1}{N'}\sum_{i=1}^{N'} L(y_i,\hat f(x_i))
etest=N′1i=1∑N′L(yi,f^(xi))
训练误差的意义:
训练误差的大小对判断给定问题是不是一个容易学习的问题具有重要的意义,但本质上不重要。
测试误差的意义:
测试误差反映了学习方法对未知测试数据集的预测能力,是很重要的,显然测试误差小的方法具有更好的预测能力,是更有效的方法。
泛化能力(generalization ability): 学习方法对未知数据的预测能力
1.4.2 过拟合与模型选择
当假设空间含有不同复杂度的模型时,就要面临模型选择的问题,如果假设空间有“真”模型,则我们选择的模型应该尽可能逼近真模型,比如参数个数相同,或惨向量相近。
过拟合:学习时选择的模型所包含的参数过多,以至于对已知数据的预测很好,但是对未知数据预测很差。
过拟合的原因:一味追求提高对训练数据的预测能力,所选模型的复杂度往往比真实模型高很多。
训练数据本身存在噪声,过拟合会精确的拟合每个样本点,造成对测试数据拟合很差。
下面介绍两种常用的模型选择方法:正则化与交叉验证
1.5 正则化与交叉验证
1.5.1 正则化
模型选择的典型方法是正则化,正则化是结构风险最小化策略的实现,是在经验风险上加一个正则化项(regularizer)或罚项(penalty term)。
正则化项一般是模型复杂度的单调递增函数,模型越复杂,正则化的值就越大,比如正则化可以是模型参数向量的范数。
正则化一般形式:
m i n 1 N ∑ i = 1 N L ( y i , f ( x i ) ) + λ J ( f ) min \frac{1}{N}\sum_{i=1}^N L(y_i,f(x_i))+\lambda J(f) minN1i=1∑NL(yi,f(xi))+λJ(f)
其中,第一项是经验风险,第二项是正则化项, λ > = 0 \lambda >=0 λ>=0为调整两者之间关系的系数。
举例1: 当损失函数去平方损失时,可以用参数向量的 L 2 L_2 L2范数作为正则化项:
L ( w ) = 1 N ∑ i = 1 N ( f ( x i ; w ) − y i ) 2 + λ 2 ∣ ∣ w ∣ ∣ 2 L(w)=\frac{1}{N}\sum_{i=1}^N (f(x_i;w)-y_i)^2+\frac{\lambda}{2} ||w||^2 L(w)=N1i=1∑N(f(xi;w)−yi)2+2λ∣∣w∣∣2
其中, ∣ ∣ w ∣ ∣ ||w|| ∣∣w∣∣表示参数向量 w w w的 L 2 L_2 L2范数
举例2: 正则项也可以是参数向量的
L
1
L_1
L1范数
L
(
w
)
=
1
N
∑
i
=
1
N
(
f
(
x
i
;
w
)
−
y
i
)
2
+
λ
∣
∣
w
∣
∣
1
L(w)=\frac{1}{N}\sum_{i=1}^N (f(x_i;w)-y_i)^2+\lambda ||w||_1
L(w)=N1i=1∑N(f(xi;w)−yi)2+λ∣∣w∣∣1
其中,
∣
∣
w
1
∣
∣
||w_1||
∣∣w1∣∣表示参数向量
w
w
w的
L
1
L_1
L1范数
其中, ∣ ∣ w ∣ ∣ ||w|| ∣∣w∣∣表示参数向量 w w w的 L 2 L_2 L2范数
作用: 选择经验风险和模型复杂度同时较小的模型
1.5.2 交叉验证
如果给定的样本数据充足,进行模型选择的方法是随机将数据集切分为训练集、验证集(validation)、测试集。
- 训练集:训练模型
- 验证集:模型的选择
- 测试集:最终对学习方法的评估
但是许多实际数据是不充足的,可以采用交叉验证的方法。
基本思想:重复使用数据
把给定的数据集进行切分,将切分的数据集组合为训练集和测试集,在此基础上反复训练、、测试以及模型的选择。
一、简单交叉验证
二、S折交叉验证
三、留一交叉验证
1.6 泛化能力
1.6.1 泛化误差
泛化能力(generalization ability)是指该方法学习到的模型对未知数据的预测能力,是学习方法本质上重要的性质。
一般测试泛化能力的方法: 通过测试误差来评价
该评价方式的缺点: 依赖于测试数据集,因为测试数据集有限,很可能得到的评价结果是不可靠的。
统计学习如何分析泛化能力: 从理论上分析
泛化误差的定义: 如果学到的模型是 f ^ \hat f f^,那么用这个模型对未知数据预测的误差即为泛化误差:
R e x p ( f ^ ) = E p [ L ( Y , f ^ ( X ) ) ] = ∫ x × y L ( y , f ^ ( x ) ) P ( x , y ) d x d y R_{exp}(\hat f)=E_p[L(Y,\hat f(X))]=\int _{x\times y }L(y,\hat f(x))P(x,y) dxdy Rexp(f^)=Ep[L(Y,f^(X))]=∫x×yL(y,f^(x))P(x,y)dxdy
泛化误差越小,说明学习方法的模型具有更小的泛化能力,也更有效,实际上泛化误差就是所学习到的模型的期望风险。
1.6.2 泛化误差上界
学习方法的泛化能力分析: 一般是通过研究泛化误差的概率上界进行的。
具体方法: 通过比较两种学习方法的泛化误差上界来比较其优劣
泛化误差上界的性质:
- 是样本容量的函数,当样本容量增大是,泛化上界趋于零。
- 是假设空间容量(capacity)的函数,假设空间容量越大,模型就越难学,泛化误差上界就越大。
1.7 生成模型与判别模型
监督学习的任务就是学习一个模型,应用该模型对给定的输入预测相应的输出,这个模型的一般形式为决策函数: f ( X ) f(X) f(X)或者条件概率分布: P ( X ∣ Y ) P(X|Y) P(X∣Y)
监督学习方法又可以分为生成方法(generative approach)和判别方法(discriminative approach),所生成的模型分别为生成模型和判别模型。
一、生成方法
由数据学习联合概率分布 P ( X , Y ) P(X,Y) P(X,Y),然后求出条件概率分布 P ( X ∣ Y ) P(X|Y) P(X∣Y)作为预测的模型,即为生成模型:
P ( X ∣ Y ) = P ( X , Y ) P ( X ) P(X|Y)=\frac {P(X,Y)}{P(X)} P(X∣Y)=P(X)P(X,Y)
之所以称为生成方法,是因为模型表示了给定输入 X X X产生输出 Y Y Y的生成关系。
举例:朴素贝叶斯法、隐马尔科夫模型
二、判别模型
由数据直接学习决策函数 f ( X ) f(X) f(X)或者条件概率分布 P ( X ∣ Y ) P(X|Y) P(X∣Y)作为预测的模型,即判别模型。
判别方法关心的是:给定的输入 X X X,应该预测什么样的输出 Y Y Y。
举例:k近邻、感知机、决策树、Logistic回归、最大熵模型、SVM、提升方法、条件随机场等
两者主要的不同:
(1)生成方法优点:
- 生成方法可以还原出联合概率分布 P ( X , Y ) P(X,Y) P(X,Y),判别方法不能。
- 生成方法学习收敛速度更快,即当样本容量增加时,学到的模型可以更快的收敛于真实模型。
- 当存在隐变量时,仍可以用生成方法,但判别方法不能用。
(2)判别方法特点:
- 直接学习条件概率 P ( X ∣ Y ) P(X|Y) P(X∣Y)或决策函数 f ( X ) f(X) f(X),直接预测,往往学习准确率更高
- 由于直接学习条件概率 P ( X ∣ Y ) P(X|Y) P(X∣Y)或决策函数 f ( X ) f(X) f(X),可以对数据进行各种程度上的抽象、定义特征并使用特征,因此可以简化学习问题。
1.8 分类问题
监督学习从数据中学习一个分类模型或分类决策函数,称为分类器,分类器对新的输入进行输出的预测,称为分类。
分类问题 = 学习 + 分类
学习: 根据已知的训练数据集利用有效的学习方法学习一个分类器;
分类: 利用学习的分列前对新的输入实例进行分类。
分类问题:
其中, T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x N , y N ) } T=\{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\} T={(x1,y1),(x2,y2),...,(xN,yN)}是训练数据集,学习系统由训练数据学习一个分类器 P ( X ∣ Y ) P(X|Y) P(X∣Y)或 f ( X ) f(X) f(X),分类系统通过学到的分类器 P ( X ∣ Y ) P(X|Y) P(X∣Y)或 f ( X ) f(X) f(X),对新的输入实例 x N + 1 x_{N+1} xN+1进行分类,即预测其输出的类标记 y N + 1 y_{N+1} yN+1。
评价方式:
评价分类器性能的指标一般为分类准确率(accuracy):对于给定测试数据集,分类器正确分类的样本数与总样本数之比。
对于二分类问题,常用的评价指标是精确率和召回率。通常以关注的类为正类,其他类为负类,分类器在测试数据集上的预测或正确或不正确,4种情况出现的总数分别记为:
-
TP——将正类预测为正类数;
-
FN——将正类预测为负类数;
-
FP——将负类预测为正类数;
-
TN——将负类预测为负类数。
精确率(precision): P = T P T P + F P P=\frac {TP}{TP+FP} P=TP+FPTP
召回率(recall): R = T P T P + F N R=\frac{TP}{TP+FN} R=TP+FNTP
F 1 F_1 F1值:精确率和召回率的条和均值,即:
2
F
1
=
1
P
+
1
R
\frac {2}{F_1}=\frac {1}{P}+\frac {1}{R}
F12=P1+R1
F
1
=
2
T
P
2
T
P
+
F
P
+
F
N
F_1=\frac {2TP}{2TP+FP+FN}
F1=2TP+FP+FN2TP
精确率和召回率都高时,其值也会高。
1.9 标注问题(tagging)
1.10 回归问题
用于预测输入变量和输出变量之间的关系,特别是当输入变量的值发生变化时,输出变量的值随之发生的变化。回归模型正是表示从输入变量到输出变量之间映射的函数。
回归问题的学习等价于函数拟合:选择一条函数曲线使其能够很好的拟合已知数据且很好地预测未知数据。