首页 > 代码库 > PGM——从有向图到无向图的转化(moralization)

PGM——从有向图到无向图的转化(moralization)

在解决实际问题的过程中我们经常需要将有向图(directed graph)转化成一个与之对应的无向图(undirected graph),但是相同结构的有向图和无向图能够表达的变量间的独立性是不同的,如何将一个有向图转化成一个无向图,这个无向图最大化的表达了原来的信息,又尽量少地丢失有向图里包含的条件独立性呢?
首先从一个straightforward的例子说起:
screenshot.2014-09-16 (2).png
有向图(a)的联合分布是一系列条件概率因子的乘积:
screenshot.2014-09-16 (3).png
转化成无向图如(b)所示,很简单,这个无向图中的maximal cliques就是一对相邻的节点,所以联合分布概率的形式就是:screenshot.2014-09-16 (4).png
其实就是把第一个节点的边缘概率吸收进第一个potential function,以此类推:
screenshot.2014-09-16 (6).png
注意:这里这里partition function Z=1.

这种转换如何推广至其它图结构?
这样我们就可以把任意一个基于特定的有向图的因式分解的分布函数转换成一个基于无向图的因式分解了。

首先,保证条件分布里的任何一个变量都至少是无向图中一个clique里的一员。
对于无向图中只有一个父节点的点可以直接将有向的连接线改成无向连接线。
但是对于在有向图中有一个以上父节点的node,就不可以再这样做了。
下图是一个有三个父节点的有向图:
screenshot.2014-09-16 (7).png
其联合分布:
screenshot.2014-09-16 (9).png
把边缘概率吸收进所在的clique potential里,所以他们就同属于一个clique,需要在任意两个父节点之间添加连接线。
这种在父节点之间添加连接线的过程叫做moralization
得到的无向图就叫moral graph
(值得注意,在这个例子里,和无向图相比,the moral graph是全连接的(fully connected)所以展现出没有条件独立的特性。其实在无向图转化成有向图的方法中,moral graph可以最大化地保留原有向图中的条件独立性
如果我们将有向图转化成无向图时,简单地将任意两个节点连接起来,形成一个全连接的无向图,但是这样就舍弃了所有条件独立特性。但moralization的过程可以通过添加最少的连接线在无向图中保留最多个数的独立特性。)

上面这个图所对应的无向图如下:
screenshot.2014-09-16 (8).png

总结:将有向图转化成无向图的一般步骤,首先,在有向图的每个节点的两个父节点之间添加无向的连接线,然后把原来的连接线去掉箭头,就可以得到moral graph了。
然后我们要把无向图里所有的clique potential初始化为1.

PGM——从有向图到无向图的转化(moralization)