D-Separation 是一种用来判断变量是否条件独立的图形化方法。换言之,对于一个 DAG(有向无环图)E,D-Separation 方法可以快速的判断出两个节点之间是否是条件独立的。
1.1 形式 1:head-to-head
贝叶斯网络的第一种结构形式如下图所示:
所以有:P(a,b,c) = P(a)*P(b)*P(c|a,b)成立,化简后可得:
即在 c 未知的条件下,a、b 被阻断(blocked),是独立的,称之为 head-to-head 条件独立,对应本节中最开始那张图中的“x1、x2 独立”。
1.2 形式 2:tail-to-tail
贝叶斯网络的第二种结构形式如下图所示
考虑 c 未知,跟 c 已知这两种情况:
- 在 c 未知的时候,有:P(a,b,c)=P(c)*P(a|c)*P(b|c),此时,没法得出 P(a,b) = P(a)P(b),即 c 未知时,a、b 不独立。
- 在 c 已知的时候,有:P(a,b|c)=P(a,b,c)/P(c),然后将 P(a,b,c)=P(c)*P(a|c)*P(b|c)带入式子中,得到:P(a,b|c)=P(a,b,c)/P(c) = P(c)*P(a|c)*P(b|c) / P(c) = P(a|c)*P(b|c),即 c 已知时,a、b 独立。
所以,在 c 给定的条件下,a,b 被阻断(blocked),是独立的,称之为 tail-to-tail 条件独立,对应本节中最开始那张图中的“x6 和 x7 在 x4 给定的条件下独立”。
1.3 形式 3:head-to-tail
贝叶斯网络的第三种结构形式如下图所示:
还是分 c 未知跟 c 已知这两种情况:
- c 未知时,有:P(a,b,c)=P(a)*P(c|a)*P(b|c),但无法推出 P(a,b) = P(a)P(b),即 c 未知时,a、b 不独立。
- c 已知时,有:P(a,b|c)=P(a,b,c)/P(c),且根据 P(a,c) = P(a)*P(c|a) = P(c)*P(a|c),可化简得到:
所以,在 c 给定的条件下,a,b 被阻断(blocked),是独立的,称之为 head-to-tail 条件独立。
插一句:这个 head-to-tail 其实就是一个链式网络,如下图所示:
根据之前对 head-to-tail 的讲解,我们已经知道,在 xi 给定的条件下,xi+1 的分布和 x1,x2…xi-1 条件独立。意味着啥呢?意味着:xi+1 的分布状态只和 xi 有关,和其他变量条件独立。通俗点说,当前状态只跟上一状态有关,跟上上或上上之前的状态无关。这种顺次演变的随机过程,就叫做马尔科夫链(Markov chain)。且有:
接着,将上述结点推广到结点集,则是:对于任意的结点集 A,B,C,考察所有通过 A 中任意结点到 B 中任意结点的路径,若要求 A,B 条件独立,则需要所有的路径都被阻断(blocked),即满足下列两个前提之一:
- A 和 B 的“head-to-tail 型”和“tail-to-tail 型”路径都通过 C;
- A 和 B 的“head-to-head 型”路径不通过 C 以及 C 的子孙;
最后,举例说明上述 D-Separation 的 3 种情况(即贝叶斯网络的 3 种结构形式),则是如下图所示:
上图中左边部分是 head-to-tail,给定 T 时,A 和 X 独立;右边部分的右上角是 tail-to-tail,给定 S 时,L 和 B 独立;右边部分的右下角是 head-to-head,未给定 D 时,L 和 B 独立。
[参考文章](http://blog.csdn.net/v_july_v/article/details/40984699)
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于