第一部分:贝叶斯网基础
1.1 信息论基础
1.2 贝叶斯网基本概念
1.3 变量独立性的图论分析
第二部分:贝叶斯网推理
2.1 概率推理中的变量消元方法
2.2 团树传播算法
2.3 近似推理
2.3.1 蒙特卡洛方法
2.3.1.1 重要性抽样法
2.3.1.2 马尔可夫蒙特卡洛抽样法(MCMC)
2.3.2 变分推理
第三部分:贝叶斯网参数学习
3.1 理论基础-分布的分布
3.2 极大似然估计
3.3 贝叶斯估计
上个暑假结束前,贝叶斯网专题更新到参数学习的极大似然估计部分。上了一学期课,寒假来临了,又有时间再续前缘。接下来将通过几个专题介绍参数学习的贝叶斯估计方法、结构学习的方法以及隐结构学习的方法。隐结构学习中将会遇到一些迄今为止仍未解决的问题,未来可沿着这个方向做进一步的研究。下面进入本次专题的内容:参数学习之贝叶斯估计方法。
当贝叶斯网的结构已知,而各节点的条件概率表存在未知项时,可通过参数学习方法从样本集中估计这些未知项。常用的参数学习方法包括极大似然估计和贝叶斯估计。上一专题已经介绍了极大似然估计,其认为待估参数是固定的,我们观察到了一些样本数据,这些样本数据既然已经出现,那就认为它们出现的概率是最大的,进而反推出参数的取值。而贝叶斯估计的思路与此不同,它认为参数服从某种分布,观察到的样本数据只是在这种参数的分布下产生的,因此我们可以根据经验给出待估参数的先验分布,并通过观察到的样本的似然度和贝叶斯公式计算后验分布,并以参数在该后验分布下的期望来估算参数值。
上面这段加粗的文字概括了贝叶斯估计的基本思想,下面将通过最简单的单参数情况来介绍贝叶斯估计的概念和方法,并逐步推广到单变量多参数贝叶斯估计和一般网络参数贝叶斯估计。
3.3.1 单参数贝叶斯估计
考虑如下两个问题:
(1) 假设投掷一枚图钉6次,其中2次帽向上,4次尖向上,问下一次投掷帽向上的概率是多少?
(2) 若将上一问中的图钉换成硬币,帽为正面,尖为反面,则下一次投掷正面向上的概率是多少?
若按照最大似然估计原则,这两个问题的答案都是
2
6
\frac{2}{6}
62,但直观上我们会感觉投掷硬币的概率应该比较平均,将
2
6
\frac{2}{6}
62作为问题(1)的答案比较合理,而作为问题(2)的答案则不能令人信服。
最大似然估计不能区分以上两种情况,因为它将待估参数视为一个未知但固定的值,不考虑先验知识的影响。而贝叶斯估计则将待估参数视为一个随机变量,其所服从的先验分布体现了对该参数的先验知识。
我们从这个最简单的单参数估计问题来引出贝叶斯估计的概念。在这个问题中,我们的待估参数
θ
\theta
θ为投掷图钉帽面朝上(投掷硬币正面朝上)的概率。贝叶斯估计是计算
θ
\theta
θ的后验分布。为此,首先要选用一个概率分布
p
(
θ
)
p(\theta)
p(θ)来总结关于
θ
\theta
θ的先验知识,然后将数据
D
=
(
D
1
,
D
2
,
⋯
)
D=(D_1,D_2,\cdots)
D=(D1,D2,⋯)的影响用似然函数
L
(
θ
∣
D
)
=
P
(
D
∣
θ
)
L(\theta|D)=P(D|\theta)
L(θ∣D)=P(D∣θ)来归纳,最后使用贝叶斯公式将先验分布和似然函数结合,得到
θ
\theta
θ的后验分布,即:
p
(
θ
∣
D
)
=
L
(
θ
∣
D
)
p
(
θ
)
p
(
D
)
∝
L
(
θ
∣
D
)
p
(
θ
)
(1)
\begin{aligned} p(\theta|D)&=\frac{L(\theta|D)p(\theta)}{p(D)}\\ &\propto L(\theta|D)p(\theta)\tag{1} \end{aligned}
p(θ∣D)=p(D)L(θ∣D)p(θ)∝L(θ∣D)p(θ)(1)
上式中的分母可以看作是归一化项,给定一个数据集D,其概率就已经确定,是一个常数,在进行贝叶斯最大后验概率估计( Bayesian MAP estimation)时,省略该分母不影响最终结果:
θ
∗
=
arg
max
θ
p
(
θ
∣
D
)
=
arg
max
θ
L
(
θ
∣
D
)
p
(
θ
)
\begin{aligned} \theta^*&=\mathop{\arg\max}\limits_\theta p(\theta|D)\\ &=\mathop{\arg\max}\limits_\theta L(\theta|D)p(\theta) \end{aligned}
θ∗=θargmaxp(θ∣D)=θargmaxL(θ∣D)p(θ)
我们也可以进行完全贝叶斯估计(full Bayesian estimation),即计算待估参数在后验分布下的期望:
θ
∗
=
∫
θ
p
(
θ
∣
D
)
d
θ
\theta^*=\int \theta p(\theta|D)d\theta
θ∗=∫θp(θ∣D)dθ
在积分计算比较困难时,可使用最大后验概率估计替代。若无特别说明,后文所指都是完全贝叶斯估计。
为了方便计算,需要对数据集做独立同分布假设,即给定
θ
\theta
θ,D中的样本满足i.i.d.假设,从而样本集的似然函数
L
(
θ
∣
D
)
L(\theta|D)
L(θ∣D)可改写为:
L
(
θ
∣
D
)
=
θ
m
h
(
1
−
θ
)
m
t
L(\theta|D)=\theta^{m_h}(1-\theta)^{m_t}
L(θ∣D)=θmh(1−θ)mt
其中
m
h
,
m
t
m_h,m_t
mh,mt分别表示数据集D中图钉帽朝上和尖朝上的样本个数。
而参数的先验分布
p
(
θ
)
p(\theta)
p(θ)一般假设是一个Beta分布
B
[
α
h
,
α
t
]
B[\alpha_h,\alpha_t]
B[αh,αt],即:
p
(
θ
)
=
Γ
(
α
h
+
α
t
)
Γ
(
α
h
)
Γ
(
α
t
)
θ
α
h
−
1
(
1
−
θ
)
α
t
−
1
p(\theta)=\frac{\Gamma(\alpha_h+\alpha_t)}{\Gamma(\alpha_h)\Gamma(\alpha_t)}\theta^{\alpha_h-1}(1-\theta)^{\alpha_t-1}
p(θ)=Γ(αh)Γ(αt)Γ(αh+αt)θαh−1(1−θ)αt−1
关于Gamma函数、Beta分布,以及后面推广到多参数时的Dirichlet分布,在分布的分布一节中已经介绍过,不熟悉的读者可先跳转过去打牢基础。
假设
θ
∼
B
[
α
h
,
α
t
]
\theta\sim B[\alpha_h,\alpha_t]
θ∼B[αh,αt]相当于假设关于
θ
\theta
θ的先验知识是已经投掷了
α
h
+
α
t
\alpha_h+\alpha_t
αh+αt次,其中
α
h
\alpha_h
αh次帽朝上,
α
t
\alpha_t
αt次尖朝上。
α
h
,
α
t
\alpha_h,\alpha_t
αh,αt称为超参数,
α
h
+
α
t
\alpha_h+\alpha_t
αh+αt称为等价样本量。
将似然函数和先验分布代入式(1),可得:
p
(
θ
∣
D
)
∝
θ
m
h
(
1
−
θ
)
m
t
θ
α
h
−
1
(
1
−
θ
)
α
t
−
1
=
θ
m
h
+
α
h
−
1
(
1
−
θ
)
m
t
+
α
t
−
1
\begin{aligned} p(\theta|D)&\propto \theta^{m_h}(1-\theta)^{m_t}\theta^{\alpha_h-1}(1-\theta)^{\alpha_t-1}\\ &=\theta^{m_h+\alpha_h-1}(1-\theta)^{m_t+\alpha_t-1} \end{aligned}
p(θ∣D)∝θmh(1−θ)mtθαh−1(1−θ)αt−1=θmh+αh−1(1−θ)mt+αt−1
由此可知,
θ
\theta
θ的后验分布
p
(
θ
∣
D
)
p(\theta|D)
p(θ∣D)也服从Beta分布,其超参数为
m
h
+
α
h
,
m
t
+
α
t
m_h+\alpha_h,m_t+\alpha_t
mh+αh,mt+αt,上式增加归一化项后的完整形式为:
p
(
θ
∣
D
)
=
Γ
(
m
h
+
α
h
+
m
t
+
α
t
)
Γ
(
m
h
+
α
h
)
Γ
(
m
t
+
α
t
)
θ
m
h
+
α
h
−
1
(
1
−
θ
)
m
t
+
α
t
−
1
p(\theta|D)=\frac{\Gamma(m_h+\alpha_h+m_t+\alpha_t)}{\Gamma(m_h+\alpha_h)\Gamma(m_t+\alpha_t)}\theta^{m_h+\alpha_h-1}(1-\theta)^{m_t+\alpha_t-1}
p(θ∣D)=Γ(mh+αh)Γ(mt+αt)Γ(mh+αh+mt+αt)θmh+αh−1(1−θ)mt+αt−1
从而
θ
\theta
θ的完全贝叶斯估计为:
θ
∗
=
∫
θ
p
(
θ
∣
D
)
d
θ
=
Γ
(
m
h
+
α
h
+
m
t
+
α
t
)
Γ
(
m
h
+
α
h
)
Γ
(
m
t
+
α
t
)
∫
θ
θ
m
h
+
α
h
−
1
(
1
−
θ
)
m
t
+
α
t
−
1
d
θ
=
m
h
+
α
h
m
h
+
α
h
+
m
t
+
α
t
(2)
\begin{aligned} \theta^*&=\int \theta p(\theta|D)d\theta\\ &=\frac{\Gamma(m_h+\alpha_h+m_t+\alpha_t)}{\Gamma(m_h+\alpha_h)\Gamma(m_t+\alpha_t)}\int \theta\theta^{m_h+\alpha_h-1}(1-\theta)^{m_t+\alpha_t-1}d\theta\\ &=\frac{m_h+\alpha_h}{m_h+\alpha_h+m_t+\alpha_t}\tag{2} \end{aligned}
θ∗=∫θp(θ∣D)dθ=Γ(mh+αh)Γ(mt+αt)Γ(mh+αh+mt+αt)∫θθmh+αh−1(1−θ)mt+αt−1dθ=mh+αh+mt+αtmh+αh(2)
关于该积分的计算技巧,可参考分布的分布一节,也可直接使用该节中给出的关于Beta分布期望的结论。
由式(2)可知;当样本量较小时,该估计主要依赖于先验知识;当样本量很大时,该估计主要依赖样本数据,并逐渐接近最大似然估计
m
h
m
h
+
m
t
\frac{m_h}{m_h+m_t}
mh+mtmh,先验知识的影响逐渐减小。
回到本节开头提出的掷图钉和掷硬币的实验:由于我们没有关于掷图钉的先验知识,可以假设先验分布为
B
[
0
,
0
]
B[0,0]
B[0,0];而关于掷硬币,我们的先验知识是正面朝上的概率为
1
2
\frac{1}{2}
21,但又不能完全排除这是一枚魔术硬币,所以可假设其先验分布为
B
[
100
,
100
]
B[100,100]
B[100,100]。样本集D中的
m
h
=
2
,
m
t
=
4
m_h=2,m_t=4
mh=2,mt=4,分别代入式(2),可得:
- 掷图钉时帽朝上的概率 θ \theta θ的贝叶斯估计为 2 + 0 6 + 0 = 2 6 \frac{2+0}{6+0}=\frac{2}{6} 6+02+0=62
- 掷硬币时头朝上的概率 θ \theta θ的贝叶斯估计为 2 + 100 6 + 200 ≈ 1 2 \frac{2+100}{6+200}\approx\frac{1}{2} 6+2002+100≈21
若假设投掷硬币60000次,得到20000次正面朝上,即 m h = 20000 , m t = 40000 m_h=20000,m_t=40000 mh=20000,mt=40000,那么:
- 掷硬币时头朝上的概率 θ \theta θ的贝叶斯估计为 20000 + 100 60000 + 200 ≈ 2 6 \frac{20000+100}{60000+200}\approx\frac{2}{6} 60000+20020000+100≈62
这里,样本量很大,数据占据主导,关于硬币均匀的先验知识被数据修正,可断定该硬币为魔术硬币。
共轭分布与增量学习
在分布的分布一节中,介绍过共轭分布的概念。Beta分布是二项似然函数的共轭分布,即先验分布服从Beta分布,似然函数服从二项分布,则后验分布也服从Beta分布。若假设先验分布服从正态分布,则贝叶斯估计的计算会很困难。这正是共轭分布带来的好处。
后面将单参数贝叶斯估计推广到多参数时,Beta分布变为对应的Dirichlet分布,其与多项分布是共轭分布。
共轭分布使得我们可以清楚地观察到贝叶斯估计是如何将先验知识与观测数据结合到一起的,而这一过程可循序渐进地进行,即可以一个一个地处理数据样本,每处理一个就更新一次参数,这种参数更新方式即为及其学习中的增量学习。
与在线学习对应的是批量学习,批量学习则需要一次处理所有数据,当新数据出现后,需要和老数据混合后重新进行参数估计。该过程完全不依赖之前的估计。贝叶斯估计既可以进行增量学习,也可以进行批量学习。
3.3.2 单变量多参数贝叶斯估计
考虑一个由多值变量X组成的单节点贝叶斯网,设X有r种取值,
Ω
X
=
{
x
1
,
x
2
,
⋯
,
x
r
}
\Omega_X=\{x_1,x_2,\cdots,x_r\}
ΩX={x1,x2,⋯,xr},则该单节点贝叶斯网存在r个待估参数
θ
i
=
P
(
X
=
x
i
)
,
i
=
1
,
2
,
⋯
,
r
\theta_i=P(X=x_i),i=1,2,\cdots,r
θi=P(X=xi),i=1,2,⋯,r。用
θ
\bm\theta
θ记向量
(
θ
1
,
θ
2
,
⋯
,
θ
r
)
(\theta_1,\theta_2,\cdots,\theta_r)
(θ1,θ2,⋯,θr),其中
∑
i
=
1
r
θ
i
=
1
\sum_{i=1}^r\theta_i=1
∑i=1rθi=1。设有一组i.i.d.数据
D
=
(
D
1
,
D
2
,
⋯
,
D
m
)
D=(D_1,D_2,\cdots,D_m)
D=(D1,D2,⋯,Dm),其中满足
X
=
x
i
X=x_i
X=xi的样本个数是
m
i
m_i
mi,则可得到似然函数:
L
(
θ
∣
D
)
=
∏
i
=
1
r
θ
i
m
i
(3)
L(\bm\theta|D)=\prod_{i=1}^r\theta_i^{m_i}\tag{3}
L(θ∣D)=i=1∏rθimi(3)
具有这种形式的似然函数称为多项似然函数,其中的
{
m
i
∣
i
=
1
,
2
,
⋯
,
r
}
\{m_i|i=1,2,\cdots,r\}
{mi∣i=1,2,⋯,r}是充分统计量。
多项似然函数的共轭分布是Dirichlet分布,因此在进行贝叶斯估计时,一般假设
θ
\bm\theta
θ的先验分布为
D
[
α
1
,
α
2
,
⋯
,
α
r
]
D[\alpha_1,\alpha_2,\cdots,\alpha_r]
D[α1,α2,⋯,αr],即:
p
(
θ
)
=
Γ
(
α
)
∏
i
=
1
r
Γ
(
α
i
)
∏
i
=
1
r
θ
i
α
i
−
1
(4)
p(\bm\theta)=\frac{\Gamma(\alpha)}{\prod_{i=1}^r\Gamma(\alpha_i)}\prod_{i=1}^r\theta_i^{\alpha_i-1}\tag{4}
p(θ)=∏i=1rΓ(αi)Γ(α)i=1∏rθiαi−1(4)
其中
α
=
∑
i
=
1
r
α
i
\alpha=\sum_{i=1}^r\alpha_i
α=∑i=1rαi。当r=2时,Dirichlet分布
D
[
α
1
,
α
2
]
D[\alpha_1,\alpha_2]
D[α1,α2]就是Beta分布
B
[
α
1
,
α
2
]
B[\alpha_1,\alpha_2]
B[α1,α2]。
假设
θ
\bm\theta
θ的先验分布为
D
[
α
1
,
α
2
,
⋯
,
α
r
]
D[\alpha_1,\alpha_2,\cdots,\alpha_r]
D[α1,α2,⋯,αr]等于假设关于
θ
\bm\theta
θ的先验知识包括
α
\alpha
α个虚拟数据样本,其中满足
X
=
x
i
X=x_i
X=xi的样本数为
α
i
\alpha_i
αi个,
α
\alpha
α称为等价样本量。
将式(3)(4)代入贝叶斯公式,可得
θ
\bm\theta
θ的后验概率分布满足:
p
(
θ
∣
D
)
∝
∏
i
=
1
r
θ
i
m
i
Γ
(
α
)
∏
i
=
1
r
Γ
(
α
i
)
∏
i
=
1
r
θ
i
α
i
−
1
∝
∏
i
=
1
r
θ
i
m
i
+
α
i
−
1
\begin{aligned} p(\bm\theta|D)&\propto\prod_{i=1}^r\theta_i^{m_i}\frac{\Gamma(\alpha)}{\prod_{i=1}^r\Gamma(\alpha_i)}\prod_{i=1}^r\theta_i^{\alpha_i-1}\\ &\propto\prod_{i=1}^r\theta_i^{m_i+\alpha_i-1} \end{aligned}
p(θ∣D)∝i=1∏rθimi∏i=1rΓ(αi)Γ(α)i=1∏rθiαi−1∝i=1∏rθimi+αi−1
即
p
(
θ
∣
D
)
p(\bm\theta|D)
p(θ∣D)是Dirichlet分布
D
[
m
1
+
α
1
,
m
2
+
α
2
,
⋯
,
m
r
+
α
r
]
D[m_1+\alpha_1,m_2+\alpha_2,\cdots,m_r+\alpha_r]
D[m1+α1,m2+α2,⋯,mr+αr]。
在分布的分布一节中推导过Dirichlet分布的期望,从而可得
θ
\bm\theta
θ中各分量
θ
i
\theta_i
θi的完全贝叶斯估计为:
θ
i
∗
=
∫
θ
i
p
(
θ
∣
D
)
d
θ
=
m
i
+
α
i
m
+
α
\theta_i^*=\int\theta_ip(\bm\theta|D)d\bm\theta=\frac{m_i+\alpha_i}{m+\alpha}
θi∗=∫θip(θ∣D)dθ=m+αmi+αi
由此可知,当样本量m很小时,该估计主要依赖先验知识;当样本量m很大时,该估计逐渐接近最大似然估计,先验知识的影响逐渐减小。
3.3.3 一般网络贝叶斯估计
考虑一个由
n
n
n个变量
X
=
{
X
1
,
X
2
,
⋯
,
X
n
}
X=\{X_1,X_2,\cdots,X_n\}
X={X1,X2,⋯,Xn}组成的贝叶斯网
N
N
N。不失一般性,设其中的节点
X
i
X_i
Xi共有
r
i
r_i
ri个取值
1
,
2
,
⋯
,
r
i
1,2,\cdots,r_i
1,2,⋯,ri,其父节点
π
(
X
i
)
\pi(X_i)
π(Xi)的取值共有
q
i
q_i
qi种组合
1
,
2
,
⋯
,
q
i
1,2,\cdots,q_i
1,2,⋯,qi。若
X
i
X_i
Xi无父节点,则
q
i
=
1
q_i=1
qi=1。那么,网络的参数为:
θ
i
j
k
=
P
(
X
i
=
k
∣
π
(
X
i
)
=
j
)
\theta_{ijk}=P(X_i=k|\pi(X_i)=j)
θijk=P(Xi=k∣π(Xi)=j)
其中
i
i
i的取值范围是
1
,
2
,
⋯
,
n
1,2,\cdots,n
1,2,⋯,n,表示
n
n
n个变量中的第
i
i
i个。对于第
i
i
i个变量
X
i
X_i
Xi,
j
j
j的取值范围是
1
,
2
,
⋯
,
q
i
1,2,\cdots,q_i
1,2,⋯,qi,表示其父节点
π
(
X
i
)
\pi(X_i)
π(Xi)的第
j
j
j种取值组合;
k
k
k的取值范围是
1
,
2
,
⋯
,
r
i
1,2,\cdots,r_i
1,2,⋯,ri,表示
X
i
X_i
Xi的第
k
k
k种取值。用
θ
\bm\theta
θ记所有
θ
i
j
k
\theta_{ijk}
θijk组成的向量,由于概率归一性,该贝叶斯网
N
N
N的独立参数个数为
∑
i
=
1
n
q
i
(
r
i
−
1
)
\sum_{i=1}^nq_i(r_i-1)
∑i=1nqi(ri−1)。
要对参数
θ
\bm\theta
θ进行贝叶斯估计,首先要将
θ
\bm\theta
θ视为随机变量,并将关于
θ
\bm\theta
θ的先验知识表示为一个先验概率分布
p
(
θ
)
p(\bm\theta)
p(θ)。然后计算在观测到i.i.d.数据
D
=
(
D
1
,
D
2
,
⋯
,
D
m
)
D=(D_1,D_2,\cdots,D_m)
D=(D1,D2,⋯,Dm)以后,
θ
\bm\theta
θ的后验概率分布
p
(
θ
∣
D
)
p(\bm\theta|D)
p(θ∣D),并用
θ
\bm\theta
θ在该后验概率分布下的期望作为对
θ
\bm\theta
θ的贝叶斯估计。
与上一讲最大似然估计相同,我们知道
θ
\bm\theta
θ的似然函数为:
L
(
θ
∣
D
)
=
∏
i
=
1
n
∏
j
=
1
q
i
∏
k
=
1
r
i
θ
i
j
k
m
i
j
k
L(\bm\theta|D)=\prod_{i=1}^n\prod_{j=1}^{q_i}\prod_{k=1}^{r_i}\theta_{ijk}^{m_{ijk}}
L(θ∣D)=i=1∏nj=1∏qik=1∏riθijkmijk
根据贝叶斯公式,有:
p
(
θ
∣
D
)
∝
p
(
θ
)
∏
i
=
1
n
∏
j
=
1
q
i
∏
k
=
1
r
i
θ
i
j
k
m
i
j
k
p(\bm\theta|D)\propto p(\bm\theta)\prod_{i=1}^n\prod_{j=1}^{q_i}\prod_{k=1}^{r_i}\theta_{ijk}^{m_{ijk}}
p(θ∣D)∝p(θ)i=1∏nj=1∏qik=1∏riθijkmijk
为了便于计算,我们需要对先验分布
p
(
θ
)
p(\bm\theta)
p(θ)作一些共轭性假设。首先引入两个新记号:
- θ i j ∙ \bm\theta_{ij\bullet} θij∙表示由 θ i j 1 , ⋯ , θ i j r i \theta_{ij1},\cdots,\theta_{ijr_i} θij1,⋯,θijri所组成的子向量
- θ i ∙ ∙ \bm\theta_{i\bullet\bullet} θi∙∙表示由 θ i 1 ∙ , ⋯ , θ i q i ∙ \theta_{i1\bullet},\cdots,\theta_{iq_i\bullet} θi1∙,⋯,θiqi∙所组成的子向量
θ
i
∙
∙
\bm\theta_{i\bullet\bullet}
θi∙∙包含所有关于变量
X
i
X_i
Xi的条件概率分布
P
(
X
i
∣
π
(
X
i
)
)
P(X_i|\pi(X_i))
P(Xi∣π(Xi))的参数,而
θ
i
j
∙
\bm\theta_{ij\bullet}
θij∙包含所有关于分布
P
(
X
i
∣
π
(
X
i
)
=
j
)
P(X_i|\pi(X_i)=j)
P(Xi∣π(Xi)=j)的参数。
关于
p
(
θ
)
p(\bm\theta)
p(θ)我们做如下三个假设:
- 全局独立假设:关于不同变量
X
i
X_i
Xi的参数相互独立,即
p ( θ ) = ∏ i = 1 n p ( θ i ∙ ∙ ) p(\bm\theta)=\prod_{i=1}^np(\bm\theta_{i\bullet\bullet}) p(θ)=i=1∏np(θi∙∙) - 局部独立假设:给定一个变量
X
i
X_i
Xi,对应于
π
(
X
i
)
\pi(X_i)
π(Xi)的不同取值的参数相互独立,即
p ( θ i ∙ ∙ ) = ∏ j = 1 q i p ( θ i j ∙ ) p(\bm\theta_{i\bullet\bullet})=\prod_{j=1}^{q_i}p(\bm\theta_{ij\bullet}) p(θi∙∙)=j=1∏qip(θij∙) - p ( θ i j ∙ ) p(\bm\theta_{ij\bullet}) p(θij∙)是Dirichlet分布 D [ α i j 1 , α i j 2 , ⋯ , α i j r i ] D[\alpha_{ij1},\alpha_{ij2},\cdots,\alpha_{ijr_i}] D[αij1,αij2,⋯,αijri]
在上述三个假设下,有:
p
(
θ
)
=
∏
i
=
1
n
p
(
θ
i
∙
∙
)
=
∏
i
=
1
n
∏
j
=
1
q
i
p
(
θ
i
j
∙
)
∝
∏
i
=
1
n
∏
j
=
1
q
i
∏
k
=
1
r
i
θ
i
j
k
α
i
j
k
−
1
p(\bm\theta)=\prod_{i=1}^np(\bm\theta_{i\bullet\bullet})=\prod_{i=1}^n\prod_{j=1}^{q_i}p(\bm\theta_{ij\bullet})\propto\prod_{i=1}^n\prod_{j=1}^{q_i}\prod_{k=1}^{r_i}\bm\theta_{ijk}^{\alpha_{ijk}-1}
p(θ)=i=1∏np(θi∙∙)=i=1∏nj=1∏qip(θij∙)∝i=1∏nj=1∏qik=1∏riθijkαijk−1
该式定义的
p
(
θ
)
p(\bm\theta)
p(θ)称为乘积Dirichlet分布。
将似然函数和先验概率分布代入贝叶斯公式,可得
θ
\bm\theta
θ的后验概率分布为:
p
(
θ
∣
D
)
∝
∏
i
=
1
n
∏
j
=
1
q
i
∏
k
=
1
r
i
θ
i
j
k
m
i
j
k
∏
i
=
1
n
∏
j
=
1
q
i
∏
k
=
1
r
i
θ
i
j
k
α
i
j
k
−
1
=
∏
i
=
1
n
∏
j
=
1
q
i
∏
k
=
1
r
i
θ
i
j
k
m
i
j
k
+
α
i
j
k
−
1
\begin{aligned} p(\bm\theta|D)&\propto\prod_{i=1}^n\prod_{j=1}^{q_i}\prod_{k=1}^{r_i}\theta_{ijk}^{m_{ijk}}\prod_{i=1}^n\prod_{j=1}^{q_i}\prod_{k=1}^{r_i}\bm\theta_{ijk}^{\alpha_{ijk}-1}\\ &=\prod_{i=1}^n\prod_{j=1}^{q_i}\prod_{k=1}^{r_i}\bm\theta_{ijk}^{m_{ijk}+\alpha_{ijk}-1} \end{aligned}
p(θ∣D)∝i=1∏nj=1∏qik=1∏riθijkmijki=1∏nj=1∏qik=1∏riθijkαijk−1=i=1∏nj=1∏qik=1∏riθijkmijk+αijk−1
由此可知,后验分布也是一个乘积Dirichlet分布,也具有全局和局部独立性,从而有
p
(
θ
i
j
∙
)
p(\bm\theta_{ij\bullet})
p(θij∙)为Dirichlet分布
D
[
m
i
j
1
+
α
i
j
1
,
⋯
,
m
i
j
r
i
+
α
i
j
r
i
]
D[m_{ij1}+\alpha_{ij1},\cdots,m_{ijr_i}+\alpha_{ijr_i}]
D[mij1+αij1,⋯,mijri+αijri]。
下面我们考虑
θ
\bm\theta
θ的任一分量
θ
i
j
k
\theta_{ijk}
θijk的贝叶斯估计,即其在该后验概率分布
p
(
θ
∣
D
)
p(\bm\theta|D)
p(θ∣D)下的期望:
θ
i
j
k
∗
=
∫
θ
i
j
k
p
(
θ
∣
D
)
d
θ
=
∫
θ
i
j
k
∏
l
=
1
n
∏
s
=
1
q
l
p
(
θ
l
s
∙
∣
D
)
d
θ
l
s
∙
全局和局部独立性
=
∫
θ
i
j
k
p
(
θ
i
j
∙
∣
D
)
d
θ
i
j
∙
Dirichlet分布
=
m
i
j
k
+
α
i
j
k
∑
k
=
1
r
i
m
i
j
k
+
α
i
j
k
Dirichlet分布的期望
(5)
\begin{aligned} \theta_{ijk}^*&=\int\theta_{ijk}p(\bm\theta|D)d\bm\theta\\ &=\int\theta_{ijk}\prod_{l=1}^n\prod_{s=1}^{q_l}p(\bm\theta_{ls\bullet}|D)d\bm\theta_{ls\bullet}\quad\text{全局和局部独立性}\\ &=\int\theta_{ijk}p(\bm\theta_{ij\bullet}|D)d\bm\theta_{ij\bullet}\quad\text{Dirichlet分布}\\ &=\frac{m_{ijk}+\alpha_{ijk}}{\sum_{k=1}^{r_i}m_{ijk}+\alpha_{ijk}}\quad\text{Dirichlet分布的期望}\tag{5} \end{aligned}
θijk∗=∫θijkp(θ∣D)dθ=∫θijkl=1∏ns=1∏qlp(θls∙∣D)dθls∙全局和局部独立性=∫θijkp(θij∙∣D)dθij∙Dirichlet分布=∑k=1rimijk+αijkmijk+αijkDirichlet分布的期望(5)
从而,对于任一给定的测试数据
D
m
+
1
D_{m+1}
Dm+1,我们可以计算在参数
θ
∗
\bm\theta^*
θ∗下的概率:
P
(
D
m
+
1
∣
θ
∗
)
=
∏
i
=
1
n
∑
j
=
1
q
i
∑
k
=
1
r
i
χ
(
i
,
j
,
k
:
D
m
+
1
)
m
i
j
k
+
α
i
j
k
∑
k
=
1
r
i
m
i
j
k
+
α
i
j
k
P(D_{m+1}|\bm\theta^*)=\prod_{i=1}^n\sum_{j=1}^{q_i}\sum_{k=1}^{r_i}\chi(i,j,k:D_{m+1})\frac{m_{ijk}+\alpha_{ijk}}{\sum_{k=1}^{r_i}m_{ijk}+\alpha_{ijk}}
P(Dm+1∣θ∗)=i=1∏nj=1∑qik=1∑riχ(i,j,k:Dm+1)∑k=1rimijk+αijkmijk+αijk
其中
χ
(
i
,
j
,
k
:
D
m
+
1
)
\chi(i,j,k:D_{m+1})
χ(i,j,k:Dm+1)为指示函数,当数据
D
m
+
1
D_{m+1}
Dm+1满足
P
(
X
i
=
k
∣
π
(
X
i
)
=
j
)
P(X_i=k|\pi(X_i)=j)
P(Xi=k∣π(Xi)=j)时,该函数为1,否则为0.
例 考虑如下图(a)所示的贝叶斯网
N
N
N,其中所有变量均取二值1或2。右侧表格(b)为关于NN的一组i.i.d.数据。
对该网络的参数进行贝叶斯估计,首先要假设参数
p
(
θ
)
p(\bm\theta)
p(θ)为乘积Dirichlet分布,其超参数
α
=
{
α
i
j
k
∣
i
=
1
,
2
,
3
;
j
=
1
,
⋯
,
q
i
;
k
=
1
,
2
}
\bm\alpha=\{\alpha_{ijk}|i=1,2,3;j=1,\cdots,q_i;k=1,2\}
α={αijk∣i=1,2,3;j=1,⋯,qi;k=1,2}如下表©所示。
这等价于关于
θ
\bm\theta
θ的先验知识是如下表(d)所示的虚拟数据集
D
′
D'
D′。
其等价样本量为4.根据式(5),可得
θ
\bm\theta
θ的后验分布
p
(
θ
∣
D
)
p(\bm\theta|D)
p(θ∣D),其也是乘积Dirichlet分布,其超参数如下表(e)所示。
对于第
i
i
i个节点
X
i
X_i
Xi,若给定其父节点取值
π
(
X
i
)
=
j
\pi(X_i)=j
π(Xi)=j,则该节点的取值服从Dirichlet分布,对参数
θ
i
j
∙
\bm\theta_{ij\bullet}
θij∙的完全贝叶斯估计则是计算其在该Dirichlet分布下的期望,见式(5),计算结果见下表(f)。
3.3.4 缺值数据贝叶斯估计
当样本集数据中的数据存在缺值时,似然函数则无法直接给出,因而没有计算贝叶斯估计的闭公式。为了解决该问题,可采用近似的方法,如碎权更新方法就是一种较常用的近似方法。
碎权更新首先设定先验概率分布
p
(
θ
)
p(\bm\theta)
p(θ)是乘积Dirichlet分布,然后按顺序逐个处理数据样本。在处理当前样本时,若样本有缺值,则利用先前的估计对样本进行修补,然后再利用该样本更新对
θ
\bm\theta
θ的估计。在整个过程中,对
θ
\bm\theta
θ的估计在不断变化,但始终服从乘积Dirichlet分布。
经过
l
l
l次参数更新,处理完前
l
l
l个样本
D
1
,
D
2
,
⋯
,
D
l
D_1,D_2,\cdots,D_l
D1,D2,⋯,Dl后,得到
p
(
θ
∣
D
1
,
D
2
,
⋯
,
D
l
)
p(\bm\theta|D_1,D_2,\cdots,D_l)
p(θ∣D1,D2,⋯,Dl)的一个近似,它是一个乘积Dirichlet分布,记其超参数为
α
l
=
{
α
i
j
k
l
∣
i
=
1
,
⋯
,
n
;
j
=
1
,
⋯
,
q
i
;
k
=
1
,
⋯
,
r
i
}
\bm\alpha^l=\{\alpha_{ijk}^l|i=1,\cdots,n;j=1,\cdots,q_i;k=1,\cdots,r_i\}
αl={αijkl∣i=1,⋯,n;j=1,⋯,qi;k=1,⋯,ri}.从而可得到基于该超参数的参数
θ
\bm\theta
θ的完全贝叶斯估计,记作
θ
l
∗
\bm\theta^*_{l}
θl∗,下标
(
l
)
(l)
(l)表示第
l
l
l次更新后的参数估计。基于该估计,计算下一个样本
D
l
+
1
D_{l+1}
Dl+1中的缺值项。具体计算方法如下。
设
X
(
l
+
1
)
X_{(l+1)}
X(l+1)是
D
l
+
1
D_{l+1}
Dl+1中所有缺值变量的集合,对
X
(
l
+
1
)
X_{(l+1)}
X(l+1)的任一取值
x
(
l
+
1
)
x_{(l+1)}
x(l+1),我们可以通过已估计的参数
θ
l
∗
\bm\theta^*_{l}
θl∗来计算
X
(
l
+
1
)
=
x
(
l
+
1
)
X_{(l+1)}=x_{(l+1)}
X(l+1)=x(l+1)的碎权权重
w
x
(
l
+
1
)
=
P
(
X
(
l
+
1
)
=
x
(
l
+
1
)
∣
θ
(
l
)
∗
,
D
l
+
1
)
w_{x_{(l+1)}}=P(X_{(l+1)}=x_{(l+1)}|\bm\theta^*_{(l)},D_{l+1})
wx(l+1)=P(X(l+1)=x(l+1)∣θ(l)∗,Dl+1),其计算方法如下:
w
x
(
l
+
1
)
=
P
(
X
(
l
+
1
)
=
x
(
l
+
1
)
,
D
l
+
1
∣
θ
(
l
)
∗
)
∑
x
(
l
+
1
)
∈
Ω
(
X
(
l
+
1
)
)
P
(
X
(
l
+
1
)
=
x
(
l
+
1
)
,
D
l
+
1
∣
θ
(
l
)
∗
)
w_{x_{(l+1)}}=\frac{P(X_{(l+1)}=x_{(l+1)},D_{l+1}|\bm\theta^*_{(l)})}{\sum_{x_{(l+1)}\in\Omega(X_{(l+1)})}P(X_{(l+1)}=x_{(l+1)},D_{l+1}|\bm\theta^*_{(l)})}
wx(l+1)=∑x(l+1)∈Ω(X(l+1))P(X(l+1)=x(l+1),Dl+1∣θ(l)∗)P(X(l+1)=x(l+1),Dl+1∣θ(l)∗)
进而可将该缺值样本
D
l
+
1
D_{l+1}
Dl+1转变为一组带有权重的完整样本,称为碎权完整样本集:
{
(
D
l
+
1
,
X
(
l
+
1
)
=
x
(
l
+
1
)
)
[
w
x
(
l
+
1
)
]
,
⋯
}
\{(D_{l+1},X_{(l+1)}=x_{(l+1)})[w_{x_{(l+1)}}],\cdots\}
{(Dl+1,X(l+1)=x(l+1))[wx(l+1)],⋯},其中
x
(
l
+
1
)
∈
Ω
(
X
(
l
+
1
)
)
x_{(l+1)}\in\Omega(X_{(l+1)})
x(l+1)∈Ω(X(l+1)).
根据该组碎权完整样本集对超参数
α
l
\bm\alpha^l
αl进行第
l
+
1
l+1
l+1次更新:
α
i
j
k
l
+
1
=
α
i
j
k
l
+
∑
x
(
l
+
1
)
∈
Ω
(
X
(
l
+
1
)
)
χ
(
i
,
j
,
k
:
D
l
+
1
,
X
(
l
+
1
)
=
x
(
l
+
1
)
)
w
x
(
l
+
1
)
\alpha_{ijk}^{l+1}=\alpha_{ijk}^l+\sum_{x_{(l+1)}\in\Omega(X_{(l+1)})}\chi(i,j,k:D_{l+1},X_{(l+1)}=x_{(l+1)})w_{x_{(l+1)}}
αijkl+1=αijkl+x(l+1)∈Ω(X(l+1))∑χ(i,j,k:Dl+1,X(l+1)=x(l+1))wx(l+1)
例 如下图(a)和(b)所示的贝叶斯网N和缺值数据集D,用碎权更新计算N的参数的贝叶斯估计。
首先假设参数
θ
\bm\theta
θ的先验分布是乘积Dirichlet分布,其超参数
α
0
\bm\alpha^0
α0如下:
从
α
0
\bm\alpha^0
α0出发,首先考虑第一个样本
D
1
=
(
1
,
1
,
1
)
D_1=(1,1,1)
D1=(1,1,1),其为完整数据,可直接更新先验分布
p
(
θ
)
p(\bm\theta)
p(θ),得到参数的后验分布
p
(
θ
∣
D
1
)
p(\bm\theta|D_1)
p(θ∣D1),其也是一个乘积Dirichlet分布,超参数
α
1
\bm\alpha^1
α1如下:
接下来考虑
D
2
=
(
2
,
2
,
2
)
D_2=(2,2,2)
D2=(2,2,2),它也是完整数据,可直接更新,更新后的超参数
α
2
\bm\alpha^2
α2如下:
接下来考虑
D
3
=
(
1
,
−
,
1
)
D_3=(1,-,1)
D3=(1,−,1),其中
X
2
X_2
X2缺值,需要修补。利用已估算出的
θ
2
∗
\bm\theta^*_2
θ2∗来计算碎权权重
P
(
X
2
∣
θ
2
∗
,
D
3
)
P(X_2|\bm\theta_2^*,D_3)
P(X2∣θ2∗,D3),修补后的碎权完整样本集如下:
用这两个碎权完整样本进行更新,更新后的超参数
α
3
\bm\alpha^3
α3如下:
最后来考虑
D
4
=
(
2
,
−
,
2
)
D_4=(2,-,2)
D4=(2,−,2),其中
X
2
X_2
X2缺值,需要修补。利用已估算出的
θ
3
∗
\bm\theta^*_3
θ3∗来计算碎权权重
P
(
X
2
∣
θ
3
∗
,
D
4
)
P(X_2|\bm\theta_3^*,D_4)
P(X2∣θ3∗,D4),修补后的碎权完整样本集如下:
用这两个碎权完整样本进行更新,更新后的超参数
α
4
\bm\alpha^4
α4如下:
注意,碎权更新的结果受处理样本的顺序影响,顺序不同,最终结果可能会不同。
3.3.5 小结
贝叶斯网参数的学习有两种方法:最大似然估计方法和贝叶斯估计方法。我们用三讲(分布的分布、最大似然估计估计、贝叶斯估计)将这两种方法进行了详细介绍,并分别探讨了缺值数据下极大似然估计和贝叶斯估计的方法。
前面介绍的贝叶斯网参数学习是在贝叶斯网结构已确定的情况下进行的,在面对一个新问题时,我们往往连贝叶斯网的结构都还没有,从下一讲开始将对贝叶斯网结构学习进行介绍。