从零学习Belief Propagation算法(二)

从零学习Belief Propagation算法(二)

本文将记录 Belief Propagation 算法的学习历程,如果您之前没有接触过,而现在刚好需要用到,可以参考我的系列文章。内容稍多将分为几个主题来写。本系列文章将包含以下内容:

  • 必备的概率论基础
  • 从概率论到概率图模型
  • Bayes 网络
  • Markov 随机场
  • 因子图 Factor Graph
  • Belief Propagation算法

从零学习Belief Propagation算法(一)


1. 贝叶斯网络

1.1 概念

贝叶斯网络(Bayesian Network),又称信念网络(Belief Network),或称有向无环图模型(directed acyclic graphical model,DAG)。它和MRF是深度学习中 RBM、DBM 的基础。

1

上图是一个简单的贝叶斯网络,它的随机变量是 a , b , c a,b,c a,b,c,其联合概率可以根据箭头的指向如此表示:
P ( a , b , c ) = P ( a ) P ( b ∣ a ) P ( c ∣ a , b ) P(a,b,c) =P(a) P(b|a)P(c|a,b) P(a,b,c)=P(a)P(ba)P(ca,b)
从图中可以得知三个随机变量之间都有箭头,说梦彼此有联系,存在条件概率,所以不存在独立的变量。

1.2 条件独立

这块内容和 BP 算法的推导关系不是很大,所以你要是赶时间,可以跳过这一小节。但是这一小节和理解马尔科夫链至关重要,所以可以为了兴趣和博学稍微看看。

  • 条件独立【1】:tail-to-tail
    2

考虑c的两种情况:

  • c c c 未知时,有: P ( a , b , c ) = P ( c ) ∗ P ( a ∣ c ) ∗ P ( b ∣ c ) P(a,b,c)=P(c)*P(a|c)*P(b|c) P(a,b,c)=P(c)P(ac)P(bc),此时得不到 P ( a , b ) = P ( a ) P ( b ) P(a,b) = P(a)P(b) P(a,b)=P(a)P(b),即 c c c 未知时, a 、 b a、b ab 不独立。
  • c c 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 ) = P ( a , b ∣ c ) P(a,b|c)=\frac{P(a,b,c)}{P(c)} =\frac{ P(c)*P(a|c)*P(b|c) }{P(c) }\\= P(a|c)*P(b|c)=P(a,b|c) P(a,bc)=P(c)P(a,b,c)=P(c)P(c)P(ac)P(bc)=P(ac)P(bc)=P(a,bc) c c c 已知时, a 、 b a、b ab 条件独立。

3

所以,在 c c c 被给定的条件下, a 、 b a、b ab 被阻断(blocked)而条件独立,称之为tail-to-tail条件独立。

  • 条件独立【2】:head-to-head

4

P ( a , b , c ) = P ( a ) ∗ P ( b ) ∗ P ( c ∣ a , b ) = P ( a , b ) ∗ P ( c ∣ a , b ) P(a,b,c) = P(a)*P(b)*P(c|a,b)\\= P(a,b)*P(c|a,b) P(a,b,c)=P(a)P(b)P(ca,b)=P(a,b)P(ca,b)
可以得到:
P ( a , b ) = P ( a ) ∗ P ( b ) P(a,b) = P(a)*P(b) P(a,b)=P(a)P(b)

即在 c c c 没有给定的条件下, a 、 b a、b ab 被阻断(blocked)而独立,称为head-to-head条件独立。

  • 条件独立【3】:head-to-tail

5

像分析第一类条件独立一样,考虑 c c c 的两种情况:

  • 未知 c c c 时,有: P ( a , b , c ) = P ( a ) ∗ P ( c ∣ a ) ∗ P ( b ∣ c ) P(a,b,c)=P(a)*P(c|a)*P(b|c) P(a,b,c)=P(a)P(ca)P(bc),无法推出 P ( a , b ) = P ( a ) P ( b ) P(a,b) = P(a)P(b) P(a,b)=P(a)P(b),即 c c c 未知时, a 、 b a、b ab不独立。
  • 已知 c c c 时,有:
    P ( a , b ∣ c ) = P ( a , b , c ) P ( c ) = P ( a ) ∗ P ( c ∣ a ) ∗ P ( b ∣ c ) P ( c ) = P ( c ) ∗ P ( a ∣ c ) ∗ P ( b ∣ c ) P ( c ) = P ( a ∣ c ) ∗ P ( b ∣ c ) P(a,b|c)=\frac{P(a,b,c)}{P(c)}\\=\frac{P(a)*P(c|a)*P(b|c)}{P(c)}\\=\frac{P(c)*P(a|c)*P(b|c)}{P(c)}\\=P(a|c)*P(b|c) P(a,bc)=P(c)P(a,b,c)=P(c)P(a)P(ca)P(bc)=P(c)P(c)P(ac)P(bc)=P(ac)P(bc)

