有监督参数估计是指已知分类器结构或函数形式,从训练样本中估计参数。
本文主要介绍贝叶斯决策(详见贝叶斯决策的过程)条件概率密度的有监督参数估计过程。方法有最大似然估计和贝叶斯参数估计法。
最大似然估计
假设参数为确定值,根据似然度最大进行最优估计。
给定数据
D
1
,
D
2
.
.
.
D
c
D_1,D_2...D_c
D1,D2...Dc表示不同类别的样本。假设每类样本独立同分布(i.i.d. 万年不变的假设),用
D
i
D_i
Di来估计
θ
i
θ_i
θi,即对每个类求一个判别函数,用该类的样本来估计判别函数的参数。
注意区分特征空间和参数空间。参数估计的任务是得到
p
(
x
∣
w
i
)
p(x|w_i)
p(x∣wi)的形式,是在参数空间进行的。不妨设特征空间为d维,参数空间p维。
为了估计参数,需要如下几个步骤:
- 求似然(Likelihood)
p
(
D
∣
θ
)
=
∏
k
=
1
n
p
(
x
k
∣
θ
)
p(D|θ) =\prod_{k=1}^{n}p(x_k|θ)
p(D∣θ)=k=1∏np(xk∣θ)
注意,上面这个式子针对的已经是具体的类别 w i w_i wi了,不要问 w w w参数去哪了。另外,这里的n代表样本数目,要和前面的类别数目c区分开。这个式子很好理解,即出现我们当前观测到的样本概率,求使它最大化的参数即可。 - 最大化似然
max
θ
p
(
D
∣
θ
)
→
▽
θ
p
(
D
∣
θ
)
=
0
\max_θp(D|θ)→▽_θp(D|θ)=0
θmaxp(D∣θ)→▽θp(D∣θ)=0
这个梯度是在p维参数空间求解,即 ▽ θ p = [ ∂ ∂ θ 1 . . . . . . ∂ ∂ θ p ] ▽_θp= \begin{bmatrix} \frac{\partial}{\partialθ_1}\\ ...\\ ...\\ \frac{\partial}{\partialθ_p} \end{bmatrix} ▽θp=⎣⎢⎢⎡∂θ1∂......∂θp∂⎦⎥⎥⎤ - 求解梯度。可求解析解或梯度下降。(常用Log-Likelihood,易求解)
当先验 P ( θ ) P(\theta) P(θ)都相等时等同于最大后验概率(MAP)决策。
高斯密度最大似然估计
以贝叶斯决策过程里给出的高斯密度假设为例,对它进行最大似然参数估计。首先假设 σ \sigma σ已知,对 μ \mu μ进行估计。
单点情况:
对于所有样本:
估计值即为观测样本均值。
再来看
μ
\mu
μ和
σ
\sigma
σ都未知的情况。设数据服从一维高斯分布,
θ
1
=
μ
\theta_1=\mu
θ1=μ,
θ
2
=
σ
2
\theta_2=\sigma^2
θ2=σ2:
令梯度等于0可求得:
μ
^
=
1
n
∑
k
=
1
n
x
k
\hat{μ}=\frac{1}{n}\sum_{k=1}^nx_k
μ^=n1k=1∑nxk
σ
^
2
=
1
n
∑
k
=
1
n
(
x
k
−
μ
^
)
2
\hat{σ}^2=\frac1{n}\sum_{k=1}^n(x_k-\hat{μ})^2
σ^2=n1k=1∑n(xk−μ^)2
多维情况,
θ
2
=
Σ
\theta_2=\Sigma
θ2=Σ:
μ
^
=
1
n
∑
k
=
1
n
x
k
\hat{μ}=\frac{1}{n}\sum_{k=1}^nx_k
μ^=n1k=1∑nxk
Σ
^
=
1
n
∑
k
=
1
n
(
x
k
−
μ
^
)
(
x
k
−
μ
^
)
T
\hat{\Sigma}=\frac1{n}\sum_{k=1}^n(x_k-\hat{μ})(x_k-\hat{μ})^T
Σ^=n1k=1∑n(xk−μ^)(xk−μ^)T
估计结果类似无偏估计。
贝叶斯参数估计
参数被视为随机变量,估计其后验分布
我们先来简化一下贝叶斯决策的条件概率密度形式。考虑训练样本对分类决策的影响,后验概率可写作:
首先由于先验概率一般可以事先得到,因此通常不考虑样本对它的影响。其次,我们使用的是有监督学习,训练样本自然都会分到各自所属的类中。基于这两点可简化公式,得到公式一:
由此我们需处理的其实是c个独立的问题,那么条件概率密度可简写成c个 P ( x ∣ D ) P(x|D) P(x∣D),分别对它们进行估计。
下面引出参数分布估计的过程。假定参数形式已知,即已知
p
(
x
∣
θ
)
p(x|θ)
p(x∣θ),为求
p
(
x
∣
D
)
p(x|D)
p(x∣D):
p
(
x
∣
D
)
=
∫
p
(
x
,
θ
∣
D
)
d
θ
=
∫
p
(
x
∣
θ
,
D
)
p
(
θ
∣
D
)
d
θ
p(x|D)=\int{p(x,θ|D)}dθ \\ \qquad\qquad \qquad=\int{p(x|θ,D)p(θ|D)dθ}
p(x∣D)=∫p(x,θ∣D)dθ=∫p(x∣θ,D)p(θ∣D)dθ
由于测试样本x(观测样本)和训练样本D的选取是独立的,因此可写成公式二:
p
(
x
∣
D
)
=
∫
p
(
x
∣
θ
)
p
(
θ
∣
D
)
d
θ
\quad p(x|D)=\int{p(x|θ)p(θ|D)dθ}
p(x∣D)=∫p(x∣θ)p(θ∣D)dθ样本独立性是《模式分类第二版》里对这步变换做出的解释。对这一部分说一下我的理解。按书里说的x与D相互独立,那p(x|D)其实直接就可以简写成p(x),且
p
(
θ
)
p(\theta)
p(θ)也假定已知(后面会说),直接
p
(
x
)
=
∫
p
(
x
∣
θ
)
p
(
θ
)
d
θ
\quad p(x)=\int{p(x|θ)p(θ)dθ}
p(x)=∫p(x∣θ)p(θ)dθ不就能求了,为什么非要对条件概率密度引入D呢?
其实这样做的目的就是为了强行引入
p
(
θ
∣
D
)
p(\theta|D)
p(θ∣D)。别忘了
p
(
x
∣
D
)
p(x|D)
p(x∣D)实际上是
p
(
x
∣
ω
,
D
)
p(x|\omega,D)
p(x∣ω,D),来自公式一。回顾一下公式一引入D的原因,是尽可能地利用已有的全部信息来估计后验概率
p
(
ω
∣
x
)
p(\omega|x)
p(ω∣x),对
p
(
x
∣
D
)
p(x|D)
p(x∣D)也是这样。即便训练样本对观测值x没有影响,但我们希望再引入一个受样本影响的reproducing density
p
(
θ
∣
D
)
p(\theta|D)
p(θ∣D),让它影响类条件概率的分布。其实相当于重新构造了一个先验,并希望
p
(
θ
∣
D
)
p(\theta|D)
p(θ∣D)在
θ
\theta
θ的真实值附近有显著的尖峰(sharp)。通常可以用这个sharp逼近的
θ
^
\hat\theta
θ^来替代真实值,有
p
(
x
∣
D
)
≈
p
(
x
∣
θ
^
)
p(x|D) ≈ p(x|\hat\theta)
p(x∣D)≈p(x∣θ^)。如果估计值的置信度不高(用高斯分布来说即方差较大,sharp不明显。后面会说),也可以按
p
(
θ
∣
D
)
p(\theta|D)
p(θ∣D)对
θ
\theta
θ进行采样,带入
p
(
x
∣
θ
)
p(x|\theta)
p(x∣θ)求平均:
总结一下,公式一和公式二是贝叶斯决策和参数估计的两个核心部分。尤其是公式二,我们希望把 p ( x ∣ D ) p(x|D) p(x∣D)和 p ( θ ∣ D ) p(θ|D) p(θ∣D)联系起来,那么已有的训练样本就能通过 p ( θ ∣ D ) p(θ|D) p(θ∣D)对 p ( x ∣ D ) p(x|D) p(x∣D)施加影响。至此我们已经把有监督学习问题(原始分类问题)转换成了一个无监督的概率密度预测问题(估计 p ( θ ∣ D ) p(θ|D) p(θ∣D))。
高斯密度贝叶斯估计
对高斯密度假设进行贝叶斯参数估计。
考虑一维情况。
p
(
x
∣
μ
)
∼
N
(
μ
,
σ
2
)
p(x|\mu)\sim N(μ,σ^2)
p(x∣μ)∼N(μ,σ2),假设
σ
2
σ^2
σ2已知,为了预测
p
(
μ
∣
D
)
p(μ|D)
p(μ∣D),写成:
p
(
μ
∣
D
)
=
p
(
D
∣
μ
)
p
(
μ
)
∫
p
(
D
∣
μ
)
p
(
μ
)
d
μ
p(μ|D)=\frac{p(D|μ)p(μ)}{\int{p(D|μ)p(μ)dμ}}
p(μ∣D)=∫p(D∣μ)p(μ)dμp(D∣μ)p(μ)
由于
p
(
D
∣
μ
)
=
∏
k
=
1
n
p
(
x
k
∣
μ
)
p(D|\mu)=\prod_{k=1}^np(x_k|μ)
p(D∣μ)=∏k=1np(xk∣μ),则
p
(
μ
∣
D
)
=
α
∏
k
=
1
n
p
(
x
k
∣
μ
)
p
(
μ
)
p(μ|D)=\alpha\prod_{k=1}^np(x_k|μ)p(μ)
p(μ∣D)=αk=1∏np(xk∣μ)p(μ)
α
\alpha
α是原式分母,作为常数项。
假设 p ( μ ) ∼ N ( μ 0 , σ 0 2 ) p(μ)\sim N(μ_0,σ_0^2) p(μ)∼N(μ0,σ02), μ 0 \mu_0 μ0和 σ 0 2 \sigma_0^2 σ02已知。可以把 μ 0 \mu_0 μ0看作对 μ \mu μ的先验估计, σ 0 2 \sigma_0^2 σ02看作估计的不确定程度。做正态分布假设只是为了简化后面的数学运算。这一步的重点在于在参数估计过程中我们是已知参数先验概率密度 p ( μ ) p(\mu) p(μ)的。
公式展开:
与μ无关的因子都被归入
α
\alpha
α中。可见
p
(
μ
∣
D
)
p(μ|D)
p(μ∣D)仍符合高斯分布,对照标准形式
p
(
μ
∣
D
)
=
1
2
π
σ
n
e
x
p
(
−
1
2
(
μ
−
μ
n
)
2
σ
n
2
)
p(μ|D)=\frac{1}{\sqrt{2\pi}σ_n}exp(-\frac{1}{2}\frac{(\mu-μ_n)^2}{σ_n^2})
p(μ∣D)=2πσn1exp(−21σn2(μ−μn)2)可得
到目前为止,已经把先验知识
p
(
μ
)
p(\mu)
p(μ)和训练样本信息
μ
^
n
\hat\mu_n
μ^n结合在一起,估计出了后验概率
p
(
μ
∣
D
)
p(\mu|D)
p(μ∣D)。把结果直观地写在一起:
在这个结果中,
μ
n
\mu_n
μn表示在观测到n个样本后,对参数
μ
\mu
μ真实值的最好估计,
σ
n
2
\sigma_n^2
σn2则代表这个估计的不确定性(前面对先验假设也是这么解释的,理解一下高斯分布对参数估计的理论意义)。
σ
n
2
\sigma_n^2
σn2随着n的增大而减小,即增加训练样本后,对
μ
\mu
μ真实估计的置信度将逐渐提高,呈现一个sharp。这样的过程称为贝叶斯学习过程。
将
p
(
μ
∣
D
)
p(\mu|D)
p(μ∣D)代入
p
(
x
∣
D
)
=
∫
p
(
x
∣
μ
)
p
(
μ
∣
D
)
d
μ
p(x|D)=\int{p(x|μ)p(μ|D)dμ}
p(x∣D)=∫p(x∣μ)p(μ∣D)dμ
得出
p
(
x
∣
D
)
∼
N
(
μ
n
,
σ
2
+
σ
n
2
)
p(x|D)\sim{N(μ_n,σ^2+σ_n^2)}
p(x∣D)∼N(μn,σ2+σn2)。因此,根据已知的
p
(
x
∣
μ
)
∼
N
(
μ
,
σ
2
)
p(x|μ)\sim{N(μ,σ^2)}
p(x∣μ)∼N(μ,σ2),只要用
μ
n
μ_n
μn替换μ,
σ
2
+
σ
n
2
σ^2+σ_n^2
σ2+σn2替换
σ
2
σ^2
σ2即可完成参数估计。
我们观察到,当n趋于无穷时,贝叶斯参数估计与最大似然效果相同。(当然在实际问题当中样本往往是有限的,这里只是形式化地理解)
总结一下贝叶斯估计的一般过程:
最大似然和贝叶斯估计的比较
在上面的例子中,用贝叶斯参数估计与ML分别对条件概率密度 p ( x ∣ ω ) p(x|\omega) p(x∣ω)进行估计,得到的虽然都是高斯分布形式,但这个过程中做的假设是完全不同的。 ML直接假定 p ( x ∣ ω ) p(x|\omega) p(x∣ω)符合高斯分布,根据训练样本选取确定的参数 μ ^ \hat\mu μ^和 σ ^ 2 \hat\sigma^2 σ^2。而贝叶斯估计方法是通过假设已知 p ( x ∣ θ ) p(x|θ) p(x∣θ)和 p ( μ ) p(\mu) p(μ)符合高斯分布,推出 p ( μ ∣ D ) p(\mu|D) p(μ∣D)符合高斯分布, 进而根据公式二推出 p ( x ∣ D ) p(x|D) p(x∣D)符合高斯分布。这个分布的sharp作为估计的均值,随样本数增加而改变,且确信度逐渐升高。
高斯分布的例子相对来说有点抽象,《模式分类》里还给了一个简单的例子,比较好理解,尤其是这幅图:
非常有助于理解。贝叶斯估计在样本最大值之外还有一个拖尾,这就是考虑了先验
p
(
θ
)
p(\theta)
p(θ)的结果,告诉我们在x=10附近,条件概率密度仍可能不为0。(详见书中例1 递归的贝叶斯学习)
总的来说,最大似然估计根据训练样本明确估计出最优参数值,而贝叶斯估计目标是求出参数的分布,类似于“参数为0.5的概率为0.8”。虽然在估计时模糊的结果(即近似正确)往往更有用,但贝叶斯估计计算复杂度较高,可理解性较差,因此最大似然估计应用更广泛。