[PGM] I-map和D-separation
之前在概率图模型对概率图模型做了简要的介绍。此处介绍有向图模型中几个常常提到的概念,之前参考的多为英文资料,本文参考的是《概率图模型-原理与技术的》中译版本。很新的书,纸质很好,翻译没有很差。
1. 贝叶斯网络-不同视角
概率图模型,究其目的,在于描述多个(单个就没有意义了)变量概率分布之间的关系。有向图模型的描述方法是有指向性的,如果两变量之间有因果关系,这种描述方法就极为恰当。从这个角度上来说,考虑概率之间因子分解的过程,有向图模型是这一过程的一种表现方式。
而最初的考虑,即“变量概率分布之间的关系”,我们可以认为,有向图模型是条件独立性集合的表示。从简单的例子可以看出这一点,譬如有向图模型意味着
。这是很好理解的,因为
通过
影响
,如果
作为已知条件,那么
如何影响
呢?可以通过因子分解过程验证这一过程
这也恰恰表明了,这两种不同的贝叶斯网络看待方式是等价的,对于这一点,书中总结为(“它”指贝叶斯网络)
- 它是提供了以因子分解的方式紧凑表示联合分布骨架的数据结构;
- 它是关于一个分布的一系列条件独立性假设的紧凑表示。
2. 独立性断言和I-map
记贝叶斯网络为,概率分布为
。
是
的一个I-map是指
中表现出的独立性的集合是
中表现出的独立性的集合的子集。采用数学语言描述,给出以下定义。
是定义在
上的形如
的独立性断言的集合。令
是独立性集合
构成的贝叶斯网络,如果
,那么
是
的一个I-map。
根据定义,如果,那么
是任意一个分布的I-map。当然这里
和
描述的对象要是一样的。从这个角度考虑,如果贝叶斯网络的没两个节点之间有边连接,那么它是所有
的I-map。显然,分布的I-map有多个,共同特点是图的限制比分布的少(子集关系),也就意味着这些图都可以表示这一分布。
注意:这里仅仅只定义了针对分布的
,上文中的
也是一个分布,而不是图。
3. d-分离(D-separation)
上节给出了对应分布的独立性断言集合,同时我们还希望能够得到对应给定的图
的独立性断言集合。首先仔细考虑图中节点之间的结构
:已知
的情况下
,
之间独立。
: 同上
:同上
:没有观测到
及其后代下
,
之间独立。(v-结构)
如果我们希望了解图上表示的条件独立特性,根据上述的四点,可以得出图上任意两节点之间的条件独立关系。对于上述的前三种情况,如果未知,那么就认为
,
之间存在路径;对于第四种情况,如果
或其后代已知,认为
,
之间存在路径。对于任意两个节点,在给定已知节点集合后,如果存在相互影响的路径,记为存在有效的迹。了解了上面几点之后,给出以下定义。
如果,
,
是图中的三个节点集合,在给定
下,如果任取
,
中不存在有效的迹,那么记
以上就是d-分离的定义,同时记d-分离的集合为
这个集合也被称为全局马尔可夫独立性集。
4. 可靠性和完备性
上节定义的全局马尔可夫独立性集和分布的独立性集合的表现形式并没有区别。但是在最初的定义中就表现了
是
中所有独立性断言的集合,这个所有意味着
中不存在
不属于
(完备性),而
中的每一独立性断言在
中都是成立的(可靠性)。贝叶斯网络往往对应着分布,也希望从贝叶斯网络中观测出的d-分离特性有相同的特点,但是全局马尔可夫独立性集合的定义中并不能直接看出这两点,本节将探讨这一问题。
可靠性
据说后面(书4.5.1节)会有证明,但我还没看到那里。
完备性
我们自然希望d-分离可以检测出所有的独立性。可简单的理解为分布P中的任何独立性都体现在了图的d-分离性质中,但这是不成立的。分布可以表现出结构中没有显示的独立性。比如说网络的分布依旧可以为(对于这一点我还是不太明白,这难道不应该是I-map中所谓的可以有多个吗?)
a0 | a1 | |
b0 | 0.4 | 0.6 |
b1 | 0.4 | 0.6 |
所以最后给出的完备性定义比较弱,即 对于几乎所有的G上的因子分集的P(除去参数化条件概率空间中测度为0的分布),我们有I(P)=I(G)。
5. 最小I-map和P-map
最小I-map
前面讨论了那么多分布和图的相关知识,如果说将分布采用合适的图结构表现,那么很多独立性结构就一目了然了。从I-map来考虑,显然一个完全图的独立性断言是空集,是任何分布的I-map,但是这毫无意义。我们只关注能够体现分布的独立性关系的具有最少边的图,这就是最小I-map。
注意:似乎只要G是分布P的一个最小I-map,那么就能够从G中读出P的所有独立性,但这种认识是错误的。(不同的构建顺序会产生截然不同的结果)
P-map
考虑到这一问题,我们的下一个目标变成了找到可以准确刻画P中的所有独立性的图G。定义P-map:对于独立性集I,如果I(k)=I,称图k是I的一个P-map,如果I(k)=I(P),那么成k是P的一个p-map。(条件强于I-map)
我们希望找到分布的P-map,但不幸的是不是所有分布都有P-map。
7. 其他
书中给出了d-分离的算法等,但这些内容我都没有看。书中的贝叶斯网表示这一节中有一个专栏,讨论了诸如变量选择、是否该引入隐变量,结构选择、概率选择等问题。其中那个提到了我们不应该赋值0概率,以及敏感性分析。我想这些都是在实际问题中需要考虑的,但对于这些我都还没有过实践。
或许,阅读、学习只是寻找一点寄托,不然自己整天无所事事闲的发慌吧;这总归是不会失败不会失去太多的生活方式。而实践往往就难很多,需要有机遇、有决心,要付出很大的努力,可能还要面临失败的结果。
[PGM] I-map和D-separation的更多相关文章
- 概率图模型PGM——D map, I map, perfect map
若F分布的每个条件独立性质都反映在A图中,则A图被称为F分布的D map. 若A图表现出的所有条件独立性质都在F分布中满足(与F分布不矛盾),则A图被称为F分布的I map. 弱A图既是F分布的D m ...
- map_server地图服务器
http://wiki.ros.org/map_server 概述 map_server提供map_server ROS节点,它提供地图数据作为一个ROS服务器.也提供map_saver命令行功能,能 ...
- ROS Navigation中的map_server地图包功能和使用
博客参考 http://wiki.ros.org/map_server 和 https://www.ncnynl.com/archives/201708/1897.html 1. 安装map_serv ...
- TurtleBot3 Waffle (tx2版华夫)(12)建图-hector建图
1)[Remote PC] 启动roscore $ roscore 2)[TurBot3] 启动turbot3 $ roslaunch turbot3_bringup minimal.launch 3 ...
- TurtleBot3 Waffle (tx2版华夫)(11)建图-karto建图
1)[Remote PC] 启动roscore $ roscore 2)[TurBot3] 启动turbot3 $ roslaunch turbot3_bringup minimal.launch 3 ...
- TurtleBot3 Waffle (tx2版华夫)(9)建图-gmapping建图(A2雷达)
9.1. 说明 这一节我们来讲 Turtlebot3 的 SLAMSLAM(The Simultaneous Localization and Mapping) 同步定位与地图构建: 希望机器人从未知 ...
- 机器学习&数据挖掘笔记_20(PGM练习四:图模型的精确推理)
前言: 这次实验完成的是图模型的精确推理.exact inference分为2种,求边缘概率和求MAP,分别对应sum-product和max-sum算法.这次实验涉及到的知识点很多,不仅需要熟悉图模 ...
- 机器学习&数据挖掘笔记_23(PGM练习七:CRF中参数的学习)
前言: 本次实验主要任务是学习CRF模型的参数,实验例子和PGM练习3中的一样,用CRF模型来预测多张图片所组成的单词,我们知道在graph model的推理中,使用较多的是factor,而在grap ...
- [引]ASP.NET MVC 4 Content Map
本文转自:http://msdn.microsoft.com/en-us/library/gg416514(v=vs.108).aspx The Model-View-Controller (MVC) ...
- PGM:贝叶斯网的参数估计
http://blog.csdn.net/pipisorry/article/details/52578631 本文讨论(完备数据的)贝叶斯网的参数估计问题:贝叶斯网的MLE最大似然估计和贝叶斯估计. ...
随机推荐
- 用struts2获取session、request、parmeter的方法
package com.hanqi.action; import java.util.Map; import com.opensymphony.xwork2.ActionContext; public ...
- 编写Java应用程序。首先定义一个描述银行账户的Account类,包括成员变 量“账号”和“存款余额”,成员方法有“存款”、“取款”和“余额查询”。其次, 编写一个主类,在主类中测试Account类的功能
package com.hanqi.test; //银行账号 public class account { private String zhanghao;//账号 //私有余额 private do ...
- C语言(函数)学习之index、rindex
函数定义:char *index(const char *s, int c); 头文件: #include strings.h 函数说明:index()用来找出参数s 字符串中第一个出现的参数c ...
- 关于/etc/rc.local以及/etc/init.d
1. /etc/rc.local 这是使用者自订开机启动程序,把需要开机自动运行的程序写在这个脚本里 --------引用---------------------- 在完成 run le ...
- 深入理解linux系统的目录结构(总结的非常详细)
对于每一个Linux学习者来说,了解Linux文件系统的目录结构,是学好Linux的至关重要的一步.,深入了解linux文件目录结构的标准和每个目录的详细功能,对于我们用好linux系统只管重要,下面 ...
- putty-不输入密码直接登陆
在桌面建立新的快捷方式,命令行填写如下: d:\soft\putty.exe -pw 你的口令 用户名@服务器地址注意更换你的putty.exe的路径,为了避免出错,这里有个窍门,你可以找到putty ...
- 警惕多iframe下的同名id引起的诡异问题
遇到个诡异bug,虽然bug中套bug,忽略次要bug,其中最诡异最典型的现象是多行window.top.$("#id")取值操作,其中有一行却取不到值.这个着实让我费解.因为用到 ...
- SpringMVC从入门到精通之第三章
上一章节中首先讲解前端控制器DispatcherServlet的配置包括加载springmvc文件.拦截什么样的请求等还有两个组件:分别是适配器和映射器(另外再补充一组) 非注解的处理器映射器 处理器 ...
- Javascript笔记----实现Page页面右下角置顶按钮.
从用博客开始,发现博客园中很多博友的博客中在Page右下角都有个图标,不论屏幕怎么拉伸,都始终停留在右下角.点击后页面置顶.后面想想写一个Demo来实现这种效果吧. 一. 图标右下角固定. 1.SS ...
- hdu-5933----hdu-5943
hdu-5933 思路: 贪心,首先要求总和是k的倍数,而又要求相邻,说明相邻的一块如果是sum/k的倍数,那么就地切割这样才能使操作数目最少; hdu-5934 思路: 强连通分量,可以找出强连通分 ...