当前位置: 首页 > 编程日记 > 正文

概率图论PGM的D-Separation(D分离)

为什么80%的码农都做不了架构师?>>>   hot3.png

本文大部分来自:http://www.zhujun.me/d-separation-separation-d.html

其中找了一些资料发现原文中阻塞(block)中(b)部分有出路,黑体部分修改了一下,那么‘四应用例子’部分答案也跟着修改,如果理解有误希望能给予解释,谢谢!资料参考在最下部分‘六、补充参考资料例子’。

一、引言

在贝叶斯网络的学习过程中,经常会遇到(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连接的是两个箭头的尾部,如图)

28192706_yK9d.png

可知, 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是离散的情况,可得

28192706_REWA.png

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

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

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

28192706_rmaJ.png

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

Example Two:head-to-tail

28192707_hbXn.png

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

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

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

28192707_XxCr.png可知,a和b不是c条件独立的。

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

28192707_KQPG.png

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

28192707_Ts69.png

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

Example Three:head-to-head

28192708_aIaN.png

可知 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值作为观察点。

28192708_lKuK.png

所以有:

28192709_rMa8.png

最后不能因式分解成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分隔定理,我们可以很容易的判断是否是条件独立的。我们来看一个例子:

28192709_Pvt6.png

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

判断 a 和 b 是否是 c下条件独立的: 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和f:节点 e 是head-to-head 类型的,e 和她的儿子节点 c 都不在 f 中,所以(b),e是阻断路径的节点。节点 f 是tail-to-tail类型节点,且 f 节点就在 f中,所以 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

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

六、补充参考资料例子



1.P( G , L | B ),因为根据规则1,给定B阻塞了G和L之间的惟一的路径。根据给定B,M也阻
塞了这个路径,因为M不是证据
集的一个成员。

2.I(G,L)和I(B,L),因为按规则,给定空的证据集合, M阻塞了G和L之间、B和L之间的
(惟一)路径(M不是空的证据集
的一个成员)。

然而,注意, B和L不是条件独立于给定的M的。因为虽然M在B和L的路径上,但这个路径上的两条弧都指向M,且M在证据集合中—因此在这种情况下,M没有阻塞路径。

七、Cousera上的PGM例子

课上的explanation:

d-sep (D, J | L, I) is the only statement that is true. If we observe L, the V-structure at G is activated, so influence can flow from D through I to J. Likewise, if we observe H, then the V-structure at H is activated, allowing influence to flow from D to J through H.

我的理解:
A.d-seq(D,I|L):考虑路径:Diffuculty-Grage-Intelligence,Grade是head-to-head节点类型,其孩子节点Letter是条件集合中,因此不是条件独立,该项不是d分离。
B.d-seq(D,J|L):考虑路径:Diffuculty-Grage-Letter-Job,节点Grade是head-to-tail节点类型,其不在条件集合中,因此不是条件独立,该项不是d分离。
C.d-seq(D,J|L,I):考虑路径1:Diffuculty-Grage-Letter-Job,L是head-to-tail节点类型,且在条件集合中,因此是条件独立。考虑路径2:Difficulty-Grade-Happy-Job,Happy是head-to-head节点类型,但Happy不在条件集合中,因此条件独立。考虑路径3:Difficulty-Grade-Intelligence-SAT-Job,Grade是head-to-heat节点类型,但不在条件集合中,是条件独立。所有路径都是阻塞,因此该项符合d分离。

D.d-seq(D,J|L,H,I):考虑路径:Diffuculty-Grade-Happy-Job,其中第二条路径,Happy是head-to-head节点类型,但Happy在条件集合中,所以该路径中的D、J不是条件独立,所以该项不是d分离。

一个简单的数学证明:

P(D,S)=P(D)*P(S)


转载于:https://my.oschina.net/dillan/blog/134011

相关文章:

CSDN湘苗培优|高起点步入职场,快人一步!

课程了解3个培养阶段结束后,让你具备:解决问题能力、交付能力、有经验。系统基础训练(阶段一)•内容:程序逻辑基础、计算机原理、操作系统工作原理、C语言(掌握内存的分配)、密码学、信息论、概…

php与Ajax实例

****************AJAX的学习要有JavaScript、HTML、CSS等基本的Web开发能力**************** [AJAX介绍] Ajax是使用客户端脚本与Web服务器交换数据的Web应用开发方法。Web页面不用打断交互流程进行重新加裁,就可以动态地更新。使用Ajax,用户可以创建…

[转]构建基于WCF Restful Service的服务

本文转自:http://www.cnblogs.com/scy251147/p/3566638.html 前言 传统的Asmx服务,由于遵循SOAP协议,所以返回内容以xml方式组织。并且客户端需要添加服务端引用才能使用(虽然看到网络上已经提供了这方面的Dynamic Proxy&#xff…

