美文网首页
Junction Tree algorithm(联结树)的思路整

Junction Tree algorithm(联结树)的思路整

作者: 摩尔定律的囚徒 | 来源:发表于2015-11-29 21:07 被阅读0次

    为什么需要联结树:

    当Graphical model不再是树形结构的时候,factor graph并不能保证有一致的解,我们需要将原本的概率图构造为一种树形结构的图,能够在这种数据结构上执行类似factor tree中的message passing,最终得到我们所感兴趣的分布。

    • 它并没有解决fator tree中intractable的问题,在极端情况下仍然是指数的时间复杂度,在原图为tree时,是线性的。
    • 原本的图有回路时,JTA提供一种inference的方式,并且能够得到正确的解,而factor tree不能。
    • JT和factor graph同样都是一种数据结构,他们并不改变独立性假设。只是作为inference的中间工具。

    什么是联结树:

    通俗的说:原本的图有环(如果是长度大于3的环需要映入chord),那么我们可以将几个相邻的节点合并为一个大的节点,可以消除原本存在的环。把所有原本存在的环路变为一个个超级节点,图就变成了树,这就是junction tree 能够hold主环路的原因

    通过证明,无论是贝叶斯网络还是马儿克夫网络的联合概率都能够表示成:

    absorption:clique graph 通过前向后向传播(每条边都有两个方向),修正后的potential对应于clique的边缘概率。

    message-passing调度:一个clique可以向另一个相邻clique发送信息,只有当它接收了除了这个点之外所有相邻clique的message时。


    如果一个变量出现在一个环中的每条sep上时,我们可以随便选择一个sep,将这个变量删除(brml p105),如果这个sep变为空,则可以删除相应的边,从而获得clique tree。

    Running intersection property: if a node appears in two cliques,it apprears everywhere on the path between the cliques

    只有满足了RIP,才能得到全局的一致性。(如果不满足RIP,那么就不能通过message-passing 将这个node的信息共享给所有的clique,自然不能满足一致性)

    构建联结树的具体步骤(原图是树形的):

    1. 如果是有向图的话,需要先moralised,将有共同孩子的节点相连,无向图不需要(背后的原因是:p(x|a,b) 是由三个节点共同决定的函数,可以认为三个点是一个超级节点。而对于无向图来说不需要,因为$p(x,a,b) = \phi(x,a)\phi(x,b)$,不需要将a,b相连。
    2. 构造一个clique graph,确定哪些变量组成cliques,如果相邻clique有交集,则加一个sep在两个clique之间
    3. 对于一个原本就是树形结构的图,它的clique graph的最大支撑树就是junction tree(最大指的是整棵树的sep中bianliang)
    4. 每个clique的potential等于这个clique中的所有变量的条件概率相乘。而separator 的potential设为1

    构建联结树的具体步骤(原图不是树形的):

    当原图有环时,variable elimination 消除变量时,消除变量的相邻变量需要连边,这会引入新的边。

    Triangulated Graph: 所有的长度大于3的环,必须引入弦(chord)(对应于variable elimination中新增加的边)

    但是引入chord的顺序不同,可能导致clique 的大小不同,而junction tree 的性能瓶颈在于clique的大小。(我们只能通过贪心来让最大的clique尽量小)

    Greedy variable elimination

    1. 先消除不增加边的节点
    2. 没有上述的节点时,先消除邻居数量最少(或是clique table size小)的节点

    直到所有节点都被消除掉
    如果原图已经有chord,那么消除变量不需要引入新的边。
    通过这种variable elimination中新加的边,就是JT的chord

    完整的JTA步骤:

    1. Moralisation:链接有向图的父母
    2. Triangulation :保证所有长度大于4的环有chord
    3. Junction tree:从clique graph 中找到最大支撑树
    4. Potential Assignment:将原来各个变量的条件概率乘入到所属clique的potential中
    5. Message Propagation: 每条边的两个方向都需要做一次message passing

    最终clique的potential就是边缘概率。

    只有原图为树形时,JTA才是线性的时间复杂度
    当所求的分布不在同一个clique中时,需要的计算复杂度为指数形式

    相关文章

      网友评论

          本文标题:Junction Tree algorithm(联结树)的思路整

          本文链接:https://www.haomeiwen.com/subject/oscjhttx.html