统计学习方法都是由模型、策略和算法构成的,即统计学习方法由三要素构成,可以简单地表示为:
方
法
=
模
型
+
策
略
+
算
法
方法 = 模型 + 策略 + 算法
方法=模型+策略+算法
下面论述监督学习中的统计学习三要素。非监督学习、强化学习也同样拥有者三要素。可以说构建一种统计学习方法就是确定具体的统计学习的三要素。
1.模型
统计学习首要考虑的问题是学习什么样的模型。在监督学习过程中,模型就是所要学习的条件概率分布或决策函数。
模型的假设空间(hypothesis space)包含所有可能的条件概率分布或决策函数。例如,假设决策函数是输入变量的线性函数,那么模型的假设空间就是所有这些线性函数构成的函数集合。假设空间中的模型一般有无穷多个。
假设空间用
F
\it F
F表示。假设空间可以定义为决策函数的集合:
F
=
{
f
∣
Y
=
f
(
X
)
}
\it F = \lbrace f|Y = f(X) \rbrace
F={f∣Y=f(X)}
其中,
X
X
X和
Y
Y
Y是定义在输入空间
χ
\chi
χ和输出空间
y
\it y
y上的变量。这时
F
\it F
F通常是由一个参数向量决定的函数族。
F
=
{
f
∣
Y
=
f
θ
(
X
)
,
θ
∈
R
n
}
\it F = \lbrace f|Y = f_{\theta}(X),\theta \in \rm R^n\rbrace
F={f∣Y=fθ(X),θ∈Rn}
参数向量
θ
\theta
θ取值于
n
n
n维欧氏空间
R
n
\rm R^n
Rn,称为参数空间(parameter space)。
假设空间也可以定义为条件概率的集合:
F
=
{
P
∣
P
(
Y
∣
X
)
}
\it F = \lbrace P|P(Y|X)\rbrace
F={P∣P(Y∣X)}
其中,
X
X
X和
Y
Y
Y是定义在输入空间
χ
\chi
χ和输出空间
y
\it y
y上的变量。这时
F
\it F
F通常是由一个参数向量决定的条件概率分布族:
F
=
{
P
∣
P
θ
(
Y
∣
X
)
,
θ
∈
R
n
}
\it F = \lbrace P| P_{\theta}(Y|X),\theta \in \rm R^n\rbrace
F={P∣Pθ(Y∣X),θ∈Rn}
参数向量
θ
\theta
θ取值于
n
n
n维欧氏空间
R
n
\rm R^n
Rn,称为参数空间(parameter space)。
由决策函数表示的模型称为非概率模型,由条件概率表示的模型称为概率模型。为方便起见,当论及模型时,有时只用其中一种模型。
2.策略
有了模型的假设空间,统计学习接着需要考虑的是按照什么样的准则学习或选择最优模型。统计学习的目标在于从假设空间中选取最优模型。
首先需要引入的是损失函数和风险函数的概念,损失函数度量模型一次预测的好坏,风险函数度量平均意义下模型预测的好坏。
(1)损失函数和风险函数
监督学习问题是在假设空间
F
\it F
F中选取模型
f
f
f作为决策函数,对于给定的输入
X
X
X,由
f
(
X
)
f(X)
f(X)给出相应的输出
Y
Y
Y,这个输出的预测值
f
(
X
)
f(X)
f(X)与真实值
Y
Y
Y可能一致也可能不一致,用一个损失函数(loss function)或代价函数(cost function)来度量预测错误的程度。损失函数是
f
(
X
)
f(X)
f(X)和
Y
Y
Y的非负实值函数,记作
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))= \begin{cases} 1, & \text { $Y ≠ f(X)$ } \\ 0, & \text{ $Y = f(X)$} \end{cases}
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
,
f
(
X
)
)
=
−
l
o
g
P
(
Y
∣
X
)
L(Y,f(X))= -logP(Y|X)
L(Y,f(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
R_{exp}(f) = E_p[L(Y,f(X))] = \int_{x\times 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
)
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
(
Y
∣
X
)
P(Y|X)
P(Y∣X),也就不需要学习了。正因为不知道联合概率分布,所以才需要学习。这样一来,一方面根据期望风险最小学习模型要用到联合分布,另一方面联合分布又是未知的,所以监督学习就成为一个病态问题(ill-formed problem)。
给定一个训练数据集
T
=
{
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
…
,
(
x
N
,
y
N
)
}
T = \lbrace (x_1,y_1),(x_2,y_2),…,(x_N,y_N) \rbrace
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_{emp}(f) = \frac 1N \sum_{i=1} ^N L(y_i,f(x_i))
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
N
N趋于无穷时,经验风险
R
e
m
p
(
f
)
R_{emp}(f)
Remp(f)趋于期望风险
R
e
x
p
(
f
)
R_{exp}(f)
Rexp(f)。所以一个很自然的想法是用经验风险估计期望风险。但是,**由于现实中训练样本数目有限,甚至很小,所以用经验风险估计期望风险常常并不理想,要对经验风险进行一定的矫正。**这就关系到监督学习的两个基本策略:经验风险最小化和结构风险最小化。
(2)经验风险最小化与结构风险最小化
在假设空间、损失函数以及训练数据集确定的情况下,经验风险函数式就可以确定。经验风险最小化(empirical risk minimization,ERM)的策略认为,经验风险最小的模型是最优的模型。根据这一策略,按照经验风险最小化求最优模型就是最优化问题:
m
i
n
1
N
∑
i
=
1
N
L
(
y
i
,
f
(
x
i
)
)
f
∈
F
min\frac 1N \sum_{i=1} ^N L(y_i,f(x_i)) f \in \it F
minN1i=1∑NL(yi,f(xi))f∈F
其中,
F
\it F
F是假设空间
当样本容量足够大时,经验风险最小化能保证有很好的学习效果,在现实中被广泛采用。比如,极大似然估计(maximum likelihood estimation)就是经验风险最小化的一个例子。当模型时条件概率分布、损失函数是对数损失函数时,经验风险最小化就等价于极大似然估计。
但是,当样本容量很小时,经验风险最小化学习的效果就未必很好,会产生“过拟合”(over-fitting)现象。
结构风险最小化(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_{srm}(f) = \frac 1N \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)为模型的复杂度,是定义在假设空间
F
\it F
F上的泛函。模型
f
f
f越复杂,复杂度
J
(
f
)
J(f)
J(f)就越大;反之,模型
f
f
f越简单,复杂度
J
(
f
)
J(f)
J(f)就越小。也就是说,复杂度表示了对复杂模型的惩罚。
λ
≥
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
)
f
∈
F
min\frac 1N \sum_{i=1} ^N L(y_i,f(x_i)) + \lambda J(f) f \in \it F
minN1i=1∑NL(yi,f(xi))+λJ(f)f∈F
这样,监督学习问题就变成了经验风险或结构风险函数的最优化问题。这时经验或结构风险函数是最优化的目标函数。
3.算法
算法是指学习模型的具体计算方法。统计学习基于训练数据集,根据学习策略,从假设空间中选择最优模型,最后需要考虑用什么样的计算方法求解最优模型。
这时,统计学习问题归结为最优化问题,统计学习的算法成为求解最优化问题的算法。如果最优化问题有显式的解析解,这个最优化问题就比较简单。但通常解析解不存在,这就需要用数值计算的方法求解。如何保证找到全局最优解,并使求解的过程非常高兴,就成为一个重要问题。统计学习可以利用已有的最优化算法,有时也需要开发独自的最优化算法。
统计学习方法之间的不同,主要来自其模型、策略、算法的不同。确定了模型、策略、算法,统计学习的方法也就确定了。这就是将其称为统计学习方法三要素的原因。
生如夏花之绚烂,死如秋叶之静美。