Hammersley-Clifford定理证明
Proof of Hammersley-Clifford Theorem
最近看语义分割论文DeepLab,有使用全连接CRF恢复局部的细节信息,提升分割精度。又回去复习了下CRF,仍然有一个问题很困扰: “根据Hammersley Clifford定理,一个无向图模型的概率可以表示为定义在图上所有最大团上的势函数的乘积”;为什么可以这么定义,也就是Hammersley Clifford定理证明过程,书中并没有没有给出;网上看到也有一些童鞋有同样的困惑,本文翻译并备注了证明过程,希望对大家有所帮助。
原文地址: Proof of Hammersley-Clifford Theorem
本文下载地址:Hammersley-Clifford定理证明
依赖知识
a): 熟悉概率论的基础知识
b):了解概率图模型;熟悉MRF,最大团相关知识
定义1
一个无向图模型G称之为马尔科夫随机场(MRF),如果两个顶点被观测顶点分割情况下条件独立。也就是说对图中任意顶点 Xi X i <script type="math/tex" id="MathJax-Element-1">X_i</script> ,以下条件属性成立
XG∖i X G ∖ i <script type="math/tex" id="MathJax-Element-3">X_{G \backslash i}</script> 代表除了 Xi X i <script type="math/tex" id="MathJax-Element-4">X_i</script> 之外的所有顶点, XNi X N i <script type="math/tex" id="MathJax-Element-5">X_{N_i}</script> 代表 i i <script type="math/tex" id="MathJax-Element-6">i</script>的所有邻居顶点-即所有与 <script type="math/tex" id="MathJax-Element-7">X_i</script> 相连的顶点。
定义2
在无向图模型G上的一个概率分布 P(X) P ( X ) <script type="math/tex" id="MathJax-Element-8">P(X)</script> 称之为吉布斯分布,如果它能够因子分解为定义在团(clique)上的正函数的乘积,这些团覆盖了G的所有顶点和边。即
CG C G <script type="math/tex" id="MathJax-Element-10">C_G</script> 是G上所有(最大)团的集合, Z=∑x∏c∈CGϕc(Xc) Z = ∑ x ∏ c ∈ C G ϕ c ( X c ) <script type="math/tex" id="MathJax-Element-11">Z=\sum_x \prod_{c \in C_G} \phi_c(X_c)</script> 是归一化常量。
证明过程
Hammersley Clifford告诉我们这两个定义是等价的,下面将证明这个定理。
反向证明(吉布斯分布=>MRF)
设 Di=Ni⋃{Xi} D i = N i ⋃ { X i } <script type="math/tex" id="MathJax-Element-12">D_i = N_i \bigcup \{X_i\}</script> 是包含 Xi X i <script type="math/tex" id="MathJax-Element-13">X_i</script> 邻居顶点和 Xi X i <script type="math/tex" id="MathJax-Element-14">X_i</script> 本身的集合。从等式(1)的右边开始
基于是否包含 Xi X i <script type="math/tex" id="MathJax-Element-17">X_i</script> 将最大团 CG C G <script type="math/tex" id="MathJax-Element-18">C_G</script> 分为两组:
Ci=c∈CG:Xi∈c C i = c ∈ C G : X i ∈ c <script type="math/tex" id="MathJax-Element-19">C_i = {c \in C_G: X_i \in c}</script> 和 Ri=c∈CG:Xi∉c R i = c ∈ C G : X i ∉ c <script type="math/tex" id="MathJax-Element-20">R_i = {c \in C_G: X_i \notin c}</script> ;现在可以将等式(4)分为 Ci C i <script type="math/tex" id="MathJax-Element-21">C_i</script> 和 Ri R i <script type="math/tex" id="MathJax-Element-22">R_i</script> 上的乘积。
在 G∖Di G ∖ D i <script type="math/tex" id="MathJax-Element-25">G \backslash D_i</script> 上的求和可以移到 Ci C i <script type="math/tex" id="MathJax-Element-26">C_i</script> 乘积的后面,因为 Ci C i <script type="math/tex" id="MathJax-Element-27">C_i</script> 团中所有的顶点一定都来自 Di D i <script type="math/tex" id="MathJax-Element-28">D_i</script>; 因为 Ci C i <script type="math/tex" id="MathJax-Element-29">C_i</script> 只包含 Xi X i <script type="math/tex" id="MathJax-Element-30">X_i</script> 和与 Xi X i <script type="math/tex" id="MathJax-Element-31">X_i</script> 相邻的顶点,由 Di D i <script type="math/tex" id="MathJax-Element-32">D_i</script> 的定义可知;因而 Ci C i <script type="math/tex" id="MathJax-Element-33">C_i</script> 乘积对于在 G∖Di G ∖ D i <script type="math/tex" id="MathJax-Element-34">G \backslash D_i</script> 上的求和相当于常数项,故可以把 Ci C i <script type="math/tex" id="MathJax-Element-35">C_i</script> 乘积拿到 G∖Di G ∖ D i <script type="math/tex" id="MathJax-Element-36">G \backslash D_i</script> 上的求和的外面。
同样注意到因子 ∑G∖Di∏c∈Riϕc(Xc) ∑ G ∖ D i ∏ c ∈ R i ϕ c ( X c ) <script type="math/tex" id="MathJax-Element-37">\sum_{G \backslash D_i} \prod_{c \in R_i} \phi_c(X_c)</script> 没有包含 Xi X i <script type="math/tex" id="MathJax-Element-38">X_i</script> ,并且可以从分母移除,因为分子也包含了它。因此有:
消除了 G∖Di G ∖ D i <script type="math/tex" id="MathJax-Element-44">G \backslash D_i</script> 上的求和项后,在公式(8)的分子分母乘上一个相同的因子,再次引入势函数;最终公式(11)与公式(1)的左边相等,证明了反向等价。
正向证明(MRF=>吉布斯分布)
对于任意 s⊂G s ⊂ G <script type="math/tex" id="MathJax-Element-45">s \subset G</script>,定义一个如下的候选势函数:
- 等式右边的乘积是在s的所有子集上进行的。
- 对于s任意子集z, P(Xz=xz,XG∖z=0) P ( X z = x z , X G ∖ z = 0 ) <script type="math/tex" id="MathJax-Element-123">P(X_z=x_z,X_{G \backslash z} =0)</script> 表示属于z的顶点(随机变量取值)与s一致,图中其它顶点给默认值(记做”0”)。
- 当s集合与z集合顶点个数不同时指数为1,否则为0; |s| | s | <script type="math/tex" id="MathJax-Element-124">|s|</script> 表示集合s中元素(顶点)个数。
- 很显然f是正函数,概率都是非负的。
- 只需要需要证明如下两点,即可说明无向图模型的概率 P(X) P ( X ) <script type="math/tex" id="MathJax-Element-125">P(X)</script> 可以表示为图上所有团的势函数乘积。
a). ∏s⊂Gfs(Xs)=P(X) (a) ∏ s ⊂ G f s ( X s ) = P ( X ) ( a ) <script type="math/tex" id="MathJax-Element-126">\prod_{s \subset G} f_s(X_s) = P(X) \ \ \ (a)</script>
b). fs(Xs)=1 f s ( X s ) = 1 <script type="math/tex" id="MathJax-Element-127">f_s(X_s) =1</script> 如果 s s <script type="math/tex" id="MathJax-Element-128">s</script> 不是一个团
证明第一点
为证明第一点,先来展示一个恒等式:
a. CKN C N K <script type="math/tex" id="MathJax-Element-54">C_N^K</script> 表示从K个元素中选取N个元素的所有组合情况
b. 现在证明 ∏s⊂Gfs(Xs) ∏ s ⊂ G f s ( X s ) <script type="math/tex" id="MathJax-Element-55">\prod_{s \subset G} f_s(X_s)</script> 中所有的因子都可以互相抵消,除了 P(X) P ( X ) <script type="math/tex" id="MathJax-Element-56">P(X)</script> ;
c. 对于任意子集 z∈G z ∈ G <script type="math/tex" id="MathJax-Element-57">z \in G</script> ,及 z z <script type="math/tex" id="MathJax-Element-58">z</script> 相关的因子 <script type="math/tex" id="MathJax-Element-59">\Delta = P(X_z, X_{G \backslash z = 0})</script> ;它在s不包含z的情况下没有出现(此时z不会是s的子集);
d. 它在 s=z s = z <script type="math/tex" id="MathJax-Element-60">s=z</script> 情况下出现一次(z=s是s的子集),因而 Δ−10=Δ Δ − 1 0 = Δ <script type="math/tex" id="MathJax-Element-61">\Delta ^{-1^0} = \Delta</script>
f. 它在s包含z以及另外一个元素的情况下出现 C|G|−|z|1 C 1 | G | − | z | <script type="math/tex" id="MathJax-Element-62">C_1^{|G|-|z|}</script> 次;因为s的选择有 C|G|−|z|1 C 1 | G | − | z | <script type="math/tex" id="MathJax-Element-63">C_1^{|G|-|z|}</script> 种,并且满足 |s|−|z|=1 | s | − | z | = 1 <script type="math/tex" id="MathJax-Element-64">|s|-|z|=1</script> ,因此这时 Δ−11=Δ−1 Δ − 1 1 = Δ − 1 <script type="math/tex" id="MathJax-Element-65">\Delta ^{-1^1} = \Delta ^{-1}</script> 。
g. 它在s包含z以及另外两个个元素的情况下出现 C|G|−|z|2 C 2 | G | − | z | <script type="math/tex" id="MathJax-Element-66">C_2^{|G|-|z|}</script> 次;因为s的选择有 C|G|−|z|2 C 2 | G | − | z | <script type="math/tex" id="MathJax-Element-67">C_2^{|G|-|z|}</script> 种,并且满足 |s|−|z|=2 | s | − | z | = 2 <script type="math/tex" id="MathJax-Element-68">|s|-|z|=2</script> ,因此这时 Δ−12=Δ Δ − 1 2 = Δ <script type="math/tex" id="MathJax-Element-69">\Delta ^{-1^2} = \Delta </script>
h. 依次类推… … ;最终第一点的等式(a)左边, z相关因子 Δ Δ <script type="math/tex" id="MathJax-Element-70">\Delta</script> 所有乘积就是:
令 K=|G|−|z| K = | G | − | z | <script type="math/tex" id="MathJax-Element-73">K=|G|-|z|</script> , 根据公式(13)可以看出所有的因子互相抵消 Δ0=1 Δ 0 = 1 <script type="math/tex" id="MathJax-Element-74">\Delta ^0= 1</script> ;除了一种情况 z=G z = G <script type="math/tex" id="MathJax-Element-75">z=G</script> 。因而有
i. 第一点证明完毕。
证明第二点
为证明第二点,需要使用马尔科夫属性,如果s不是一个团,那么一定有两个属于s的顶点a、b,它们之间没有边连接,我们按照如下方式重写 fs(Xs) f s ( X s ) <script type="math/tex" id="MathJax-Element-77">f_s(X_s)</script>
fs(Xs=xs) f s ( X s = x s ) <script type="math/tex" id="MathJax-Element-78">f_s(X_s=x_s) </script>
公式(15)将 z⊂s z ⊂ s <script type="math/tex" id="MathJax-Element-81">z \subset s</script> 分为4中情况: z=w,z=w⋃{a},z=w⋃{b}和z=w⋃{a,b} z = w , z = w ⋃ { a } , z = w ⋃ { b } 和 z = w ⋃ { a , b } <script type="math/tex" id="MathJax-Element-82">z=w, z=w \bigcup \{a\},z=w \bigcup \{b\} 和 z = w \bigcup \{a,b\}</script> ,并显示的写出了这些因子。注意公式(15)中的位置是对的哦。接下来将证明他们互相抵消。因此指数是多少不重要了,这里用 −1∗ − 1 ∗ <script type="math/tex" id="MathJax-Element-83">-1^*</script> 表示。
根据贝叶斯规则有:
a) 公式(16)依据概率分解 P(a,b)=P(a|b)∗P(b) P ( a , b ) = P ( a | b ) ∗ P ( b ) <script type="math/tex" id="MathJax-Element-88">P(a,b)=P(a|b)*P(b)</script> ; 首先仅仅看因子部分 P(Xw,XG∖w=0)=P(Xa=0,Xb=0,Xw,XG∖w⋃{a,b}=0)=P(Xa=0|Xb=0,Xw,XG∖w⋃{a,b}=0)P(Xb=0,Xw,XG∖w⋃{a,b}=0) P ( X w , X G ∖ w = 0 ) = P ( X a = 0 , X b = 0 , X w , X G ∖ w ⋃ { a , b } = 0 ) = P ( X a = 0 | X b = 0 , X w , X G ∖ w ⋃ { a , b } = 0 ) P ( X b = 0 , X w , X G ∖ w ⋃ { a , b } = 0 ) <script type="math/tex" id="MathJax-Element-89">P(X_w,X_{G \backslash w}=0) \\= P(X_a=0,X_b=0,X_w,X_{G \backslash w \bigcup \{a,b\}}=0) \\=P(X_a=0|X_b=0,X_w,X_{G \backslash w \bigcup \{a,b\}}=0) P(X_b=0,X_w,X_{G \backslash w \bigcup \{a,b\}}=0) </script>
b) 同理分母部分一样的分解
c) 公式(16)的左边部分,由于 Xa X a <script type="math/tex" id="MathJax-Element-90">X_a</script> 和 Xb X b <script type="math/tex" id="MathJax-Element-91">X_b</script> 在给定图剩余部分是条件独立的,因此可以将 Xb=0 X b = 0 <script type="math/tex" id="MathJax-Element-92">X_b=0</script> 替换为 Xb X b <script type="math/tex" id="MathJax-Element-93">X_b</script> ;分子分母都替换了。
d) 公式(16)的右边部分,分子分母是一样的,可以约掉,实际上是先约掉,然后在同时乘一个相同的因子;得到公式(17),自然而然概率连乘得到公式(18)
e) 将公式(18)结果带入公式(15); 可知公式(15) 恒等于1. 第二点证明完毕。
疑问点
- 本文的证明,只能说明无向图模型的概率可以分解为G上所有团的势函数乘积;并不能说明是所有的最大团的势函数乘积。 哪位网友知道,麻烦给我回复,非常感谢!
更多推荐


所有评论(0)