一、统计学习方法的概述
- 定义:是关于计算机基于数据构建概率统计模型并运用模型对数据进行预测与分析的一门学科。统计学习也叫做机器学习。
- 对象:数据
- 目标:总的目标是考虑学习什么样的模型和如何学习模型,以使模型对数据能进行精确的预测和分析,同时也要考虑尽可能的提高学习效率。
- 方法:
- 由监督学习、非监督学习、半监督学习和强化学习等组成。
- 本书主要研究监督学习,在这种情况下统计学习方法概括为:
- 从训练数据集出发,并假设训练数据集数据是由独立同分布产生的。
- 假设我们要学习的模型属于某个函数集合,该函数集合称为假设空间
- 应用某个评价准则,从假设空间中选取一个在这个评价准则下最优的模型
- 最优模型的选取由算法实现。
- 总结为:训练数据集,模型假设空间,选择模型的评价准则和型学习的算法。
- 其中模型的假设空间(模型)、选择模型的评价准则(策略)和模型学习的算法(算法)被称为统计学习方法三要素
二、监督学习
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)
2、分类: - 根据输入变量X与输出变量Y的不同监督学习分为
- 回归问题:X和Y都是连续变量
- 分类问题:Y为离散变量
- 标注问题:X和Y都是变量序列
3、监督学习的数据假设: - 联合概率分布
P
(
X
,
Y
)
P(X,Y)
P(X,Y),监督学习假设输入和输出的随机变量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)
P(X,Y)的具体定义(公式)我们是不知道的。
4、目的: - 监督学习的目的是学习一个从输入到输出的映射,只不过我们用模型来表示这个映射。模型可以是概率模型或非概率模型,用条件概率分布
P
(
X
∣
Y
)
P(X|Y)
P(X∣Y)或者决策函数
Y
=
f
(
X
)
Y=f(X)
Y=f(X)表示.
5、过程: - 监督学习分为:学习和预测两个过程,分别由学习系统和预测系统完成。如下图:
- 在预测过程中,预测系统对给定的输入样本 x N − 1 x_{N-1} xN−1,由模型 y N + 1 = max y n + 1 p ^ ( y N + 1 ∣ x N + 1 ) y_{N+1}=\max_{y_{n+1}} \hat{p}(y_{N+1}|x_{N+1}) yN+1=yn+1maxp^(yN+1∣xN+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.
三、统计学习方法三要素
1、统计学习方法(方法)=模型+策略+算法
2、模型:
-
在监督学习中模型为:条件概率分布 P ( X ∣ Y ) P(X|Y) P(X∣Y)和决策函数 Y = f ( X ) Y=f(X) Y=f(X)。
-
那么假设空间为:所有可能的条件概率分别或者决策函数,无穷多个。假定空间的两种表示:
- 模型为决策函数时:假设空间可以表示为: F = f ∣ Y = f ( X ) F={f|Y=f(X)} F=f∣Y=f(X),通常F为一个参数向量θ决定的函数族: F = f ∣ Y = f θ ( X ) , θ ∈ R n F={f|Y=f_θ (X),θ∈R^n} F=f∣Y=fθ(X),θ∈Rn,参数向量θ的取值空间 θ ∈ R n θ∈R^n θ∈Rn叫做参数空间
- 模型为条件概率分布时,假设空间可以表示为: F = { f ∣ P ( X , Y ) } F=\{f|P(X,Y)\} F={f∣P(X,Y)},通常F为一个参数向量θ决定的条件概率分布族: F = { f ∣ P θ ( X , Y ) , θ ∈ R n } F=\{f|P_θ (X,Y),θ∈R^n\} F={f∣Pθ(X,Y),θ∈Rn},参数向量 θ θ θ的取值空间 θ ∈ R n θ∈R^n θ∈Rn叫做参数空间
-
模型分类:
- 决策函数表示的模型成为非概率模型
- 条件概率分布表示的模型成为概率模型
3、策略:
-
损失函数:度量模型一次预测的好坏,它是模型预测 ( f ( X ) ) (f(X)) (f(X))与真实结果 ( Y ) (Y) (Y)的非负实值函数,常记为: L ( Y , f ( X ) ) L(Y,f(X)) L(Y,f(X)),损失函数越小越好。常用的损失函数有:
- 0-1损失函数: L ( Y , f ( X ) ) = { 1 Y ! = f ( X ) 0 Y = f ( X ) L(Y,f(X))=\begin{cases} 1 & {Y}!={f(X)} \\0 &Y=f(X) \end{cases} L(Y,f(X))={10Y!=f(X)Y=f(X)
- 平均损失函数: L ( Y , f ( X ) ) = ( Y − f ( X ) ) 2 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,f(X))=∣Y−f(X)∣
- 对数损失函数: L ( Y , P ( Y ∣ X ) ) = − l o g P ( Y ∣ X ) L(Y,P(Y|X))=-logP(Y|X) L(Y,P(Y∣X))=−logP(Y∣X)
-
风险函数:度量平均意义下模型预测的好坏.
- 由于输入输出随机变量(X,Y)服从联合概率分布P(X,Y),所以可以计算损失函数的期望值: 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 (f)=E_p (L(Y,f(X)))=∫_{X×Y} L(y,f(x)) P(X,Y)dxdy Rexp(f)=Ep(L(Y,f(X)))=∫X×YL(y,f(x))P(X,Y)dxdy
- 这个可以看作是损失函数平均值,被称做:风险函数。其中X×Y为整个样本空间。
- 学习的目标就是选择风险函数最小的模型。但是联合概率分布 P ( X , Y ) P(X,Y) P(X,Y)是未知的。
-
经验风险:模型 f ( x ) f(x) f(x)关于训练集的平均损失。也叫做经验损失,记作: R e m p R_{emp} Remp R e m p ( f ) = 1 N ∑ i = 1 N ( y i , f ( x i ) ) R_emp (f)=\frac{1}{N} ∑_{i=1}^N(y_i,f(x_i )) Remp(f)=N1i=1∑N(yi,f(xi))
- 根据大数定律,我们知道当N(样本个数)足够大的时候 R e m p ( f ) R_{emp} (f) Remp(f)是趋向 R e x p ( f ) R_{exp} (f) Rexp(f)。但是显示中样本数可能比较小,所以需要修经验风险进行矫正,矫正后的我们称为结构风险。这个就产生了监督学习的两个基本策略:经验风险最小化和结构风险最小化
-
策略1:经验风险最小化:
- 根据上面经验风险函数,在假设空间、损失函数和训练数据确定的情况下,经验风险函数是确定的。
- 经验风险最小化 ( E M ) (EM) (EM):认为经验风险最小的模型是最优的模型。 min f ∈ F 1 N ∑ i = 1 N ( y i , f ( x i ) ) \min_{f∈F} \frac{1}{N} ∑_{i=1}^N(y_i,f(x_i )) f∈FminN1i=1∑N(yi,f(xi))
- 当样本数量足够多的时候,该策略能因很好的效果。
- 注意:这里所说的都是抽象的概率和函数,在实际应用中我们需要对其进行实际化。例如:经验风险最小化最常用的一个例子就是最大似然估计,它是模型为条件概率模型,损失函数是对数损失函数时经验风险最小化策略。
- 当样本数量比较小时,经验风险最小化的效果可能不是很好,任意出现过拟合的现象。
-
策略3:结构风险最小化:
- 结构风险最小化是为了防止过拟合提出来的。
- 结构风险=经验风险+正则化项(表示模型的复杂度),公式如下: R e m p ( f ) = 1 N ∑ i = 1 N ( y i , f ( x i ) ) + λ J ( f ) R_{emp}(f)=\frac{1}{N} ∑_{i=1}^N(y_i,f(x_i )) +λJ(f) Remp(f)=N1i=1∑N(yi,f(xi))+λJ(f)其中: J ( f ) J(f) J(f)叫正则化项,用于表示模型的复杂度,模型越复杂就越大。
-
结构分风险最小化:认为结构风险最小的模型是最优的模型。其本质是:在经验风险相同的模型之间,模型越简单越好。 min f ∈ F 1 N ∑ i = 1 N ( y i , f x i ) + λ J ( f ) \min_{f∈F}\frac{1}{N}∑_{i=1}^N(y_i,f{x_i }) +λJ(f) f∈FminN1i=1∑N(yi,fxi)+λJ(f)
-
例子:贝叶斯中的最大后验概率估计(MAP)就是模型为条件概率模型,损失函数是对数损失函数,模型复杂度复杂度是模型先验概率时的结构分风险最小化策略。
4、算法:
- 算法:可以理解为根据策略求出最优模型的方法,是一个最优化问题的求解的算法
- 当最优化问题有显示的解析解是问题是非常容易的,但是一般情况显示的解析解是不存在的,这时就需要使用数值计算的方法来求解
四、模型评估与模型选择
1、训练误差和测试误差
- 训练误差:是训练好的模型 Y = f ^ ( X ) Y=\hat{f}(X) Y=f^(X)在训练集上的平均损失。 R e m p ( f ^ ) = 1 N ∑ i = 1 N L ( y i , f ^ ( x i ) ) R_{emp} (\hat{f})=\frac{1}{N}∑_{i=1}^NL(y_i,\hat{f}(x_i)) Remp(f^)=N1i=1∑NL(yi,f^(xi))
- 测试误差:是训练好的模型 Y = f ^ ( X ) Y=\hat{f}(X) Y=f^(X)在测试集上的平均损失: e t e s t = 1 N ′ ∑ i = 1 N ′ L ( y i , f ^ ( x i ) ) e_{test}=\frac{1}{N'} ∑_{i=1}^{N'} L(y_i,\hat{f}(x_i)) etest=N′1i=1∑N′L(yi,f^(xi))
- 误差率:当损失函数为0-1损失,测试误差变成误差率: e t e s t = 1 N ′ ∑ i = 1 N ′ L ( y i , f ^ ( x i ) ) e_{test}=\frac{1}{N'} ∑_{i=1}^{N'}L(y_i,\hat{f}(x_i)) etest=N′1i=1∑N′L(yi,f^(xi))
- 准确率:于误差率相对应的是准确率: r t e s t = 1 N ′ ∑ i = 1 N ′ I ( y i = f ^ ( x i ) ) r_{test}=\frac{1}{N'} ∑_{i=1}^{N'}I(y_i=\hat{f}(x_i)) rtest=N′1i=1∑N′I(yi=f^(xi))
- 训练误差用于判定给定的问题是不是容易学的问题,测试误差反应了模型的预测能力。
2、模型选择与过拟合
- 模型选择:当假设空间含有复杂度不同(如:参数不同)的模型时就面临模型选择的问题,假设假设空间中存在“真”模型,那么我们所选择的模型应该于真模型有相同的参数数量,并且参数向量应该尽量相近。
- 过拟合:是指学习时选择的模型选择的模型的参数过多,导致模型对训练数据预测的非常好,但是对测试数据预测的非常差的现象。
- 为了防止过拟合,模型选择的方法有两种:正则化与交叉验证
3、正则化
- 正则化是结构风险最小化策略的实现: min f ∈ F 1 N ∑ i = 1 N L ( y i , f ( x i ) ) + λ J ( f ) \min_{f∈F}\frac{1}{N} ∑_{i=1}^NL(y_i,f(x_i ))+λJ(f) f∈FminN1i=1∑NL(yi,f(xi))+λJ(f)其中正则化项 J ( f ) J(f) J(f)是模型复杂度的单调递增函数,比如模型参数向量的范数。
- 正则化符合奥卡姆剃刀原理:所以可以选择的模型中能够很好的解释已知数据的并且十分简单的模型是最好的模型。
4、交叉验证
- 在给定数据量比较大时,模型选择的一个简单的方法是:随机的将数据分成、训练集、验证集和测试集。分别用于训练模型、选择模型、和评估模型。
- 当数据量不够时,可采样交叉验证的方式进行模型选择,基本思想是重复使用数据:将数据进行切分,再将其组合成训练集与测试集,在此基础上进行反复的训练、测试和模型选择。
- 分类:简单交叉验证、S折交叉验证和留一交叉验证
- 简单交叉验证:
- 第一步:将数据分为:训练集与测试集。
- 第二步:用训练集在各条件下(比如:参数个数不同)训练多个模型。
- 第三步:用测试集对训练好的多个模型进行测试,选择测试误差最小的模型。
- S折交叉验证:
- 第一步:将数据切割成S个不相交的大小相同的子集。
- 第二步:对每个模型(比如:参数个数不同),用S-1个子集进行训练用剩下的一个子集进行测试。对每个模型进行S次。
- 第三步:选择S次测试中测试误差平均值最小的模型。
- 留一交叉验证:
- 留一交叉验证= S折交叉验证中S=N的情况,其中N为样本个数
五、 模型分类
- 监督学习方法分为:生成方法和判别方法,所学到的模型称为生成模型和判别模型
- 生成学习方法:由数据学习联合概率分布 P ( X , Y ) P(X,Y) P(X,Y),然后求出条件概率分布 P ( Y ∣ X ) P(Y|X) P(Y∣X)作为预测模型,即生成模型: P ( Y │ X ) = P ( X , Y ) P ( X ) P(Y│X)=\frac{P(X,Y)}{P(X)} P(Y│X)=P(X)P(X,Y)典型的生成模型:朴素贝叶斯和隐马尔可夫模型
- 判别模型:由数据直接学习决策函数 f ( X ) f(X) f(X)或条件概率分布 P ( Y ∣ X ) P(Y|X) P(Y∣X)作为预测模型。典型的判别模型:K紧邻法、感知觉、决策树、逻辑斯蒂回归模型、最大熵模型、支持向量机、提升方法和条件随机场等。
六、监督学习的应用
1、分类问题:
- 分类问题:在监督学习中,当输出变量Y取有限个离散值时,预测问题就叫分类问题。
- 评价分类器性能的指标:一般为准确率:测试集上预测正确的样本数/测试集样本总数
- 二分类问题常用的评价指标:精确率、召回率和F1值
- 一些概念:
- 正类:我们关注的类,反之负类
- T=True F=False P=Positive N=Negative
- 精确率: P = T P T P + F P P=\frac{TP}{TP+FP} P=TP+FPTP
- 召回率: P = T P T P + F N P=\frac{TP}{TP+FN} P=TP+FNTP
- F 1 F_1 F1值:精确率和召回率的调和平均值(倒数平均数:是给定数据的倒数之算术平均数的倒数) 2 F 1 = 1 1 P + 1 R \frac{2}{F_1} =\frac{1}{\frac{1}{P}+\frac{1}{R}} F12=P1+R11 P = 2 T P 2 T P + F P + F N P=\frac{2TP}{2TP+FP+FN} P=2TP+FP+FN2TP
- 一些概念:
2、标注问题
- 标注问题:输入是一个观测序列,输出是一个标记序列或状态序列,并且两个序列长度一样。状态的/标记的个数是有限的。
- 样本: ( x i , y i ) = [ ( x i ( 1 ) , x i ( 2 ) , … , x i ( n ) ) , ( y i ( 1 ) , y i ( 2 ) , … , y i ( n ) ) ] (x_i,y_i )=[(x_i^{(1) },x_i^{(2) },…,x_i^{(n)}),(y_i^{(1) },y_i^{(2) },…,y_i^{(n) })] (xi,yi)=[(xi(1),xi(2),…,xi(n)),(yi(1),yi(2),…,yi(n))]
- 模型:学习到的模型是一个条件概率分布: P ( y i ( 1 ) , y i ( 2 ) , … , y i ( n ) │ x i ( 1 ) , x i ( 2 ) , … , x i ( n ) ) P(y_i^{(1) },y_i^{(2) },…,y_i^{(n) }│x_i^{(1) },x_i^{(2) },…,x_i^{(n) } ) P(yi(1),yi(2),…,yi(n)│xi(1),xi(2),…,xi(n))
- 预测:对于给定的观测序列找到使条件概率最大最大的状态序列。
- 评价标准:准确率、精确率、召回率。
- 标注常用的统计学习方法:隐马尔可夫模型、条件随机场。
3、回归问题:
- 回归模型:表示的就是输入变量到输出变量的映射函数(Y=f(X)),回归问题等价于函数拟合,即选择一条函数曲线很好的拟合已知数据且很好的预测未知数据。
- 回归问题常用的损失函数:平方损失函数,在此情况下,回归问题可以有最小二乘法求解