前言
学习条件随机场时,对于条件随机场的参数化形式很难理解,从联合概率分布的分解角度出发也很难证明出来,回顾一下前提条件,发现问题的关键在于Hammersley Clifford
定理,所以从相关内容出发证明。
后面证明我还是理解错了,问题的关键不在于Hammersley Clifford定理,而在于条件概率的计算。
参考:
- CSDN:Hammersley-Clifford定理证明
- SPITZER:MARKOV RANDOM FIELDS AND GIBBS ENSEMBLES
- Hammersley,Clifford:markov fields on finite graphs and lattices
- 编程学习网:【机器学习】 概率无向图模型
- CSDN:深度学习笔记之受限玻尔兹曼机(一)玻尔兹曼分布介绍
- CSDN:Hammersley-Clifford定理证明
条件随机场中条件概率定义
条件随机场中的条件概率分布的定义是简单明了的。
P
(
y
i
∣
x
,
y
1
,
⋯
,
y
i
−
1
,
y
i
+
1
,
⋯
,
y
n
)
=
P
(
y
i
∣
x
,
y
i
−
1
,
y
i
+
1
)
P(y_i|x,y_1,\cdots,y_{i-1},y_{i+1},\cdots,y_n)=P(y_i|x,y_{i-1},y_{i+1})
P(yi∣x,y1,⋯,yi−1,yi+1,⋯,yn)=P(yi∣x,yi−1,yi+1)
这个证明是简单的,因为满足马尔可夫性,同时根据条件概率分布的运算规则有:
P
(
y
1
,
⋯
,
y
i
−
2
,
y
i
,
y
i
+
2
,
⋯
,
y
n
∣
x
,
y
i
−
1
,
y
i
+
1
)
=
P
(
y
i
∣
x
,
y
1
,
⋯
,
y
i
−
1
,
y
i
+
1
,
⋯
,
y
n
)
∗
P
(
y
1
,
⋯
,
y
i
−
2
,
y
i
+
2
,
⋯
,
y
n
∣
x
,
y
i
−
1
,
y
i
+
1
)
=
P
(
y
i
∣
x
,
y
i
−
1
,
y
i
+
1
)
∗
P
(
y
1
,
⋯
,
y
i
−
2
,
y
i
+
2
,
⋯
,
y
n
∣
x
,
y
i
−
1
,
y
i
+
1
)
\begin{align*} &P(y_1,\cdots,y_{i-2},y_i,y_{i+2},\cdots,y_n|x,y_{i-1},y_{i+1})\\ =&P(y_i|x,y_1,\cdots,y_{i-1},y_{i+1},\cdots,y_n)*P(y_1,\cdots,y_{i-2},y_{i+2},\cdots,y_n|x,y_{i-1},y_{i+1})\\ =&P(y_i|x,y_{i-1},y_{i+1})*P(y_1,\cdots,y_{i-2},y_{i+2},\cdots,y_n|x,y_{i-1},y_{i+1}) \end{align*}
==P(y1,⋯,yi−2,yi,yi+2,⋯,yn∣x,yi−1,yi+1)P(yi∣x,y1,⋯,yi−1,yi+1,⋯,yn)∗P(y1,⋯,yi−2,yi+2,⋯,yn∣x,yi−1,yi+1)P(yi∣x,yi−1,yi+1)∗P(y1,⋯,yi−2,yi+2,⋯,yn∣x,yi−1,yi+1)
然而问题的关键在于,怎么由这些条件概率分布表示联合概率分布。
后来我才明白,这个定义远远不够,甚至说还很弱小,要想用条件概率分布表示联合概率分布,需要深挖,没有耐心的可以直接看后面条件概率计算总结。
参考:
- Helge Langseth(Norwegian University of Science and Technology):The Hammersley-Clifford Theorem and its Impact on Modern Statistics
- David Pollard(YALE):Hammersley-Clifford theorem for Markov random fields
- WIKIPEDIA:Hammersley–Clifford theorem
Hammersley–Clifford 定理证明
证明这个定理分为两个部分,第一部分是证明任何一个Gibbs概率密度都满足马尔可夫性,另一部分是满足马尔可夫性的正概率密度一定是Gibbs概率密度。
Gibbs random field(GBF)一定满足马尔可夫性质。证明如下:
上面的图形用Gibbs随机场来表似联合概率分布就是:
P
(
A
,
B
,
C
,
D
,
E
,
F
)
∝
f
1
(
A
,
B
,
D
)
f
2
(
A
,
C
,
D
)
f
3
(
C
,
D
,
F
)
f
4
(
C
,
E
,
F
)
P(A,B,C,D,E,F)\propto f_1(A,B,D)f_2(A,C,D)f_3(C,D,F)f_4(C,E,F)
P(A,B,C,D,E,F)∝f1(A,B,D)f2(A,C,D)f3(C,D,F)f4(C,E,F)
然后我们假设其中
C
,
D
C,D
C,D是固定的,那么这个联合概率分布就是:
P
(
A
,
B
,
c
,
d
,
E
,
F
)
∝
f
1
(
A
,
B
,
d
)
f
2
(
A
,
c
,
d
)
f
3
(
c
,
d
,
F
)
f
4
(
c
,
E
,
F
)
P(A,B,c,d,E,F)\propto f_1(A,B,d)f_2(A,c,d)f_3(c,d,F)f_4(c,E,F)
P(A,B,c,d,E,F)∝f1(A,B,d)f2(A,c,d)f3(c,d,F)f4(c,E,F)
条件概率分布为:
P
(
A
,
B
,
E
,
F
∣
c
,
d
)
=
P
(
A
,
B
,
c
,
d
,
E
,
F
)
P
(
c
,
d
)
∝
f
1
(
A
,
B
,
d
)
f
2
(
A
,
c
,
d
)
f
3
(
c
,
d
,
F
)
f
4
(
c
,
E
,
F
)
=
g
1
(
A
,
B
)
g
2
(
E
,
F
)
P(A,B,E,F|c,d)=\frac{P(A,B,c,d,E,F)}{P(c,d)}\propto f_1(A,B,d)f_2(A,c,d)f_3(c,d,F)f_4(c,E,F)=g_1(A,B)g_2(E,F)
P(A,B,E,F∣c,d)=P(c,d)P(A,B,c,d,E,F)∝f1(A,B,d)f2(A,c,d)f3(c,d,F)f4(c,E,F)=g1(A,B)g2(E,F)
即:
P
(
A
,
B
,
E
,
F
∣
c
,
d
)
∝
g
1
(
A
,
B
)
g
2
(
E
,
F
)
P(A,B,E,F|c,d)\propto g_1(A,B)g_2(E,F)
P(A,B,E,F∣c,d)∝g1(A,B)g2(E,F)
独立性满足。
每个满足局部马尔可夫性质的正概率分布也是Gibbs随机场。这个证明我还没看明白,改天再写。
峰回路转
就在此时,我灵光一闪,又找到了来时的路。我们从简单的角度出发,也就是从条件概率分布乘积形成联合概率分布的角度来看。
P
(
A
,
B
,
C
,
D
,
E
,
F
)
=
P
(
A
)
∗
P
(
B
∣
A
)
∗
P
(
D
∣
A
,
B
)
∗
P
(
C
∣
A
,
B
,
D
)
∗
P
(
F
∣
A
,
B
,
C
,
D
)
∗
P
(
E
∣
A
,
B
,
C
,
D
,
F
)
=
P
(
A
)
∗
P
(
B
∣
A
)
∗
P
(
D
∣
A
,
B
)
∗
P
(
C
∣
A
,
D
)
∗
P
(
F
∣
C
,
D
)
∗
P
(
E
∣
C
,
F
)
=
P
(
A
,
B
,
D
)
∗
P
(
C
∣
A
,
D
)
∗
P
(
F
∣
C
,
D
)
∗
P
(
E
∣
C
,
F
)
=
f
1
(
A
,
B
,
D
)
∗
f
2
(
A
,
C
,
D
)
∗
f
3
(
F
,
C
,
D
)
∗
f
4
(
E
,
C
,
F
)
\begin{align*} P(A,B,C,D,E,F)=&P(A)*P(B|A)*P(D|A,B)*P(C|A,B,D)*P(F|A,B,C,D)*P(E|A,B,C,D,F)\\ =&P(A)*P(B|A)*P(D|A,B)*P(C|A,D)*P(F|C,D)*P(E|C,F)\\ =&P(A,B,D)*P(C|A,D)*P(F|C,D)*P(E|C,F)\\ =&f_1(A,B,D)*f_2(A,C,D)*f_3(F,C,D)*f_4(E,C,F) \end{align*}
P(A,B,C,D,E,F)====P(A)∗P(B∣A)∗P(D∣A,B)∗P(C∣A,B,D)∗P(F∣A,B,C,D)∗P(E∣A,B,C,D,F)P(A)∗P(B∣A)∗P(D∣A,B)∗P(C∣A,D)∗P(F∣C,D)∗P(E∣C,F)P(A,B,D)∗P(C∣A,D)∗P(F∣C,D)∗P(E∣C,F)f1(A,B,D)∗f2(A,C,D)∗f3(F,C,D)∗f4(E,C,F)
刚好是上面的图形中的四个
最大团(maximal
clique)
\textbf{最大团(maximal clique)}
最大团(maximal clique)的函数的乘积形式,为了确保里面的
f
1
,
f
2
,
f
3
,
f
4
f_1,f_2,f_3,f_4
f1,f2,f3,f4都是正的概率密度函数,需要找一个一定为正的函数来替代他们,可以用指数函数,当然应该也可以用其他的为正的比如
x
2
+
1
x^2+1
x2+1,反正最后都是通过归一化使之成为一个合格的概率密度。
上面表达式中一些特殊的代换也需要解释一下,这与上面的条件概率分布的等式有关,严格来说,条件概率的等式应该是这个样子:
P
(
y
i
∣
x
,
y
i
−
1
,
y
i
+
1
)
=
P
(
y
i
∣
x
,
y
i
−
1
,
y
i
+
1
,
y
≠
y
i
,
∀
y
)
P(y_i|x,y_{i-1},y_{i+1})=P(y_i|x,y_{i-1},y_{i+1},y\neq y_i,\forall y)
P(yi∣x,yi−1,yi+1)=P(yi∣x,yi−1,yi+1,y=yi,∀y)
也就是只要条件里面有相邻的点,其他的都可以被化简。
如果相邻的点没有全部在内呢?
P
(
y
i
∣
x
,
y
i
−
1
,
y
i
−
2
)
∗
P
(
y
i
−
2
∣
x
,
y
i
−
1
)
=
P
(
y
i
,
y
i
−
2
∣
x
,
y
i
−
1
)
P
(
y
i
∣
x
,
y
i
−
1
)
∗
P
(
y
i
−
2
∣
x
,
y
i
−
1
)
=
\begin{align*} P(y_i|x,y_{i-1},y_{i-2})*P(y_{i-2}|x,y_{i-1})=&P(y_i,y_{i-2}|x,y_{i-1})\\ P(y_i|x,y_{i-1})*P(y_{i-2}|x,y_{i-1})=&\\ \end{align*}
P(yi∣x,yi−1,yi−2)∗P(yi−2∣x,yi−1)=P(yi∣x,yi−1)∗P(yi−2∣x,yi−1)=P(yi,yi−2∣x,yi−1)
所以就算条件里面没有包含所有的相邻点,依旧是可以直接化简为条件中有的相邻的点。说着有点绕,就是条件里面有相邻点,就可以直接消去不相邻的点。不管是不是全部相邻点都在。就是这一点导致我始终无法理解 条件随机场(CRF) \textbf{条件随机场(CRF)} 条件随机场(CRF)的表达式,到了这一步,就可以回答我们之前提出的问题-由条件概率分布表示联合概率分布。归根到底还是条件概率用的不熟,所以特意整理一下。
条件概率运算总结
条件概率从定义上来说运算就是贝耶斯公式,而从马尔可夫性这个特殊的语义环境下,条件概率还有不同的计算公式。因此下文分为基本计算和马尔可夫性计算两个方面介绍:
基本的条件概率公式
P ( A ∣ B ) = P ( A , B ) P ( B ) P ( C ∣ A , B ) ∗ P ( B ∣ A ) = P ( B , C ∣ A ) \begin{align*} P(A|B)=&\frac{P(A,B)}{P(B)}\\ P(C|A,B)*P(B|A)=&P(B,C|A)\\ \end{align*} P(A∣B)=P(C∣A,B)∗P(B∣A)=P(B)P(A,B)P(B,C∣A)
满足马尔可夫性的条件概率的公式
为了简单起见,我们研究有五个顶点构成的概率图模型,假设图如下所示:
我们分析每个顶点所对应的条件概率情况。
首先从
A
A
A点开始。我们要分析
A
A
A点所对应的所有条件概率,首先分析包含相邻点
B
B
B的:
P
(
A
∣
B
)
=
P
(
A
∣
B
,
C
)
=
P
(
A
∣
B
,
D
)
=
P
(
A
∣
B
,
E
)
=
P
(
A
∣
B
,
C
,
D
)
=
P
(
A
∣
B
,
C
,
E
)
=
P
(
A
∣
B
,
D
,
E
)
=
P
(
A
∣
B
,
C
,
D
,
E
)
P(A|B)=P(A|B,C)=P(A|B,D)=P(A|B,E)=P(A|B,C,D)=P(A|B,C,E)=P(A|B,D,E)=P(A|B,C,D,E)
P(A∣B)=P(A∣B,C)=P(A∣B,D)=P(A∣B,E)=P(A∣B,C,D)=P(A∣B,C,E)=P(A∣B,D,E)=P(A∣B,C,D,E)
A点的条件概率一共有 B , C , D , E , B C , B D , B E , C D , C E , D E , B C D , B C E , B D E , C D E , B C D E B,C,D,E,BC,BD,BE,CD,CE,DE,BCD,BCE,BDE,CDE,BCDE B,C,D,E,BC,BD,BE,CD,CE,DE,BCD,BCE,BDE,CDE,BCDE,一共有 C 4 1 + C 4 2 + C 4 3 + C 4 4 = 4 + 6 + 4 + 1 = 15 C_4^1+C_4^2+C_4^3+C_4^4=4+6+4+1=15 C41+C42+C43+C44=4+6+4+1=15个,我们上面只列出了含有相邻点 B B B的 8 8 8个,还有 7 7 7个没有分析。不包含相邻点的条件概率稍后分析,先分析条件中包含相邻点的。
怎么证明呢?对于上述表达式中除了第一项
P
(
A
∣
B
)
P(A|B)
P(A∣B)外,其他各项我们都可以用类似的表达式证明:
P
(
A
∣
B
,
∗
)
=
P
(
A
,
∗
∣
B
)
P
(
∗
∣
B
)
=
P
(
A
∣
B
)
×
P
(
∗
∣
B
)
P
(
∗
∣
B
)
P(A|B,*)=\frac{P(A,*|B)}{P(*|B)}=\frac{P(A|B)\times P(*|B)}{P(*|B)}
P(A∣B,∗)=P(∗∣B)P(A,∗∣B)=P(∗∣B)P(A∣B)×P(∗∣B)
最后一个等式是由马尔可夫性得来的,马尔可夫性说明了他们之间是独立的。
A
A
A和
∗
*
∗被
B
B
B分割了,所以他们之间的关系是条件独立的,也就有:
P
(
A
,
∗
∣
B
)
=
P
(
A
∣
B
)
×
P
(
∗
∣
B
)
P(A,*|B)=P(A|B)\times P(*|B)
P(A,∗∣B)=P(A∣B)×P(∗∣B)
因此有 P ( A ∣ B , ∗ ) = P ( A ∣ B ) P(A|B,*)=P(A|B) P(A∣B,∗)=P(A∣B)。
对于剩余的7个条件概率分布 P ( A ∣ C ) , P ( A ∣ D ) , P ( A ∣ E ) , P ( A ∣ C , D ) , P ( A ∣ C , E ) , P ( A ∣ D , E ) , P ( A ∣ C , D , E ) P(A|C),P(A|D),P(A|E),P(A|C,D),P(A|C,E),P(A|D,E),P(A|C,D,E) P(A∣C),P(A∣D),P(A∣E),P(A∣C,D),P(A∣C,E),P(A∣D,E),P(A∣C,D,E),就无法化简。因为无法从马尔可夫性中推断关系,从贝耶斯条件出发也无法对条件概率分布进行化简,所以无法化简。
对于顶点B来说,剩余的每个点都是它的相邻的点,但是相邻的点中有相互连接的,也有相互不连接的,用来分析马尔可夫条件下的条件概率分布最好不过了。不过图中没有它不连接的,所以依旧无法化简,换句话说,任何点集构成的条件都是B点的相邻点集,所以无法化简。不信我们验证一下:
P
(
B
∣
C
,
A
)
=
P
(
A
,
B
∣
C
)
P
(
A
∣
C
)
P(B|C,A)=\frac{P(A,B|C)}{P(A|C)}
P(B∣C,A)=P(A∣C)P(A,B∣C)
由于 A , B A,B A,B并不是由 C C C进行分割的,所以上面的条件概率无法判断出 A , B A,B A,B是否独立,也就无法拆分为两项的乘积,所以无法化简。换句话说, A , C A,C A,C都是相邻点,所以无法进行删减。也就是对于条件中的相邻点一个也不能删。
对顶点 C C C来说, C C C同样应该有 15 15 15个条件概率,我们先对其中包含有相邻点的那些条件概率进行分析。相邻点包括 B , D , E B,D,E B,D,E,我们分别讨论条件包含一个相邻,两个相邻,三个相邻这三种情况:
一个相邻:
P
(
C
∣
B
,
A
)
=
P
(
A
,
C
∣
B
)
P
(
A
∣
B
)
=
P
(
A
∣
B
)
P
(
C
∣
B
)
P
(
A
∣
B
)
=
P
(
C
∣
B
)
P(C|B,A)=\frac{P(A,C|B)}{P(A|B)}=\frac{P(A|B)P(C|B)}{P(A|B)}=P(C|B)
P(C∣B,A)=P(A∣B)P(A,C∣B)=P(A∣B)P(A∣B)P(C∣B)=P(C∣B)
上式是因为 A , C A,C A,C被 B B B分割了,所以根据马尔可夫性,上面的条件概率可被拆分。
两个相邻的:
P
(
C
∣
B
,
D
,
A
)
=
P
(
A
,
C
∣
B
,
D
)
P
(
A
∣
B
,
D
)
=
P
(
A
∣
B
,
D
)
P
(
C
∣
B
,
D
)
P
(
A
∣
B
,
D
)
P(C|B,D,A)=\frac{P(A,C|B,D)}{P(A|B,D)}=\frac{P(A|B,D)P(C|B,D)}{P(A|B,D)}
P(C∣B,D,A)=P(A∣B,D)P(A,C∣B,D)=P(A∣B,D)P(A∣B,D)P(C∣B,D)
通过这个表达式我们发现,在化简条件概率表达式时,我们只需要考虑表达式中包含的那些元素之间的关系就可以。比如说上面的只有
A
,
B
,
C
,
D
A,B,C,D
A,B,C,D,所以我们只用考虑
A
,
B
,
C
,
D
A,B,C,D
A,B,C,D之间的网图就行了。
在这种情况下,符合马尔可夫性,
A
,
C
A,C
A,C被
B
,
D
B,D
B,D隔开。
不同相邻的点集:
然后我们分析一下不同相邻点集条件下的概率,
P
(
C
∣
B
)
=
P
(
B
,
C
)
P
(
B
)
P(C|B)=\frac{P(B,C)}{P(B)}
P(C∣B)=P(B)P(B,C)与
P
(
C
∣
D
)
=
P
(
C
,
D
)
P
(
D
)
P(C|D)=\frac{P(C,D)}{P(D)}
P(C∣D)=P(D)P(C,D),无法根据马尔可夫性或贝耶斯公式进行化简。也就说明不足以说明他们相等。换句话说:包含不同相邻点集的条件概率是不等的。
三个相邻的:
P
(
C
∣
B
,
D
,
E
,
A
)
=
P
(
A
,
C
∣
B
,
D
,
E
)
P
(
A
∣
B
,
D
,
E
)
=
P
(
A
∣
B
,
D
,
E
)
∗
P
(
C
∣
B
,
D
,
E
)
P
(
A
∣
B
,
D
,
E
)
=
P
(
C
∣
B
,
D
,
E
)
P(C|B,D,E,A)=\frac{P(A,C|B,D,E)}{P(A|B,D,E)}=\frac{P(A|B,D,E)*P(C|B,D,E)}{P(A|B,D,E)}=P(C|B,D,E)
P(C∣B,D,E,A)=P(A∣B,D,E)P(A,C∣B,D,E)=P(A∣B,D,E)P(A∣B,D,E)∗P(C∣B,D,E)=P(C∣B,D,E)
上述倒数第二个式子同样也是利用了马尔可夫性, B , D , E B,D,E B,D,E分割了 A , C A,C A,C,所以可以拆分。
综上所述:
条件中有相邻点集的可以约分到只剩相邻的那些点,其余的不能约分。
应用
我们现在用上述条件概率的计算公式来证明一下本文的主题,怎么用条件概率分布求联合概率分布。
P
(
A
,
B
,
C
,
D
,
E
)
=
P
(
A
)
∗
P
(
B
∣
A
)
∗
P
(
C
∣
A
,
B
)
∗
P
(
D
∣
A
,
B
,
C
)
∗
P
(
E
∣
A
,
B
,
C
,
D
)
=
P
(
A
)
∗
P
(
B
∣
A
)
∗
P
(
C
∣
B
)
∗
P
(
D
∣
B
,
C
)
∗
P
(
E
∣
B
,
C
,
D
)
=
P
(
A
,
B
)
∗
P
(
C
∣
B
)
∗
P
(
D
∣
B
,
C
)
∗
P
(
E
∣
B
,
C
,
D
)
=
P
(
A
,
B
)
∗
P
(
C
,
D
,
E
∣
B
)
\begin{align*} P(A,B,C,D,E)=&P(A)*P(B|A)*P(C|A,B)*P(D|A,B,C)*P(E|A,B,C,D)\\ =&P(A)*P(B|A)*P(C|B)*P(D|B,C)*P(E|B,C,D)\\ =&P(A,B)*P(C|B)*P(D|B,C)*P(E|B,C,D)\\ =&P(A,B)*P(C,D,E|B) \end{align*}
P(A,B,C,D,E)====P(A)∗P(B∣A)∗P(C∣A,B)∗P(D∣A,B,C)∗P(E∣A,B,C,D)P(A)∗P(B∣A)∗P(C∣B)∗P(D∣B,C)∗P(E∣B,C,D)P(A,B)∗P(C∣B)∗P(D∣B,C)∗P(E∣B,C,D)P(A,B)∗P(C,D,E∣B)
我们回顾一下上面的最大团。
最大团有:
(
A
,
B
)
,
(
B
,
C
,
D
,
E
)
(A,B),(B,C,D,E)
(A,B),(B,C,D,E)
刚好是两部分,并且每一部分的参数恰好对应,
f
1
(
A
,
B
)
∝
P
(
A
,
B
)
,
f
2
(
B
,
C
,
D
,
E
)
∝
P
(
C
,
D
,
E
∣
B
)
f_1(A,B)\propto P(A,B),f_2(B,C,D,E)\propto P(C,D,E|B)
f1(A,B)∝P(A,B),f2(B,C,D,E)∝P(C,D,E∣B)。
然后为了确保
f
1
,
f
2
f_1,f_2
f1,f2是正的,我们取为
P
(
A
,
B
)
=
exp
(
f
1
(
A
,
B
)
)
P
(
C
,
D
,
E
∣
B
)
=
exp
(
f
2
(
B
,
C
,
D
,
E
)
)
P(A,B)=\exp(f_1(A,B))\\P(C,D,E|B)=\exp(f_2(B,C,D,E))
P(A,B)=exp(f1(A,B))P(C,D,E∣B)=exp(f2(B,C,D,E))
然后带入上面计算联合概率分布的公式有:
P
(
A
,
B
,
C
,
D
,
E
)
=
exp
(
f
1
(
A
,
B
)
)
∗
exp
(
f
2
(
B
,
C
,
D
,
E
)
)
=
exp
(
f
1
(
A
,
B
)
+
f
2
(
B
,
C
,
D
,
E
)
)
P(A,B,C,D,E)=\exp(f_1(A,B))*\exp(f_2(B,C,D,E))=\exp(f_1(A,B)+f_2(B,C,D,E))
P(A,B,C,D,E)=exp(f1(A,B))∗exp(f2(B,C,D,E))=exp(f1(A,B)+f2(B,C,D,E))