1. Introduction
概率图模型使用图的方式表示概率分布。为了在图中添加各种概率,首先总结一下随机变量分布的一些规则:
S
u
m
R
u
l
e
:
p
(
x
1
)
=
∫
p
(
x
1
,
x
2
)
d
x
2
P
r
o
d
u
c
t
R
u
l
e
:
p
(
x
1
,
x
2
)
=
p
(
x
1
∣
x
2
)
p
(
x
2
)
C
h
a
i
n
R
u
l
e
:
p
(
x
1
,
x
2
,
⋯
,
x
p
)
=
∏
i
=
1
p
p
(
x
i
∣
x
i
+
1
,
x
i
+
2
⋯
x
p
)
B
a
y
e
s
i
a
n
R
u
l
e
:
p
(
x
1
∣
x
2
)
=
p
(
x
2
∣
x
1
)
p
(
x
1
)
p
(
x
2
)
\begin{aligned} &Sum\ Rule:p(x_1)=\int p(x_1,x_2)dx_2\\ &Product\ Rule:p(x_1,x_2)=p(x_1|x_2)p(x_2)\\ &Chain\ Rule:p(x_1,x_2,\cdots,x_p)=\prod\limits_{i=1}^pp(x_i|x_{i+1,x_{i+2} \cdots}x_p)\\ &Bayesian\ Rule:p(x_1|x_2)=\frac{p(x_2|x_1)p(x_1)}{p(x_2)} \end{aligned}
Sum Rule:p(x1)=∫p(x1,x2)dx2Product Rule:p(x1,x2)=p(x1∣x2)p(x2)Chain Rule:p(x1,x2,⋯,xp)=i=1∏pp(xi∣xi+1,xi+2⋯xp)Bayesian Rule:p(x1∣x2)=p(x2)p(x2∣x1)p(x1)
可以看到,在链式法则中,如果数据维度特别高,那么的采样和计算非常困难,我们需要在一定程度上作出简化,在朴素贝叶斯中,作出了条件独立性假设。在 Markov 假设中,给定数据的维度是以时间顺序出现的,给定当前时间的维度,那么下一个维度与之前的维度独立。在 HMM 中,采用了齐次 Markov 假设。在 Markov 假设之上,更一般的,加入条件独立性假设,对维度划分集合
A
,
B
,
C
A,B,C
A,B,C,使得
X
A
⊥
X
B
∣
X
C
X_A\perp X_B|X_C
XA⊥XB∣XC。
概率图模型采用图的特点表示上述的条件独立性假设,节点表示随机变量,边表示条件概率。概率图模型可以分为三大理论部分:
- 表示
- 有向图(离散):贝叶斯网络
- 高斯图(连续):高斯贝叶斯和高斯马尔科夫网络
- 无向图(离散):马尔科夫网络
- 推断
- 精确推断
- 近似推断
- 确定近似(如变分推断,利用数学推导)
- 随机近似(MCMC,利用采样近似)
- 学习
- 参数学习
- 完备数据
- 有隐变量:E-M算法
- 结构学习
- 参数学习
2. 有向图-贝叶斯网络
已知联合分布中,各个随机变量之间的依赖关系,那么可以通过拓扑排序(根据依赖关系)可以获得一个有向图。而如果已知一个图,也可以直接得到联合概率分布的因子分解: p ( x 1 , x 2 , ⋯ , x p ) = ∏ i = 1 p p ( x i ∣ x p a r e n t ( i ) ) p(x_1,x_2,\cdots,x_p)=\prod\limits_{i=1}^pp(x_i|x_{parent(i)}) p(x1,x2,⋯,xp)=i=1∏pp(xi∣xparent(i)) 那么实际的图中条件独立性是如何体现的呢?在局部任何三个节点,可以有三种结构:
-
p
(
A
,
B
,
C
)
=
p
(
A
)
p
(
B
∣
A
)
p
(
C
∣
B
)
=
p
(
A
)
p
(
B
∣
A
)
p
(
C
∣
B
,
A
)
⟹
p
(
C
∣
B
)
=
p
(
C
∣
B
,
A
)
⇔
p
(
C
∣
B
)
p
(
A
∣
B
)
=
p
(
C
∣
A
,
B
)
p
(
A
∣
B
)
=
p
(
C
,
A
∣
B
)
⟹
C
⊥
A
∣
B
p(A,B,C)=p(A)p(B|A)p(C|B)=p(A)p(B|A)p(C|B,A) \\ \Longrightarrow p(C|B)=p(C|B,A)\\ \Leftrightarrow p(C|B)p(A|B)=p(C|A,B)p(A|B)=p(C,A|B)\Longrightarrow C\perp A|B
p(A,B,C)=p(A)p(B∣A)p(C∣B)=p(A)p(B∣A)p(C∣B,A)⟹p(C∣B)=p(C∣B,A)⇔p(C∣B)p(A∣B)=p(C∣A,B)p(A∣B)=p(C,A∣B)⟹C⊥A∣B
给定B,A和C独立
-
p
(
A
,
B
,
C
)
=
p
(
A
∣
B
)
p
(
B
)
p
(
C
∣
B
)
=
p
(
B
)
p
(
A
∣
B
)
p
(
C
∣
A
,
B
)
⟹
p
(
C
∣
B
)
=
p
(
C
∣
B
,
A
)
⇔
p
(
C
∣
B
)
p
(
A
∣
B
)
=
p
(
C
∣
A
,
B
)
p
(
A
∣
B
)
=
p
(
C
,
A
∣
B
)
⟹
C
⊥
A
∣
B
p(A,B,C)=p(A|B)p(B)p(C|B)=p(B)p(A|B)p(C|A,B)\\ \Longrightarrow p(C|B)=p(C|B,A)\\ \Leftrightarrow p(C|B)p(A|B)=p(C|A,B)p(A|B)=p(C,A|B)\ \Longrightarrow C\perp A|B
p(A,B,C)=p(A∣B)p(B)p(C∣B)=p(B)p(A∣B)p(C∣A,B)⟹p(C∣B)=p(C∣B,A)⇔p(C∣B)p(A∣B)=p(C∣A,B)p(A∣B)=p(C,A∣B) ⟹C⊥A∣B
给定B的情况下A,C独立
-
p
(
A
,
B
,
C
)
=
p
(
A
)
p
(
C
)
p
(
B
∣
C
,
A
)
=
p
(
A
)
p
(
C
∣
A
)
p
(
B
∣
C
,
A
)
⟹
p
(
C
)
=
p
(
C
∣
A
)
⇔
C
⊥
A
p(A,B,C)=p(A)p(C)p(B|C,A)=p(A)p(C|A)p(B|C,A)\\ \Longrightarrow p(C)=p(C|A)\\ \Leftrightarrow C\perp A\
p(A,B,C)=p(A)p(C)p(B∣C,A)=p(A)p(C∣A)p(B∣C,A)⟹p(C)=p(C∣A)⇔C⊥A
注意,这个是不给定B的时候AC独立,给定B不独立
3.无向图-马尔科夫网络(马尔科夫随机场)
无向图没有了类似有向图的局部不同结构,在马尔可夫网络中,也存在 D 划分的概念。直接将条件独立的集合
x
A
⊥
x
B
∣
x
C
x_A\perp x_B|x_C
xA⊥xB∣xC 划分为三个集合。这个也叫全局 Markov。对局部的节点,
x
⊥
(
X
−
N
e
i
g
h
b
o
u
r
(
x
)
)
∣
N
e
i
g
h
b
o
u
r
(
x
)
x\perp (X-Neighbour(\mathcal{x}))|Neighbour(x)
x⊥(X−Neighbour(x))∣Neighbour(x)。这也叫局部 Markov。对于成对的节点:
x
i
⊥
x
j
∣
x
−
i
−
j
x_i\perp x_j|x_{-i-j}
xi⊥xj∣x−i−j,其中
i
,
j
i,j
i,j 不能相邻。这也叫成对 Markov。事实上上面三个点局部全局成对是相互等价的。
有了这个条件独立性的划分,还需要因子分解来实际计算。引入团的概念:
团,最大团:图中节点的集合,集合中的节点之间相互都是连接的叫做团,如果不能再添加节点,那么叫最大团
利用这个定义进行的
x
x
x 所有维度的联合概率分布的因子分解为,假设有
K
K
K 个团,
Z
Z
Z 就是对所有可能取值求和:
p
(
x
)
=
1
Z
∏
i
=
1
K
ϕ
(
x
c
i
)
Z
=
∑
x
∈
X
∏
i
=
1
K
ϕ
(
x
c
i
)
\begin{aligned}p(x)=\frac{1}{Z}\prod\limits_{i=1}^{K}\phi(x_{ci})\ Z=\sum\limits_{x\in\mathcal{X}}\prod\limits_{i=1}^{K}\phi(x_{ci}) \end{aligned}
p(x)=Z1i=1∏Kϕ(xci) Z=x∈X∑i=1∏Kϕ(xci)
其中
ϕ
(
x
c
i
)
\phi(x_{ci})
ϕ(xci) 叫做势函数,它必须是一个正值,可以记为:
ϕ
(
x
c
i
)
=
exp
(
−
E
(
x
c
i
)
)
\phi(x_{ci})=\exp(-E(x_{ci}))
ϕ(xci)=exp(−E(xci)) 这个分布叫做 Gibbs 分布(玻尔兹曼分布)。于是也可以记为:
p
(
x
)
=
1
Z
exp
(
−
∑
i
=
1
K
E
(
x
c
i
)
)
p(x)=\frac{1}{Z}\exp(-\sum\limits_{i=1}^KE(x_{ci}))
p(x)=Z1exp(−i=1∑KE(xci))。这个分解和条件独立性等价(Hammesley-Clifford 定理),这个分布的形式也和指数族分布形式上相同,于是满足最大熵原理。
4 两种图的转换-道德图
我们常常想将有向图转为无向图,从而应用更一般的表达式。
-
链式
直接去掉箭头, p ( a , b , c ) = p ( a ) p ( b ∣ a ) p ( c ∣ b ) = ϕ ( a , b ) ϕ ( b , c ) p(a,b,c)=p(a)p(b|a)p(c|b)=\phi(a,b)\phi(b,c) p(a,b,c)=p(a)p(b∣a)p(c∣b)=ϕ(a,b)ϕ(b,c):
-
v型
由于 p ( a , b , c ) = p ( b ) p ( a ∣ b ) p ( c ∣ b ) = ϕ ( a , b ) ϕ ( b , c ) p(a,b,c)=p(b)p(a|b)p(c|b)=\phi(a,b)\phi(b,c) p(a,b,c)=p(b)p(a∣b)p(c∣b)=ϕ(a,b)ϕ(b,c),直接去掉箭头:
-
倒v型
由于 p ( a , b , c ) = p ( a ) p ( c ) p ( b ∣ a , c ) = ϕ ( a , b , c ) p(a,b,c)=p(a)p(c)p(b|a,c)=\phi(a,b,c) p(a,b,c)=p(a)p(c)p(b∣a,c)=ϕ(a,b,c),于是在 a , c a,c a,c 之间添加线:
5 因子图
对于一个有向图,可以通过引入环的方式,可以将其转换为无向图(Tree-like graph),这个图就叫做道德图。但是我们上面的 BP 算法只对无环图有效,通过因子图可以变为无环图。
考虑一个无向图:
其中
f
=
f
(
a
,
b
,
c
)
f=f(a,b,c)
f=f(a,b,c)。因子图不是唯一的,这是由于因式分解本身就对应一个特殊的因子图,将因式分解:
p
(
x
)
=
∏
s
f
s
(
x
s
)
p(x)=\prod\limits_{s}f_s(x_s)
p(x)=s∏fs(xs) 可以进一步分解得到因子图。