《 统计学习方法》笔记
统计学习中需要掌握的概念
一、损失函数
统计学习常用的损失函数
(
1
)
(1)
(1)
0
−
1
0-1
0−1损失函数
L
(
Y
,
f
(
X
)
)
=
{
1
,
Y
≠
f
(
X
)
0
,
Y
=
f
(
X
)
L(Y, f(X))=\left\{\begin{array}{ll}{1,} & {Y \neq f(X)} \\ {0,} & {Y=f(X)}\end{array}\right.
L(Y,f(X))={1,0,Y̸=f(X)Y=f(X)
(
2
)
(2)
(2) 平方损失函数
L
(
Y
,
f
(
X
)
)
=
(
Y
−
f
(
X
)
)
2
L(Y, f(X))=(Y-f(X))^{2}
L(Y,f(X))=(Y−f(X))2
(
3
)
(3)
(3)绝对损失函数
L
(
Y
,
f
(
X
)
)
=
∣
Y
−
f
(
X
)
∣
L(Y, f(X))=|Y-f(X)|
L(Y,f(X))=∣Y−f(X)∣
(
4
)
(4)
(4)对数损失函数或对数似然损失函数
L
(
Y
,
P
(
Y
∣
X
)
)
=
−
log
P
(
Y
∣
X
)
L(Y, P(Y | X))=-\log P(Y | X)
L(Y,P(Y∣X))=−logP(Y∣X)
损失函数度量模型一次预测的好坏,而风险函数度量平均意义下模型预测的好坏。损失函数是预测值
f
(
X
)
f(X)
f(X)和真实值
Y
Y
Y的非负实值函数,记作
L
(
Y
,
f
(
X
)
)
L(Y,f(X))
L(Y,f(X)),损失函数值越小,模型就越好。
1、风险函数或期望损失
由于模型的输入、输出
(
X
,
Y
)
(X,Y)
(X,Y)是随机变量,遵循联合分布
P
(
X
,
Y
)
P(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_{\mathrm{exp}}(f)=E_{P}[L(Y, f(X))]=\int_{\mathcal{X} \times \mathcal{Y}} L(y, f(x)) P(x, y) \mathrm{d} x \mathrm{d} y
Rexp(f)=EP[L(Y,f(X))]=∫X×YL(y,f(x))P(x,y)dxdy这是理论上模型
f
(
X
)
f(X)
f(X)关于联合分布
P
(
X
,
Y
)
P(X,Y)
P(X,Y)的平均意义下的损失,称为风险函数或期望损失
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), \cdots,\left(x_{N}, y_{N}\right)\right\}
T={(x1,y1),(x2,y2),⋯,(xN,yN)}模型
f
(
X
)
f(X)
f(X)关于训练数据集的平均损失称为经验风险(empirical risk)或经验损失(empirical loss),记作
R
e
m
p
R_{emp}
Remp:
R
e
m
p
(
f
)
=
1
N
∑
i
=
1
N
L
(
y
i
,
f
(
x
i
)
)
R_{\mathrm{emp}}(f)=\frac{1}{N} \sum_{i=1}^{N} L\left(y_{i}, f\left(x_{i}\right)\right)
Remp(f)=N1i=1∑NL(yi,f(xi))期望风险
R
e
x
p
(
f
)
R_{exp}(f)
Rexp(f)是模型关于联合分布的期望损失,经验风险
R
e
m
p
(
f
)
R_{emp}(f)
Remp(f)是模型关于训练样本集的平均损失。根据大数定律,当样本容量趋于无穷时,经验风险
R
e
m
p
(
f
)
R_{emp}(f)
Remp(f)趋于期望风险
R
e
x
p
(
f
)
R_{exp}(f)
Rexp(f)。
因此用经验风险
R
e
m
p
(
f
)
R_{emp}(f)
Remp(f)去估计期望风险
R
e
x
p
(
f
)
R_{exp}(f)
Rexp(f),但由于现实中训练样本数目有限,甚至很小,所以估计并不理想,要对经验风险进行一定的矫正,这就涉及到监督学习的两个基本策略:经验风险最小化和结构风险最小化。
二、经验风险最小化和结构风险最小化
1、经验风险最小化
经验风险最小化(empirical risk minimization,ERM)的策略认为,经验风险最小化的模式是最优的模型。根据这一策略,按照经验风险最小化求最优模型就是求解最优化模型:
min
f
∈
F
1
N
∑
i
=
1
N
L
(
y
i
,
f
(
x
i
)
)
\min _{f \in \mathcal{F}} \frac{1}{N} \sum_{i=1}^{N} L\left(y_{i}, f\left(x_{i}\right)\right)
f∈FminN1i=1∑NL(yi,f(xi))其中,
F
\mathcal{F}
F是假设空间
当样本容量足够大时,经验风险最小化能保证有很好的学习效果,在现实中被广泛采用.极大似然估计(maximum likelihood estimation)就是经验风险最小化的一个例子,当模型是条件概率分布,损失函数是对数损失函数时,经验风险最小化就等价于极大似然估计。当样本量很小时,经验风险最小化学习的效果未必很好,会产生“过拟合(over-fitting)”现象。过拟合问题往往是由于训练数据少和噪声以及模型能力强等原因造成的。
2、结构风险最小化
结构风险最小化(structural risk minimization,SRM)是为了防止过拟合而提出来的策略,结构风险最小化等价于正则化(regularization).结构风险在经验风险上加上表示模型复杂度的正则化项(regularizer)或罚项(penalty term),在假设空间、损失函数以及训练数据集确定的情况下,结构风险的定义是
R
s
r
m
(
f
)
=
1
N
∑
i
=
1
N
L
(
y
i
,
f
(
x
i
)
)
+
λ
J
(
f
)
R_{\mathrm{srm}}(f)=\frac{1}{N} \sum_{i=1}^{N} L\left(y_{i}, f\left(x_{i}\right)\right)+\lambda J(f)
Rsrm(f)=N1i=1∑NL(yi,f(xi))+λJ(f)其中
J
(
f
)
J(f)
J(f)为模型的复杂度,是定义在假设空间
F
\mathcal{F}
F上的泛函。模型
f
f
f越复杂,复杂度
J
(
f
)
J(f)
J(f)就越大,复杂度表示了对复杂模型的惩罚。
λ
⩾
0
\lambda \geqslant 0
λ⩾0是系数,用以权衡经验风险和模型复杂度。结构风险小需要经验风险与模型复杂度同时小。
结构风险小的模型往往对训练数据以及未知的测试数据都有较好的预测。如贝叶斯估计中的最大后验概率估计就是结构风险最小化的一个例子。当模型是条件概率分布、损失函数是对数损失函数、模型复杂度由模型的先验概率表示时,结构风险最小化就等价于最大后验概率估计。
结构风险最小化的策略认为结构风险最小的模型是最优的模型。所以就是求解最优化问题:
min
f
∈
F
1
N
∑
i
=
1
N
L
(
y
i
,
f
(
x
i
)
)
+
λ
J
(
f
)
\min _{f \in \mathcal{F}} \frac{1}{N} \sum_{i=1}^{N} L\left(y_{i}, f\left(x_{i}\right)\right)+\lambda J(f)
f∈FminN1i=1∑NL(yi,f(xi))+λJ(f)
三、模型评估与模型选择
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_{\mathrm{emp}}(\hat{f})=\frac{1}{N} \sum_{i=1}^{N} L\left(y_{i}, \hat{f}\left(x_{i}\right)\right)
Remp(f^)=N1i=1∑NL(yi,f^(xi))其中
N
N
N是训练样本容量
测试误差是模型
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_{\mathrm{test}}=\frac{1}{N^{\prime}} \sum_{i=1}^{N^{\prime}} L\left(y_{i}, \hat{f}\left(x_{i}\right)\right)
etest=N′1i=1∑N′L(yi,f^(xi))其中
N
′
N^{'}
N′是训练样本容量
如果一味追求提高对训练数据的预测能力,所选模型的复杂度往往会比真模型高,这种现象称为过拟合(over-fitting)。过拟合是指学习时选择的模型所包含的参数过多,以至于出现这一模型对已知数据预测得很好,但对未知数据预测得很差的现象。
与过拟合相反的是欠拟合,即模型不能很好地拟合训练数据,在训练集的错误率比较高。欠拟合一般是由于模型能力不足造成的。
训练误差和测试误差之间的关系
训练误差和测试误差与模型的复杂度之间的关系,当模型的复杂度增大时,训练误差会逐渐减小并趋于
0
0
0;而测试误差会先减小,达到最小值后又增大。当选择的模型复杂度过大时,过拟合现象就会发生。这样在学习时要防止过拟合,进行最优的模型选择,即选择复杂度适当的模型,以达到使测试误差最小的学习目的
![图片名称](https://i-blog.csdnimg.cn/blog_migrate/d471fc5e445863a8dfea15f518f4b21f.png)
2、模型选择方法
两种常用的模型选择方法:正则化与交叉验证
模型选择的典型方法是正则化(regularization),正则化是结构风险最小化策略的实现,是在经验风险上加一个正则化项(regularizer)或罚项(penalty term).正则化项一般是模型复杂度的单调递增函数,模型越复杂,正则化值就越大,比如正则化项可以是模型参数向量的范数
正则化一般具有如下形式:
min
f
∈
F
1
N
∑
i
=
1
N
L
(
y
i
,
f
(
x
i
)
)
+
λ
J
(
f
)
\min _{f \in \mathcal{F}} \frac{1}{N} \sum_{i=1}^{N} L\left(y_{i}, f\left(x_{i}\right)\right)+\lambda J(f)
f∈FminN1i=1∑NL(yi,f(xi))+λJ(f)其中,第一项是经验风险,第二项是正则化项,
λ
⩾
0
\lambda \geqslant 0
λ⩾0为调整两者之间关系的系数.
正则化符合奥卡姆剃刀(Occam’s razor)原理。奥卡姆剃刀原来应用于模型选择变为以下想法:在所有可能选择的模型中,能够很好地解释已知数据并且十分简单才是最好的模型,也就是应该选择的模型。从贝叶斯估计的角度看,正则化项对应于模型的先验概率,可以假设复杂的模型有较大的先验概率,简单的模型有较小的先验概率。
交叉验证
交叉验证(cross validation)—另一种常用的模型选择方法。训练集用来训练模型,验证集用于模型的选择,测试集用于最终对学习方法的评估。在学习到的不复杂度的模型中,选择对验证集有最小预测误差的模型,由于验证集有足够多的数据,用它对模型进行选择也是有效的。
在许多实际应用中数据是不充足的,为了选择好的模型,可以采用交叉验证方法,交叉验证的基本想法是重读地使用数据:把给定的数据进行切分,将切分的数据集组合为训练集与测试集,在此基础上反复地进行训练、测试以及模型选择。
1、简单交叉验证:随机地将已给数据分为两部分,一部分作为训练集,另一部分作为测试集;然后用训练集在各种条件下训练模型,从而得到不同的模型;在测试集上评价各个模型的测试误差,选处测试误差最小的模型。
2、
S
S
S交叉验证
首先随机地将已给数据切分为
S
S
S个互不相交的大小相同的子集;然后利用
S
−
1
S-1
S−1个子集的数据训练模型,利用余下的子集测试模型;将这一过程对可能的
S
S
S种选择重复进行;最后选出
S
S
S次评测中平均测试误差最小的模型。
3、留一交叉验证
S
S
S交叉验证的特殊情形是
S
=
N
S=N
S=N,称为留一交叉验证,往往在数据缺乏的情况下使用。
四、泛化能力
学习方法的泛化能力是指由该方法学习到的模型对未知数据的预测能力。
1、泛化误差
如果学到的模型是
f
^
\hat{f}
f^,那么用这个模型对未知数据预测的误差即为泛化误差(generalization error)
R
exp
(
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) \mathrm{d} x \mathrm{d} y
Rexp(f^)=EP[L(Y,f^(X))]=∫x×yL(y,f^(x))P(x,y)dxdy泛化误差反映了学习方法的泛化能力。
学习方法的泛化能力分析往往是通过研究泛化误差的概率上界进行的,简称为泛化误差上界(generalization error bound)
考虑二分问题的泛化误差上界。
二分问题中,
f
f
f的期望风险和经验风险分别为:
R
(
f
)
=
E
[
L
(
Y
,
f
(
X
)
)
]
R(f)=E[L(Y, f(X))]
R(f)=E[L(Y,f(X))]
R
^
(
f
)
=
1
N
∑
i
=
1
N
L
(
y
i
,
f
(
x
i
)
)
\hat{R}(f)=\frac{1}{N} \sum_{i=1}^{N} L\left(y_{i}, f\left(x_{i}\right)\right)
R^(f)=N1i=1∑NL(yi,f(xi))经验风险最小化函数是
f
N
=
arg
min
f
∈
F
R
^
(
f
)
f_{N}=\arg \min _{f \in \mathcal{F}} \hat{R}(f)
fN=argf∈FminR^(f)
f
N
f_N
fN的泛化能力
R
(
f
N
)
=
E
[
L
(
Y
,
f
N
(
X
)
)
]
R\left(f_{N}\right)=E\left[L\left(Y, f_{N}(X)\right)\right]
R(fN)=E[L(Y,fN(X))]下面关于从有限集合
F
=
{
f
1
,
f
2
,
⋯
 
,
f
d
}
\mathcal{F}=\left\{f_{1}, f_{2}, \cdots, f_{d}\right\}
F={f1,f2,⋯,fd}中任意选出的函数
f
f
f的泛化误差上界
定理 (泛化误差上界)对二分问题,当假设空间是有限个函数的集合
F
=
{
f
1
,
f
2
,
⋯
 
,
f
d
}
\mathcal{F}=\left\{f_{1}, f_{2}, \cdots, f_{d}\right\}
F={f1,f2,⋯,fd}时,对任意一个函数
f
∈
F
f \in \mathcal{F}
f∈F,至少以概率
1
−
δ
1-\delta
1−δ,以下不等式成立:
R
(
f
)
⩽
R
^
(
f
)
+
ε
(
d
,
N
,
δ
)
(
1
)
R(f) \leqslant \hat{R}(f)+\varepsilon(d, N, \delta) \qquad(1)
R(f)⩽R^(f)+ε(d,N,δ)(1)其中,
ε
(
d
,
N
,
δ
)
=
1
2
N
(
log
d
+
log
1
δ
)
(
2
)
\varepsilon(d, N, \delta)=\sqrt{\frac{1}{2 N}\left(\log d+\log \frac{1}{\delta}\right)} \qquad(2)
ε(d,N,δ)=2N1(logd+logδ1)(2)
不等式
(
1
)
(1)
(1)左端
R
(
f
)
R(f)
R(f)是泛化误差,右端即为泛化误差上界。在泛化误差上界中,第
1
1
1项是训练误差,训练误差越小,泛化误差也越小。第
2
2
2项
ε
(
d
,
N
,
δ
)
\varepsilon(d, N, \delta)
ε(d,N,δ)是的单调递减函数,当
N
N
N趋于无穷是趋于
0
0
0,同时它也是
log
d
\sqrt{\log d}
logd阶的函数假设空间
F
\mathcal F
F包含的函数越多,其值越大。
五、生成模型与判别模型
监督学习的任务是学习一个模型,这个模型的一般形式为决策函数
Y
=
f
(
X
)
Y=f(X)
Y=f(X)或者条件概率分布:
P
(
Y
∣
X
)
P(Y|X)
P(Y∣X)
监督学习方法又可以分为生成方法(generative approach)和判别方法(discriminative approach)。所学到的模型分布称为生成模型(generative model)和判别模型(discriminative model)
1、生成方法由数据学习联合概率分布
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)之所以称为生成方法,是因为模型表示了给定输入
X
X
X产生输出
Y
Y
Y的生成关系。典型的生成模型有:朴素贝叶斯法和隐马尔可夫模型。
2、判别方法是由数据直接学习决策函数
f
(
X
)
f(X)
f(X)或者条件概率分布
P
(
Y
∣
X
)
P(Y|X)
P(Y∣X)作为预测到模型,即判别模型。典型的判别模型包括:近邻法、感知器、决策树、逻辑斯谛回归模型、最大熵模型、支持向量机、提升方法和条件随机场等
《统计学习方法》李航