概率图模型课堂笔记:2.2 置信度传播

一、簇图中的消息传递

1.1 消息传递

一种简单的建模:

用factor作为顶点,factor之间的共有变量的子集作为边,生成一个传递网络。

 

严格定义(簇图):

(1)顶点=簇=一系列变量的集合$C_i$

(2)边=sepset=顶点之间的共有变量的子集$S_{i,j}$,注意可以是子集。一条边可以拆成两条有向的Message。

(3)把每个$\phi_k$指派给某一个包含$scope[\phi_k]$的簇$C_i$上。

(4)$C_i$拥有的所有$\phi_k$乘起来为$\psi_i(C_i)$

消息传递图不是唯一的,可以构造不同的边集,边上也可以选择不同的共有变量子集。

 

消息传递算法:

迭代:$\delta_{i\to j}$: $\psi_i$乘以所有的$\delta_{h\to i}$,然后对所有$S_{i,j}$不包含的变量作累加。注意:所有的h不包括j

一开始所有的$\delta$都是1, 不断选取i和j做迭代。

 

1.2 簇图的性质

簇图必须满足下列两个性质:

(a) 对每个$\phi_k$,必须有一个顶点$C_i$能容纳它。也就是$C_i$包含了$\phi_k$的所有变量。

(b) 对于任意两个$C_i, C_j$, 以及它们的任意一个共享变量X, 必能找到一条唯一的通路$C_i, \cdots, C_j$,通路上的每个顶点都包含X。(针对不同的共享变量,通路可以不一样)

(b.1)存在性:如果没有通路,那么$C_i, C_j$就没有办法传递和共享彼此关于X的信息。

(b.2)唯一性:如果有两条通路,那就形成了一个环,可以不断地加强某个信念。

对强相关性的两个变量,如果通过两条路来传播,那么置信传递效果比较差,例如$C_i$和$C_j$关于$X$有一条通路,关于$Y$有另一条通路,实际上也相当于形成了一个环,因为$X,Y$的强相关性,在互相加强彼此为某个值的信念。

满足存在性和唯一性的数据结构是树。也就是说,对任何变量X来说,包含变量X的顶点和边将组成一棵树。

 

Bethe图:

一种常见的簇图(Bethe图)构建方法是:一个二部图,A侧顶点由所有的$\mathrm{scope}[\phi_k]$,B测顶点由所有随机变量组成,如果$X_i$属于$\mathrm{scope}[\phi_k]$,那么在它们之间有边。

这种图简单,对强相关性的变量效果差。因为B侧所有变量都是分开的

 

1.3 簇图调校

簇信念:将一个顶点$C_i$的$\psi$乘上所有邻边的$\delta_{k\to i}$:

$\beta_i(C_i)=\psi_i\times \prod_{k\in N_i}\delta_{k\to i}$

如果经过调校(注意调校的是$\delta$),相邻顶点$C_i,C_j$对它们的连接变量的信念达到一致,则认为调校完成。 所谓连接变量,就是它们连接边上的变量(sepset)

$\sum_{\mathbf{C_i}-\mathbf{S_{i,j}}}\beta_i(\mathbf{C_i})=\sum_{\mathbf{C_j}-\mathbf{S_{i,j}}}\beta_j(\mathbf{C_j})$

 

收敛:

如果$\delta_{i\to j}$在经过迭代前后,值不变。那么称为收敛。

经过简单的数学变换,可以得出收敛条件是:边上的相反的一对$\delta_{i,j}(S_{i,j})$和$\delta_{j,i}(S_{i,j})$相乘后,等于顶点i对$S_{i,j}$的信念, 也等于顶点j对$S_{i,j}$的信念

所以这里引入另一个概念, 边(sepset)信念:$\mu(i,j)=\delta_{i,j}(S_{i,j})\delta_{j,i}(S_{i,j})$,即两条message的乘积。收敛的条件可以简单描述成:边信念等于两头的簇对它信念

 

经过数学变换,或者观察图,可以发现,所有的簇信念除以所有的边信念,得出来的就是原来所有factor的乘积。

 

二、团树(Clique Tree)