Ajax使用初步

Ajax定义为“Asynchronous JavaScript XML”的简称,也就是异步的JavaScript和XML处理。从原理上看,主要是Ajax可以通过调用HttpRequest实现与服务器的异步通讯,并最终在网页中实现丰富友好的用户界面Ajax使用初步,配置步骤1.把Aj…

AI化身监工,上班还能摸鱼吗?

来源 | 人民数字FINTECH责编 | 晋兆雨头图 | CSDN 下载自视觉中国俗话说“上班摸鱼一时爽,一直摸鱼一直爽。”上班族这群“时间管理大师们”往往能在上班的时间中挤出一半的时间来摸鱼:在距离上班时间的最后一分钟打卡,午饭时间未到就打开各大…

解决“安装程序无法定位现有系统分区,也无法创建新的系统分区”的方法

使用老毛桃PE格式化C盘后安装Win7出现“安装程序无法定位现有系统分区,也无法创建新的系统分区”的错误。本文给出了我遇到该情况的解决办法,亲身经历,绝非抄袭。 在网上看了好多办法,都无效。最后竟然用下面的方法成功了: 1. 使用…

Linux 上 12 个高效的文本过滤命令

在这篇文章中,我们将会看一些 Linux 中的过滤器命令行工具。过滤器是一个程序,它从标准输入读取数据,在数据上执行操作,然后把结果写到标准输出。 因此,它可以用来以强大的方式处理信息,例如重新结构化输出…

linux在多核处理器上的负载均衡原理

原文出处:http://donghao.org/uii/ 【原理】 现在互联网公司使用的都是多CPU(多核)的服务器了,Linux操作系统会自动把任务分配到不同的处理器上,并尽可能的保持负载均衡。那Linux内核是怎么做到让各个CPU的压力均匀的呢…

完全免费,简化版Plotly推出,秒绘各类可视化图表

作者 | Peter来源 | Python编程时光今天给大家推荐一个可视化神器 - Plotly_express ,上手非常的简单,基本所有的图都只要一行代码就能绘出一张非常酷炫的可视化图。以下是这个神器的详细使用方法,文中附含大量的 GIF 动图示例图。环境准备本…

Linux 启动过程详解

说明:由于图片太大,上传博客的图片是jpg格式的有点失真,看不清楚,可以双击打开查看,有朋友想看高清,无码,无水印的大图(png格式)请下载附件!转载于:https://b…

java web项目优化记录:优化考试系统

考试系统在进行压力測试时发现,并发量高之后出现了button无反应。试题答案不能写到数据库的问题,于是针对这些核心问题,进行了优化。 数据库方面: Select语句:Select * from TEB_VB_XZTRecord改为select 必须的列 form…

深度学习中的注意力机制(三)

