PRML读书会第五期——概率图模型(Graphical Models)【下】

注:这是全文的第三部分,前文传送门:
PRML读书会第五期——概率图模型(Graphical Models)【上】
PRML读书会第五期——概率图模型(Graphical Models)【中】

附录

Hammesley-Clifford定理证明

Hammesley-Clifford定理:
M R F ⇔ G i b b s MRF\Leftrightarrow Gibbs MRFGibbs

定义

定义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(xiX{xi})=p(xinei)
定义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=XCψC(XC)

注:

  1. 这里给出了马尔可夫随机场(Markov Random Field,MRF)和吉布斯分布(Gibbs)的定义

  2. 由于马尔可夫随机场的三条马尔可夫性等价,这里选取的是局部马尔可夫性,即 x i ⊥  ⁣ ⁣ ⁣ ⊥ X ∖ ( x i ∪ n e i ) ∣ n e i x_i\perp\!\!\!\perp X\setminus (x_i\cup ne_i)|ne_i xiX(xinei)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(xinei)=p(xinei,X(xinei))=p(xiX{xi})

  3. 此处吉布斯分布的因子分解中, 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(xinei)=p(xiX{xi}).

16

D i ≜ n e i ∪ x i D_i\triangleq ne_i\cup x_i Dineixi(此处指节点集合),则由贝叶斯法则和加法法则得:
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(xinei)=p(nei)p(xi,nei)=Gneip(X)GDip(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) Gnei=G(Di{xi})=xi(GDi),因此 ∑ G ∖ n e i \sum\limits_{G\setminus ne_i} Gnei可写作 ∑ x i ∑ G ∖ D i \sum\limits_{x_i}\sum\limits_{G\setminus D_i} xiGDi.

再带入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)}(*) ()=xiGDip(X)GDip(X)=xiGDiCCGψC(XC)GDiCCGψ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{CCCG,xiC},Ri{CCCG,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) CCGψC(XC)=CCiψC(XC)CRiψC(XC)
可以证明: ∀ x ∈ C i , x ∉ G ∖ D i \forall x\in C_i,x\notin G\setminus D_i xCi,x/GDi,即 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 xCi,xDi.根据团的定义,团内节点两两相连。又 x i ∈ C i x_i\in C_i xiCi,则 ∀ x ∈ C i ( x ≠ x i ) \forall x\in C_i(x\not=x_i) xCi(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 xnei.又 n e i ⊂ D i ne_i\sub D_i neiDi,所以 x ∈ D i x\in D_i xDi.当 x = x i x=x_i x=xi时, x i ∈ D i x_i\in D_i xiDi也符合。即证。

因此, C i C_i Ci G ∖ D i G\setminus D_i GDi无关,因子 ∏ C ∈ C i ψ C ( X C ) \prod\limits_{C\in C_i}\psi_C(X_C) CCiψC(XC)可以提到 ∑ G ∖ D i \sum\limits_{G\setminus D_i} GDi外,同时, 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)}(*) ()=xiGDiCCiψC(XC)CRiψC(XC)GDiCCiψC(XC)CRiψC(XC)=xiCCiψC(XC)GDiCRiψC(XC)CCiψC(XC)GDiCRiψC(XC)=[GDiCRiψC(XC)][xiCCiψC(XC)]CCiψC(XC)GDiCRiψC(XC)=xiCCiψC(XC)CCiψC(XC)()
其中最后一步进行了约分。

为了得到目标的形式,向分子分母同乘 ∏ C ∈ R i ψ C ( X C ) \prod\limits_{C\in R_i}\psi_C(X_C) CRiψ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\}) ()=xiCCiψC(XC)CRiψC(XC)CCiψC(XC)CRiψC(XC)=xiCCGψC(XC)CCGψC(XC)=xip(X)p(X)=p(X{xi})p(X)=p(X{xi})p(X{xi})p(xiX{xi})=p(xiX{xi})
其中最后两步分别运用加法法则和乘法法则。

综上,即证Gibbs ⇒ \Rightarrow MRF。

MRF ⇒ \Rightarrow Gibbs

∀ S ⊂ G \forall S\sub G SG,构造
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)=ZSp(Z=XZ,GZ=0)(1)SZ
其中 Z Z Z S S S的子集。

注:

  1. f S f_S fS定义在节点集合 S S S对应的变量集合 X S X_S XS
  2. p ( Z = X Z , G ∖ Z = 0 ) p(Z=X_Z,G\setminus Z=0) p(Z=XZ,GZ=0)的含义是图中仅 Z Z Z中节点对应的随机变量取到对应( X S X_S XS中的) X Z X_Z XZ部分的值,而其余变量取0(默认值)时的概率