2.1 团树算法 - 正确性

(1)Factor性质:对于两个Factor的非共有变量,相乘后和相乘前做边缘化不影响最后结果。

(2)团树定义:无向树,顶点是变量簇$C_i$,边为共享变量子集$S_{i,j}$

(3)团树性质:

(3.1)每个$\phi$都可以找到包含自己全部变量的$C_i$

(3.2)对每对顶点$C_i,C_j$的唯一通路上(点和边),必定包含了两者所有的共有变量

(3.3)在通路上,一旦某个变量被消除了,就不会在后面的路径上重新出现。否则违背了(3.2)

2.2 过程

(1)定理:对于消息$\delta_{i\to j}$

(1.1)如果$C_i$是叶子结点,那么$\delta_{i\to j}$是final

(1.2)如果所有的$h\ne j$, $\delta_{h\to i}$是final,那么$\delta_{i\to j}$也是final

(2)算法:从所有的叶子出发传播,覆盖所有的顶点。所有的边都需要正反各传播一次,若顶点数为$K$,则边数为$K-1$,所以总传播次数为$2(K-1)$

(3)Query $P(\mathbf{X})$: 把所有的$\psi$对$\mathbf{X}$边缘化,再执行传播算法。就得出了$\tilde{P}(X)$,对这个$\tilde{P}$表作renormalize就是概率。

(4)Query $P(\mathbf{X}|\mathbf{Z}=\mathbf{z})$:把所有$\psi$里$\mathbf{Z}\ne \mathbf{z}$的行消掉,然后执行(3)

 

2.3 团树与独立性

(1)定理:对于任何一条边,它左边变量集和右边的变量集在给定$S_{i,j}$的情况下是条件独立的。证明:

如果存在X,Y分别属于左右变量集,且不独立,那么它们在原来的马尔科夫图上必有一条边,也就是必有一个$\phi$同时包含了X,Y。如果这个$\phi$属于左边某个$C_i$,所以Y必定出现在$C_i$里,而因为Y属于右边变量集,那么必定从$C_i$到右边有一条通路,通路每条边每个点都必须包含Y。那么Y就属于$S_{i,j}$,这和假设矛盾。

(2)推论:每个$S_{i,j}$必定将原Markov图分成两个条件独立的部分。对二部图来说,$S_{i,j}$的最小尺寸应为一侧顶点数个数。对网格图来说$S_{i,j}$最小尺寸为长宽的最大值,才能把左上角和右下角顶点隔开。

 

2.4 变量消除与团树

(1)VE的三个步骤

(1.1)把所有包含某个变量$X_i$的$phi$聚到一起,相乘得到$\lambda_i$

(1.2)把$\lambda_i$对$X_i$求和,生成$\tau_i$

(1.3)$\tau_i$参与下一步的计算

(2)从CT的角度来看

(2.1)$\lambda_i$就是团

(2.2)$\tau_i$是$\lambda_i$生成的消息,传递给后面的$\lambda_j$

(3)VE转换成CT的步骤

(3.1)对所有的$\lambda_i$建立一个簇$C_i$

(3.2)如果$\lambda_i$用于$\lambda_j$的计算,则$C_i$和$C_j$连边,边上的message是$\tau_i$

(4)结论:

(4.1)VE生成的是树,不是图。因为VE过程中,每个$\tau_i$作为message只用了一次,也就是每个$C_i$只将message传给一个$C_j$,其中$i<j$

(4.2)这棵树满足Family Preserving。因为每个原始$\phi$都需要在消除步骤中使用,也就是要乘到一个$\lambda_i$里面去,因此$\lambda_i$必定包含了$\phi$的所有变量。($\lambda_i$就是$\psi(C_i)$)

(4.3)这棵树也满足Reserved Intersection Property:一个变量只有一个起点,而且在它的sum out点之前,一直都是会传递下去的。

(4.4)通过选择不同的消除顺序会产生不同的VE过程,也将产生对应的不同的CT。通过DP在CT上计算marginal只需要花费2倍于VE的时间(?)

posted on 2017-01-12 10:44  米老虎M  阅读(746)  评论(0编辑  收藏  举报

导航