文章目录

  • 第一部分:贝叶斯网基础
    • [1.1 信息论基础](https://blog.csdn.net/deepbodhi/article/details/119823055)
    • [1.2 贝叶斯网基本概念](https://blog.csdn.net/deepbodhi/article/details/119823243)
    • [1.3 变量独立性的图论分析](https://blog.csdn.net/deepbodhi/article/details/119823321)
  • 第二部分:贝叶斯网推理
    • [2.1 概率推理中的变量消元方法](https://blog.csdn.net/deepbodhi/article/details/119823431#21__7)
    • 2.2 团树传播算法
      • 2.2.1 团树的概念
      • 2.2.2 团树的构建方法
        • 2.2.2.1 利用图消元法构造团树
        • 2.2.2.2 极小团树
      • 2.2.3 通过团树计算后验概率
      • 2.2.4 团树传播提高效率的原因:计算共享

第一部分:贝叶斯网基础

1.1 信息论基础

1.2 贝叶斯网基本概念

1.3 变量独立性的图论分析

第二部分:贝叶斯网推理

2.1 概率推理中的变量消元方法

2.2 团树传播算法

前面用两讲介绍了与贝叶斯网推理有关的内容,包括变量消元算法、利用条件独立对贝叶斯网推理进行化简,以及通过MAP—VE算法化简MAP问题。可以看出,关于贝叶斯网推理的主要研究都集中在如何化简推理过程。本节所介绍的团树传播算法是从计算复用的角度进一步优化推理过程。
在实际应用中,我们往往需要在同一个贝叶斯网中进行多次不同推理,而两次推理之间往往存在相同的计算步骤。前面介绍的变量消元算法并未考虑计算步骤的共享。本节介绍的团树传播算法则利用步骤共享来提高多次推理的效率。
本讲的主要内容包括:

  • 首先引入团树的概念;
  • 然后介绍团树的构建方法;
  • 接着介绍通过团树计算后验概率;
  • 最后介绍通过团树传播进行计算共享。

其中关于团树构建方法的正确性证明、通过团树计算后验概率的正确性证明,都不再展开。对理论证明感兴趣的读者可以参考张连文教授的《贝叶斯网引论》第5章相关内容和Daphne Koller所著的《概率图模型-原理与技术》第10章相关内容。

2.2.1 团树的概念

团树(clique tree)是一种无向树,其中每个节点代表一个变量集合,称为团。团树必须满足变量贯通性,即包含同一变量的所有团在团树上是贯通的。如下图所示,图(a)所示的树不是团树,因为变量B既在团{BS}中,又在团{RDB}中,但这两个团的贯通性被{TLR}和{RS}破坏。而图(b)所示的树则是变量贯通的,因而是团树。

图1. 团树与贝叶斯网

我们说团树T覆盖贝叶斯网N,如果它满足以下两个条件:
(1) 对N中任一变量X,团树T中必能找到这样一个团,X及其父节点都包含于该团中,我们称该团为变量X的家族覆盖团
(2) T中所有团的并集刚好是N中所有变量的集合。
根据这两个条件,我们可以判断:上图(b)中的团树覆盖图©中贝叶斯网。比如,变量R及其父节点组成的集合为{RTL},在图(b)的团树中,可以找到一个包含{RTL}的团;变量D及其父节点组成的集合为{RDB},也可以找到包含该集合的对应团,等等。

2.2.2 团树的构建方法

2.2.2.1 利用图消元法构造团树

在本专题第4讲中介绍变量消元法时,引入了消元子程序Elim(F,Z),此处将再次使用该子程序来构造团树。构造算法的思想是:从贝叶斯网N的端正图G出发,按一定顺序在G中进行消元;在消去变量X之前,先构造一个由X以及所有与X相邻的变量组成的团;在消元过程结束后,将所生成的团以恰当的方式连接,得到一棵覆盖N的团树。具体算法如下所示:

以图1©中所示贝叶斯网N为例,按照<AXDSBRTL>的消元顺序来构建团树,算法流程如下图所示。
左列由上至下为消元步骤,在消元的过程中分别构造邻居节点集S和团C;
右列由下至上为递归返回步骤,递归返回后进行团的连接,连接规则为:从已构建的团树中寻找包含当前邻居节点集S的团C’,将当前团C连接到该团C’。

2.2.2.2 极小团树

如果一棵团树中任意两相邻团都不互相包含,那么我们称之为极小团树。BuildCT算法所构造的团树不一定是极小的。如下图(a)所示的端正图,按EDCBA的消元顺序所构建的团树为图(b),其中团{BCDE}包含邻居团{BCD},所以不是最小团树。
一棵非极小团树可以很容易化简为极小团树。只需逐个考虑树中的团C,如果有与之相邻的团C’,且C包含于C’,则将C删去,并将C的其它邻居与C’相连。这个过程就叫做团树极小化。显然,按此方法操作,所的的团树仍满足变量贯通性,因此仍是一个团树。
下图(b-d)为团树极小化的化简过程:首先找到{BCD}团,其中变量包含于邻居团{BCDE}中,将{BCD}删去,并将{BCD}的其它邻居{BC}连接到{BCDE};然后再找到团{BC},其中变量包含于邻居团{BCDE}中,将{BC}删去,并将{BC}的其它邻居{AB}连接到{BCDE};最终得到极小团。

可以证明的是,如果一棵团树T覆盖一个贝叶斯网络,将T极小化后,它仍覆盖该贝叶斯网。后文所称的团树都是指极小化后的团树。

2.2.3 通过团树计算后验概率

设N为一个贝叶斯网,T是覆盖N的一棵团树,E=e是观测到的证据,Q是查询变量。如下给出了利用团树T计算后验概率P(Q|E=e)的团树传播算法CTP。

下面以图1(b)所示的团树和其所覆盖的的贝叶斯网为例来展示团树传播算法的执行步骤,具体步骤见下图。
第1步是利用N中的概率函数将团树T初始化,即将N中的概率函数分配到T中的各个节点加以储存。对N中的每一个变量X,在T中找到它的家族覆盖团,然后把P(X∣π(X))P(X|\pi(X))P(X∣π(X))储存到该团。在分配结束后,如果有团没有储存任何概率分布,则构造单位函数1存于此处。初始化的结果见下图(a)
第2步是设置证据变量。我们的例子中,假设证据为{D=y},下图(b)中,将P(D|R,B)设置为P(D=y|R,B).
第3步要选择一个包含查询变量Q的团CQC_QCQ​作为推理的枢纽节点,此处所找的团不一定为Q的家族覆盖团。在我们的例子中,假设需要计算的后验概率为P(T|D=y),那么我们既可以选择团{AT},也可以选择团{RTL}作为推理枢纽。这里不妨选择{RTL}。
第4步,CTP对CQC_QCQ​的相邻节点逐一调用子程序CollectMessage(T,CQC_QCQ​,C),并获得一个函数。为直观理解,从相邻节点C那里获得的函数称为从C到CQC_QCQ​的信息。一般地,称对CollectMessage(T,C’,C)的调用是C’从C获得信息。在我们的例子中,枢纽节点有3个邻居:{AT},{RX},{RLB}.下面是计算{RTL}从它们获得信息的过程:
(1) 如下图©,计算从{AT}到{RTL}的信息:储存在{AT}的函数为P(A)和P(T|A)。集合Z={A}。因为{AT}在T中是叶节点,所以从{AT}到{RTL}的信息为:ψ1(T)=∑AP(A)P(T∣A)\psi_1(T)=\sum_AP(A)P(T|A)ψ1​(T)=A∑​P(A)P(T∣A)
(2) 如下图(d),计算从{RX}到{RTL}的信息:ψ2(R)=∑XP(X∣R)\psi_2(R)=\sum_XP(X|R)ψ2​(R)=X∑​P(X∣R)
(3) 如下图(e-g),计算从{RLB}到{RTL}的信息:由于除{RTL}外,{RLB}还有另外两个邻居{LSB}和{RBD}。在计算{RLB}到{RTL}的信息之前,需要先计算从{LSB}和{RBD}到{RLB}的信息,分别为:
ϕ3(L,B)=∑SP(S)P(L∣S)P(B∣S)ϕ4(R,B)=P(D=y∣R,B)\phi_3(L,B)=\sum_SP(S)P(L|S)P(B|S)\\ \phi_4(R,B)=P(D=y|R,B) ϕ3​(L,B)=S∑​P(S)P(L∣S)P(B∣S)ϕ4​(R,B)=P(D=y∣R,B)
注意在计算ϕ4\phi_4ϕ4​时,证据变量D已知,所以Z是空集。最后,从{RLB}到{RTL}的信息为:
ϕ5(R,L)=∑Bϕ3(L,B)ϕ4(R,B)\phi_5(R,L)=\sum_B\phi_3(L,B)\phi_4(R,B) ϕ5​(R,L)=B∑​ϕ3​(L,B)ϕ4​(R,B)
第5步,CTP将枢纽节点CQC_QCQ​所收到的信息及储存在CQC_QCQ​处的函数相乘,得到一个CQC_QCQ​的函数h(CQ)h(C_Q)h(CQ​).在我们的例子中,该函数为:
h(T,L,R)=ϕ1(T)ϕ2(R)ϕ5(R,L)P(R∣T,L)h(T,L,R)=\phi_1(T)\phi_2(R)\phi_5(R,L)P(R|T,L)h(T,L,R)=ϕ1​(T)ϕ2​(R)ϕ5​(R,L)P(R∣T,L)
第6步,CTP从h(CQ)h(C_Q)h(CQ​)中消去除Q以外的变量,并将结果归一化,从而得到P(Q|E=e)。在我们的例子中,即:
P(T∣D=y)=∑L,Rh(T,L,R)∑T,L,Rh(T,L,R)P(T|D=y)=\frac{\sum_{L,R}h(T,L,R)}{\sum_{T,L,R}h(T,L,R)} P(T∣D=y)=∑T,L,R​h(T,L,R)∑L,R​h(T,L,R)​
CTP算法可以视为用团树来组织变量消元算法。在上面的例子中,团{AT}向团{RTL}传递消息ϕ1(T)\phi_1(T)ϕ1​(T)实际上就是消去变量A。团树中的消息传递并不总代表消去一个变量,有些传递可能并不涉及消元,而有些传递可能对应同时消去多个变量。

2.2.4 团树传播提高效率的原因:计算共享

CTP算法与第4讲中介绍的变量消元算法并无本质区别,它是变量消元的另一种组织形式。用团树组织变量消元的优点在于:它能使我们清楚地看到两次不同的推理之间哪些步骤是相同的,从而可以进行步骤共享,提高推理效率。
在上节的团树推理案例中,为了计算变量T的后验概率分布P(T|D=y),进行了如下信息传递:

{AT}->{RTL},{RX}->{RTL},{LSB}->{RLB},{RBD}->{RLB},{RLB}->{RTL} 现假设需要进一步计算变量B的后验分布P(B|D=y)。如果选择团{RLB}作为推理枢纽,则需要进行如下信息传递: {AT}->{RTL},{RX}->{RTL},{RTL}->{RLB},{LSB}->{RLB},{RBD}->{RLB} 这里,除了信息{RTL}->{RLB}以外,其它信息传递都在计算P(T|D=y)时计算过了。所以只要将这些传递的信息都记录到一张检索表中,就能在多次推理之间共享计算,提高效率。

贝叶斯网专题6:团树传播相关推荐

  1. 贝叶斯网专题12:参数学习之贝叶斯估计

    第一部分:贝叶斯网基础 1.1 信息论基础 1.2 贝叶斯网基本概念 1.3 变量独立性的图论分析 第二部分:贝叶斯网推理 2.1 概率推理中的变量消元方法 2.2 团树传播算法 2.3 近似推理 2 ...

  2. 贝叶斯网专题1:信息论基础

    文章目录 贝叶斯网专题前言 第一部分:贝叶斯网基础 1.1 信息论基础 1.1.1 预备数学知识:Jensen不等式 1.1.2 熵 1.1.3 联合熵.条件熵.互信息 1.1.4 交叉熵和相对熵(K ...

  3. 贝叶斯网专题11:参数学习之极大似然估计

    第一部分:贝叶斯网基础 1.1 信息论基础 1.2 贝叶斯网基本概念 1.3 变量独立性的图论分析 第二部分:贝叶斯网推理 2.1 概率推理中的变量消元方法 2.2 团树传播算法 2.3 近似推理 2 ...

  4. 贝叶斯网专题4:概率推理中的变量消元方法

    文章目录 第一部分:贝叶斯网基础 [1.1 信息论基础](https://blog.csdn.net/deepbodhi/article/details/119823055) [1.2 贝叶斯网基本概 ...

  5. 贝叶斯网专题2:贝叶斯网基本概念

    文章目录 第一部分:贝叶斯网基础 [1.1 信息论基础](https://blog.csdn.net/deepbodhi/article/details/119823055) 1.2 贝叶斯网基本概念 ...

  6. 贝叶斯网的R实现( Bayesian networks in R)bnlearn(4)

    贝叶斯网络的推理(inference) (1)推理问题 在了解如何构造贝叶斯网络之后,下面我们考虑如何利用贝叶斯网络来进行推理.贝叶斯网络的推理是对某些变量当给定其它变量的状态作为证据时如何推断它们的 ...

  7. 贝叶斯网引论 by 张连文

    贝叶斯网(Bayesian networks)是一种描述随机变量之间关系的语言,构造贝叶斯网是为了概率推理,理论上概率推理基于联合概率分布就行了,但是联合概率分布(基于表)的复杂度会呈指数增长,贝叶斯 ...

  8. Bonaparte:贝叶斯网在灾难遇难者识别(DVI)中的应用

    荷兰一家软件公司开发的Bonaparte系统已成功应用在多起灾难的遗体鉴别任务中.根据其官网给出的联系方式,联系到了其技术主管Willem Burgers,向他询问Bonaparte背后的技术原理.W ...

  9. 从朴素贝叶斯到贝叶斯网

    回顾 在文章<朴素贝叶斯>中,小夕为大家介绍了朴素贝叶斯模型的基本知识,并且得出了朴素贝叶斯是利用联合概率P(x1,x2,x3...xn,y)来确定某个样本为某个类别的概率,进而利用最大后 ...

最新文章

  1. Linux运行cat进程,linux下如何使用某个用户启动某个进程?
  2. html5斐波那契数列,经典的斐波那契数列与arguments.callee
  3. 【Obj-C】学习杂记-1
  4. 从思维导图学习操作系统(二)
  5. 荣获中国音视频产业大会「科技创新奖」,网易云信彰显行业领先水平
  6. ~~spfa判断图中是否存在负环
  7. 腾讯下一步:关注通用AI,加大投入产业互联网,推出医疗新品AI显微镜
  8. java读取word文档内容_Python读取PDF信息插入Word文档
  9. ZYNQ研究----(3)7100 裸跑LWIP协议栈
  10. c语言随机迷宫生成,程序自动生成迷宫
  11. 自定义 Spring Starter
  12. 文墨绘学书法教育领导品牌
  13. 什么是 Redis ?
  14. 高项_第七章项目成本管理
  15. 在b站上跟着沐神学习深度学习
  16. 第一次使用炫云云渲染软件该怎么使用?
  17. js如何实现扫描身份证识别_js完美实现身份证校验
  18. Mac vmWare 找不到可以连接的有效对等进程
  19. 基于Yolov5的吸烟行为识别检测
  20. vue 微信公众号支付接口_vue页面在微信公众号调用支付接口

热门文章

  1. 原神3.2服务端架设服务器搭建教程ubuntu系统(保姆级)
  2. 手机5g什么时候普及_5G什么时候覆盖全国
  3. Docker从无到有
  4. Cleaning up unclosed ZipFile for archive
  5. Linux学习——Linux常用文件和目录管理命令(超详细)
  6. 股票连续跌停后开板表现
  7. cin.ignore在Vs2019中报错提示应输入表示符的解决方案
  8. 【Redis】解决全局唯一 id 问题
  9. 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java基于网络的景区旅游服务管理系统q57ng
  10. 流氓软件新技术,8749病毒详细分析报告