注:这是全文的第三部分,前文传送门:
PRML读书会第五期——概率图模型(Graphical Models)【上】
PRML读书会第五期——概率图模型(Graphical Models)【中】
附录
Hammesley-Clifford定理证明
Hammesley-Clifford定理:
M
R
F
⇔
G
i
b
b
s
MRF\Leftrightarrow Gibbs
MRF⇔Gibbs
定义
定义1 MRF
p
(
x
i
∣
X
∖
{
x
i
}
)
=
p
(
x
i
∣
n
e
i
)
p(x_i|X\setminus \{x_i\})=p(x_i|ne_i)
p(xi∣X∖{xi})=p(xi∣nei)
定义2 Gibbs
p
(
X
)
=
1
Z
∏
C
ψ
C
(
X
C
)
Z
=
∑
X
∏
C
ψ
C
(
X
C
)
p(X)=\dfrac{1}{Z}\prod\limits_C \psi_C(X_C)\\ Z=\sum\limits_X\prod\limits_C\psi_C(X_C)
p(X)=Z1C∏ψC(XC)Z=X∑C∏ψC(XC)
注:
这里给出了马尔可夫随机场(Markov Random Field,MRF)和吉布斯分布(Gibbs)的定义
由于马尔可夫随机场的三条马尔可夫性等价,这里选取的是局部马尔可夫性,即 x i ⊥ ⊥ X ∖ ( x i ∪ n e i ) ∣ n e i x_i\perp\!\!\!\perp X\setminus (x_i\cup ne_i)|ne_i xi⊥⊥X∖(xi∪nei)∣nei,在此基础上,由于二者的独立,可以得到:
p ( x i ∣ n e i ) = p ( x i ∣ n e i , X ∖ ( x i ∪ n e i ) ) = p ( x i ∣ X ∖ { x i } ) p(x_i|ne_i)=p(x_i|ne_i,X\setminus (x_i\cup ne_i))=p(x_i|X\setminus \{x_i\}) p(xi∣nei)=p(xi∣nei,X∖(xi∪nei))=p(xi∣X∖{xi})此处吉布斯分布的因子分解中, C C C指团(不一定是最大团)
记号与说明:
-
下文对变量集合与节点集合做符号上的区分: X X X指全体随机变量, G G G指图的全部节点,但不对变量与节点做符号上的区分, x i x_i xi即可以指随机变量 x i x_i xi,又可以指随机变量对应的节点;同时记所有团的集合为 C G C_G CG.
-
下文中,将所有随机变量当作离散型随机变量处理。对于连续性随机变量,将 ∑ \sum ∑替换为 ∫ \int ∫即可。
-
由于下文为连续的推导过程,处于简洁考虑,所有式子默认采用 ( ∗ ) (*) (∗)标注,式前的 ( ∗ ) (*) (∗)默认指上一个式子。
Gibbs ⇒ \Rightarrow ⇒MRF
只要证 p ( x i ∣ n e i ) = p ( x i ∣ X ∖ { x i } ) p(x_i|ne_i)=p(x_i|X\setminus \{x_i\}) p(xi∣nei)=p(xi∣X∖{xi}).
记
D
i
≜
n
e
i
∪
x
i
D_i\triangleq ne_i\cup x_i
Di≜nei∪xi(此处指节点集合),则由贝叶斯法则和加法法则得:
p
(
x
i
∣
n
e
i
)
=
p
(
x
i
,
n
e
i
)
p
(
n
e
i
)
=
∑
G
∖
D
i
p
(
X
)
∑
G
∖
n
e
i
p
(
X
)
(
∗
)
p(x_i|ne_i)=\dfrac{p(x_i,ne_i)}{p(ne_i)}=\dfrac{\sum\limits_{G\setminus D_i}p(X)}{\sum\limits_{G\setminus ne_i}p(X)}(*)
p(xi∣nei)=p(nei)p(xi,nei)=G∖nei∑p(X)G∖Di∑p(X)(∗)
由定义知,
G
∖
n
e
i
=
G
∖
(
D
i
∖
{
x
i
}
)
=
x
i
∪
(
G
∖
D
i
)
G\setminus ne_i=G\setminus (D_i\setminus \{x_i\})={x_i}\cup(G\setminus D_i)
G∖nei=G∖(Di∖{xi})=xi∪(G∖Di),因此
∑
G
∖
n
e
i
\sum\limits_{G\setminus ne_i}
G∖nei∑可写作
∑
x
i
∑
G
∖
D
i
\sum\limits_{x_i}\sum\limits_{G\setminus D_i}
xi∑G∖Di∑.
再带入Gibbs中
p
(
X
)
p(X)
p(X)的表达,得:
(
∗
)
=
∑
G
∖
D
i
p
(
X
)
∑
x
i
∑
G
∖
D
i
p
(
X
)
=
∑
G
∖
D
i
∏
C
∈
C
G
ψ
C
(
X
C
)
∑
x
i
∑
G
∖
D
i
∏
C
∈
C
G
ψ
C
(
X
C
)
(
∗
)
(*)=\dfrac{\sum\limits_{G\setminus D_i}p(X)}{\sum\limits_{x_i}\sum\limits_{G\setminus D_i}p(X)}=\dfrac{\sum\limits_{G\setminus D_i}\prod\limits_{C\in C_G}\psi_C(X_C)}{\sum\limits_{x_i}\sum\limits_{G\setminus D_i}\prod\limits_{C\in C_G}\psi_C(X_C)}(*)
(∗)=xi∑G∖Di∑p(X)G∖Di∑p(X)=xi∑G∖Di∑C∈CG∏ψC(XC)G∖Di∑C∈CG∏ψC(XC)(∗)
如图,我们将
C
G
C_G
CG按照是否含有
x
i
x_i
xi进行分组,记
C
i
≜
{
C
∣
C
∈
C
G
,
x
i
∈
C
}
,
R
i
≜
{
C
∣
C
∈
C
G
,
x
i
∉
C
}
C_i\triangleq\{C|C\in C_G,x_i\in C\},R_i\triangleq\{C|C\in C_G,x_i\notin C\}
Ci≜{C∣C∈CG,xi∈C},Ri≜{C∣C∈CG,xi∈/C}
则
∏
C
∈
C
G
ψ
C
(
X
C
)
=
∏
C
∈
C
i
ψ
C
(
X
C
)
∏
C
∈
R
i
ψ
C
(
X
C
)
\prod\limits_{C\in C_G}\psi_C(X_C)=\prod\limits_{C\in C_i}\psi_C(X_C)\prod\limits_{C\in R_i}\psi_C(X_C)
C∈CG∏ψC(XC)=C∈Ci∏ψC(XC)C∈Ri∏ψC(XC)
可以证明:
∀
x
∈
C
i
,
x
∉
G
∖
D
i
\forall x\in C_i,x\notin G\setminus D_i
∀x∈Ci,x∈/G∖Di,即
C
i
C_i
Ci内的节点与
G
G
G中
D
i
D_i
Di外的节点无关。
只要证 ∀ x ∈ C i , x ∈ D i \forall x\in C_i,x\in D_i ∀x∈Ci,x∈Di.根据团的定义,团内节点两两相连。又 x i ∈ C i x_i\in C_i xi∈Ci,则 ∀ x ∈ C i ( x ≠ x i ) \forall x\in C_i(x\not=x_i) ∀x∈Ci(x=xi), x x x与 x i x_i xi直接相连。
根据 n e i ne_i nei的定义,与 x i x_i xi直接相连的节点都是 x i x_i xi的邻居。则 x ∈ n e i x\in ne_i x∈nei.又 n e i ⊂ D i ne_i\sub D_i nei⊂Di,所以 x ∈ D i x\in D_i x∈Di.当 x = x i x=x_i x=xi时, x i ∈ D i x_i\in D_i xi∈Di也符合。即证。
因此,
C
i
C_i
Ci与
G
∖
D
i
G\setminus D_i
G∖Di无关,因子
∏
C
∈
C
i
ψ
C
(
X
C
)
\prod\limits_{C\in C_i}\psi_C(X_C)
C∈Ci∏ψC(XC)可以提到
∑
G
∖
D
i
\sum\limits_{G\setminus D_i}
G∖Di∑外,同时,
R
i
R_i
Ri与
x
i
x_i
xi无关,可将其提到
∑
x
i
\sum\limits_{x_i}
xi∑外,得:
(
∗
)
=
∑
G
∖
D
i
∏
C
∈
C
i
ψ
C
(
X
C
)
∏
C
∈
R
i
ψ
C
(
X
C
)
∑
x
i
∑
G
∖
D
i
∏
C
∈
C
i
ψ
C
(
X
C
)
∏
C
∈
R
i
ψ
C
(
X
C
)
=
∏
C
∈
C
i
ψ
C
(
X
C
)
∑
G
∖
D
i
∏
C
∈
R
i
ψ
C
(
X
C
)
∑
x
i
∏
C
∈
C
i
ψ
C
(
X
C
)
∑
G
∖
D
i
∏
C
∈
R
i
ψ
C
(
X
C
)
=
∏
C
∈
C
i
ψ
C
(
X
C
)
∑
G
∖
D
i
∏
C
∈
R
i
ψ
C
(
X
C
)
[
∑
G
∖
D
i
∏
C
∈
R
i
ψ
C
(
X
C
)
]
[
∑
x
i
∏
C
∈
C
i
ψ
C
(
X
C
)
]
=
∏
C
∈
C
i
ψ
C
(
X
C
)
∑
x
i
∏
C
∈
C
i
ψ
C
(
X
C
)
(
∗
)
(*)=\dfrac{\sum\limits_{G\setminus D_i}\prod\limits_{C\in C_i}\psi_C(X_C)\prod\limits_{C\in R_i}\psi_C(X_C)}{\sum\limits_{x_i}\sum\limits_{G\setminus D_i}\prod\limits_{C\in C_i}\psi_C(X_C)\prod\limits_{C\in R_i}\psi_C(X_C)}\\ =\dfrac{\prod\limits_{C\in C_i}\psi_C(X_C)\sum\limits_{G\setminus D_i}\prod\limits_{C\in R_i}\psi_C(X_C)}{\sum\limits_{x_i}\prod\limits_{C\in C_i}\psi_C(X_C)\sum\limits_{G\setminus D_i}\prod\limits_{C\in R_i}\psi_C(X_C)}\\ =\dfrac{\prod\limits_{C\in C_i}\psi_C(X_C)\sum\limits_{G\setminus D_i}\prod\limits_{C\in R_i}\psi_C(X_C)}{\Big[\sum\limits_{G\setminus D_i}\prod\limits_{C\in R_i}\psi_C(X_C)\Big]\Big[\sum\limits_{x_i}\prod\limits_{C\in C_i}\psi_C(X_C)\Big]}\\ =\dfrac{\prod\limits_{C\in C_i}\psi_C(X_C)}{\sum\limits_{x_i}\prod\limits_{C\in C_i}\psi_C(X_C)}(*)
(∗)=xi∑G∖Di∑C∈Ci∏ψC(XC)C∈Ri∏ψC(XC)G∖Di∑C∈Ci∏ψC(XC)C∈Ri∏ψC(XC)=xi∑C∈Ci∏ψC(XC)G∖Di∑C∈Ri∏ψC(XC)C∈Ci∏ψC(XC)G∖Di∑C∈Ri∏ψC(XC)=[G∖Di∑C∈Ri∏ψC(XC)][xi∑C∈Ci∏ψC(XC)]C∈Ci∏ψC(XC)G∖Di∑C∈Ri∏ψC(XC)=xi∑C∈Ci∏ψC(XC)C∈Ci∏ψC(XC)(∗)
其中最后一步进行了约分。
为了得到目标的形式,向分子分母同乘
∏
C
∈
R
i
ψ
C
(
X
C
)
\prod\limits_{C\in R_i}\psi_C(X_C)
C∈Ri∏ψC(XC)得:
(
∗
)
=
∏
C
∈
C
i
ψ
C
(
X
C
)
∏
C
∈
R
i
ψ
C
(
X
C
)
∑
x
i
∏
C
∈
C
i
ψ
C
(
X
C
)
∏
C
∈
R
i
ψ
C
(
X
C
)
=
∏
C
∈
C
G
ψ
C
(
X
C
)
∑
x
i
∏
C
∈
C
G
ψ
C
(
X
C
)
=
p
(
X
)
∑
x
i
p
(
X
)
=
p
(
X
)
p
(
X
∖
{
x
i
}
)
=
p
(
X
∖
{
x
i
}
)
p
(
x
i
∣
X
∖
{
x
i
}
)
p
(
X
∖
{
x
i
}
)
=
p
(
x
i
∣
X
∖
{
x
i
}
)
(*)=\dfrac{\prod\limits_{C\in C_i}\psi_C(X_C)\prod\limits_{C\in R_i}\psi_C(X_C)}{\sum\limits_{x_i}\prod\limits_{C\in C_i}\psi_C(X_C)\prod\limits_{C\in R_i}\psi_C(X_C)}\\ =\dfrac{\prod\limits_{C\in C_G}\psi_C(X_C)}{\sum\limits_{x_i}\prod\limits_{C\in C_G}\psi_C(X_C)} =\dfrac{p(X)}{\sum\limits_{x_i}p(X)}\\ =\dfrac{p(X)}{p(X\setminus\{x_i\})}=\dfrac{p(X\setminus\{x_i\})p(x_i|X\setminus\{x_i\})}{p(X\setminus\{x_i\})}=p(x_i|X\setminus\{x_i\})
(∗)=xi∑C∈Ci∏ψC(XC)C∈Ri∏ψC(XC)C∈Ci∏ψC(XC)C∈Ri∏ψC(XC)=xi∑C∈CG∏ψC(XC)C∈CG∏ψC(XC)=xi∑p(X)p(X)=p(X∖{xi})p(X)=p(X∖{xi})p(X∖{xi})p(xi∣X∖{xi})=p(xi∣X∖{xi})
其中最后两步分别运用加法法则和乘法法则。
综上,即证Gibbs ⇒ \Rightarrow ⇒MRF。
MRF ⇒ \Rightarrow ⇒Gibbs
∀
S
⊂
G
\forall S\sub G
∀S⊂G,构造
f
S
(
X
S
)
=
∏
Z
⊂
S
p
(
Z
=
X
Z
,
G
∖
Z
=
0
)
(
−
1
)
∣
S
∣
−
∣
Z
∣
f_S(X_S)=\prod\limits_{Z\sub S}p(Z=X_Z,G\setminus Z=0)^{(-1)^{|S|-|Z|}}
fS(XS)=Z⊂S∏p(Z=XZ,G∖Z=0)(−1)∣S∣−∣Z∣
其中
Z
Z
Z为
S
S
S的子集。
注:
- f S f_S fS定义在节点集合 S S S对应的变量集合 X S X_S XS上
- p ( Z = X Z , G ∖ Z = 0 ) p(Z=X_Z,G\setminus Z=0) p(Z=XZ,G∖Z=0)的含义是图中仅 Z Z Z中节点对应的随机变量取到对应( X S X_S XS中的) X Z X_Z XZ部分的值,而其余变量取0(默认值)时的概率
由于 Z ⊂ S Z\sub S Z⊂S,故 ∣ Z ∣ ⩽ ∣ S ∣ |Z|\leqslant|S| ∣Z∣⩽∣S∣;当 ∣ Z ∣ = ∣ S ∣ |Z|=|S| ∣Z∣=∣S∣时, f S ( X S ) = p ( S = X S , G ∖ S = 0 ) f_S(X_S)=p(S=X_S,G\setminus S=0) fS(XS)=p(S=XS,G∖S=0).
只要证:(1) ∏ S ⊂ G f S ( X S ) = p ( X ) \prod\limits_{S\sub G}f_S(X_S)=p(X) S⊂G∏fS(XS)=p(X) (2)若 S S S不是团,则 f S ( X S ) = 1 f_S(X_S)=1 fS(XS)=1
先证(1),只要证 ∏ S ⊂ G f S ( X S ) \prod\limits_{S\sub G}f_S(X_S) S⊂G∏fS(XS)中除项 p ( X ) p(X) p(X)外其余都可以互相抵消。
原求积顺序是考虑集合 S S S的全部子集。让我们更换求积顺序,考虑集合 Z Z Z的全部母集。
事实上,由于 p ( Z = X Z , G ∖ Z = 0 ) p(Z=X_Z,G\setminus Z=0) p(Z=XZ,G∖Z=0)只与 Z Z Z有关,当 Z Z Z确定后, p ( Z = X Z , G ∖ Z = 0 ) p(Z=X_Z,G\setminus Z=0) p(Z=XZ,G∖Z=0)也就唯一确定了。
对 ∀ Z ⊂ G \forall Z\sub G ∀Z⊂G,记 Δ = p ( Z = X Z , G ∖ Z = 0 ) \Delta=p(Z=X_Z,G\setminus Z=0) Δ=p(Z=XZ,G∖Z=0).下考虑 Z Z Z的所有母集 S S S.
当 S = Z S=Z S=Z时, Δ ( − 1 ) 0 = Δ \Delta^{(-1)^0}=\Delta Δ(−1)0=Δ
当 S = Z ∪ { x i } ( x i ∈ G ∖ Z ) S=Z\cup\{x_i\}(x_i\in G\setminus Z) S=Z∪{xi}(xi∈G∖Z)时, Δ ( − 1 ) 1 = Δ − 1 \Delta^{(-1)^1}=\Delta^{-1} Δ(−1)1=Δ−1,共 C ∣ G ∣ − ∣ Z ∣ 1 C_{|G|-|Z|}^{1} C∣G∣−∣Z∣1项,故总贡献为 Δ ( − 1 ) C ∣ G ∣ − ∣ Z ∣ 1 \Delta^{(-1)C_{|G|-|Z|}^{1}} Δ(−1)C∣G∣−∣Z∣1
当 S = Z ∪ { x i } ∪ { x j } ( ( x i , x j ∈ G ∖ Z ) ) S=Z\cup\{x_i\}\cup\{x_j\}((x_i,x_j\in G\setminus Z)) S=Z∪{xi}∪{xj}((xi,xj∈G∖Z))时, Δ ( − 1 ) 2 = Δ \Delta^{(-1)^2}=\Delta Δ(−1)2=Δ,共 C ∣ G ∣ − ∣ Z ∣ 2 C_{|G|-|Z|}^{2} C∣G∣−∣Z∣2项
以此类推,
Z
Z
Z对结果的总贡献为:
Δ
Δ
(
−
1
)
C
∣
G
∣
−
∣
Z
∣
1
Δ
(
−
1
)
2
C
∣
G
∣
−
∣
Z
∣
2
⋯
Δ
(
−
1
)
∣
G
∣
−
∣
Z
∣
C
∣
G
∣
−
∣
Z
∣
∣
G
∣
−
∣
Z
∣
=
Δ
C
∣
G
∣
−
∣
Z
∣
0
−
C
∣
G
∣
−
∣
Z
∣
1
+
C
∣
G
∣
−
∣
Z
∣
2
−
⋯
+
(
−
1
)
∣
G
∣
−
∣
Z
∣
C
∣
G
∣
−
∣
Z
∣
∣
G
∣
−
∣
Z
∣
(
∗
)
\Delta\Delta^{(-1)C_{|G|-|Z|}^{1}}\Delta^{(-1)^2C_{|G|-|Z|}^{2}}\cdots\Delta^{(-1)^{|G|-|Z|}C_{|G|-|Z|}^{|G|-|Z|}}=\Delta^{C_{|G|-|Z|}^{0}-C_{|G|-|Z|}^{1}+C_{|G|-|Z|}^{2}-\cdots+(-1)^{|G|-|Z|}C_{|G|-|Z|}^{|G|-|Z|}}(*)
ΔΔ(−1)C∣G∣−∣Z∣1Δ(−1)2C∣G∣−∣Z∣2⋯Δ(−1)∣G∣−∣Z∣C∣G∣−∣Z∣∣G∣−∣Z∣=ΔC∣G∣−∣Z∣0−C∣G∣−∣Z∣1+C∣G∣−∣Z∣2−⋯+(−1)∣G∣−∣Z∣C∣G∣−∣Z∣∣G∣−∣Z∣(∗)
由二项式定理知,
0
=
(
1
−
1
)
k
=
C
k
0
−
C
k
1
+
C
k
2
−
⋯
+
(
−
1
)
k
C
k
k
(
k
>
0
)
0=(1-1)^k=C_k^0-C_k^1+C_k^2-\cdots+(-1)^kC_k^k(k>0)
0=(1−1)k=Ck0−Ck1+Ck2−⋯+(−1)kCkk(k>0)
因此,当
∣
Z
∣
<
∣
G
∣
|Z|<|G|
∣Z∣<∣G∣时,贡献为
Δ
0
=
1
\Delta^{0}=1
Δ0=1;当
∣
Z
∣
=
∣
G
∣
|Z|=|G|
∣Z∣=∣G∣时,贡献为
Δ
{
Z
=
G
}
\Delta_{\{Z=G\}}
Δ{Z=G}.
所以 ∏ S ⊂ G f S ( X S ) = Δ { Z = G } = p ( X G ) = p ( X ) \prod\limits_{S\sub G}f_S(X_S)=\Delta_{\{Z=G\}}=p(X_G)=p(X) S⊂G∏fS(XS)=Δ{Z=G}=p(XG)=p(X),即证。
再证(2).
先对条件进行转化。若 S S S不是团,对团的定义取反,得 ∃ a , b ∈ S \exist a,b\in S ∃a,b∈S, a , b a,b a,b不直接相连。
利用这一性质,将 S S S划分为 { a } ∪ { b } ∪ ( S ∖ { a , b } ) \{a\}\cup\{b\}\cup (S\setminus \{a,b\}) {a}∪{b}∪(S∖{a,b}).原求积对象为 ∀ Z ⊂ S \forall Z\sub S ∀Z⊂S,现考虑 ∀ W ⊂ S ∖ { a , b } \forall W\sub S\setminus\{a,b\} ∀W⊂S∖{a,b},则由一个 W W W可以衍生出四个不同的 S S S: W , W ∪ { a } , W ∪ { b } , W ∪ { a , b } W,W\cup\{a\},W\cup\{b\},W\cup\{a,b\} W,W∪{a},W∪{b},W∪{a,b},且不同的 W W W衍生出的 S S S各不相同。
故
p
(
Z
=
X
Z
,
G
∖
Z
=
0
)
(
−
1
)
∣
S
∣
−
∣
Z
∣
p(Z=X_Z,G\setminus Z=0)^{(-1)^{|S|-|Z|}}
p(Z=XZ,G∖Z=0)(−1)∣S∣−∣Z∣可化为以下四项乘积:
p
(
W
=
X
W
,
G
∖
W
=
0
)
(
−
1
)
∣
S
∣
−
∣
W
∣
(
1
)
p
(
W
∪
{
a
}
=
X
W
∪
{
x
a
}
,
G
∖
(
W
∪
{
a
}
)
=
0
)
(
−
1
)
∣
S
∣
−
(
∣
W
∣
+
1
)
(
2
)
p
(
W
∪
{
b
}
=
X
W
∪
{
x
b
}
,
G
∖
(
W
∪
{
b
}
)
=
0
)
(
−
1
)
∣
S
∣
−
(
∣
W
∣
+
1
)
(
3
)
p
(
W
∪
{
a
,
b
}
=
X
W
∪
{
x
a
,
x
b
}
,
G
∖
(
W
∪
{
a
,
b
}
)
=
0
)
(
−
1
)
∣
S
∣
−
(
∣
W
∣
+
2
)
(
4
)
p(W=X_W,G\setminus W=0)^{(-1)^{|S|-|W|}}\quad(1)\\ p(W\cup\{a\}=X_W\cup\{x_a\},G\setminus (W\cup\{a\})=0)^{(-1)^{|S|-(|W|+1)}}\quad(2)\\ p(W\cup\{b\}=X_W\cup\{x_b\},G\setminus (W\cup\{b\})=0)^{(-1)^{|S|-(|W|+1)}}\quad(3)\\ p(W\cup\{a,b\}=X_W\cup\{x_a,x_b\},G\setminus (W\cup\{a,b\})=0)^{(-1)^{|S|-(|W|+2)}}\quad(4)
p(W=XW,G∖W=0)(−1)∣S∣−∣W∣(1)p(W∪{a}=XW∪{xa},G∖(W∪{a})=0)(−1)∣S∣−(∣W∣+1)(2)p(W∪{b}=XW∪{xb},G∖(W∪{b})=0)(−1)∣S∣−(∣W∣+1)(3)p(W∪{a,b}=XW∪{xa,xb},G∖(W∪{a,b})=0)(−1)∣S∣−(∣W∣+2)(4)
观察一下四项的指数,可以发现式
(
1
)
(1)
(1)与式
(
4
)
(4)
(4)指数相等,为
(
−
1
)
∣
S
∣
−
∣
W
∣
(-1)^{|S|-|W|}
(−1)∣S∣−∣W∣,而式
(
2
)
(2)
(2)式
(
3
)
(3)
(3)指数相等,为
−
(
−
1
)
∣
S
∣
−
∣
W
∣
-(-1)^{|S|-|W|}
−(−1)∣S∣−∣W∣.将指数部分
(
−
1
)
∣
S
∣
−
∣
W
∣
(-1)^{|S|-|W|}
(−1)∣S∣−∣W∣提出后,式
(
2
)
,
(
3
)
(2),(3)
(2),(3)将多出
−
1
-1
−1次幂,带上
−
1
-1
−1次幂后变为分母。
提出指数部分
(
−
1
)
∣
S
∣
−
∣
W
∣
(-1)^{|S|-|W|}
(−1)∣S∣−∣W∣后,四项乘积化为:
[
p
(
W
=
X
W
,
G
∖
W
=
0
)
p
(
W
∪
{
a
,
b
}
=
X
W
∪
{
x
a
,
x
b
}
,
G
∖
(
W
∪
{
a
,
b
}
)
=
0
)
p
(
W
∪
{
a
}
=
X
W
∪
{
x
a
}
,
G
∖
(
W
∪
{
a
}
)
=
0
)
p
(
W
∪
{
b
}
=
X
W
∪
{
x
b
}
,
G
∖
(
W
∪
{
b
}
)
=
0
)
]
(
−
1
)
∣
S
∣
−
∣
W
∣
(
∗
)
\Big[\dfrac{p(W=X_W,G\setminus W=0)p(W\cup\{a,b\}=X_W\cup\{x_a,x_b\},G\setminus (W\cup\{a,b\})=0)}{p(W\cup\{a\}=X_W\cup\{x_a\},G\setminus (W\cup\{a\})=0)p(W\cup\{b\}=X_W\cup\{x_b\},G\setminus (W\cup\{b\})=0)}\Big]^{(-1)^{|S|-|W|}}(*)
[p(W∪{a}=XW∪{xa},G∖(W∪{a})=0)p(W∪{b}=XW∪{xb},G∖(W∪{b})=0)p(W=XW,G∖W=0)p(W∪{a,b}=XW∪{xa,xb},G∖(W∪{a,b})=0)](−1)∣S∣−∣W∣(∗)
故原式化为
f
S
(
X
S
)
=
∏
Z
⊂
S
p
(
Z
=
X
Z
,
G
∖
Z
=
0
)
(
−
1
)
∣
S
∣
−
∣
Z
∣
=
∏
W
⊂
S
∖
{
a
,
b
}
(
∗
)
f_S(X_S)=\prod\limits_{Z\sub S}p(Z=X_Z,G\setminus Z=0)^{(-1)^{|S|-|Z|}}=\prod\limits_{W\sub S\setminus\{a,b\}}\Big(*\Big)
fS(XS)=Z⊂S∏p(Z=XZ,G∖Z=0)(−1)∣S∣−∣Z∣=W⊂S∖{a,b}∏(∗)
要证
f
S
(
X
S
)
=
1
f_S(X_S)=1
fS(XS)=1,只要证
(
∗
)
≡
1
(*)\equiv 1
(∗)≡1即可。事实上,由于指数的取值仅有
{
1
,
−
1
}
\{1,-1\}
{1,−1},故只要证
p
(
W
=
X
W
,
G
∖
W
=
0
)
p
(
W
∪
{
a
,
b
}
=
X
W
∪
{
x
a
,
x
b
}
,
G
∖
(
W
∪
{
a
,
b
}
)
=
0
)
p
(
W
∪
{
a
}
=
X
W
∪
{
x
a
}
,
G
∖
(
W
∪
{
a
}
)
=
0
)
p
(
W
∪
{
b
}
=
X
W
∪
{
x
b
}
,
G
∖
(
W
∪
{
b
}
)
=
0
)
=
1
\dfrac{p(W=X_W,G\setminus W=0)p(W\cup\{a,b\}=X_W\cup\{x_a,x_b\},G\setminus (W\cup\{a,b\})=0)}{p(W\cup\{a\}=X_W\cup\{x_a\},G\setminus (W\cup\{a\})=0)p(W\cup\{b\}=X_W\cup\{x_b\},G\setminus (W\cup\{b\})=0)}=1
p(W∪{a}=XW∪{xa},G∖(W∪{a})=0)p(W∪{b}=XW∪{xb},G∖(W∪{b})=0)p(W=XW,G∖W=0)p(W∪{a,b}=XW∪{xa,xb},G∖(W∪{a,b})=0)=1
由于a,b为不直接相连的节点,为了利用
M
R
F
MRF
MRF中的成对马尔可夫性,我们将上式分组,只要证
p
(
W
=
X
W
,
G
∖
W
=
0
)
p
(
W
∪
{
a
}
=
X
W
∪
{
x
a
}
,
G
∖
(
W
∪
{
a
}
)
=
0
)
=
p
(
W
∪
{
b
}
=
X
W
∪
{
x
b
}
,
G
∖
(
W
∪
{
b
}
)
=
0
)
p
(
W
∪
{
a
,
b
}
=
X
W
∪
{
x
a
,
x
b
}
,
G
∖
(
W
∪
{
a
,
b
}
)
=
0
)
\dfrac{p(W=X_W,G\setminus W=0)}{p(W\cup\{a\}=X_W\cup\{x_a\},G\setminus (W\cup\{a\})=0)}=\dfrac{p(W\cup\{b\}=X_W\cup\{x_b\},G\setminus (W\cup\{b\})=0)}{p(W\cup\{a,b\}=X_W\cup\{x_a,x_b\},G\setminus (W\cup\{a,b\})=0)}
p(W∪{a}=XW∪{xa},G∖(W∪{a})=0)p(W=XW,G∖W=0)=p(W∪{a,b}=XW∪{xa,xb},G∖(W∪{a,b})=0)p(W∪{b}=XW∪{xb},G∖(W∪{b})=0)
利用乘法法则对左边进行化简,有
p
(
W
=
X
W
,
G
∖
W
=
0
)
p
(
W
∪
{
a
}
=
X
W
∪
{
x
a
}
,
G
∖
(
W
∪
{
a
}
)
=
0
)
=
p
(
b
=
0
,
W
=
X
W
,
G
∖
(
W
∪
{
a
,
b
}
)
=
0
)
p
(
a
=
0
∣
b
=
0
,
W
=
X
W
,
G
∖
(
W
∪
{
a
,
b
}
)
=
0
)
p
(
b
=
0
,
W
=
X
W
,
G
∖
(
W
∪
{
a
,
b
}
)
=
0
)
p
(
a
=
x
a
∣
b
=
0
,
W
=
X
W
,
G
∖
(
W
∪
{
a
,
b
}
)
=
0
)
(
∗
)
\dfrac{p(W=X_W,G\setminus W=0)}{p(W\cup\{a\}=X_W\cup\{x_a\},G\setminus (W\cup\{a\})=0)}\\ =\dfrac{p(b=0,W=X_W,G\setminus (W\cup\{a,b\})=0)p(a=0|b=0,W=X_W,G\setminus (W\cup\{a,b\})=0)}{p(b=0,W=X_W,G\setminus (W\cup\{a,b\})=0)p(a=x_a|b=0,W=X_W,G\setminus (W\cup\{a,b\})=0)}(*)
p(W∪{a}=XW∪{xa},G∖(W∪{a})=0)p(W=XW,G∖W=0)=p(b=0,W=XW,G∖(W∪{a,b})=0)p(a=xa∣b=0,W=XW,G∖(W∪{a,b})=0)p(b=0,W=XW,G∖(W∪{a,b})=0)p(a=0∣b=0,W=XW,G∖(W∪{a,b})=0)(∗)
这一步的实际含义是将状态分子分母中的状态看作由状态
(
b
=
0
,
W
=
X
W
,
G
∖
(
W
∪
{
a
,
b
}
)
=
0
)
(b=0,W=X_W,G\setminus (W\cup\{a,b\})=0)
(b=0,W=XW,G∖(W∪{a,b})=0)得来。此时
W
W
W中的点取到对应值,而
W
∪
{
a
,
b
}
W\cup\{a,b\}
W∪{a,b}外的点取到默认值,并且我们只考虑到让点b取默认值,并未考虑点a所处的状态。
在此基础上,分子的状态是要 W W W中的点取到对应值,而 W W W外的点取到默认值。与状态 ( b = 0 , W = X W , G ∖ ( W ∪ { a , b } ) = 0 ) (b=0,W=X_W,G\setminus (W\cup\{a,b\})=0) (b=0,W=XW,G∖(W∪{a,b})=0)对比可知,我们还需令点a取到默认值,利用乘法法则对这一步骤进行表达。
类似的,分母要求 W W W中的点与点a取到对应值,而 W W W外的点取到默认值。我们还需令点a取到对应值,同样可以利用乘法法则来表达这一步骤。
不难发现,分子分母可以约分,得
(
∗
)
=
p
(
a
=
0
∣
b
=
0
,
W
=
X
W
,
G
∖
(
W
∪
{
a
,
b
}
)
=
0
)
p
(
a
=
x
a
∣
b
=
0
,
W
=
X
W
,
G
∖
(
W
∪
{
a
,
b
}
)
=
0
)
(
∗
)
(*)=\dfrac{p(a=0|b=0,W=X_W,G\setminus (W\cup\{a,b\})=0)}{p(a=x_a|b=0,W=X_W,G\setminus (W\cup\{a,b\})=0)}(*)
(∗)=p(a=xa∣b=0,W=XW,G∖(W∪{a,b})=0)p(a=0∣b=0,W=XW,G∖(W∪{a,b})=0)(∗)
在给定的条件下,
W
∪
(
G
∖
(
W
∪
{
a
,
b
}
)
)
=
G
∖
{
a
,
b
}
W\cup(G\setminus (W\cup\{a,b\}))=G\setminus\{a,b\}
W∪(G∖(W∪{a,b}))=G∖{a,b}中的节点状态都已确定,意味着
X
∖
{
x
a
,
x
b
}
X\setminus\{x_a,x_b\}
X∖{xa,xb}都已被观测,又a,b不直接相连,由成对马尔可夫性知
x
a
⊥
⊥
x
b
∣
X
∖
{
x
a
,
x
b
}
x_a\perp\!\!\!\perp x_b|X\setminus\{x_a,x_b\}
xa⊥⊥xb∣X∖{xa,xb}
x
a
,
x
b
x_a,x_b
xa,xb互不干扰,我们可以修改条件概率对应条件中节点b的状态而不影响对应的概率值。为了得到目标的形式,我们将点b的状态修改为取到它的对应值,有
(
∗
)
=
p
(
a
=
0
∣
b
=
x
b
,
W
=
X
W
,
G
∖
(
W
∪
{
a
,
b
}
)
=
0
)
p
(
a
=
x
a
∣
b
=
x
b
,
W
=
X
W
,
G
∖
(
W
∪
{
a
,
b
}
)
=
0
)
(
∗
)
(*)=\dfrac{p(a=0|b=x_b,W=X_W,G\setminus (W\cup\{a,b\})=0)}{p(a=x_a|b=x_b,W=X_W,G\setminus (W\cup\{a,b\})=0)}(*)
(∗)=p(a=xa∣b=xb,W=XW,G∖(W∪{a,b})=0)p(a=0∣b=xb,W=XW,G∖(W∪{a,b})=0)(∗)
继续向目标靠拢,向分子分母同乘
p
(
b
=
x
b
,
W
=
X
W
,
G
∖
(
W
∪
{
a
,
b
}
)
=
0
)
p(b=x_b,W=X_W,G\setminus (W\cup\{a,b\})=0)
p(b=xb,W=XW,G∖(W∪{a,b})=0),结合乘法法则,有
(
∗
)
=
p
(
a
=
0
∣
b
=
x
b
,
W
=
X
W
,
G
∖
(
W
∪
{
a
,
b
}
)
=
0
)
p
(
b
=
x
b
,
W
=
X
W
,
G
∖
(
W
∪
{
a
,
b
}
)
=
0
)
p
(
a
=
x
a
∣
b
=
x
b
,
W
=
X
W
,
G
∖
(
W
∪
{
a
,
b
}
)
=
0
)
p
(
b
=
x
b
,
W
=
X
W
,
G
∖
(
W
∪
{
a
,
b
}
)
=
0
)
=
p
(
b
=
x
b
,
W
=
X
W
,
G
∖
(
W
∪
{
a
,
b
}
)
=
0
,
a
=
0
)
p
(
a
=
x
a
,
b
=
x
b
,
W
=
X
W
,
G
∖
(
W
∪
{
a
,
b
}
)
=
0
)
=
p
(
W
∪
{
b
}
=
X
W
∪
{
x
b
}
,
G
∖
(
W
∪
{
b
}
)
=
0
)
p
(
W
∪
{
a
,
b
}
=
X
W
∪
{
x
a
,
x
b
}
,
G
∖
(
W
∪
{
a
,
b
}
)
=
0
)
(*)=\dfrac{p(a=0|b=x_b,W=X_W,G\setminus (W\cup\{a,b\})=0)p(b=x_b,W=X_W,G\setminus (W\cup\{a,b\})=0)}{p(a=x_a|b=x_b,W=X_W,G\setminus (W\cup\{a,b\})=0)p(b=x_b,W=X_W,G\setminus (W\cup\{a,b\})=0)}\\ =\dfrac{p(b=x_b,W=X_W,G\setminus (W\cup\{a,b\})=0,a=0)}{p(a=x_a,b=x_b,W=X_W,G\setminus (W\cup\{a,b\})=0)}\\ =\dfrac{p(W\cup\{b\}=X_W\cup\{x_b\},G\setminus (W\cup\{b\})=0)}{p(W\cup\{a,b\}=X_W\cup\{x_a,x_b\},G\setminus (W\cup\{a,b\})=0)}
(∗)=p(a=xa∣b=xb,W=XW,G∖(W∪{a,b})=0)p(b=xb,W=XW,G∖(W∪{a,b})=0)p(a=0∣b=xb,W=XW,G∖(W∪{a,b})=0)p(b=xb,W=XW,G∖(W∪{a,b})=0)=p(a=xa,b=xb,W=XW,G∖(W∪{a,b})=0)p(b=xb,W=XW,G∖(W∪{a,b})=0,a=0)=p(W∪{a,b}=XW∪{xa,xb},G∖(W∪{a,b})=0)p(W∪{b}=XW∪{xb},G∖(W∪{b})=0)
综上,即证MRF
⇒
\Rightarrow
⇒Gibbs。
综合两节内容,定理得证。
讨论
通过上述证明过程,我们会发现两个问题:
(1)Gibbs仅要求势函数定义在团上,并未要求定义在最大团上 (2)推导过程中未见到归一化常数
对于问题(1),事实上,通过上述讨论,我们发现势函数并不一定要取自最大团。假设现在有团
C
=
{
a
,
b
,
c
}
C=\{a,b,c\}
C={a,b,c},其所有团的势函数乘积为
ψ
a
(
a
)
ψ
b
(
b
)
ψ
c
(
c
)
ψ
a
,
b
(
a
,
b
)
ψ
a
,
c
(
a
,
c
)
ψ
b
,
c
(
b
,
c
)
ψ
a
,
b
,
c
(
a
,
b
,
c
)
(
∗
)
\psi_a(a)\psi_b(b)\psi_c(c)\psi_{a,b}(a,b)\psi_{a,c}(a,c)\psi_{b,c}(b,c)\psi_{a,b,c}(a,b,c)\quad(*)
ψa(a)ψb(b)ψc(c)ψa,b(a,b)ψa,c(a,c)ψb,c(b,c)ψa,b,c(a,b,c)(∗)
而这些乘积可以看作一个整体
Ψ
a
,
b
,
c
(
a
,
b
,
c
)
=
(
∗
)
\Psi_{a,b,c}(a,b,c)=\big(*\big)
Ψa,b,c(a,b,c)=(∗).由于已知
C
C
C为团,故
Ψ
a
,
b
,
c
(
a
,
b
,
c
)
\Psi_{a,b,c}(a,b,c)
Ψa,b,c(a,b,c)的定义是合理的。另一方面,将上述7项乘积整合在一起,可以大大减少因子的数量,故尽可能取最大团能让计算得到极大的简化。
对于问题(2),从MRF ⇒ \Rightarrow ⇒Gibbs的讨论中,我们发现并没有归一化的必要。因为此时我们构造的势函数在累乘后直接得到了联合概率,而联合概率本身是归一化的。
但实际应用中,由于所取的势函数不同,为了保证最终的结果可以用来衡量可能性的大小,我们需要人为的对其进行归一化,使得它能够被看作概率。
非因子形式的Sum-Product算法
引入
让我们继续对变量消除法的讨论。考虑下面的贝叶斯网络:
我们想知道边缘概率
p
(
e
)
p(e)
p(e).利用加法法则与贝叶斯网络的因子分解,有
p
(
e
)
=
∑
a
,
b
,
c
,
d
p
(
a
,
b
,
c
,
d
,
e
)
=
∑
a
,
b
,
c
,
d
p
(
a
)
p
(
b
∣
a
)
p
(
c
∣
b
)
p
(
d
∣
c
)
p
(
e
∣
d
)
(
∗
)
p(e)=\sum\limits_{a,b,c,d}p(a,b,c,d,e)\\ =\sum\limits_{a,b,c,d}p(a)p(b|a)p(c|b)p(d|c)p(e|d)(*)
p(e)=a,b,c,d∑p(a,b,c,d,e)=a,b,c,d∑p(a)p(b∣a)p(c∣b)p(d∣c)p(e∣d)(∗)
对其进行变量消除,得
(
∗
)
=
∑
d
∑
c
∑
b
∑
a
p
(
a
)
p
(
b
∣
a
)
p
(
c
∣
b
)
p
(
d
∣
c
)
p
(
e
∣
d
)
=
∑
d
p
(
e
∣
d
)
∑
c
p
(
d
∣
c
)
∑
b
p
(
c
∣
b
)
∑
a
p
(
b
∣
a
)
p
(
a
)
(*)=\sum\limits_{d}\sum\limits_{c}\sum\limits_{b}\sum\limits_{a}p(a)p(b|a)p(c|b)p(d|c)p(e|d)\\ =\sum\limits_{d}p(e|d)\sum\limits_{c}p(d|c)\sum\limits_{b}p(c|b)\sum\limits_{a}p(b|a)p(a)
(∗)=d∑c∑b∑a∑p(a)p(b∣a)p(c∣b)p(d∣c)p(e∣d)=d∑p(e∣d)c∑p(d∣c)b∑p(c∣b)a∑p(b∣a)p(a)
同时,我们又想知道边缘概率
p
(
c
)
p(c)
p(c).重复上述操作,我们有
p
(
c
)
=
∑
a
,
b
,
d
,
e
p
(
a
,
b
,
c
,
d
,
e
)
=
∑
a
,
b
,
d
,
e
p
(
a
)
p
(
b
∣
a
)
p
(
c
∣
b
)
p
(
d
∣
c
)
p
(
e
∣
d
)
=
∑
b
p
(
c
∣
b
)
∑
a
p
(
b
∣
a
)
p
(
a
)
∑
d
p
(
d
∣
c
)
∑
e
p
(
e
∣
d
)
=
[
∑
b
p
(
c
∣
b
)
∑
a
p
(
b
∣
a
)
p
(
a
)
]
[
∑
d
p
(
d
∣
c
)
∑
e
p
(
e
∣
d
)
]
p(c)=\sum\limits_{a,b,d,e}p(a,b,c,d,e)\\ =\sum\limits_{a,b,d,e}p(a)p(b|a)p(c|b)p(d|c)p(e|d)\\ =\sum\limits_{b}p(c|b)\sum\limits_{a}p(b|a)p(a)\sum\limits_{d}p(d|c)\sum\limits_{e}p(e|d)\\ =\Big[\sum\limits_{b}p(c|b)\sum\limits_{a}p(b|a)p(a)\Big]\Big[\sum\limits_{d}p(d|c)\sum\limits_{e}p(e|d)\Big]
p(c)=a,b,d,e∑p(a,b,c,d,e)=a,b,d,e∑p(a)p(b∣a)p(c∣b)p(d∣c)p(e∣d)=b∑p(c∣b)a∑p(b∣a)p(a)d∑p(d∣c)e∑p(e∣d)=[b∑p(c∣b)a∑p(b∣a)p(a)][d∑p(d∣c)e∑p(e∣d)]
对比上面的计算过程,我们明显的发现,因式
∑
b
p
(
c
∣
b
)
∑
a
p
(
b
∣
a
)
p
(
a
)
\sum\limits_{b}p(c|b)\sum\limits_{a}p(b|a)p(a)
b∑p(c∣b)a∑p(b∣a)p(a)被重复计算了。如果能够重用这些计算结果,将大大提升变量消除法的效率,出于这一目的,我们引入信念传播算法。
符号与规定
为了使传播更加生动形象,针对上文给出的记号 ϕ x ( y ) \phi_x(y) ϕx(y),我们使用 m x → y ( x y ) m_{x\to y}(x_y) mx→y(xy)来代替它。我们曾经提到过,默认情况下不区分 y y y与 x y x_y xy,由于下面需对具体变量进行求和,故在此记号中我们显式地将随机变量与它对应的节点区别开。
另外,我们延用上文中的 ψ S \psi_S ψS记号,指代在因子分解中涉及变量集合 X S X_S XS的那一部分因式。同样的,在这里它并不仅仅指代团上定义的势函数。
在算法推导过程中,我们不特意地考虑归一化常数(随时可能将其忽略),具体处理已在正文中介绍。
算法推导
我们结合具体实例进行推导。有兴趣的读者可以尝试直接证明一般化的结论。
考虑如下的马尔可夫随机场,我们想求得边缘概率 p ( a ) p(a) p(a).
写出它的因子分解,有
p
(
a
,
b
,
c
,
d
)
=
1
Z
ψ
a
(
a
)
ψ
b
(
b
)
ψ
c
(
c
)
ψ
d
(
d
)
ψ
a
,
b
(
a
,
b
)
ψ
b
,
c
(
b
,
c
)
ψ
b
,
d
(
b
,
d
)
p(a,b,c,d)=\dfrac{1}{Z}\psi_a(a)\psi_b(b)\psi_c(c)\psi_d(d)\psi_{a,b}(a,b)\psi_{b,c}(b,c)\psi_{b,d}(b,d)
p(a,b,c,d)=Z1ψa(a)ψb(b)ψc(c)ψd(d)ψa,b(a,b)ψb,c(b,c)ψb,d(b,d)
仿照引例的手法进行处理,有
p
(
a
)
=
∑
x
b
,
x
c
,
x
d
p
(
a
,
b
,
c
,
d
)
=
∑
x
b
∑
x
c
∑
x
d
ψ
a
(
a
)
ψ
b
(
b
)
ψ
c
(
c
)
ψ
d
(
d
)
ψ
a
,
b
(
a
,
b
)
ψ
b
,
c
(
b
,
c
)
ψ
b
,
d
(
b
,
d
)
=
ψ
a
(
a
)
∑
x
b
ψ
b
(
b
)
ψ
a
,
b
(
a
,
b
)
∑
x
c
ψ
c
(
c
)
ψ
b
,
c
(
b
,
c
)
∑
x
d
ψ
d
(
d
)
ψ
b
,
d
(
b
,
d
)
p(a)=\sum\limits_{x_b,x_c,x_d}p(a,b,c,d)\\ =\sum\limits_{x_b}\sum\limits_{x_c}\sum\limits_{x_d}\psi_a(a)\psi_b(b)\psi_c(c)\psi_d(d)\psi_{a,b}(a,b)\psi_{b,c}(b,c)\psi_{b,d}(b,d)\\ =\psi_a(a)\sum\limits_{x_b}\psi_b(b)\psi_{a,b}(a,b)\sum\limits_{x_c}\psi_c(c)\psi_{b,c}(b,c)\sum\limits_{x_d}\psi_d(d)\psi_{b,d}(b,d)
p(a)=xb,xc,xd∑p(a,b,c,d)=xb∑xc∑xd∑ψa(a)ψb(b)ψc(c)ψd(d)ψa,b(a,b)ψb,c(b,c)ψb,d(b,d)=ψa(a)xb∑ψb(b)ψa,b(a,b)xc∑ψc(c)ψb,c(b,c)xd∑ψd(d)ψb,d(b,d)
引入
m
x
→
y
(
x
y
)
m_{x\to y}(x_y)
mx→y(xy)的记号,得
ψ
a
(
a
)
∑
x
b
ψ
b
(
b
)
ψ
a
,
b
(
a
,
b
)
∑
x
c
ψ
c
(
c
)
ψ
b
,
c
(
b
,
c
)
⏟
m
c
→
b
(
x
b
)
∑
x
d
ψ
d
(
d
)
ψ
b
,
d
(
b
,
d
)
⏟
m
d
→
b
(
x
b
)
=
ψ
a
(
a
)
∑
x
b
ψ
b
(
b
)
ψ
a
,
b
(
a
,
b
)
m
c
→
b
(
x
b
)
m
d
→
b
(
x
b
)
⏟
m
b
→
a
(
x
a
)
=
ψ
a
(
a
)
m
b
→
a
(
x
a
)
\psi_a(a)\sum\limits_{x_b}\psi_b(b)\psi_{a,b}(a,b)\underbrace{\sum\limits_{x_c}\psi_c(c)\psi_{b,c}(b,c)}_{m_{c\to b}(x_b)}\underbrace{\sum\limits_{x_d}\psi_d(d)\psi_{b,d}(b,d)}_{m_{d\to b}(x_b)}\\ =\psi_a(a)\underbrace{\sum\limits_{x_b}\psi_b(b)\psi_{a,b}(a,b)m_{c\to b}(x_b)m_{d\to b}(x_b)}_{m_{b\to a}(x_a)}=\psi_a(a)m_{b\to a}(x_a)
ψa(a)xb∑ψb(b)ψa,b(a,b)mc→b(xb)
xc∑ψc(c)ψb,c(b,c)md→b(xb)
xd∑ψd(d)ψb,d(b,d)=ψa(a)mb→a(xa)
xb∑ψb(b)ψa,b(a,b)mc→b(xb)md→b(xb)=ψa(a)mb→a(xa)
上述过程又可写作
{
m
b
→
a
(
x
a
)
=
∑
x
b
ψ
b
(
b
)
ψ
a
,
b
(
a
,
b
)
m
c
→
b
(
x
b
)
m
d
→
b
(
x
b
)
p
(
a
)
=
ψ
a
(
a
)
m
b
→
a
(
x
a
)
\left\{ \begin{array}{ll} m_{b\to a}(x_a)=\sum\limits_{x_b}\psi_b(b)\psi_{a,b}(a,b)m_{c\to b}(x_b)m_{d\to b}(x_b)\\ p(a)=\psi_a(a)m_{b\to a}(x_a) \end{array} \right.
{mb→a(xa)=xb∑ψb(b)ψa,b(a,b)mc→b(xb)md→b(xb)p(a)=ψa(a)mb→a(xa)
从图中不难发现,
c
,
d
c,d
c,d节点都是
b
b
b节点的邻居。与正文类似的,我们引入记号
n
e
(
i
)
ne(i)
ne(i),代指
i
i
i节点的全部邻居节点,这样,上式又可以写作
{
m
b
→
a
(
x
a
)
=
∑
x
b
ψ
b
(
b
)
ψ
a
,
b
(
a
,
b
)
∏
k
∈
n
e
(
b
)
∖
a
m
k
→
b
(
x
b
)
p
(
a
)
=
ψ
a
(
a
)
∏
k
∈
n
e
(
a
)
m
k
→
a
(
x
a
)
\left\{ \begin{array}{ll} m_{b\to a}(x_a)=\sum\limits_{x_b}\psi_b(b)\psi_{a,b}(a,b)\prod\limits_{k\in ne(b)\setminus a}m_{k\to b}(x_b)\\ p(a)=\psi_a(a)\prod\limits_{k\in ne(a)}m_{k\to a}(x_a) \end{array} \right.
⎩
⎨
⎧mb→a(xa)=xb∑ψb(b)ψa,b(a,b)k∈ne(b)∖a∏mk→b(xb)p(a)=ψa(a)k∈ne(a)∏mk→a(xa)
进一步泛化
a
,
b
a,b
a,b为
i
,
j
i,j
i,j,我们将得到Sum-product算法的最终形式
{
m
j
→
i
(
x
i
)
=
∑
x
j
ψ
i
,
j
(
i
,
j
)
ψ
j
(
j
)
∏
k
∈
n
e
(
j
)
∖
i
m
k
→
j
(
x
j
)
p
(
x
i
)
=
ψ
i
(
i
)
∏
k
∈
n
e
(
i
)
m
k
→
i
(
x
i
)
\left\{ \begin{array}{ll} m_{j\to i}(x_i)=\sum\limits_{x_j}\psi_{i,j}(i,j)\psi_j(j)\prod\limits_{k\in ne(j)\setminus i}m_{k\to j}(x_j)\\ p(x_i)=\psi_i(i)\prod\limits_{k\in ne(i)}m_{k\to i}(x_i) \end{array} \right.
⎩
⎨
⎧mj→i(xi)=xj∑ψi,j(i,j)ψj(j)k∈ne(j)∖i∏mk→j(xj)p(xi)=ψi(i)k∈ne(i)∏mk→i(xi)
同样地,它具有传递的形式,我们可以认为节点
j
j
j携带的信息量为
b
e
l
i
e
f
(
j
)
=
ψ
j
(
j
)
∏
k
∈
n
e
(
j
)
∖
i
m
k
→
j
(
x
j
)
belief(j)=\psi_j(j)\prod\limits_{k\in ne(j)\setminus i}m_{k\to j}(x_j)
belief(j)=ψj(j)k∈ne(j)∖i∏mk→j(xj)
文艺地,我们可以称之为
j
j
j的“信仰(念)”(belief),由它自己的信息和孩子们传给它的信息构成;而节点
j
j
j所能向节点
i
i
i传递的信息
m
j
→
i
m_{j\to i}
mj→i为
m
j
→
i
(
x
i
)
=
∑
x
j
ψ
i
,
j
(
i
,
j
)
b
e
l
i
e
f
(
j
)
m_{j\to i}(x_i)=\sum\limits_{x_j}\psi_{i,j}(i,j)belief(j)
mj→i(xi)=xj∑ψi,j(i,j)belief(j)
这便是信念传播的最终表现。
操作细节
同样地,这种形式的Sum-Product算法只需求出所有的信息,就可以用这些信息组装出所有的边缘概率。
具体而言,这有两种实现模式:
-
串行算法(Sequential Implementation)
初始化:任意选定一个根节点,如图中的节点 a a a.
收集信息:按dfs的形式,递归地收集节点信息,叶子节点为递归边界,如图(a)。伪代码如下:
def collectMsg(x, last): for neighbor in ne[x]: if neighbor == last: continue collectMsg(neighbor, x) # # Calculate x's message # collectMsg(Root, None)
分发信息:按dfs的形式,递归地分发节点信息,如图(b)。伪代码如下:
def distributeMsg(x, last): for neighbor in ne[x]: if neighbor == last: continue # # Distribute x's message # distributeMsg(neighbor, x) distributeMsg(Root, None)
组装信息:至此,所有信息均完成计算,故所求的边缘概率能够从这些信息中得出
-
并行算法(Parallel Implementation)
如图,我们以点为单位开启线程。当每个线程收集到其它节点发送过来的信息后,便立即将其发送出去。同时借助数据结构来记录更新的时序。可以证明,这个算法是收敛的,最终能够有效地求出所有信息,从而组装出我们想要的边缘概率。
衍生算法
同样地,这种形式的Sum-Product算法有其对应的衍生算法。
与正文思路一致,我们得到非因子形式的Max-Product:
{
m
j
→
i
(
x
i
)
=
max
x
j
ψ
i
,
j
(
i
,
j
)
ψ
j
(
j
)
∏
k
∈
n
e
(
j
)
∖
i
m
k
→
j
(
x
j
)
max
X
p
(
X
)
=
max
x
i
ψ
i
(
i
)
∏
k
∈
n
e
(
i
)
m
k
→
i
(
x
i
)
\left\{ \begin{array}{ll} m_{j\to i}(x_i)=\max\limits_{x_j}\psi_{i,j}(i,j)\psi_j(j)\prod\limits_{k\in ne(j)\setminus i}m_{k\to j}(x_j)\\ \max\limits_{X}p(X)=\max\limits_{x_i}\psi_i(i)\prod\limits_{k\in ne(i)}m_{k\to i}(x_i) \end{array} \right.
⎩
⎨
⎧mj→i(xi)=xjmaxψi,j(i,j)ψj(j)k∈ne(j)∖i∏mk→j(xj)Xmaxp(X)=ximaxψi(i)k∈ne(i)∏mk→i(xi)
与因子形式的Max-Product相比,有趣的是,此处的信息传递仅涉及对一个变量的最优化。我们通过一个实例来体会这一点。
同样是上文中的马尔可夫随机场,现在我们想求得相应的最大后验。
与因子形式的Max-Product类似,我们只需要进行收集信息的过程,如图所示,有
m
c
→
b
(
x
b
)
=
max
x
c
ψ
c
(
c
)
ψ
b
,
c
(
b
,
c
)
m
d
→
b
(
x
b
)
=
max
x
d
ψ
d
(
d
)
ψ
b
,
d
(
b
,
d
)
m
b
→
a
(
x
a
)
=
max
x
b
ψ
b
(
b
)
ψ
a
,
b
(
a
,
b
)
m
c
→
b
(
x
b
)
m
d
→
b
(
x
b
)
max
a
,
b
,
c
p
(
a
,
b
,
c
)
=
max
x
a
ψ
a
(
a
)
m
b
→
a
(
x
a
)
m_{c\to b}(x_b)=\max_{x_c}\psi_c(c)\psi_{b,c}(b,c)\\ m_{d\to b}(x_b)=\max_{x_d}\psi_d(d)\psi_{b,d}(b,d)\\ m_{b\to a}(x_a)=\max\limits_{x_b}\psi_b(b)\psi_{a,b}(a,b)m_{c\to b}(x_b)m_{d\to b}(x_b)\\ \max_{a,b,c}p(a,b,c)=\max_{x_a}\psi_a(a)m_{b\to a}(x_a)
mc→b(xb)=xcmaxψc(c)ψb,c(b,c)md→b(xb)=xdmaxψd(d)ψb,d(b,d)mb→a(xa)=xbmaxψb(b)ψa,b(a,b)mc→b(xb)md→b(xb)a,b,cmaxp(a,b,c)=xamaxψa(a)mb→a(xa)
我们依次对每个变量进行优化,实现起来将更加清晰明了。
相应地,它也具有数值优化版本——Max-Sum算法。此处不再赘述。
与因子形式的Sum-Product算法的联系
事实上,通过上述推导过程,我们发现仅有两类因子出现: ψ i , j \psi_{i,j} ψi,j与 ψ i \psi_i ψi;相应地,我们可以反推出它的因子图具有这样的特点:每个因子节点都只与至多两个变量节点相连。
这是可以做到的。对于马尔可夫随机场来说,通过Hammesley-Clifford定理的证明,我们知道可以将势函数定义在任意的团结构上,而任意相互连接的两点都将构成合法的团结构。因此,我们通过在每条边上插入因子节点的手段来构造相应的因子图。除此之外,每个节点本身也是合法的团结构,所以我们可以自由地向每个节点额外连上一个因子节点。而对于贝叶斯网络来说,我们利用道德图将其转化为对应的马尔可夫随机场。
比如上面我们讨论的例子,对应的因子图为
从这种意义上来说,非因子形式的Sum-Product算法可以看作是因子形式的Sum-Product算法的一个特例。由于没有充分利用因子图将节点进行“集中”的特性,非因子形式的Sum-Product算法将无法处理道德图“伦理”过程形成的环结构;但反过来,正因为它一次至多考虑两个节点,在利用衍生算法求最大后验时,将更易实现。
两种形式的Sum-Product算法各有特色,根据具体任务的需要与个人喜好进行挑选。