接上一篇文章:DeepLearning深度学习(花书)读书笔记——机器学习基础(二)
目录
5、最大似然估计
估计中的函数应该如何选取才是一个好的估计,最常用的准则是最大似然估计。
考虑一组含有
m
m
m个样本的数据集
X
=
{
x
(
1
)
,
…
,
x
(
m
)
}
\Bbb{X}=\{\bm{x}^{(1)},\dots,\bm{x}^{(m)}\}
X={x(1),…,x(m)},独立的由未知的真实数据生成分布
p
data
(
x
)
p_{\text{data}}(\textbf{x})
pdata(x)生成。令
p
model
(
x
)
p_{\text{model}}(\textbf{x})
pmodel(x)是由参数
θ
\bm{\theta}
θ确定的在同一空间上的一个概率分布的参数集。即
p
model
(
x
)
p_{\text{model}}(\bm{x})
pmodel(x)将任意输入
x
\bm{x}
x映射到实数来估计真实概率
p
data
(
x
)
p_{\text{data}}(\bm{x})
pdata(x)。
对参数
θ
\bm{\theta}
θ的最大似然估计定义为:
θ
ML
=
arg max
θ
p
model
(
X
;
θ
)
=
arg max
θ
∏
i
=
1
m
p
model
(
x
(
i
)
;
θ
)
(5.57)
\bm{\theta}_{\text{ML}}=\argmax_{\bm{\theta}}p_{\text{model}}(\Bbb{X};\bm{\theta}) \\ =\argmax_{\bm{\theta}}\prod_{i=1}^{m}p_{\text{model}}(\bm{x}^{(i)};\bm{\theta}) \tag{5.57}
θML=θargmaxpmodel(X;θ)=θargmaxi=1∏mpmodel(x(i);θ)(5.57)
为了便于计算并且不改变其
arg max
\argmax
argmax形式,可通过似然对数将上面公式中的乘积转化成求和形式:
θ
ML
=
arg max
θ
∑
i
=
1
m
log
p
model
(
x
(
i
)
;
θ
)
(5.58)
\bm{\theta}_{\text{ML}}=\argmax_{\bm{\theta}}\sum_{i=1}^{m}\log{p_{\text{model}}(\bm{x}^{(i)};\bm{\theta})} \tag{5.58}
θML=θargmaxi=1∑mlogpmodel(x(i);θ)(5.58)
同样的,重新缩放代价函数时,
arg max
\argmax
argmax也不会改变,因此,可以除以
m
m
m得到一个和训练数据的经验分布
p
^
data
\hat{p}_{\text{data}}
p^data相关的期望作为标准版本(所有变量之和除以变量的数量,就是其分布的期望):
θ
ML
=
arg max
θ
E
x
∼
p
^
data
[
log
p
model
(
x
;
θ
)
]
(5.59)
\bm{\theta}_{\text{ML}}=\argmax_{\bm{\theta}}\Bbb{E}_{\textbf{x}\sim\hat{p}_{\text{data}}}[\log{p_{\text{model}}(\bm{x};\bm{\theta})}] \tag{5.59}
θML=θargmaxEx∼p^data[logpmodel(x;θ)](5.59)
一种解释最大似然估计的观点是将它看作最小化训练集上的经验分布
p
^
data
\hat{p}_{\text{data}}
p^data和模型分布
p
model
p_{\text{model}}
pmodel之的间差异,两者之间的差异程度可以通过KL散度度量。KL散度定义为:
D
KL
(
p
^
data
∣
∣
p
model
)
=
E
x
∼
p
^
data
[
log
p
^
data
(
x
)
−
log
p
model
(
x
)
]
(5.60)
D_{\text{KL}}(\hat{p}_{\text{data}}||p_{\text{model}})=\Bbb{E}_{\textbf{x}\sim\hat{p}_{\text{data}}}[\log\hat{p}_{\text{data}}(\bm{x})-\log{p_{\text{model}}(\bm{x})}] \tag{5.60}
DKL(p^data∣∣pmodel)=Ex∼p^data[logp^data(x)−logpmodel(x)](5.60)
左边一项仅涉及到数据生成过程,和模型无关。这意味着当通过训练模型来最小化KL散度时,只需要最小化右边的项,即
−
E
x
∼
p
^
data
[
log
p
model
(
x
)
]
(5.61)
-\Bbb{E}_{\textbf{x}\sim\hat{p}_{\text{data}}}[\log{p_{\text{model}}(\bm{x})}] \tag{5.61}
−Ex∼p^data[logpmodel(x)](5.61)
因此,它与式5.59中最大化是相同的。
最小化KL散度其实就是在最小化分布之间的交叉熵。任何一个由负对数似然组成的损失都是定义在训练集上的经验分布和定义在模型上的概率分布之间的交叉熵。例如,均方误差是经验分布和高斯模型之间的交叉熵。
最大似然可以看作是使模型分布尽可能和经验分布
p
^
data
\hat{p}_{\text{data}}
p^data(因为真实分布是未知的)相匹配的尝试。
虽然最优
θ
\bm{\theta}
θ通过最大化似然或是最小化KL散度计算时结果是相同的,但是目标函数的值是不一样的。在软件中通常会将两者都称为最小化损失函数。因此为了保持函数值统一,最大化似然变成了最小化负对数似然(NLL),或者等价成最小化交叉熵。另外,将最大化似然看作最小化KL散度的观点在这个情况下是有帮助的,因为已知KL散度最小值是零,但当
x
\bm{x}
x取实数时,负对数似然可以是负值。
5.1、条件对数似然和均方误差
最大似然估计很容易扩展到估计条件概率
P
(
y
∣
x
;
θ
)
P(\textbf{y}|\textbf{x};\bm{\theta})
P(y∣x;θ),从而给定
x
\textbf{x}
x预测
y
\textbf{y}
y,这构成了监督学习的基础。如果
X
\bm{X}
X表示所有的输入,
Y
\bm{Y}
Y表示观测到的目标,那么条件最大似然估计是
θ
ML
=
arg max
θ
P
(
Y
∣
X
;
θ
)
(5.62)
\bm{\theta}_{\text{ML}}=\argmax_{\bm{\theta}}P(\bm{Y}|\bm{X};\bm{\theta}) \tag{5.62}
θML=θargmaxP(Y∣X;θ)(5.62)
如果假设样本是独立同分布的,则上式可以分解成
θ
ML
=
arg max
θ
∑
i
=
1
m
log
P
(
y
(
i
)
∣
x
(
i
)
;
θ
)
(5.63)
\bm{\theta}_{\text{ML}}=\argmax_{\bm{\theta}}\sum_{i=1}^{m}\log{P(\bm{y}^{(i)}|\bm{x}^{(i)};\bm{\theta})} \tag{5.63}
θML=θargmaxi=1∑mlogP(y(i)∣x(i);θ)(5.63)
示例:线性回归作为最大似然
在1.4节介绍的线性回归,也可以通过最大似然进行预测。之前章节中,利用最小化均方误差学习线性回归从输入 x \bm{x} x映射到输出 y ^ \hat{{y}} y^的算法。现在,以最大似然估计的角度重新审视线性回归。不只是得到一个单独的预测 y ^ \hat{y} y^,并且希望模型能够得到条件概率 p ( y ∣ x ) p(y|\bm{x}) p(y∣x)。在一个无限大的训练集中,通常可能会观测到几个训练样本有相同的输入 x \bm{x} x但是不同的 y y y。现在学习算法的目标是拟合与所有 x \bm{x} x相匹配的不同的 y y y值的分布 p ( y ∣ x ) p(y|\bm{x}) p(y∣x)。为了得到我们之前推导出的相同的线性回归算法,定义 p ( y ∣ x ) = N ( y ; y ^ ( x , w ) , σ 2 ) p(y|\bm{x})=\mathcal{N}(y;\hat{y}(\bm{x,w}),\sigma^2) p(y∣x)=N(y;y^(x,w),σ2)。函数 y ^ ( x , w ) \hat{y}(\bm{x,w}) y^(x,w)给出了高斯分布的均值参数的预测,另外假设方差是用户固定的某个常量 σ 2 \sigma^2 σ2。这种 p ( y ∣ x ) p(y|\bm{x}) p(y∣x)的函数形式会使得最大似然估计得出与之前得到的相同学习算法。由于假设样本是独立同分布的,条件对数似然(式5.63)如下:
∑ i = 1 m log P ( y ( i ) ∣ x ( i ) ; θ ) = − m log σ − m 2 log ( 2 π ) − ∑ i = 1 m ∣ ∣ y ^ ( i ) − y ( i ) ∣ ∣ 2 2 σ 2 (5.65) \sum_{i=1}^{m}\log{P(y^{(i)}|\bm{x}^{(i)};\bm{\theta})} \\ =-m\log\sigma-\frac{m}{2}\log(2\pi)-\sum_{i=1}^{m}\frac{||\hat{y}^{(i)}-y^{(i)}||^2}{2\sigma^2} \tag{5.65} i=1∑mlogP(y(i)∣x(i);θ)=−mlogσ−2mlog(2π)−i=1∑m2σ2∣∣y^(i)−y(i)∣∣2(5.65)
其中, y ^ ( i ) \hat{y}^{(i)} y^(i)是线性回归在第 i i i个输入 x ( i ) \bm{x}^{(i)} x(i)上的输出, m m m是训练样本的数量。对比均方误差和对数似然,
MSE train = 1 m ∑ i = 1 m ∣ ∣ y ^ ( i ) − y ( i ) ∣ ∣ 2 (5.66) \text{MSE}_{\text{train}}=\frac{1}{m}\sum_{i=1}^{m}||\hat{y}^{(i)}-y^{(i)}||^2 \tag{5.66} MSEtrain=m1i=1∑m∣∣y^(i)−y(i)∣∣2(5.66)
可以看出,最大化关于 w \bm{w} w的对数似然和最小化均方误差会得到相同的参数 w \bm{w} w。但是这两个方式在同样的参数下却有不同的值。这难了MSE可以用于最大似然估计。
5.2、最大似然的性质
当样本数目 m → ∞ m\to\infty m→∞时,最大似然估计被证明是就收敛率而言最好的渐近估计。在合适的条件下,最大似然估计具有一致性(参考第4.5节),即当训练样本数目趋向于无限大时,参数的最大似然估计收敛到参数的真实值。具体条件是:
- 真实分布 p ^ data \hat{p}_{\text{data}} p^data必须在模型集 p model ( ⋅ ; θ ) p_{\text{model}}(\cdot;\bm{\theta}) pmodel(⋅;θ)中。否则,没有估计可以表示 p ^ data \hat{p}_{\text{data}} p^data。
- 真实分布 p ^ data \hat{p}_{\text{data}} p^data必须刚好对应一个 θ \theta θ值。否则,最大似然学习恢复出真实分布 p ^ data \hat{p}_{\text{data}} p^data后,也不能决定数据生成过程使用哪个 θ \theta θ。
除了最大似然估计,还有其他的归纳准则,其中许多具有一致估计的性质。然而,一致估计的统计效率(statistic efficiency)可能区别很大。某些一致估计可能会在固定数目的样本上获得一个较低的泛化误差,或者可能只需要较少的样本就能达到一个固定程度的泛化误差。
统计效率通常用于有参情况(parametric case)。有参情况的目标是估计参数值而不是函数值(假设有可能确定真实参数)。一种度量估计值和真实参数相差多少的方法是计算均方误差期望,即计算
m
m
m个从数据生成分布中采样出来的训练样本上的估计参数和真实参数之间差值的平方。有参均方误差估计随着
m
m
m的增加而减少,当
m
m
m较大时,Cramér-Rao下界表明不存在均方误差低于最大似然学习的一致估计。
因为这些原因(一致性和统计效率),最大似然通常是机器学习中的首选估计。当样本数目小到会过拟合时,正则化策略如权重衰减可用于获得训练数据有限时方差较小的最大似然有偏版本。
6、贝叶斯估计
前面章节讨论了频率统计和基于单个参数
θ
\theta
θ值的估计的方法,然后基于该估计做所有的预测。另一种方法是在做预测时会考虑所有可能的参数
θ
\theta
θ,即贝叶斯统计。
频率统计的观点是真实参数
θ
\bm\theta
θ是固定且未知的值,它的点估计
θ
^
\hat{\bm\theta}
θ^是一个由数据集经过函数运算得到的随机变量。而贝叶斯统计的观点完全不同,它用概率来反映知识状态的确定性程度。数据集能被观测到,因此不是随机的。而真实参数
θ
\bm\theta
θ是未知或不确定的,因此可表示成随机变量。
在观察数据前,将
θ
\bm\theta
θ的已知知识表示成先验概率分布
p
(
θ
)
p(\bm\theta)
p(θ)。机器学习中一般会选择一个宽泛的分布来表示在观测到数据前参数
θ
\bm\theta
θ的不确定性。例如假设先验
θ
\bm\theta
θ在有限区间上均匀分布。
假设有一组数据样本
{
x
(
1
)
,
…
,
x
(
m
)
}
\{x^{(1)},\dots,x^{(m)}\}
{x(1),…,x(m)},可以通过贝叶斯规则将数据似然
p
(
x
(
1
)
,
…
,
x
(
m
)
∣
θ
)
p(x^{(1)},\dots,x^{(m)}|\bm\theta)
p(x(1),…,x(m)∣θ)和先验相结合,复原数据对参数
θ
\bm\theta
θ的影响:
p
(
θ
∣
x
(
1
)
,
…
,
x
(
m
)
)
=
p
(
x
(
1
)
,
…
,
x
(
m
)
∣
θ
)
p
(
θ
)
p
(
x
(
1
)
,
…
,
x
(
m
)
)
(5.67)
p(\bm\theta|x^{(1)},\dots,x^{(m)})=\frac{p(x^{(1)},\dots,x^{(m)}|\bm\theta)p(\bm\theta)}{p(x^{(1)},\dots,x^{(m)})} \tag{5.67}
p(θ∣x(1),…,x(m))=p(x(1),…,x(m))p(x(1),…,x(m)∣θ)p(θ)(5.67)
在贝叶斯估计通常使用的情况下,先验开始是相对均匀的分布或高熵的高斯分布,观测数据通常会使后验的熵下降,并集中在参数的几个可能性很高的值。
相对于最大似然估计,贝叶斯估计有两个重要区别。第一,不像最大似然方法预测时使用
θ
\bm\theta
θ的点估计,贝叶斯方法预测
θ
\bm\theta
θ的全分布。例如,在观测到
m
m
m个样本后,下一个数据样本
x
(
m
+
1
)
x^{(m+1)}
x(m+1)的预测分布如下:
p
(
x
(
m
+
1
)
∣
x
(
1
)
,
…
,
x
(
m
)
)
=
∫
p
(
x
(
m
+
1
)
∣
θ
)
p
(
θ
∣
x
(
1
)
,
…
,
x
(
m
)
)
d
θ
(5.68)
p(x^{(m+1)}|x^{(1)},\dots,x^{(m)})={\int}p(x^{(m+1)}|\bm\theta)p(\bm\theta|x^{(1)},\dots,x^{(m)})d\bm\theta \tag{5.68}
p(x(m+1)∣x(1),…,x(m))=∫p(x(m+1)∣θ)p(θ∣x(1),…,x(m))dθ(5.68)
其中,每一个具有正概率密度的
θ
\bm\theta
θ值都参与了下一个样本的预测,每个
θ
\bm\theta
θ值的作用大小由它自身的后验概率密度作为权值确定。在观测到数据本
{
x
(
1
)
,
…
,
x
(
m
)
}
\{x^{(1)},\dots,x^{(m)}\}
{x(1),…,x(m)}之后,如果我们仍然非常不确定
θ
\bm\theta
θ的值,那么这个不确定性会直接包含在我们所做的任何预测中。
频率统计方法中解决参数
θ
\bm\theta
θ的点估计不确定性的方法是评估它的方差,估计的方差评估了观测数据重新从观测数据中采样后可能会如何变化。贝叶斯统计方法中处理估计不确定性问题的方式是积分,这样做还可以防止过拟合。当然,积分只是概率法则的一个应用,而频率统计机器学习构建了一个将数据集里的所有信息归纳到一起的点估计。
贝叶斯方法和最大似然方法的第二个最大区别是由贝叶斯先验分布造成的。先验能够影响概率质量密度朝参数空间中偏好先验的区域偏移。实践中,先验通常表现为偏好更简单或更光滑的模型。对贝叶斯方法的批判观点认为先验是人为主观判断影响预测的来源。
当训练数据很有限时,贝叶斯方法通常泛化得更好,但是当训练样本数目很大时,通常会有很高的计算代价。
示例:贝叶斯线性回归
在本例中使用贝叶斯估计方法学习线性回归参数。在线性回归中,学习从输入向量 x ∈ R n \bm{x}\in\R^n x∈Rn预测标量 y ∈ R y\in\R y∈R的线性映射。则该预测由向量 w ∈ R n \bm{w}\in\R^n w∈Rn参数化:
y ^ = w ⊤ x (5.69) \hat{y}=\bm{w^{\top}x} \tag{5.69} y^=w⊤x(5.69)
给定一组训练样本 ( X ( t r a i n ) , y ( t r a i n ) ) (\bm{X^{(train)},y^{(train)}}) (X(train),y(train)),则整个训练集对 y y y的预测表示为:
y ^ ( t r a i n ) = X ( t r a i n ) w (5.70) \hat{\bm{y}}^{(train)}=\bm{X}^{(train)}\bm{w} \tag{5.70} y^(train)=X(train)w(5.70)
将其表示为 y ( t r a i n ) {\bm{y}}^{(train)} y(train)上的高斯条件分布,则有
p ( y ( t r a i n ) ∣ X ( t r a i n ) , w ) = N ( y ( t r a i n ) ; X ( t r a i n ) w , I ) ∝ exp ( − 1 2 ( y ( t r a i n ) − X ( t r a i n ) w ) ⊤ ( y ( t r a i n ) − X ( t r a i n ) w ) ) (5.72) \begin{array}{rl} p({\bm{y}}^{(train)}|\bm{X}^{(train)},\bm{w})&=\mathcal{N}({\bm{y}}^{(train)};\bm{X}^{(train)}\bm{w},\bm{I}) \\\\ &\propto\exp\Big(-\frac{1}{2}({\bm{y}}^{(train)}-\bm{X}^{(train)}\bm{w})^\top({\bm{y}}^{(train)}-\bm{X}^{(train)}\bm{w})\Big) \end{array} \tag{5.72} p(y(train)∣X(train),w)=N(y(train);X(train)w,I)∝exp(−21(y(train)−X(train)w)⊤(y(train)−X(train)w))(5.72)
其中,根据标准的MSE公式假设 y y y上的高斯方差为 1 1 1。另外,可以将 ( X ( t r a i n ) , y ( t r a i n ) ) (\bm{X^{(train)},y^{(train)}}) (X(train),y(train))简化写为 ( X , y ) (\bm{X,y}) (X,y)。
为确定参数向量 w \bm{w} w的后验分布,需要先指定一个先验分布(这个先验应当反应出我们对模型参数取值的信念(belief),另外,虽然将先验信念用作模型参数是困难或不自然的,但是通常仍会采用一个宽泛的分布来表示参数的不确定性)。实值参数通常用高斯分布作为先验分布:
p ( w ) = N ( w ; μ 0 , Λ 0 ) ∝ exp ( − 1 2 ( w − μ 0 ) ⊤ Λ 0 − 1 ( w − μ 0 ) ) (5.73) p(\bm{w})=\mathcal{N}(\bm{w};\bm{\mu}_0,\bm{\Lambda}_0)\propto\exp\Big(-\frac{1}{2}({\bm{w}}-\bm{\mu}_0)^\top\bm\Lambda_0^{-1}({\bm{w}}-\bm{\mu}_0)\Big) \tag{5.73} p(w)=N(w;μ0,Λ0)∝exp(−21(w−μ0)⊤Λ0−1(w−μ0))(5.73)
其中, μ 0 \bm{\mu}_0 μ0和 Λ 0 \bm\Lambda_0 Λ0分别是先验分布的均值和协方差矩阵。
确定好先验后,可以继续确定模型参数的后验分布:
p ( w ∣ X , y ) ∝ p ( y ∣ X , w ) p ( w ) ∝ exp ( − 1 2 ( y − X w ) ⊤ ( y − X w ) ) exp ( − 1 2 ( w − μ 0 ) ⊤ Λ 0 − 1 ( w − μ 0 ) ) ∝ exp ( − 1 2 ( − 2 y ⊤ X w + w ⊤ X ⊤ X w + w ⊤ Λ 0 − 1 w − 2 μ 0 ⊤ Λ 0 − 1 w ) ) (5.76) \begin{array}{rl} p(\bm{w}|\bm{X,y})&\propto{p(\bm{y}|\bm{X,w})p(\bm{w})} \\\\ &\propto\exp\Big(-\frac{1}{2}({\bm{y}}-\bm{Xw})^\top({\bm{y}}-\bm{Xw})\Big)\exp\Big(-\frac{1}{2}({\bm{w}}-\bm{\mu}_0)^\top\bm\Lambda_0^{-1}({\bm{w}}-\bm{\mu}_0)\Big) \\\\ &\propto\exp\Big(-\frac{1}{2}\big(-2\bm{y}^{\top}\bm{Xw}+\bm{w}^{\top}\bm{X}^{\top}\bm{Xw}+\bm{w}^{\top}\bm\Lambda_0^{-1}\bm{w}-2\bm{\mu}_{0}^{\top}\bm\Lambda_0^{-1}\bm{w}\big)\Big) \end{array} \tag{5.76} p(w∣X,y)∝p(y∣X,w)p(w)∝exp(−21(y−Xw)⊤(y−Xw))exp(−21(w−μ0)⊤Λ0−1(w−μ0))∝exp(−21(−2y⊤Xw+w⊤X⊤Xw+w⊤Λ0−1w−2μ0⊤Λ0−1w))(5.76)
定义 Λ m = ( X ⊤ X + Λ 0 − 1 ) − 1 \bm{\Lambda_m=(\bm{X}^{\top}\bm{X}+\bm{\Lambda_0^{-1}})^{-1}} Λm=(X⊤X+Λ0−1)−1和 μ m = Λ m ( X ⊤ y + Λ 0 − 1 μ 0 ) \bm{\mu_m=\Lambda_m(X^{\top}y+\Lambda_0^{-1}\mu_0)} μm=Λm(X⊤y+Λ0−1μ0),则后验概率可改写为高斯分布:
p ( w ∣ X , y ) ∝ exp ( − 1 2 ( w − μ m ) ⊤ Λ m − 1 ( w − μ m ) + 1 2 μ m ⊤ Λ m − 1 μ m ) ∝ exp ( − 1 2 ( w − μ m ) ⊤ Λ m − 1 ( w − μ m ) ) (5.78) \begin{array}{rl} p(\bm{w}|\bm{X,y})&\propto\exp\Big(-\frac{1}{2}({\bm{w}}-\bm{\mu}_m)^\top\bm\Lambda_m^{-1}({\bm{w}}-\bm{\mu}_m)+\frac{1}{2}\bm{\mu}_m^\top\bm\Lambda_m^{-1}\bm{\mu}_m\Big) \\\\ &\propto\exp\Big(-\frac{1}{2}({\bm{w}}-\bm{\mu}_m)^\top\bm\Lambda_m^{-1}({\bm{w}}-\bm{\mu}_m)\Big) \end{array} \tag{5.78} p(w∣X,y)∝exp(−21(w−μm)⊤Λm−1(w−μm)+21μm⊤Λm−1μm)∝exp(−21(w−μm)⊤Λm−1(w−μm))(5.78)
分布的积分必须归一这个事实意味着要删去所有不包括参数向量 w \bm{w} w的项。
大多数情况下,我们设置 μ 0 = 0 \mu_0=0 μ0=0。如果设置 Λ 0 = 1 α I \bm{\Lambda}_0=\frac{1}{\alpha}\bm{I} Λ0=α1I,那么 μ m \mu_m μm对 w \bm{w} w的估计就和频率派带权重衰减惩罚 α w ⊤ w \alpha\bm{w^{\top}w} αw⊤w的线性回归的估计是一样的。一个区别是若 α \alpha α设为 0 0 0则贝叶斯估计是未定义的,因为不能将贝叶斯学习过程初始化为一个无限宽的 w \bm{w} w先验。更重要的区别是贝叶斯估计会给出一个协方差矩阵,表示 w \bm{w} w所有不同值的可能范围,而不仅是估计 μ m \mu_m μm。
6.1、最大后验(MAP)估计
虽然应该使用参数
θ
\bm\theta
θ的完整贝叶斯后验分布进行预测,但是由于大多数贝叶斯后验的计算很难实现,因此通常采用点估计来获得一个可行的近似解。但是并不是简单的回到最大似然估计,而是通过最大后验(MAP)点估计的方式,仍然可以让先验影响点估计的选择,从而利用贝叶斯方法的优点。MAP估计选择后验概率最大的点(在
θ
\bm\theta
θ时连续值时,选择概率密度最大的点):
θ
MAP
=
arg max
θ
p
(
θ
∣
x
)
=
arg max
θ
log
p
(
x
∣
θ
)
+
log
p
(
θ
)
(5.79)
\bm\theta_{\text{MAP}}=\argmax_{\bm\theta}p(\bm\theta|\bm{x})=\argmax_{\bm\theta}\log{p(\bm{x}|\bm\theta)}+\log{p(\bm\theta)} \tag{5.79}
θMAP=θargmaxp(θ∣x)=θargmaxlogp(x∣θ)+logp(θ)(5.79)
其中,右边的
log
p
(
x
∣
θ
)
\log{p(\bm{x}|\bm\theta)}
logp(x∣θ)对应着标准的对数似然项,
log
p
(
θ
)
\log{p(\bm\theta)}
logp(θ)对应着先验分布。
例如,一个具有高斯先验权重
w
\bm{w}
w的线性回归模型。如果先验是
N
(
w
;
0
,
1
λ
I
2
)
\mathcal{N}(\bm{w};0,\frac{1}{\lambda}\bm{I}^2)
N(w;0,λ1I2),那么式 5.79的对数先验项
log
p
(
θ
)
\log{p(\bm\theta)}
logp(θ)正比于熟悉的权重衰减惩罚
λ
w
⊤
w
\lambda\bm{w^{\top}w}
λw⊤w,加上一个不依赖于
w
\bm{w}
w也不会影响学习过程的项
log
p
(
x
∣
θ
)
\log{p(\bm{x}|\bm\theta)}
logp(x∣θ)。因此,具有高斯先验权重的MAP贝叶斯推断对应着权重衰减。
MAP贝叶斯推断的优势是能够利用来自先验的无法从训练数据中获得的信息。该附加信息有助于减少最大后验点估计的方差(相比于ML估计)。然而,这个优点的代价是增加了偏差。
许多正规化估计方法(例如权重衰减正则化的最大似然学习)可以被解释为贝叶斯推断的MAP近似。这个观点适应于正则化时加到目标函数的附加项对应着
log
p
(
θ
)
\log{p(\bm\theta)}
logp(θ)的情形。因此并非所有的正则化惩罚都对应着MAP贝叶斯推断。例如,有些正则化项可能不是一个概率分布的对数。还有些正则化项依赖于数据,当然也不会是一个先验概率分布。
MAP贝叶斯推断提供了一个直观的方法来设计复杂但可解释的正则化项。例如,更复杂的惩罚项可以通过混合高斯分布作为先验得到,而不是一个单独的高斯分布。
7、监督学习算法
监督学习算法是给定一组输入 x \bm{x} x和输出 y \bm{y} y的训练集,学习如何关联输入和输出。许多情况下,输出 y \bm{y} y必须由人来提供“监督”。通俗的讲,监督学习就是事先告知输入的是什么,即数据有标签,由机器来学习输入到输出之间的关系。
7.1、概率监督学习
大部分监督学习算法都是基于估计概率分布
p
(
y
∣
x
)
p(y|\bm{x})
p(y∣x)的。可以采用最大似然估计找到对于有参分布族
p
(
y
∣
x
;
θ
)
p(y|\bm{x;\theta})
p(y∣x;θ)的最好的向量参数
θ
\bm{\theta}
θ。
在前面章节中已经学习了线性回归对应的分布族是
p
(
y
∣
x
;
θ
)
=
N
(
y
;
θ
⊤
x
,
I
)
(5.80)
p(y|\bm{x;\theta})=\mathcal{N}(y;\bm{\theta^{\top}x,I}) \tag{5.80}
p(y∣x;θ)=N(y;θ⊤x,I)(5.80)
可以通过修改分布族的定义将线性回归扩展到分类情况中。
1、假设只有两个类别,类
0
0
0和类
1
1
1,那么只需要指定其中之一的概率。因为两个类别概率之和为
1
1
1。
2、线性回归的正太分布是用均值参数化的,此时均值的任何值都是有效的。但是二元变量上的分布要求其均值始终在
0
0
0和
1
1
1之间。
上述修改方案可以通过使用logistic sigmoid函数来满足,该函数将线性函数的输出压缩到区间
(
0
,
1
)
(0,1)
(0,1)内,且该值可以定义为概率:
p
(
y
=
1
∣
x
;
θ
)
=
σ
(
θ
⊤
x
)
(5.81)
p(y=1|\bm{x;\theta})=\sigma(\bm{\theta^{\top}x}) \tag{5.81}
p(y=1∣x;θ)=σ(θ⊤x)(5.81)
这个方法被称为逻辑回归。
线性回归中,可以通过求解正规方程找到最佳权重。但是逻辑回归中,最佳权重没有闭解,因此采用梯度下降法最小化负对数似然(NLL)来搜索最优值。
通过在正确的输入和输出变量上确定一个有参条件概率分布族,这种相同的策略,基本上可以应用于解决任何监督学习问题。
7.2、支持向量机
支持向量机类似于逻辑回归,不同的是它不输出概率,只输出类别。支持向量机一个重要的创新是核技巧。它的意义在于对于在输入样本的低维空间中难以学习的非线性模型,可以用一个核函数对所有的输入进行预处理,然后在转换后的新的高维空间中学习线性模型。具体的原理可以用一个示例说明。
示例:线性函数的核技巧应用
核技巧观察到许多机器学习算法都可以写成样本间的点积的形式,例如,线性函数在支持向量机中可以将其重写为(公式可由约束最小化问题根据拉格朗日乘子和KKT条件推导得到,且书中有错误):
w ⊤ x + b = ∑ i = 1 m α i y i x ( i ) ⊤ x + b (5.82) \bm{w^{\top}x}+b = \sum_{i=1}^{m}\alpha_{i}y_i{\bm{x}^{(i)}}^{\top}\bm{x}+b \tag{5.82} w⊤x+b=i=1∑mαiyix(i)⊤x+b(5.82)
其中, x ( i ) \bm{x}^{(i)} x(i)是第 i i i个训练样本, α i \alpha_i αi是第 i i i个训练样本对应的系数向量, y i y_i yi是第 i i i个训练样本对应的标签, x \bm{x} x是训练样本的集合表示(即 y = w ⊤ x + b \bm{y}=\bm{w^{\top}x}+b y=w⊤x+b和 y j = w ⊤ x j + b y_j=\bm{w^{\top}}x_j+b yj=w⊤xj+b的关系)。通过这种方式重写学习算法时,允许将 x \bm{x} x替换为特征函数 ϕ ( x ) \phi(\bm{x}) ϕ(x),则 x ( i ) ⊤ x {\bm{x}^{(i)}}^{\top}\bm{x} x(i)⊤x的点积运算可替换为核函数 k ( x ( i ) , x ) = ϕ ( x ( i ) ) ⋅ ϕ ( x ) k(\bm{x}^{(i)},\bm{x})=\phi(\bm{x}^{(i)})\cdot\phi(\bm{x}) k(x(i),x)=ϕ(x(i))⋅ϕ(x)。运算符 ⋅ \cdot ⋅表示 ϕ ( x ( i ) ) ⊤ ϕ ( x ) \phi(\bm{x^{(i)}})^{\top}\phi(\bm{x}) ϕ(x(i))⊤ϕ(x)的内积。
通过采用核技巧,可以使用如下函数进行预测
f ( x ) = b + ∑ i α i y i k ( x ( i ) , x ) (5.83) f(\bm{x}) = b + \sum_{i}\alpha_{i}y_ik(\bm{x}^{(i)},\bm{x}) \tag{5.83} f(x)=b+i∑αiyik(x(i),x)(5.83)
上式中函数 f ( x ) f(\bm{x}) f(x)关于 x \bm{x} x是非线性的,但是关于 ϕ ( x ) \phi(\bm{x}) ϕ(x)是线性的。 f ( x ) f(\bm{x}) f(x)和 α \bm\alpha α之间也是线性的。核函数等价于用 ϕ x \phi{\bm{x}} ϕx预处理所有输入,然后在新的转换空间学习线性模型。
核技巧的强大有两个原因:一是,它使我们能够使用保证有效收敛的凸优化技术来学习非线性模型(因为优化算法可以将决策函数视为不同空间中的线性函数,即假定
ϕ
\phi
ϕ是固定的,仅优化
α
\bm\alpha
α)。二是,核函数
k
k
k的实现方法通常比直接构建
ϕ
(
x
)
\phi(\bm{x})
ϕ(x)再计算点积高效很多。
某些情况下,
ϕ
(
x
)
\phi(\bm{x})
ϕ(x)甚至可以是无限维的,从而无法用显示方法进行计算。但在很多情况下,即使
ϕ
(
x
)
\phi(\bm{x})
ϕ(x)很难算,
k
(
x
,
x
′
)
k(\bm{x},\bm{x}^{\prime})
k(x,x′)却会是一个关于
x
\bm{x}
x的非线性的、易算的函数。这样,我们可以直接设计核函数
k
(
x
,
x
′
)
k(\bm{x},\bm{x}^{\prime})
k(x,x′)而不用考虑
ϕ
(
x
)
\phi(\bm{x})
ϕ(x)。
最常用的核函数是高斯核:
k
(
u
,
v
)
=
N
(
u
−
v
;
0
,
σ
2
I
)
(5.84)
k(\bm{u,v})=\mathcal{N}(\bm{u-v;0},\sigma^{2}I) \tag{5.84}
k(u,v)=N(u−v;0,σ2I)(5.84)
其中,
N
(
x
;
μ
,
Σ
)
\mathcal{N}(x;\bm{\mu,\Sigma})
N(x;μ,Σ)是标准正态密度,这个核也被称为径向基函数(RBF)核,因为其值沿
v
\bm{v}
v中从
u
\bm{u}
u向外辐射的方向减小。
在算法模型中应用高斯核可以被看作在执行一种特殊的模板匹配。与训练标签
y
j
y_j
yj相关的训练样本
x
(
j
)
\bm{x}^{(j)}
x(j)变成了类别
y
j
y_j
yj的模板。当测试点
x
′
\bm{x}^{\prime}
x′到
x
(
j
)
\bm{x}^{(j)}
x(j)的欧氏距离很小,对应的高斯核响应很大时,表明
x
′
\bm{x}^{\prime}
x′和模板
x
(
j
)
\bm{x}^{(j)}
x(j)非常相似,此时模型会赋予相对应的训练标签
y
j
y_j
yj较大的权重。总体来说,模型预测的结果是很多这种带有相似度加权的训练标签的组合
y
^
=
∑
j
=
1
m
y
j
\hat{y}=\sum_{j=1}^my_j
y^=∑j=1myj。
除支持向量机,许多其它线性模型也可以通过这种方式来增强。使用核技巧的算法类别被称为核机器或核方法。它们的一个主要缺点是计算决策函数的成本关于训练样本的数目是线性的。这是因为每个样本
i
i
i都会对决策函数有一个贡献
α
i
k
(
x
,
x
(
i
)
)
\alpha_{i}k(\bm{x},\bm{x}^{(i)})
αik(x,x(i))。在支持向量机中,能够通过学习得到一个主要包含零的向量
α
\bm\alpha
α来缓和这个缺点,但并不能完全避免。此时,判断新样本类别时仅需要计算非零
α
i
\alpha_i
αi对应的训练样本的核函数,这些非零
α
i
\alpha_i
αi对应的训练样本被称为支持向量。
7.3、其它简单的监督学习算法
最近邻算法
最近邻算法一般也称作k-最近邻算法,它是一种非概率监督学习算法,可用于分类或回归。它是一种非参数学习算法,不具备真正的训练阶段和学习过程,仅是使用训练数据的简单函数。
在测试阶段,当对新的输入
x
\bm{x}
x进行预测从而得到
y
y
y时,需要在训练数据
X
\bm{X}
X上找到
x
\bm{x}
x的k-最近邻,然后计算训练集上对应的
y
y
y值的平均值作为预测结果。它适用于任何类型的可以计算
y
y
y值平均值的监督学习。
k-最近邻的高容量使其在训练样本数目大时能够获取较高的精度。然而,它的计算成本很高。另外,在训练集较小时泛化能力很差。k-最近邻的一个弱点是它不能学习出哪一个特征比其他特征更具识别力。
决策树
决策树及其变种是另一类将输入空间分成不同的区域,每个区域有独立参数的算法。决策树的每个节点都与输入空间的一个区域相关联,并且内部节点继续将区域分成子节点下的子区域。空间由此细分成不重叠的区域,叶节点和输入区域之间形成一一对应的关系。每个叶节点将其输入区域的点映射到相同的输出。决策树通常有特定的训练算法。由于决策树通常使用坐标轴相关的拆分,并且每个子节点关联到常数输出,因此,有时解决一些对于逻辑回归很简单的问题时会很费力。