D-Separation(D分离)-PRML-8.22-Graphical Model

 

一、引言

在贝叶斯网络的学习过程中,经常会遇到(D-Separation)D-分离这个概念,D-分离是寻找网络节点之间的条件独立性的一种方法或者说一种问题的简化处理的技巧。采用D-分离技术,在用贝叶斯网络进行预测,诊断推理等方面,可以提高计算速度,减少计算复杂性。

D-Separation是一种用来判断变量是否条件独立的图形化方法。相比于非图形化方法,D-Separation更加直观,且计算简单。对于一个DAG(有向无环图)E,D-Separation方法可以快速的判断出两个节点之间是否是条件独立的。

二、三种情况分析

首先可以看看以下三种简单情况下条件独立的情况(对应于PRML中8.2.1的Three example graphs):

Example One:tail-to-tail (节点C连接的是两个箭头的尾部,如图)

可知, P(a,b,c)=P(a|c)*P(b|c)*P(c)    (1)

现在我们求 P(a,b),如果 P(a,b)=P(a)*P(b),则a和b是在c条件下独立分布的。分两种情况进行讨论:

(1)C值不作为观察点。令(1)式对c求积分,消去c值,考虑c是离散的情况,可得

可以看到,与 P(a,b)=P(a)*P(b)不等,所以a和b不是c条件独立的。

(2)C值作为观察点(即以C作为条件)。则可以知道C取某个c状态的概率为 P( c ),c 条件下 a 和 b发生的概率为

P( a,b|c )。 由下式:

可得a 和 b 是 c 条件下独立的。

Example Two:head-to-tail

可知,p(a,b,c)=p(a)*p(c|a)*p(b|c)   (2)

同样分两种情况进行讨论:

(1)、c值不作为观察点。对(2)式(考虑c是离散的情况)积分可得:

可知,a和b不是c条件独立的。

(2)、c值作为观察点。则图模型表示为:

c 条件下 a 和 b发生的概率为 P( a,b|c )。 由下式:

可知,a 和 b 是 c 条件下独立的。

Example Three:head-to-head

可知 p(a,b,c)=p(a)*p(b)*p(c|a,b)    (3)

同理,分两种情况讨论:

(1)、c值不作为观察点。由于所有p(c|a,b)相加和=1,所以有(3)式消去c,可得 p(a,b)=p(a)*p(b),即a与b是条件独立的。

(2)、c值作为观察点。

所以有:

最后不能因式分解成p(a)*p(b)的形式,所以a与b不是c条件独立的。

三、总结

对于较为复杂的 DAG 图,我们可以给出一个普遍意义上的结论 ,也就是 D-Seperation。 对于 DAG 图 E,如果A,B,C是三个集合(可以是单独的节点或者是节点的集合),为了判断 A 和 B 是否是 C 条件独立的, 我们考虑 E 中所有 A 和 B 之间的 无向路径 。对于其中的一条路径,如果她满足以下两个条件中的任意一条,则称这条路径是 阻塞(block) 的:

(a)路径中存在某个节点 X 是 head-to-tial 或者 tail-to-tail 节点(Example one/two),并且 X 是包含在 C 中的;

(b)路径中存在某个节点 X 是 head-to-head 节点(Example Three),并且 X 或 X 的儿子都不是包含在 C 中的;

如果 A,B 间所有的路径都是阻塞的,那么 A,B 就是关于 C 条件独立的;否则, A,B 不是关于 C 条件独立的。

四、应用例子

根据D-Seperation分隔定理,我们可以很容易的判断是否是条件独立的。我们来看一个例子:

判断图中a与b是否在c条件下独立a与b是否在f条件下独立

图中可以看到 a 到 b 只有一条路径 a->e->f->b 。 考虑路径上的点 e 和 f :其中e 是 head-to-head 类型的,且 e 的儿子节点就是 c ,根据(b),e没有被阻断,而节点f是tail-to-tail类型节点,根据(a),f不在c中,所以 a 和 b 不是 c 条件下独立的。

现在如果要判断 a 和 b 是否是 f 下条件独立的。同样的方法,考虑路径 a->e->f->b 上的所有节点。节点 e 是head-to-head 类型的,e 和她的儿子节点 c 都不在 f 中,根据(b)可知,所以e是阻断路径的节点。节点 f 是tail-to-tail 节点,且 f 节点就在 f 中,根据(a),可知 f 节点阻断了路径。 结论:a 和 b是 f 下条件独立的。

D-Seperation 还可以用来证明独立同分布马尔科夫边界等。

五、参考资料

1、http://www.andrew.cmu.edu/user/scheines/tutor/d-sep.html#d-sepapplet2

2、http://blog.sina.com.cn/s/blog_7a24649f0101hjdx.html  (-->!This is an error!)

3、《pattern recognition and meaching learning》-chapter 8:Graphical Model-8.2 conditional independence

 
    1.  

