第1章 统计学习方法概论
目录
1.1 统计学习
1.2 监督学习
1.3 统计学习的三要素
1.4 模型评估与模型选择
1.5 正则化与交叉验证
1.6 泛化能力
1.7 生成模型与判别模型
1.8 分类问题
1.9 标注问题
1.10 回归问题
1.1统计学习
1、 统计学习的特点
统计学习是关于计算机基于数据构建概率统计模型并运用模型对数据进行预测与分析的一门学科,统计学习也称为统计机器学习。
统计学习的主要特点:(1)统计学习以计算机及网络为平台,是建立在计算机及网络上的;(2)统计学习以数据为研究对象,是数据驱动的学科;(3)统计学习的目的是对数据进行预测与分析;(4)统计学习以方法为中心,统计学习方法构建模型并应用模型进行预测与分析;(5)统计学习是概率论、统计学、信息论、计算理论、最优化理论及计算机科学等多个领域的交叉学科,并在发展中逐步形成独自的理论体系与方法论。
2、统计学习对象
统计学习的对象是数据,它从数据出发,提取数据的特征,抽象出数据的模型。发现数据中的知识,又回到对数据的分析与预测中去。
统计学习关于数据的基本假设是同类数据具有一定的统计规律性,这是统计学习的前提。这里的同类数据是指具有某种共同性质的数据。
在统计学习过程中,以变量或变量组表示数据。数据分为由连续变量和离散变量表示的类型。本书以讨论离散变量的方法为主。
3、统计学习的目的
统计学习用于对数据进行预测与分析,特别是对未知新数据进行预测与分析。对数据的预测与分析是通过构建概率统计模型实现的。统计学习的总目标就是考虑学习什么样的模型和如何学习模型,以使模型能对数据准确的预测与分析,同时也要考虑尽可能地提高学习效率。
4、统计学习的方法
统计学习的方法是基于数据构建统计模型从而对数据进行预测与分析。统计学习由监督学习、非监督学习、半监督学习和强化学习等组成。
本书主要讨论监督学习,这种情况下统计学习的方法可以概括如下:从给定的、有限的、用于学习的训练数据集合出发,假设数据是独立同分布产生的;并且假设要学习的模型属于某个函数的集合,称为假设空间;应用某个评价准则,从假设空间中选取一个最优的模型,使它对已知训练数据及未知测试数据在给定的评价准则下有最优的预测;最有模型的选取由算法实现。统计学习方法的三要素,简称为模型、策略和算法。
实现统计学习方法的步骤如下:
- 得到一个有限的训练数据集合;
- 确定包含所有可能的模型的假设空间,即学习模型的集合;
- 确定模型选择的准则,即学习的策略;
- 实现求解最优模型的算法,即学习的算法;
- 通过学习方法选择最优模型;
- 利用学习的最优模型对新数据进行预测或分析。
1.2 监督学习
监督学习的任务是学习一个模型,使模型能够对任意给定的输入,对其相应的输出做出一个好的预测。
1.2.1 基本概念
1、输入空间、特征空间与输出空间
在监督学习中,将输入与输出所有可能取值的集合分别称为输入空间。输入与输出空间可以是有限元素的集合,也可以使整个欧式空间。
每个具体的输入使一个实例,通常由特征向量表示。这时,所有特征向量存在的空间称为特征空间。特征空间的每一维对应于一个特征。
2、联合概率分布
监督学习假设输入与输出的随机变量X和Y遵循联合概率分布P(X,Y)。P(X,Y)表示分布函数,或分布密度函数。训练数据与测试数据被看作是依联合概率分布P(X,Y)独立同分布产生的。统计学习假设数据存在一定的统计规律,X和Y具有联合概率分布的假设就是监督学习关于数据的基本假设。
3、假设空间
监督学习的目的在于学习一个由输入到输出的映射,这一映射由模型来表示。学习的目的在于找到最好的模型。模型属于由输入空间到输出空间的映射的集合。模型可以是概率模型或非概率模型,由条件概率分布或决策函数表示。
1.2.2 问题的形式化
监督学习利用训练数据集学习一个模型,再用模型对测试样本集进行测试。监督学习分为学习和预测两个过程,由学习系统与预测系统完成。
首先给定一个训练数据集
T
=
{
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
.
.
.
,
(
x
N
,
y
N
)
}
T=\left \{ \left ( x_{1}, y_{1}\right ),\left ( x_{2},y_{2}\right ),...,\left ( x_{N},y_{N} \right ) \right \}
T={(x1,y1),(x2,y2),...,(xN,yN)}其中
(
x
1
,
y
1
)
,
i
=
1
,
2
,
.
.
.
,
N
\left ( x_{1}, y_{1} \right ) ,i=1,2,...,N
(x1,y1),i=1,2,...,N,称为样本或样本点。
x
i
∈
χ
⊆
R
n
x_{i}\ \in \chi \subseteq R^{n}
xi ∈χ⊆Rn 是输入的观测值,也称为输入或实例,
x
y
∈
Y
x_{y}\ \in Y
xy ∈Y是输出的观测值,也成为输出
x
y
∈
Y
x_{y}\ \in \mathcal Y
xy ∈Y是输出的观测值,也称为输出。
在学习过程中,学习系统利用给定的训练集,通过学习(或训练)得到一个模型,表示为条件概率分布或决策函数。具体地来说,对输入
x
i
x_{i}
xi,一个具体的模型y=f(x)可以产生一个输出
f
(
x
i
)
f(x_{i})
f(xi) ,而训练数据集中对应的输出是
y
i
y_{i}
yi,如果这个模型有很好的预测能力,训练样本能力
y
i
y_{i}
yi和模型输出
f
(
x
i
)
f(x_{i})
f(xi)之间的差应该足够小。通过不断的尝试,选取最好的模型。
1.3 统计学习的三要素
统计学习的方法都是由模型、策略和算法构成。
1.3.1 模型
在监督学习过程中,模型就是所要学习的条件概率分布或决策函数。模型的假设空间包含所有可能的条件概率分布或决策函数。
假设空间用
F
\mathcal F
F 表示。假设空间可以定义为决策函数的集合
F
=
{
f
∣
Y
=
f
(
X
)
}
{\mathcal F}=\left \{ f|Y=f(X) \right \}
F={f∣Y=f(X)} 。其中,X和Y是定义在输入空间
X
\mathcal X
X 和输出空间
Y
\mathcal Y
Y 上的变量。这时
F
\mathcal F
F 通常是由一个参数向量决定的函数族:集合
F
=
{
f
∣
Y
=
f
θ
(
X
)
,
θ
∈
R
n
}
{\mathcal F}=\left \{ f|Y=f_{\theta }(X),\theta \in R^{n} \right \}
F={f∣Y=fθ(X),θ∈Rn} 参数向量
θ
\theta
θ 取值于n维欧式空间
R
n
R^{n}
Rn ,称为参数空间。
1.3.2 策略
1、损失函数和风险函数
用一个损失函数或代价函数来度量对于给定的输入X,由 f(X) 给出相应的输出Y与真实值Y的错误程度。损失函数f(x)和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 \neq 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))]=\int_{\mathcal X\times\mathcal 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 这是理论上模型f(X)关于联合分布P(X, Y)的平均意义下的损失,称为风险函数或期望损失。由于P(X,Y)是未知的, R e x p ( f ) R_{exp}(f) Rexp(f) 不能直接计算。
给定一个训练数据集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x N , y N ) } T=\left \{ \left ( x_{1}, y_{1}\right ),\left ( x_{2},y_{2}\right ),...,\left ( x_{N},y_{N} \right ) \right \} T={(x1,y1),(x2,y2),...,(xN,yN)} 模型 f(X) 关于训练数据集的平均损失称为经验风险或经验损失,记作 R e x p : R e x p ( f ) = 1 N ∑ i = 1 N L ( y i , f ( x i ) ) R_{exp} : R_{exp} (f)=\frac{1}{N}\sum_{i=1}^{N}L(y_{i}, f(x_{i})) Rexp:Rexp(f)=N1∑i=1NL(yi,f(xi)) 期望风险 R e x p ( f ) R_{exp}(f) Rexp(f) 是模型关于联合分布的期望损失,经验风险 R e x p ( f ) R_{exp}(f) Rexp(f) 是模型关于训练样本集的平均损失。根据大数定律,当样本容量N趋于无穷时,经验风险 R e x p ( f ) R_{exp}(f) Rexp(f) 趋于期望风险 R e x p ( f ) R_{exp}(f) Rexp(f) 。
2、经验风险最小化与结构风险最小化
经验风险最小化的策略认为经验风险最小的模型是最优的模型。根据这一策略,按照经验最小化求最优模型就是求解最优化问题:
f
∈
F
m
i
n
1
N
∑
i
=
1
N
L
(
y
i
,
f
(
x
i
)
)
\overset{min}{f \in \mathcal F}\frac{1}{N}\sum_{i=1}^{N}L(y_{i},f(x_{i}))
f∈FminN1∑i=1NL(yi,f(xi)) 。其中,
F
\mathcal F
F 是假设空间。
当样本容量足够大,经验风险最小化能保证有很好的学习效果。比如,极大似然估计就是经验风险最小化的一个例子。当模型是条件概率分布,损失函数是对数损失函数时,经验风险最小化就等价于极大似然估计。但是,当样本容量很小时,会产生“过拟合”现象。
结构风险最小化是为了防止过拟合而提出来的策略。结构风险最小化等价于正则化,在经验风险上加上表示模型复杂度的正则化项或罚项。在假设空间、损失函数以及训练数据集确定的情况下,结构风险的定义是:
R
a
r
m
(
f
)
=
1
N
∑
i
=
1
N
L
(
y
i
,
f
(
x
i
)
)
+
λ
J
(
f
)
R_{arm}(f)=\frac{1}{N}\sum_{i=1}^{N}L(y_{i},f(x_{i}))+\lambda J(f)
Rarm(f)=N1∑i=1NL(yi,f(xi))+λJ(f) 。其中 J(f) 为模型的复杂度,是定义在假设空间
F
\mathcal F
F 上的泛函。
λ
⩾
0
\lambda \geqslant 0
λ⩾0 是系数,用以权衡经验风险和模型复杂度。
1.3.3 算法
算法是指学习模型的具体计算方法。
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) 关于训练数据集的平均损失:
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^)=N1∑i=1NL(yi,f^(xi)) ,其中N是训练样本容量。
测试误差是模型 Y=\hat{f}(X) 关于测试数据集的平均损失:
R
t
e
x
t
(
f
^
)
=
1
N
′
∑
i
=
1
N
′
L
(
y
i
,
f
^
(
x
i
)
)
R_{text}(\hat{f})=\frac{1}{{N}'}\sum_{i=1}^{{N}'}L(y_{i}, \hat{f}(x_{i}))
Rtext(f^)=N′1∑i=1N′L(yi,f^(xi)) ,其中
N
′
{N}'
N′ 是测试样本容量。
例如,0-1损失的测试误差的误差率为
R
t
e
x
t
(
f
^
)
=
1
N
′
∑
i
=
1
N
′
I
(
y
i
≠
f
^
(
x
i
)
)
R_{text}(\hat{f})=\frac{1}{{N}'}\sum_{i=1}^{{N}'}I(y_{i}\neq \hat{f}(x_{i}))
Rtext(f^)=N′1∑i=1N′I(yi̸=f^(xi)) ,I 是指示函数,即
y
i
≠
f
^
(
x
i
)
y_{i}\neq \hat{f}(x_{i})
yi̸=f^(xi) 时为1,否则为0。训练误差的大小,对判断给定的问题是不是一个容易学习的问题是有意义的,反映了学习方法对未知的测试数据集的预测能力。通常将学习方法对未知数据的预测能力称为泛化能力。
1.4.2 过拟合与模型选择
当假设空间含有不同复杂度的模型时,我们的目标就是寻找一个逼近“真”模型的模型。但是一味追求提高对训练数据的预测能力,所选模型的复杂度则往往会比真模型更高,这种现象称为过拟合,这是指学习时选择的模型所包含的参数过多,导致出现模型对已知数据预测得很好,但对未知数据预测能力很差。
下图描述了训练误差与测试误差与模型的复杂度之间的关系,当模型的复杂度增大时,训练误差会逐渐减小并趋向于0;而 测试误差会先减少,达到最小值又增大。当选择的模型复杂度过大时,过拟合现象就会发生。这样,在学习时就要防止过拟合,选择最优的模型,即选择复杂度适当的模型,以达到使测试误差最小的学习目的。
1.5 正则化与交叉验证
1.5.1 正则化
模型选择的典型方法使正则化。正则化是结构风险最小化策略的实现,是在经验风险上加一个正则化项或罚项。正则化项一般书模型复杂度的单调递增函数,模型越复杂,正则化值就越大。
正则化一般具有如下形式:
f
∈
F
m
i
n
1
N
∑
i
=
1
N
L
(
y
i
,
f
(
x
i
)
)
+
λ
J
(
f
)
\overset{min}{f \in \mathcal F}\frac{1}{N}\sum_{i=1}^{N}L(y_{i},f(x_{i}))+\lambda J(f)
f∈FminN1∑i=1NL(yi,f(xi))+λJ(f) 其中,第1项时经验风险,第2项是正则化项,
λ
⩾
0
\lambda \geqslant 0
λ⩾0为调整两者之间关系的系数。正则化项可以取不同的形式,例如参数向量的L_{1}范数、L_{2} 范数。
第1项的经验风险较小的模型可能较复杂(有多个非零参数),这时第2项的模型复杂度会较大。正则化的作用是选择经验风险与模型复杂夫同时较小的模型。
1.5.2 交叉验证
另一种常用的模型选择方法是交叉验证。如果给定的样本数据充足,一种简单的方法就是随机地将数据集分为三部分,分别为训练集、验证集和测试集。训练集用来训练模型,验证集用于模型的选择,而测试集用于最终对学习方法的评估。
但是,在许多实际应用中数据是不充足的,为了选择好的模型,可以采用交叉验证方法。它的想法是重复地使用数据;把给定的数据进行切分,将切分的数据集组合分为训练集与测试集,在这基础上反复地进行训练、测试以及模型选择。
1、简单交叉验证
首先随机地将已给数据分为两部分,一部分为训练集,另一部分为测试集(例如7:3分开);然后用训练集在各种条件下训练模型,从而得到不同的模型;在测试集上评价各个模型的测试误差,选取误差最小的模型。
2、S折交叉验证
首先随机地将已给数据切分为S个互不相交的大小相同的子集;然后利用S-1个子集的数据训练模型,利用余下的子集测试数据;将这一过程对可能的S种选择重复进行;最后选取S次评测种平均测试误差最小的模型。