6

所以在给定 c c c 的条件下, a 、 b a、b ab被阻断(blocked)而独立,称为head-to-tail条件独立。


如果是这么一个结构:

7

我们已经知道,在 X i X_i Xi 给定的条件下, X i + 1 X_{i+1} Xi+1 的分布和 X 1 , X 2 … X i − 1 X1,X2…X_{i-1} X1,X2Xi1 条件独立。这就意味着: X i + 1 X_{i+1} Xi+1 的分布状态只和 X i X_i Xi 有关,和其他变量条件独立。
通俗点说,当前状态只跟上一状态有关,跟上上或上上之前的状态无关。这种顺次演变的随机过程,叫做马尔科夫链(Markov chain)。

P ( X i + 1 = x ∣ X 1 , X 2 … X i ) = P ( X i + 1 = x ∣ X i ) P(X_{i+1}=x|X1,X2…X_{i})=P(X_{i+1}=x|X_i) P(Xi+1=xX1,X2Xi)=P(Xi+1=xXi)


2. 马尔科夫随机场(MRF)

  • 前面看了概率有向图模型,必然对无向图模型也要研究一下。它不仅和 BP 算法的因子图有关,而且这个概率无向图模型对学习 RBM 有很大的帮助,它关系到能量函数的来源。

  • 它虽然比较重要,但是里面涉及到了一些物理的知识,我们只需要了解会应用,不必深究。而且这块只需要大概了解,如果你看着比较吃力,可以选择跳过这部分当中较难的一些点,直接来看后面的因子图。

  • 有向图(Bayesian Networks)将一组变量上的联合分布分解为多个局部条件概率分布的乘积;同时定义了一组条件独立的性质,根据图进行分解的任何概率分布都必须满足这些条件独立性质(三种拓扑结构)。

  • 同理,无向图也是一种分解方式。


2.1 概念

概率无向图模型(undirect graphical model),又叫做马尔科夫随机场(Markov Random Filed,MRF),或称马尔科夫网络(Markov Network,MN)。

这里写图片描述

怎么理解呢?前面的有向图代表的是变量之间的关系很明确,比如A,B接力赛,A跑的时间绝对是决定了B的时间,这样A和B之间就有了明确的条件概率关系,而且关系方向很确定。

无向图描述的也是变量之间的关系,但这种关系很模糊,没有方向。我买可以这么理解:A、B两个人是同学,A感冒传染给B也可以,B传染给A也可以,箭头方向是不是就可以取消了。


2.2 结构、条件独立
  • 包含⼀组结点。
  • 每个结点都对应着⼀个变量。
  • 链接是⽆向的,即不含有箭头。

在无向图的情形中,讨论条件独立性质是比较方便的。

8

考虑连接集合 A 和 B 的节点的所有可能路径,如果所有路径都通过集合 C 中一个或者多个节点,那么所有这样的路径都被“阻隔”,条件独立性质成立;
如果存在至少一条未被阻隔的路径,那么条件独立性质就未必成立

更为显然的检测方法是,将图中属于集合 C 的节点以及与这些节点相连的连接线全部删除,然后再看有没有从 A 到 B 的路径。如果没有,那么条件独立一定成立。


2.3 联合概率分解

在了解联合概率分布的写法之前先了解两个概念:

  • 团块:图中结点的子集,子集的节点之间一定两两直接连接(间接连接起来的不算)。团块中的节点集合是全连接的。

  • 最大团块:将图中任何一个其它节点接到该到团块中就会破坏团块的性质(不再两两连接)。

9