D-Separation(D分离)-PRML-8.22-Graphical Model 五 18 by 小军的更多相关文章

  1. PGM:概率图模型Graphical Model

    http://blog.csdn.net/pipisorry/article/details/51461878 概率图模型Graphical Models简介 完全通过代数计算来对更加复杂的模型进行建 ...

  2. A function to help graphical model checks of lm and ANOVA(转)

    As always a more colourful version of this post is available on rpubs. Even if LM are very simple mo ...

  3. [转] 基于NodeJS的前后端分离的思考与实践(五)多终端适配

    前言 近年来各站点基于 Web 的多终端适配进行得如火如荼,行业间也发展出依赖各种技术的解决方案.有如基于浏览器原生 CSS3 Media Query 的响应式设计.基于云端智能重排的「云适配」方案等 ...

  4. zabbix2.2.22 升级3.0.18

      环境说明 系统版本 CentOS 7.2 x86_64 zabbix2.2.22界面如下 升级过程: 清除之前的zabbix的yum源缓存 [root@zabbix ~]# yum clean a ...

  5. 从壹开始前后端分离 [.netCore 不定期更新 ] 三十五║ 完美实现全局异常日志记录

    缘起 哈喽我是不定期更新的日常,昨天群里小伙伴问到了记录日志,当然,以前我也挖过这个坑,后来一直没有来得及填上,也想着 swagger 一直又有错误信息展示的功能,就迟迟没有添加这个功能,不过昨天夜里 ...

  6. mysql 开发基础系列22 SQL Model

    一.概述 与其它数据库不同,mysql 可以运行不同的sql model 下, sql model 定义了mysql应用支持的sql语法,数据校验等,这样更容易在不同的环境中使用mysql. sql ...

  7. 概率图模型(PGM,Probabilistic Graphical Model)

    PGM是现代信号处理(尤其是机器学习)的重要内容. PGM通过图的方式,将多个随机变量之前的关系通过简洁的方式表现出来.因此PGM包括图论和概率论的相关内容. PGM理论研究并解决三个问题: 1)表示 ...

  8. PRML读书会第十章 Approximate Inference(近似推断,变分推断,KL散度,平均场, Mean Field )

    主讲人 戴玮 (新浪微博: @戴玮_CASIA) Wilbur_中博(1954123) 20:02:04 我们在前面看到,概率推断的核心任务就是计算某分布下的某个函数的期望.或者计算边缘概率分布.条件 ...

  9. PRML读书会第四章 Linear Models for Classification(贝叶斯marginalization、Fisher线性判别、感知机、概率生成和判别模型、逻辑回归)

    主讲人 planktonli planktonli(1027753147) 19:52:28 现在我们就开始讲第四章,第四章的内容是关于 线性分类模型,主要内容有四点:1) Fisher准则的分类,以 ...

随机推荐

  1. layer.msg(msg, time, parme)设置图标问题

    layer.msg只提到3个参数,实际上有第4个参数,第4个参数就是msg关闭后执行的回调.   layer.msg('提示', 2, 1, function(){})   第一个参数:提示 第二个参 ...

  2. requestAnimationFrame优势何在?

    大概半年前,无意中在网上看到一个新的js函数requestAnimationFrame,据说,此函数可以优化传统的js动画效果,似乎是未来js动画的新方向. 当时我所在的项目正好用到了和js动画有关的 ...

  3. java随记

    jdk1.8中新增了 LocalDate 与 LocalDateTime等类来解决日期处理方法,同时引入了一个新的类DateTimeFormatter来解决日期格式化问题. LocalDateTime ...

  4. 网易公开课[一万分钟]《office办公达人养成计划》

    note: Shift表示移动 Ctrl表示复制 Excel: 快速选中单元格: 选中表格左上角Ctrl+A Ctrl+方向键,跳到行或列的尽头 Ctrl+Shift+方向键,选中一行或一列 Shif ...

  5. 写高并发程序时慎用strncpy和sprintf

    分享一下最近做程序优化的一点小心得:在写高并发交易代码时要谨慎使用strncpy和sprintf. 下面详细介绍一下这样说的原因及建议实践: 1 慎用strncpy因为它的副作用极大 我们平时使用st ...

  6. TensorFlow Python2.7环境下的源码编译(二)安装配置

    源代码树的根目录中包含了一个名为 configure 的 bash 脚本. $ ./configure 接下来,配置系统会给出各种询问,以确认编译时的配置参数.   一.重要参数解释 Do you w ...

  7. while循环计算规则:内循环—外循环!

    num= 1 #值 =1while num <= 10 : # num(1)小于10 print(num) # 应该打印 这个1的值 num +=1 # num+=1等价于 num再加1 所以这 ...

  8. Linux系统中时间区域和API

    1.问题 在开发云平台程序的时候,经常会碰到时间区域转换的问题.比如,任何网络存储的文档的metadata都自己记录了编辑时间.但是,云平台记录时需要把这个时间转成标准时间,便于管理.但是用户使用的时 ...

  9. uiimageview 的 animation 动画

    NSMutableArray *meiArr = [NSMutableArray arrayWithCapacity:4]; for (int i = 0; i < 4; i++) { NSSt ...

  10. Scrum立会报告+燃尽图(十二月九日总第四十次):视频剪辑与用户反馈

    此作业要求参见:https://edu.cnblogs.com/campus/nenu/2018fall/homework/2484 项目地址:https://git.coding.net/zhang ...