zoukankan      html  css  js  c++  java
  • 概率图模型课堂笔记:2.1 推理

    2.1 变量消除

    对于贝叶斯网络来说,教程中的$phi_A(A,B)其实就是$P(A|B)。

    这里用一种更好理解的方式。首先总结下概率的几个性质:

    1、若$A,B$为独立随机变量,则

    $P(A)P(B)=P(A,B)$

    $P(A)=P(A|B)$

    $P(B)=P(B|A)$

    2、若$A,B$在给定$C$的情况下独立,则

    $P(A|C)P(B|C)=P(A,B|C)$

    $P(A|C)=P(A|B,C)$

    $P(B|C)=P(B|A,C)$

    $P(C|A,B)P(B)=P(C|A,B)P(A,B)/P(A)=P(A,B,C)/P(A)=P(B,C|A)$

    $sum_{LSGHIDC}P(J|L,S)P(L|G)P(S|I)P(G|I,D)P(H|G,J)P(I) extbf{P(D|C)P(C)}$

    $=sum_{LSGHID}P(J|L,S)P(L|G)P(S|I)P(G|I,D)P(H|G,J)P(I)sum_{C} extbf{P(D|C)P(C)}$

    $=sum_{LSGHID}P(J|L,S)P(L|G)P(S|I)P(G|I,D)P(H|G,J)P(I)sum_{C} extbf{P(C,D)}$

    $=sum_{LSGHID}P(J|L,S)P(L|G)P(S|I) extbf{P(G|I,D)}P(H|G,J)P(I) extbf{P(D)}$

    $=sum_{LSGHID}P(J|L,S)P(L|G)P(S|I)P(H|G,J)P(I) extbf{P(G|I,D)P(D)}$

    $=sum_{LSGHI}P(J|L,S)P(L|G)P(S|I)P(H|G,J)P(I)sum_{D} extbf{P(G|I,D)P(D)}$

    $=sum_{LSGHI}P(J|L,S)P(L|G)P(S|I)P(H|G,J)P(I)sum_{D} extbf{P(G,D|I)}$

    $=sum_{LSGHI}P(J|L,S)P(L|G)P(S|I)P(H|G,J)P(I) extbf{P(G|I)}$

    $=sum_{LSGHI}P(J|L,S)P(L|G)P(H|G,J) extbf{P(S|I)P(I)P(G|I)}$

    $=sum_{LSGH}P(J|L,S)P(L|G)P(H|G,J)sum_{I} extbf{P(S|I)P(I)P(G|I)}$

    $=sum_{LSGH}P(J|L,S)P(L|G)P(H|G,J)sum_{I} extbf{P(S,I)P(G|I)}$

    $=sum_{LSGH}P(J|L,S)P(L|G)P(H|G,J)sum_{I} extbf{P(S,I)P(G|I,S)}$

    $=sum_{LSGH}P(J|L,S)P(L|G)P(H|G,J)sum_{I} extbf{P(G,S,I)}$

    $=sum_{LSGH}P(J|L,S)P(L|G)P(H|G,J) extbf{P(G,S)}$

    $=sum_{LSGH}P(J|L,S)P(L|G)P(G,S) extbf{P(H|G,J)}$

    $=sum_{LSG}P(J|L,S)P(L|G)P(G,S)sum_{H} extbf{P(H|G,J)}$

    $=sum_{LSG}P(J|L,S)P(L|G)P(G,S)cdot 1$

    $=sum_{LSG}P(J|L,S) extbf{P(L|G)P(G,S)}$

    $=sum_{LS}P(J|L,S)sum_{G} extbf{P(L|G)P(G,S)}$

    $=sum_{LS}P(J|L,S)sum_{G} extbf{P(L|G,S)P(G,S)}$

    $=sum_{LS}P(J|L,S)sum_{G} extbf{P(L,S,G)}$

    $=sum_{LS}P(J|L,S) extbf{P(L,S)}$

    $=sum_{LS}P(J,L,S)$

    $=P(J)$

    注意几点:

    (1)上面采用的变量消除顺序是随意选择的,任意顺序都可以。

    (2)上面条件概率的相乘其实就是Factors相乘。

    (3)如果要求$P(J,I=i,H=h)$,那么在条件概率表中只保留相应的行,按原来的思路计算。

    2.2 复杂度分析

    $mathbf{X_k}$:第k次消除涉及的变量集合

    $m_k$:第k次消除涉及的factor个数

    $psi_k(mathbf{X_k})=prod_{i=1}^{m_k}phi_i$:第k次消除,相乘产生的新factor

    $ au_k(mathbf{X_k}-{Z})=sum_Zphi_k(mathbf{X_k})$:第k次消除,边缘化后产生的新factor

    Factor乘法:计算次数为所有包含的变量取值的个数,就是实际生成表的行数

    Factor边缘化:计算次数为所有包含的变量取值的个数,也是原表的行数

    $N_k=|Val(X_k)|$

    令m表示factor的个数,n表示变量个数。对贝叶斯网络来说,m<=n,对马尔科夫来说,没有这个限制。

    消除过程中产生的中间factor个数为n(因为每次消除删除一个变量)

    总factor个数$m^*le m+n$

    令$N=max(N_k)$表示所有的生成factor的行数的最大值。

    乘法次数:?

    加法次数:?

    顺序对复杂度的影响:

    对图

    $(prod_{j=1}^nP(C_j|A,B))P(A)(B)$

    简单方法:

    $P(A)=sum_{B,C_1,C_2,ldots,C_n}(prod_{j=1}^nP(C_j|A,B))P(A)(B)$

    $=sum_{B,C_2,C_2,ldots,C_n}(prod_{j=2}^nP(C_j|A,B))sum_{C1}P(C1|A,B)P(A)(B)$

    $=sum_{B,C_2,C_2,ldots,C_n}(prod_{j=2}^nP(C_j|A,B))sum_{C1}P(C1,A,B)$

    $=sum_{B,C_2,C_2,ldots,C_n}(prod_{j=2}^nP(C_j|A,B))P(A,B)$

    $=sum_{B,C_3,C_2,ldots,C_n}(prod_{j=3}^nP(C_j|A,B))P(A,B)$

    $=sum_{B,C_4,C_2,ldots,C_n}(prod_{j=4}^nP(C_j|A,B))P(A,B)$

    $=ldots$

    $=sum_{B}P(A)P(B)$

    2.3 通过图来分析复杂度

    对一个BN,我们做消除的时候,引入一个无向图模型。用它来计算复杂度。

    1、将有向图转换成无向图,需要把所有的V结构的两个Parent相互连接。

    2、每次消除一个变量,需要把它原先直连的变量们作两两连接。

    所有变量消除完成后,最后的图叫Induced Graph。这里注意,不同的消除过程将导致不同的新边,也将导致不同的Induced Graph

    3、Induced Graph的连通性定理:

    定理一:每个生成的(中间)factor必定代表一个极大完全连通子图,证明:

    (1)最开始的时候,每个原始factor必定是一个完全连通子图(不一定是极大)

    考虑$P(X|Pa_X)$:$X$和每个$Pa_X$均有边,然后根据1,每个$Pa_X$之间互相也有边

    (2)消除一个变量$X_R$,会把所有包含它的factor(完全连通子图),合并成一个大的完全连通子图$G_M$(根据2)

    (3)现在要证明$G_M$是极大的(无法加入其他顶点)。实际上,如果有另外一个顶点$X_O$也属于$G_M$,那么它必定和$X_R$相连,那么存在一个factor同时包含了$X_R$和$X_O$。这个factor必定参与了(2)相乘的过程。

    定理二:每个极大完全连通子图必定是一个中间factor

    证明:(还需加强理解)

    (1)如果一个顶点$X$属于一个极大完全连通子图,对于其他点$X_O$,必定与$X$直连

    (2)也必定有factor同时包含$X_O$和$X$:

    这里要证明,如果任意两点X,Y直连,那么必定有factor同时包含X,Y。

    (a)从一开始,这是成立的,因为每条边都代表一个父子关系,或者双亲(多亲)关系,父子和双亲必然是包含在同一个factor里的。

    (b)每一次消除生成的新边,必定包含在新生成的factor里。

    (3)那么消除$X$的时候,所有的直连邻居都会和$X$合并成一个新的factor。

    (4)而每一个$X$必须是会被消除的。所以G就不可避免地成为了一个中间factor

    4、

    Induced Width: Induced Graph中最大完全连通子图的顶点个数减1

    Minimal Induced Width: 各种消除顺序生成的Induced Graphs中最小的Induced Width

    MIW提供了一个对图进行消除的最小计算量估计。

    2.4 寻找消除顺序

    1. 定理:

    (1)寻找一个使得$MIW<=K$的消除顺序是个NP完全问题。

    (2)在确定消除顺序后,消除过程是一个NP难问题。

    2. 贪心法是个比较实用的方案。定义一个代价函数,然后每次都选择代价最小的顶点。代价函数选择:

    (1)最小邻居:消除变量的邻居数

    (2)最小重量:消除后产生的factor的行数

    (3)最小填充:消除后产生的新边数

    (4)加权最小填充:新边的重量和。边的重量:对应两顶点的重量的乘积

    3. 定理:任何induced graph是三角图。也就是说,没有长度大于4的无桥圈。说明:对一个4点圈来说,消除任何一个顶点,将产生一个新边。消除这个无桥圈。看教程的图。

    每一种三角化,就是一种消除的顺序。(如何应用?)

  • 相关阅读:
    eclipse集群tomcat
    安装mysql 5.7版本遇到问题及解决办法
    ElasticSearch自定义分词器
    LeetCode之Add Two Numbers
    定位CPU高问题三把斧
    jinfo用法说明
    Code Cache相关知识总结
    表达式
    Elasticsearch 在分布式系统中深度分页问题
    红黑树的特性
  • 原文地址:https://www.cnblogs.com/milaohu/p/6265432.html
Copyright © 2011-2022 走看看