由于 Z ⊂ S Z\sub S ZS,故 ∣ Z ∣ ⩽ ∣ S ∣ |Z|\leqslant|S| ZS;当 ∣ 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,GS=0).

只要证:(1) ∏ S ⊂ G f S ( X S ) = p ( X ) \prod\limits_{S\sub G}f_S(X_S)=p(X) SGfS(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) SGfS(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,GZ=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,GZ=0)也就唯一确定了。

∀ Z ⊂ G \forall Z\sub G ZG,记 Δ = p ( Z = X Z , G ∖ Z = 0 ) \Delta=p(Z=X_Z,G\setminus Z=0) Δ=p(Z=XZ,GZ=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}(xiGZ)时, Δ ( − 1 ) 1 = Δ − 1 \Delta^{(-1)^1}=\Delta^{-1} Δ(1)1=Δ1,共 C ∣ G ∣ − ∣ Z ∣ 1 C_{|G|-|Z|}^{1} CGZ1项,故总贡献为 Δ ( − 1 ) C ∣ G ∣ − ∣ Z ∣ 1 \Delta^{(-1)C_{|G|-|Z|}^{1}} Δ(1)CGZ1

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,xjGZ))时, Δ ( − 1 ) 2 = Δ \Delta^{(-1)^2}=\Delta Δ(1)2=Δ,共 C ∣ G ∣ − ∣ Z ∣ 2 C_{|G|-|Z|}^{2} CGZ2

以此类推, 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)CGZ1Δ(1)2CGZ2Δ(1)GZCGZGZ=ΔCGZ0CGZ1+CGZ2+(1)GZCGZGZ()
由二项式定理知,
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=(11)k=Ck0Ck1+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) SGfS(XS)=Δ{Z=G}=p(XG)=p(X),即证。

再证(2).

先对条件进行转化。若 S S S不是团,对团的定义取反,得 ∃ a , b ∈ S \exist a,b\in S a,bS a , b a,b a,b不直接相连。

17

利用这一性质,将 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 ZS,现考虑 ∀ W ⊂ S ∖ { a , b } \forall W\sub S\setminus\{a,b\} WS{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,GZ=0)(1)SZ可化为以下四项乘积:
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,GW=0)(1)SW(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)SW,而式 ( 2 ) (2) (2) ( 3 ) (3) (3)指数相等,为 − ( − 1 ) ∣ S ∣ − ∣ W ∣ -(-1)^{|S|-|W|} (1)SW.将指数部分 ( − 1 ) ∣ S ∣ − ∣ W ∣ (-1)^{|S|-|W|} (1)SW提出后,式 ( 2 ) , ( 3 ) (2),(3) (2),(3)将多出 − 1 -1 1次幂,带上 − 1 -1 1次幂后变为分母。

提出指数部分 ( − 1 ) ∣ S ∣ − ∣ W ∣ (-1)^{|S|-|W|} (1)SW后,四项乘积化为:
[ 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,GW=0)p(W{a,b}=XW{xa,xb},G(W{a,b})=0)](1)SW()
故原式化为
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)=ZSp(Z=XZ,GZ=0)(1)SZ=WS{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,GW=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,GW=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,GW=0)=p(b=0,W=XW,G(W{a,b})=0)p(a=xab=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=xab=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\} xaxbX{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=xab=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=xab=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算法

引入

让我们继续对变量消除法的讨论。考虑下面的贝叶斯网络:

41

我们想知道边缘概率 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,dp(a,b,c,d,e)=a,b,c,dp(a)p(ba)p(cb)p(dc)p(ed)()
对其进行变量消除,得
( ∗ ) = ∑ 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) ()=dcbap(a)p(ba)p(cb)p(dc)p(ed)=dp(ed)cp(dc)bp(cb)ap(ba)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,ep(a,b,c,d,e)=a,b,d,ep(a)p(ba)p(cb)p(dc)p(ed)=bp(cb)ap(ba)p(a)dp(dc)ep(ed)=[bp(cb)ap(ba)p(a)][dp(dc)ep(ed)]
对比上面的计算过程,我们明显的发现,因式 ∑ b p ( c ∣ b ) ∑ a p ( b ∣ a ) p ( a ) \sum\limits_{b}p(c|b)\sum\limits_{a}p(b|a)p(a) bp(cb)ap(ba)p(a)被重复计算了。如果能够重用这些计算结果,将大大提升变量消除法的效率,出于这一目的,我们引入信念传播算法。

符号与规定

为了使传播更加生动形象,针对上文给出的记号 ϕ x ( y ) \phi_x(y) ϕx(y),我们使用 m x → y ( x y ) m_{x\to y}(x_y) mxy(xy)来代替它。我们曾经提到过,默认情况下不区分 y y y x y x_y xy,由于下面需对具体变量进行求和,故在此记号中我们显式地将随机变量与它对应的节点区别开。

