模型的评估与选择
文章目录
模型的定义和分类
首先,我们定义 F \mathcal F F为假设空间, X \mathcal X X为输入空间, Y \mathcal Y Y为输出空间 , θ \theta θ为参数向量,取自n维欧氏空间 R n \textbf{R}^n Rn,也称为参数空间(parameter space)。
非概率模型
我们称由该决策函数定义的模型为非概率模型:
F
=
{
Y
=
f
θ
(
X
)
,
θ
∈
R
n
}
\mathcal F\it=\left\{ Y=f_{\theta}(X),\theta \in \textbf{R}^n\it \right\}
F={Y=fθ(X),θ∈Rn}
这里,
X
X
X和
Y
Y
Y分别是从输入空间
X
\mathcal X
X,和输出空间
Y
\mathcal Y
Y选取的变量,此时的假设空间
F
\mathcal F
F是一个函数族。
概率模型
我们称由条件概率定义的模型为概率模型:
F
=
{
P
∣
P
θ
(
Y
∣
X
)
,
θ
∈
R
n
}
\mathcal F\it=\left\{ P|P_{\theta}(Y|X),\theta \in \textbf{R}^n\it \right\}
F={P∣Pθ(Y∣X),θ∈Rn}
这里,
X
X
X和
Y
Y
Y分别是从输入空间
X
\mathcal X
X,和输出空间
Y
\mathcal Y
Y选取的随机变量,此时的假设空间
F
\mathcal F
F是一个条件概率分布族。
模型评估
想要将模型最优化,首先我们需要评估一个模型的好坏,这里我们就引入了下面的概念
损失函数和风险函数
损失函数
对于输入一个 X X X,由 f ( X ) f(X) f(X)得到一个输出 Y Y Y,模型的预测值和真实值可能一致也可能不一致,而当两者不一致时,我们引进一个损失函数(loss function)或代价函数(cost function),来度量错误的程度,记作 L ( Y , f ( X ) ) L(Y,f(X)) L(Y,f(X))。损失函数的值越小,模型就越好。常见的损失函数主要有以下几种
(1)0-1损失函数(0-1 loss function)
L
(
Y
,
f
(
X
)
)
=
{
1
,
Y
≠
f
(
X
)
0
,
Y
=
f
(
X
)
L(Y,f(X))= \left\{ \begin{array}{lr} 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)平方损失函数(quadratic loss function)
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)绝对损失函数(absolute loss function)
L
(
Y
,
f
(
X
)
)
=
∣
Y
−
f
(
X
)
∣
L(Y,f(X))=|Y-f(X)|
L(Y,f(X))=∣Y−f(X)∣
(4)对数损失函数(logarithmic loss function),也称对数似然损失函数(log-likelihood loss function)。
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
)
(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
\begin{aligned} R_{exp}(f) & =E_p[L(Y,f(X))]\\ & =\int_{\mathcal X\it\times\mathcal Y\it}[L(y,f(x))P(x,y)dxdy\\ \end{aligned}
Rexp(f)=Ep[L(Y,f(X))]=∫X×Y[L(y,f(x))P(x,y)dxdy
理论上这是损失函数在整个数据集中的平均值,我们称之为风险函数(risk function)或期望损失(expected loss)。
然而在实际中,联合分布
P
(
X
,
Y
)
P(X,Y)
P(X,Y)通常是未知的,因为我们一旦知道联合分布
P
(
X
,
Y
)
P(X,Y)
P(X,Y),我们就可以根据联合分布求出条件概率
P
(
Y
∣
X
)
P(Y|X)
P(Y∣X),那就不需要进行学习了。所以通常我们并不能求出风险函数,就更无法将其最小化了,但机器学习恰恰又是一个最小化风险函数的过程,这就形成了一个悖论。所以我们引入了一个可表示的量,称为经验风险(empirical risk)或经验损失(empirical lost):
对
于
数
据
集
T
=
{
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
.
.
.
(
x
N
,
y
N
)
}
:
R
e
m
p
(
f
)
=
1
N
∑
i
=
1
n
L
(
y
i
,
f
(
x
i
)
)
对于数据集T=\left\{(x_1,y_1),(x_2,y_2),...(x_N,y_N)\right\}: \\ R_{emp}(f)=\frac1N \sum_{i=1}^n L(y_i,f(x_i))
对于数据集T={(x1,y1),(x2,y2),...(xN,yN)}: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)是模型关于训练样本的平均损失,由大数定理可知:
当
N
→
+
∞
时
,
R
e
m
p
(
f
)
=
R
e
x
p
(
f
)
当N\to +\infty时,R_{emp}(f)=R_{exp}(f)
当N→+∞时,Remp(f)=Rexp(f)
所以我们通常用经验风险来对风险函数进行估计。
经验风险最小化和结构风险最小化
由上面的内容,我们知道,我们通常用经验风险来对风险函数进行估计。但是训练集样本通常是有限的,所以这一方法很多时候并不理想,我们需要对经验风险进行一定的矫正,这就关系到监督学习的两个基本策略:经验风险最小化和结构风险最小化。
经验风险最小化
在假设函数,损失函数和训练数据集确定的情况下,经验风险函数式可以确定。经验风险最小化(empirical likelihood estimation,ERM)观点认为,经验风险最小的模型即是最优模型。这时可以求解如下最优化问题:
m
i
n
f
∈
F
1
N
∑
i
=
1
n
L
(
y
i
,
f
(
x
i
)
)
\mathop{min}\limits_{f\in\mathcal F\it} \frac1N \sum_{i=1}^n L(y_i,f(x_i))
f∈FminN1i=1∑nL(yi,f(xi))
结构风险最小化
当样本量足够大的时候,经验风险最小化效果很好,极大似然估计就是经验风险最小化的一个例子。然而,当样本量较小,或样本需要被推广的空间较大时,容易出现过拟合(over-fitting)现象。过拟合现象是指,模型过于追求在现有数据上的准确率,从而降低了模型的泛化能力,我们在这里给出西瓜书的一个例子来说明过拟合和欠拟合的区别:如果我们那锯齿形树叶训练样本来做树叶的分类器,欠拟合即是,将所有绿色的物体当作树叶,这时我们会将许多其他物品比如菠菜,帽子(误,划掉)当作树叶,而过拟合即是,我们将所有锯齿形的绿色物体当作树叶,则圆形树叶将被归为负类,视为非树叶物体,这是模型的泛化能力显然较弱,也就是过拟合模型的一大问题之一
结构风险最小化(structural likelihood estimation,SRM)即是为了防止过拟合而制定的策略,等价于正则化(regularization)。结构风险最小化即是引入一个正则项(regularizer),或罚项(penalty term),也就是,我们让模型和样本保持一个合理的距离,以避免过拟合现象产生。即为求解如下最优化问题:
例如,在回归问题中,损失项为平方损失时,我们可以以参数向量的范数构造正则项:
L
(
ω
)
=
1
N
∑
i
=
1
n
(
f
(
x
i
;
ω
)
−
y
i
)
2
+
λ
∥
ω
∥
2
L(\omega)=\frac1N \sum_{i=1}^n (f(x_i;\omega)-y_i)^2+\lambda \Vert \omega\Vert ^2
L(ω)=N1i=1∑n(f(xi;ω)−yi)2+λ∥ω∥2
泛化能力
学习方法的泛化能力(generalization ability)指由该方法得到的模型对未知数据的预测能力,是学习方法的重要性质。现实中多采用泛化误差来表示学习方法的泛化能力。
泛化误差
如果学到的模型是
f
^
\hat{f}
f^,那这个模型对未知数据的泛化误差(generalization error)是:
R
e
x
p
=
E
p
[
L
(
Y
,
f
^
(
X
)
]
=
∫
X
×
Y
[
L
(
y
,
f
^
(
x
)
)
P
(
x
,
y
)
d
x
d
y
\begin{aligned} R_{exp}&=E_p[L(Y,\hat f(X)]\\ &=\int_{\mathcal X\it\times\mathcal Y\it}[L(y,\hat f(x))P(x,y)dxdy \end{aligned}
Rexp=Ep[L(Y,f^(X)]=∫X×Y[L(y,f^(x))P(x,y)dxdy
我们可以看到,模型关于未知数据集的经验风险就是他的泛化误差,泛化误差越小的模型越好。
泛化误差上界
分析一个学习器的泛化能力往往通过分析其泛化误差上界(generalization error bound)实现,泛化误差上界通常具有以下性质:
- 关于样本容量的函数,样本容量增加,泛化误差上界趋于零。
- 关于假设空间的函数,假设空间越大,泛化误差上界越大。
下面我们给出一个关于二分类问题求泛化误差上界的方法:
对于二分类问题,当假设空间是有限个函数的集合
F
=
f
1
,
f
2
,
.
.
.
,
f
d
\mathcal F={f_1,f_2,...,f_d}
F=f1,f2,...,fd时,对任意一个函数
f
∈
F
f\in \mathcal F
f∈F,至少以概率
1
−
δ
,
0
<
δ
<
1
1-\delta,0<\delta<1
1−δ,0<δ<1以下不等式成立:
R
(
f
)
≤
R
^
(
f
)
+
ε
(
d
,
N
,
δ
)
R(f)\leq \hat R(f) + \varepsilon(d,N,\delta)
R(f)≤R^(f)+ε(d,N,δ)
其中:
ε
(
d
,
N
,
δ
)
=
(
log
d
+
log
1
δ
)
2
N
\varepsilon(d,N,\delta)=\sqrt{\frac{(\log{d}+\log{\frac{1}{\delta}})}{2N}}
ε(d,N,δ)=2N(logd+logδ1)
不等式中左侧的
R
(
f
)
R(f)
R(f)是泛化误差,右侧的即是泛化误差上界,其中的
R
^
(
f
)
\widehat{R}(f)
R
(f)是训练过程中的误差,而
ε
(
d
,
N
,
δ
)
\varepsilon(d,N,\delta)
ε(d,N,δ)相当于一个纠正项,是关于
N
N
N的单调递减函数,当
N
N
N趋近无穷时函数趋向 0,同时它也是
l
o
g
d
logd
logd阶的函数,假设空间包含的函数越多时,
d
d
d的值越大,函数值也越大。
下面我们给出这一结论的证明:
首先介绍我们需要用到的Hoeffding不等式,在此不加证明地给出:
设
X
1
,
X
2
,
.
.
.
,
X
N
X_1,X_2,...,X_N
X1,X2,...,XN是独立随机变量,且
X
i
∈
[
a
i
,
b
i
]
,
i
=
1
,
2
,
.
.
.
,
N
X_i\in[a_i,b_i],i=1,2,...,N
Xi∈[ai,bi],i=1,2,...,N;
X
ˉ
\bar{X}
Xˉ是
X
1
,
X
2
,
.
.
.
,
X
N
X_1,X_2,...,X_N
X1,X2,...,XN的经验均值,即
X
ˉ
=
1
N
∑
i
=
1
N
X
i
\bar{X}=\frac{1}{N} \sum\limits_{i=1}^{N}X_i
Xˉ=N1i=1∑NXi ,则对任意
t
>
0
t>0
t>0,以下不等式成立:
P
[
X
ˉ
−
E
(
X
ˉ
)
≥
t
]
≤
exp
(
−
2
N
2
t
2
∑
i
=
1
N
(
b
i
−
a
i
)
2
)
P
[
E
(
X
ˉ
)
−
X
ˉ
≥
t
]
≤
exp
(
−
2
N
2
t
2
∑
i
=
1
N
(
b
i
−
a
i
)
2
)
\begin{aligned} P[\bar{X}-E(\bar{X})\geq t]\leq \exp\left({-\frac{2N^2t^2}{\sum\limits_{i=1}^N(b_i-a_i)^2}}\right)\\ P[E(\bar{X})-\bar{X}\geq t]\leq \exp\left({-\frac{2N^2t^2}{\sum\limits_{i=1}^N(b_i-a_i)^2}}\right) \end{aligned}
P[Xˉ−E(Xˉ)≥t]≤exp⎝⎜⎜⎛−i=1∑N(bi−ai)22N2t2⎠⎟⎟⎞P[E(Xˉ)−Xˉ≥t]≤exp⎝⎜⎜⎛−i=1∑N(bi−ai)22N2t2⎠⎟⎟⎞
在这一问题中,我们将使用0-1损失函数,这意味着对于所有
i
i
i,都有
[
a
i
,
b
i
]
=
[
0
,
1
]
[a_i,b_i]=[0,1]
[ai,bi]=[0,1] ,可得对于
ε
>
0
\varepsilon>0
ε>0,
P
(
R
(
f
)
−
R
^
(
f
)
)
≥
e
−
2
N
ε
2
P(R(f)-\hat{R}(f))\geq e^{-2N\varepsilon ^2}
P(R(f)−R^(f))≥e−2Nε2
因为
F
\mathcal F
F是有限一个集合,故:
P
(
∃
f
∈
F
:
R
(
f
)
−
R
^
(
f
)
≥
ε
)
=
P
(
⋃
f
∈
F
{
R
(
f
)
−
R
^
(
f
)
≥
ε
)
}
≤
∑
f
∈
F
P
(
R
(
f
)
−
R
^
(
f
)
≥
ε
)
≤
d
e
−
2
N
ε
2
\begin{aligned} P(\exist f\in F:R(f)-\hat{R}(f)\geq\varepsilon)&=P(\bigcup_{f\in F}\left\{ R(f)-\hat{R}(f)\geq\varepsilon) \right\}\\ &\leq\sum_{f\in F}P(R(f)-\hat{R}(f)\geq\varepsilon)\\ &\leq de^{-2N\varepsilon^2} \end{aligned}
P(∃f∈F:R(f)−R^(f)≥ε)=P(f∈F⋃{R(f)−R^(f)≥ε)}≤f∈F∑P(R(f)−R^(f)≥ε)≤de−2Nε2
等价地:
P
(
R
(
f
)
<
R
^
(
f
)
+
ε
)
≥
1
−
d
e
−
2
N
ε
2
P(R(f)<\hat{R}(f)+\varepsilon)\geq 1-de^{-2N\varepsilon^2}
P(R(f)<R^(f)+ε)≥1−de−2Nε2
这是我们令:
δ
=
e
−
2
N
ε
2
\delta=e^{-2N\varepsilon^2}
δ=e−2Nε2,可以解得
ε
(
d
,
N
,
δ
)
=
(
log
d
+
log
1
δ
)
2
N
\varepsilon(d,N,\delta)=\sqrt{\frac{(\log{d}+\log{\frac{1}{\delta}})}{2N}}
ε(d,N,δ)=2N(logd+logδ1),此时:
P
(
R
(
f
)
<
R
^
(
f
)
+
ε
)
≥
1
−
δ
P(R(f)<\hat{R}(f)+\varepsilon)\geq1-\delta
P(R(f)<R^(f)+ε)≥1−δ
所以至少以 1 − δ 1-\delta 1−δ的概率, R ( f ) ≤ R ^ ( f ) + ε ( d , N , δ ) R(f)\leq \hat R(f) + \varepsilon(d,N,\delta) R(f)≤R^(f)+ε(d,N,δ)。原问题得证。
模型与算法
算法就是学习中具体的计算方法。机器学习基于训练数据集,根据学习策略,从假设空间中选取最优的模型,然后考虑用什么样的方法求解最优模型,简而言之算法就是一个寻找最优模型的过程,即是一个最优化问题。w
参考资料
-
李航《统计学习方法》第三版。
-
周志华《机器学习》(西瓜书)。
-
b站视频 机器学习西瓜书白话解读: https://www.bilibili.com/video/BV17J411C7zZ?p=2