• 概率图模型课堂笔记: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 o j}$: $psi_i$乘以所有的$delta_{h o 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 o i}$:

    $eta_i(C_i)=psi_i imes prod_{kin N_i}delta_{k o i}$

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

    $sum_{mathbf{C_i}-mathbf{S_{i,j}}}eta_i(mathbf{C_i})=sum_{mathbf{C_j}-mathbf{S_{i,j}}}eta_j(mathbf{C_j})$

    收敛:

    如果$delta_{i o 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 o j}$

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

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

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

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

    (4)Query $P(mathbf{X}|mathbf{Z}=mathbf{z})$:把所有$psi$里$mathbf{Z} e 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$求和,生成$ au_i$

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

    (2)从CT的角度来看

    (2.1)$lambda_i$就是团

    (2.2)$ au_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是$ au_i$

    (4)结论:

    (4.1)VE生成的是树,不是图。因为VE过程中,每个$ au_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的时间(?)

  • 相关阅读:
    设备驱动开发之缓冲区读写操作
    什么是80Plus
    INF Manufacturer Section
    C++编程获得某台机器的IP地址
    INF DestinationDirs Section
    importlib模块
    django的内置信号
    auth模块(登录验证)
    头像文件的预览
    powerDesiger 常用设置
  • 原文地址:https://www.cnblogs.com/milaohu/p/6277151.html
Copyright © 2020-2023  润新知