作者 | 蘑菇先生来源 | NewBeeNLP原创出品 深度学习Attenion小综述系列:深度学习中的注意力机制(一) 深度学习中的注意力机制(二)目前深度学习中热点之一就是注意力机制(Attention Mechanisms&#xff…

程序分析工具gprof介绍

程序分析是以某种语言书写的程序为对象,对其内部的运作流程进行分析。程序分析的目的主要有三点:一是通过程序内部各个模块之间的调用关系,整体上把握程序的运行流程,从而更好地理解程序,从中汲取有价值的内容。二是以…

hadoop源码datanode序列图

2019独角兽企业重金招聘Python工程师标准>>> 转载于:https://my.oschina.net/u/572882/blog/134796

HDU 2206 IP的计算(字符串处理)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid2206 Problem Description在网络课程上,我学到了非常多有关IP的知识。IP全称叫网际协议,有时我们又用IP来指代我们的IP网络地址,如今IPV4下用一个32位无符号整数来表示&#…

有规律格式化文本文件插入数据库

现有以下文本文件: *理光(深圳)工业发展有限公司(D15)(位于福田区)1.厨师1名;男;30岁以下;高中以上学历;中式烹调师中级以上,需备齐身份证/毕业证/流动人口婚育证明原件及复印件1份.经公司体检不合格者将不予录用,不合格者体检费自理.福利及待遇:工作时…

java使用uploadify上传文件

一、简介Uploadify是JQuery的一个上传插件,实现的效果非常不错,带进度显示;可以上传多个文件;详细的使用方法网上有很多,建议到官网参考,这里仅仅展示其使用的效果;官网:www.uploadi…

微软亚洲研究院成立OpenNetLab,探索以“数据为中心”AI网络研究新范式!

2020年12月18日,微软亚洲研究院宣布联合清华大学、北京大学、南京大学、兰州大学、新加坡国立大学、首尔国立大学等多所亚洲地区高校,成立OpenNetLab开放网络平台联盟。 OpenNetLab官网地址:https://opennetlab.org/ 通过为研究人员提供通用的…

圆角文本框的制作

把border:0px;outline:none;就可以清除边框。然后在外面放一个圆角div,文本框在div内居中的话能够,设置行高和text-align:center。或者也能够在背景图上放文本框。

微软收购 GitHub 两年后,大咖共论开源新生态

头图 | CSDN 下载自视觉中国被微软收购两年的GitHub,现在怎么样了?据《 2020 年度 GitHub Octoverse 报告》显示,GitHub 上开发者数量达到 5600 万,新增 6000 万个存储库以及 19 亿个 contribution。GitHub 预计到 2025 年&#x…

网页中如何获取客户端系统已安装的所有字体?

如何获取系统字体&#xff1f;1.首先在需要获取系统字体的网页<body>后加入以下代码&#xff1a;<DIV style"LEFT: 0px; POSITION: absolute; TOP: 0px"><OBJECT ID"dlgHelper" CLASSID"clsid:3050f819-98b5-11cf-bb82-00aa00bdce0b&q…

Web开发常见的软件架构

Web开发常见的软件架构 一、看需求分析&#xff0c;看产品PRD&#xff1a;Product Requirement Document 二、根据PRD和产品原型建数据库表,注意三范式要求,用工具到处数据库关系图&#xff0c;并快速地理清数据库思路 三、搭建项目架构&#xff0c;常用三层&#xff0c;自动…

thinkphp整合系列之gulp实现前端自动化

这又是一个一次整合终身受益&#xff1b;不止是终身&#xff1b;换个项目同样可以很方便复用&#xff1b;不信你看另一个项目&#xff1a; thinkphp整合系列之gulp实现前端自动化 虽然我等叫php程序猿&#xff1b;但是不可避免的是要跟html打交道的&#xff1b;而且php这么容易…

网上几种常见校验码图片分析

前几天受刺激了&#xff0c;准备把CSDN的校验码图片修改。就上网找了一些参考示例。和分析了一些校验码的功能。不敢独享&#xff0c;整理到一起&#xff0c;跟大家分享。 至于CSDN新的校验码写法&#xff0c;不是这里面的任何一种。也不是网上可以找到的。这个不好公开&#…

语言都是相通的,学好一门语言,再学第二门语言就很简单,记录一下我复习c语言的过程。...

语言都是相通的&#xff0c;学好一门语言&#xff0c;再学第二门语言就很简单&#xff0c;记录一下我复习c语言的过程。为了将本人的python培训提高一个层次&#xff0c;本人最近买了很多算法的书.这个书上的代码基本都是c语言实现的&#xff0c;c语言很久没有用了&#xff0c;…

百度飞桨全新升级:重磅推出PaddleHelix平台、开源框架V2.0RC,硬件生态路线图全公开...

12月20日&#xff0c;WAVE SUMMIT2020深度学习开发者峰会在北京举办。本届峰会&#xff0c;百度飞桨带来八大全新发布与升级&#xff0c;有支持前沿技术探索和应用的生物计算平台PaddleHelix螺旋桨&#xff0c;开发更加便捷的飞桨开源框架2.0 RC版&#xff0c;端云协同的AI集成…

Java解压zip文件(文本)压缩包

2019独角兽企业重金招聘Python工程师标准>>> 说明&#xff1a;由于我们的日志收集到指定服务器上&#xff0c;会按天压缩成一个zip格式的压缩包&#xff0c;但是有时候需要对这些日志进行处理&#xff0c;人工解压在处理&#xff0c;显示对于大量的日志处理是不行的…

Asp.Net 动态生成验证码

我们在设计用户登录模块时&#xff0c;经常会用到验证码&#xff0c;可以有效地防止黑客软件的恶意破解&#xff0c;现公开我常用的验证码的源代码&#xff0c;生成效果如图&#xff1a;。使用方法&#xff1a;1、在Web项目中添加一个类&#xff0c;如“CreateImage.cs”&#…

Hyper-v 3.0虚拟化平台群集共享磁盘无法failover的故障

碰到一个hyper-v 3.0虚拟化平台和HP存储的兼容性问题&#xff0c;放出来和大家分享一下。平台&#xff1a;windows server 2012 RTMhyper-v 3.0故障现象&#xff1a;生产虚拟平台宿主机意外重启&#xff0c;且重启后一块存储磁盘变成脱机状态&#xff0c;进一步测试发现宿主机上…

2020年中国AI算力报告发布:超大算法模型挑战之下,公共AI算力基建是关键

随着人工智能算法突飞猛进的发展&#xff0c;越来越多的模型训练需要巨量的算力支撑才能快速有效地实施。目前&#xff0c;如AlphaFold、GPT-3等模型已经逼近人工智能的算力极限&#xff0c;GPT-3的模型尺寸增大到了1750亿&#xff0c;数据量也达到了惊人的45TB。一方面&#x…