上图中有很多团块,我们举几个例子(其他请您自己穷举):绿色部分{ x 1 x_1 x1 x 2 x_2 x2};蓝色部分{ x 2 x_2 x2 x 3 x_3 x3 x 4 x_4 x4}

接下来我们可以顺利讨论怎么分解因子写出来联合概率了,但是由于公式看着理解比较棘手,我们先看一个具体的例子算式,这样有助于我们理解公式:

10

此图中包含三个极大团块:集合 C 1 C_1 C1={ x 1 , x 2 , x 3 x_1,x_2,x_3 x1,x2,x3}、 C 2 C_2 C2={ x 3 , x 4 x_3,x_4 x3,x4}、 C 3 C_3 C3={ x 3 , x 5 x_3,x_5 x3,x5};

那么此马尔科夫网络的联合概率分布可以写为:

P ( x 1 , x 2 … x 5 ) = 1 Z ψ C 1 ( x 1 , x 2 , x 3 ) ψ C 2 ( x 3 , x 4 ) ψ C 3 ( x 3 , x 5 ) P(x_1,x_2…x_5)=\frac{1}{Z}\psi _{C_1}(x_1,x_2,x_3)\psi _{C_2}(x_3,x_4)\psi _{C_3}(x_3,x_5) P(x1,x2x5)=Z1ψC1(x1,x2,x3)ψC2(x3,x4)ψC3(x3,x5)

在这里,我们需要简单解释一下 势函数 ψ C i ( x i ) \psi _{C_i}(x_i) ψCi(xi)
ψ C 1 ( x 1 , x 2 , x 3 ) = e − E ( x 1 , x 2 , x 3 ) \psi _{C_1}(x_1,x_2,x_3)=e^{-E(x_1,x_2,x_3)} ψC1(x1,x2,x3)=eE(x1,x2,x3)
可以看到势函数严格为正,其中 Z 是归一化用的(配分函数 ),加和消去了所有变量。(有一定难度,想深入了解可自行查阅资料)
Z = ∑ x ∏ C ψ C ( x C ) Z=\sum_{x}^{}\prod_{C}^{}\psi _{C}(x_C) Z=xCψC(xC)
E 被称为能量函数(energy function),指数表示被称为玻尔兹曼分布(Boltzmann distribution)。联合概率分布被定义为势函数的乘积

重写标准的联合分布:

P ( x ) = 1 Z ∏ C ψ C ( x C ) P(\textbf{x})=\frac{1}{Z}\prod_{C}^{}\psi _{C}(x_C) P(x)=Z1CψC(xC)

重写理解马尔可夫随机场(Markov Random Field):它包含两层意思:一是什么是马尔可夫,二是什么是随机场。

  • 马尔可夫性质的简称。它指的是一个随机变量序列按时间先后关系依次排开的时候,**第 t+1 时刻的分布特性,与 t 时刻以前的随机变量的取值无关。**比如我们假定天气是马尔可夫的,意思就是我们假设今天的天气仅仅与昨天的天气存在概率上的关联,而与前天及前天以前的天气没有关系。
  • 随机场包含两个要素:位置(site),相空间(phase space)。当给每一个位置中按照某种分布随机赋予相空间的一个值之后,其全体就叫做随机场。我们不妨拿种地来打个比方:“位置”好比是一亩亩农田;“相空间”好比是种的各种庄稼。我们可以给不同的地种上不同的庄稼,这就好比给随机场的每个“位置”,赋予相空间里不同的值。所以通俗说,随机场就是在哪块地里种什么庄稼的事情。
  • 好了,明白了上面两点,就可以讲马尔可夫随机场了。还是拿种地打比方:如果任何一块地里种的庄稼的种类,仅仅与它邻近的地里种的庄稼的种类有关,与其它地方的庄稼的种类无关,那么这些地里种的庄稼的集合,就是一个马尔可夫随机场。

参考文献

[1] : http://blog.csdn.net/aspirinvagrant/article/details/40862237
[2] : http://blog.csdn.net/v_july_v/article/details/40984699
[3] : http://blog.csdn.net/zb1165048017/article/details/60867140
[4] : http://blog.csdn.net/xyzariel/article/details/44858833

  • 76
    点赞
  • 185
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值