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. 【转】Linux - CentOS 7网络配置

    Linux - CentOS 7网络配置 https://blog.csdn.net/J080624/article/details/78083988   安装完VM后,需要进行网络配置.第一个目标为 ...

  2. 快速获取APP对应的appPackage和appActivity

    appPackage和appActivity 进行appium自动化测试非常重要的两个参数,我们所测试的APP不同,这两个参数肯定也是不一样的. 介绍两种方法可快速获取APP的这两个参数: 方法一 1 ...

  3. maven项目的标准目录结构

    maven项目的标准目录结构如下:

  4. 开源ITIL管理软件iTop 2.5-2.6安装

    环境说明 : 操作系统centos 7.itop版本 iTop-2.5.0-3935.数据库:mariadb iTop 2.5只支持PHP5.6以上版本,本例安装的是php72w版本 1.下载链接: ...

  5. 学习笔记 | Set

    目录 Set Set 前言 不会数据结构选手 当几乎没写过什么数据结构的菜鸡遇上了毒瘤的splay和treap 时间正一点一点地被续走TAT 听说set有时候可以替代treap和splay 那么菜鸡L ...

  6. C++ 类 构造函数 constructor

    构造函数 当定义了一个整型变量: int a; 这会申请了一块内存空间来存储a,但是这块内存中原本有数据的,可能是任何值,这不是你所希望的,若你就希望a表示1,所以要把a的值赋值为1. ; 例: #i ...

  7. ClickOnce 创建桌面快捷方式

    static void Main() { bool bCreatedNew; Mutex m = new Mutex(false, "TestClickOnceClientName" ...

  8. iOS自学-混合编程

    OC调用swift,引入头文件 #improt "工程名字-swift.h" swift调用OC,在桥梁文件里面引入OC文件 的头文件 尽情混合编程吧...

  9. 《Spring1之第五次站立会议》

    <第五次站立会议> 昨天:试着做了一下主框架里的在线人数的显示代码: 今天:向小伙伴们请教了我代码的错误的解决方法以及对TCP/IP协议进行了相关的了解. 遇到的问题:虽然基本原理不难理解 ...

  10. vs2013 CodeLens

    那东西叫 CodeLens  只有VS2013 旗舰版 (update 2及以上) 才可以用,高级版 专业版都没有.如何打开CodeLens呢?在VS菜单栏 >> 工具 >> ...