另外,我们延用上文中的 ψ S \psi_S ψS记号,指代在因子分解中涉及变量集合 X S X_S XS的那一部分因式。同样的,在这里它并不仅仅指代团上定义的势函数。

在算法推导过程中,我们不特意地考虑归一化常数(随时可能将其忽略),具体处理已在正文中介绍。

算法推导

我们结合具体实例进行推导。有兴趣的读者可以尝试直接证明一般化的结论。

考虑如下的马尔可夫随机场,我们想求得边缘概率 p ( a ) p(a) p(a).

42

写出它的因子分解,有
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,xdp(a,b,c,d)=xbxcxdψ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) mxy(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)mcb(xb) xcψc(c)ψb,c(b,c)mdb(xb) xdψd(d)ψb,d(b,d)=ψa(a)mba(xa) xbψb(b)ψa,b(a,b)mcb(xb)mdb(xb)=ψa(a)mba(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. {mba(xa)=xbψb(b)ψa,b(a,b)mcb(xb)mdb(xb)p(a)=ψa(a)mba(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. mba(xa)=xbψb(b)ψa,b(a,b)kne(b)amkb(xb)p(a)=ψa(a)kne(a)mka(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. mji(xi)=xjψi,j(i,j)ψj(j)kne(j)imkj(xj)p(xi)=ψi(i)kne(i)mki(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)kne(j)imkj(xj)
文艺地,我们可以称之为 j j j的“信仰(念)”(belief),由它自己的信息和孩子们传给它的信息构成;而节点 j j j所能向节点 i i i传递的信息 m j → i m_{j\to i} mji
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) mji(xi)=xjψi,j(i,j)belief(j)
这便是信念传播的最终表现。

操作细节

同样地,这种形式的Sum-Product算法只需求出所有的信息,就可以用这些信息组装出所有的边缘概率。

具体而言,这有两种实现模式:

  • 串行算法(Sequential Implementation)

    43

    初始化:任意选定一个根节点,如图中的节点 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)

    44

    如图,我们以点为单位开启线程。当每个线程收集到其它节点发送过来的信息后,便立即将其发送出去。同时借助数据结构来记录更新的时序。可以证明,这个算法是收敛的,最终能够有效地求出所有信息,从而组装出我们想要的边缘概率。

衍生算法

同样地,这种形式的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. mji(xi)=xjmaxψi,j(i,j)ψj(j)kne(j)imkj(xj)Xmaxp(X)=ximaxψi(i)kne(i)mki(xi)
与因子形式的Max-Product相比,有趣的是,此处的信息传递仅涉及对一个变量的最优化。我们通过一个实例来体会这一点。

45

同样是上文中的马尔可夫随机场,现在我们想求得相应的最大后验。

与因子形式的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) mcb(xb)=xcmaxψc(c)ψb,c(b,c)mdb(xb)=xdmaxψd(d)ψb,d(b,d)mba(xa)=xbmaxψb(b)ψa,b(a,b)mcb(xb)mdb(xb)a,b,cmaxp(a,b,c)=xamaxψa(a)mba(xa)
我们依次对每个变量进行优化,实现起来将更加清晰明了。

相应地,它也具有数值优化版本——Max-Sum算法。此处不再赘述。

与因子形式的Sum-Product算法的联系

事实上,通过上述推导过程,我们发现仅有两类因子出现: ψ i , j \psi_{i,j} ψi,j ψ i \psi_i ψi;相应地,我们可以反推出它的因子图具有这样的特点:每个因子节点都只与至多两个变量节点相连。

这是可以做到的。对于马尔可夫随机场来说,通过Hammesley-Clifford定理的证明,我们知道可以将势函数定义在任意的团结构上,而任意相互连接的两点都将构成合法的团结构。因此,我们通过在每条边上插入因子节点的手段来构造相应的因子图。除此之外,每个节点本身也是合法的团结构,所以我们可以自由地向每个节点额外连上一个因子节点。而对于贝叶斯网络来说,我们利用道德图将其转化为对应的马尔可夫随机场。

比如上面我们讨论的例子,对应的因子图为

46

从这种意义上来说,非因子形式的Sum-Product算法可以看作是因子形式的Sum-Product算法的一个特例。由于没有充分利用因子图将节点进行“集中”的特性,非因子形式的Sum-Product算法将无法处理道德图“伦理”过程形成的环结构;但反过来,正因为它一次至多考虑两个节点,在利用衍生算法求最大后验时,将更易实现。

两种形式的Sum-Product算法各有特色,根据具体任务的需要与个人喜好进行挑选。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值