初步打算把概率图模型中推断方法都介绍一下,包括Belief Propagation,变分方法,MCMC,以及像是Graph cut也做一些说明。
关于Belief Propagation是什么?
Belief Propagation是一种信息传递方法,一般用来解关于概率图模型中的推断问题,在这些问题中,单纯地通过公式推导或者MC模拟是很难得到准确答案的,这就需要BP,能够很有效地求解一些特定问题得边缘概率。
首先说明一下为什么边缘概率如此难求,wiki上的例子:
X={x i } 是一个离散的随机变量集合,并且其联合概率是p ,关于某个变量的边缘概率就是对于所有其他变量的一个求和
p X i (x i )=∑ x ′ :x ′ i =x i p(x ′ )
但是这个求和会随着变量的增多而变得呈指数增长,假设说有100个二元变量,每个可以取01,那样所需要的求和次数就是2 99 ~6.338×10 29 ,BP能够充分利用数据结构信息,让计算变得很简便。像是以前学得动态规划解决最短路径,以及维特比方法求HMM的Hidden state的概率,都是用了BP的思想。
说道动态规划(Dynamic programing),可能大家都很熟悉,DP的主要思想就是构造最有子空间,把求解一个大问题分解成求解一系列的小问题,BP也是这个思想,BP利用了局部分消息传递,把计算全局的求和或者积分,转换成了局部的消息传递,每个节点都能都过自身的状态以及邻近节点的状态做出评价,得到自身的下一状态,不断地更新最终使系统达到稳定。
参考:
【1】http://en.wikipedia.org/wiki/Belief_propagation
【2】http://blog.sina.com.cn/s/blog_4dfdfdc30100q2el.html