概率图模型9:d-分离算法

来源:互联网 发布:c语言设计 鸡兔同笼 编辑:程序博客网 时间:2024/06/01 10:25

这一篇博文并不是讲解什么是d-分离。而是假定你已经知道了d-分离,我们来讲一讲如何实现d-分离算法。为此,你可能需要提前了解这些概念:
有效迹,d-分离,你可以参考我们之前的博文:
《概率图模型7:推理与流动》
《概率图模型4:贝叶斯网络》

d-separation is a criterion for deciding, from a given a causal graph, whether a set X of variables is independent of another set Y, given a third set Z. The idea is to associate “dependence” with “connectedness” (i.e., the existence of a connecting path) and “independence” with “unconnected-ness” or “separation”. The only twist on this simple idea is to define what we mean by “connecting path”, given that we are dealing with a system of directed arrows in which some vertices (those residing in Z) correspond to measured variables, whose values are known precisely. To account for the orientations of the arrows we use the terms “d-separated” and “d-connected” (d-connotes “directional”).–http://bayes.cs.ucla.edu/BOOK-2K/d-sep.html


1. 两个小问题

1.1 问题一:

这里写图片描述

假如X通过有效迹现在来到了Y,那么有可能是从Y的上一级节点到达Y的,也有可能从Y的下一级节点到达Y的,为此我们用(Y,)表示从Y的上一级节点到达的Y,用(Y,)表示从Y的下一级节点到达的Y。


对于(Y,):很显然,这表明有效迹一定是从Y的后代走到Y的,此时,无论下一刻Y如何走,这个路径永远不可能出现V型结构:FatherYYMotherY.既然永远都不可能出现V型结构,那么我们就只需要判断此刻Y是否是属于观测变量就可以了。事实上,此时的有效迹只能是证据迹或者是共同的原因,如果Y是观测变量,那么显然经过Y的这条路径就不是有效迹。反之是有效迹。

对于经过Y的有效迹而言,无论Y下一步往哪里走,都可能有有效迹。因此我们可以从Y往下走,即把(Nonvisited_ChildrenY,)加入到访问队列中。至于说为什么这里的箭头是向下的,因为Nonvisited_Children这个节点是从Y访问过来的,即从这个节点的父节点访问过来的。

我们也可以从Y往上走,即把(Nonvisited_ParentY,)加入到访问队列中。至于说为什么这里的箭头是向上的,因为Nonvisited_Parent这个节点是从Y访问过来的,即从这个节点的孩子节点访问过来的。


对于(Y,):很显然,这表明有效迹一定是从Y的父节点走到Y的,此时,下一刻Y如果走到另一个父节点,这就出现了一个V型结构:FatherYYMotherY.如果下一刻Y如果走到孩子节点,那就就是普通的结构了(如因果迹,证据迹,共同的原因)这就不会出现V型结构。因此接下来需要分类讨论:

如果Y或者Y的后代是观测变量,那么根据有效迹的条件,此刻的有效迹只能是V结构,因此Y只能往上走。即把(Nonvisited_ParentY,)加入到访问队列中。

如果Y不是观测变量,那么根据有效迹的条件,此刻的有效迹不可能是V结构,只能是因果迹,因此Y只能往下走。即把(Nonvisited_ChildrenY,)加入到访问队列中。


鉴于此,我们可以用一小段(伪)代码来表示上面的过程。这段代码里,d就是每一个节点的街头。Z是观测变量集合,A是观测变量以及观测变量的祖先的集合。这段代码将会成为我们后面d分离算法的重要组成部分。

这里写图片描述


1.2 问题二

假如我们已经访问了(Y,),现在的问题是:
1. 我们还能不能再重复访问(Y,)
2. 我们还能不能访问(Y,)


2. d-分离算法

这里写图片描述

原创粉丝点击