//2014年11月14日
//http://www.crescentmoon.info/?p=817
概率图模型(Graphical Model)是概率论和图论之间的桥梁,概率图模型的基本想法来自模块的概念,即一个复杂系统是由简单的部分所联合而成的。概率论部分告诉我们哪些部分是耦合在一起的,然后提供推断模型的方法,而图论部分给我们一个非常直观的认识,把拥有相互关系的变量看做数据结构,从而导出一般化的方法来解决这个问题。很多经典的多元概率系统,比如混合模型,因子分析,隐含马尔科夫模型,Kalman filter 和Ising model等,从概率图模型的角度来看,都可以看做普遍隐含形成过程的一种实例表现。这意味着,一旦在某个系统上有什么特别的方法发现,就很容易推广到一系列的模型中去。除此之外,概率图模型还非常自然地提供了设计新系统的方法。
在概率图模型中,点代表随机变量,点与点之间边的存在与否代表了点与点之间是存在条件依赖。点与边的组合描绘了联合概率分布的特征结构。假设有 N 个二元随机变量,在没有任何信息帮助的情况下,联合分布 P(X1,…,XN) ,需要 O(2N) 个参数。而通过概率图描绘点与点之间的条件关系之后,表示联合分布,所需要的参数会减少很多,这对后面的模型的推断和学习是有帮助的。
概率图模型主要分为两种,无向图(也叫Markov random fields)和有向图(也叫Bayesian networks),前者多用于物理和图像领域,后者多用于AI和机器学习,具体的基本就不多介绍了。下面给出一个简单贝叶斯网络的例子。
这里Cloudy指是否多云,Sprinkler指洒水器是否打开,Rain指是否有雨,
WetGrass指草地是否湿了。
推断(Inference)
推断的主要目的是在知道观察变量的值的情况下估计隐藏变量的值。如果我们观察到生成模型的"叶子",然后可以尝试推断隐藏的原因(diagnosis),反之如果观察到生成模型的“根”,就可以尝试预测它的节点(predicition)。
使用的方法就是贝叶斯公式
其中 X 是隐藏变量, y 是观察到的值。公式可以这么解释:
以前面的图为例,当我们观察到草地是湿的(
W=1
)时,有可能有2个原因:下雨(
R=1
)或者开着洒水器(
S=1
)。我们根据贝叶斯公式求得它们各自的概率
分母作为归一化常数,同时也是似然
可以看到草地湿因为下雨的概率要比因为洒水器的概率高。一般来说在实际情况中,利用后验概率算积分的时候不会像例子这么容易。比如分母 Z ,有可能是指数级别的加和(可以参见 pluskid大神的文章 ),而且,在连续型隐藏变量里,很有可能是求一个无解析解的积分。
因为推断的问题一般都比较复杂,我们自然希望能用一些方法来加速推断的过程。
参数消去
根据概率图的结构,我们可以将条件独立的节点的生成概率区分开来写,比如:
参数消去算法的主要目的就是尽量可能的合并子项来减少计算量,我们将上面的式子化为:
可以看到第三项与前两个求和项无关。这样我们可以得到合并之后的图:
如果概率图比较复杂,存在重复统计的情况,我们可以使用动态规划算法来避免重复的计算。如果概率图是无环的(比如一棵树),可以用局部信息传播算法(Belief Propagation,HMM的Sum-Product算法的泛化版本)来做推断。如果概率图有环就比较麻烦,因为局部信息传播可能会被重复计算,从而导致算法不收敛。这个时候可以用Junction Tree方法把概率图转化成一棵树(可能会很复杂,见pluskid 的例子)。
近似推断
推断算法的时间复杂度是指数级别的(取决于概率图中的最大簇的大小),优化它是个NP-hard 问题,所以就导致了推断的近似方法产生。除了图复杂以外还有另外一个原因,即使图的复杂度很低,如果一些节点是连续随机变量,在很多情况下它们对应的积分是没有解析解的。
流行的近似推断方法主要有三种:
- Sampling(Monte Carlo) methods。采样做法就是通过抽取大量的样本来逼近真实的分布。最简单的是importance sampling,根据出现的结果的比例采样。在高维空间中更有效的方法叫Markov Chain Monte Carlo,是利用马科夫链的性质来生成某个分布的样本,包括Metropolis-Hastings算法和Gibbs Samppling算法等。
- Variational Infernece。变分推断采取的是另一种做法,通过限制近似分布的类型,得到一种局部最优,但具有确定解的近似后验分布。最简单的方法叫做mean-field approximation,就是把概率图里的点全部解耦,看做相互独立的,然后对每个点引进一个变分参数,通过循环地迭代参数来最小化近似分布和真实分布的KL距离。
- Loopy Belief Propagation。之前我们讲到Belief Propagation 算法,是应用在无环的图上的,然后LBP就是不管图有没有环,都直接使用这个算法去求解。
学习(Learning)
Learning可以分很多情况,比如估计参数,或者估计模型的结构,或者两者都有。根据变量是否被观察到和结构是否已知可以对learning方法分类(见下图):
还有一个区别在于,我们的目标在于寻找一个最有可能的模型(点估计),还是在所有可能的模型上做贝叶斯估计。在结构已知的时候,贝叶斯参数估计和推断是等价的,这时候隐藏的节点就代表了这些参数。如果结构未知,还要有对概率图结构的学习过程。
Known structure,full observability
这种最简单,因为结构已知,变量全部都观察到了,所以直接求极大似然值(MLE)就好了。令数据为
D={D1,…,DM}
,那么似然为
这里 Pa(Xi) 是 Xi 的父亲节点。我们依据概率图的结构分解整个似然式子,然后独立地最大化每个参数。以之前的图为例,我们有
这里 #(S=s,R=r) 和 #(W=w,S=s,R=r) 分别为下雨而且洒水器开着的次数和满足前两个条件的同时,草地湿了的次数。可以看到极大似然是根据观察到的数据得出最有可能的结果。如果我们有一些训练数据的话,也可以加上先验条件,做最大后验估计(MAP).
Known structure,partial observability
如果结构已知,但是有些节点是隐藏的话,我们可以通过EM算法来寻找一个局部最优的MLE。EM的算法的思想就是求那些隐藏节点的期望值,然后把期望值看做观察到的值。以
W
节点为例,我们用期望代替观察到的次数,得到
这里 E#(e) 就是在当前参数下,事件 e 发生次数的期望值。这个期望可以由单次发生事件 e 的期望多次加和得到。
这里 I(e|Dm) 是个指示函数,当事件 e 在第 m 个数据时发生为1,其余都为0。得到期望值后,我们可以重新最大化参数,然后重新计算期望,反复迭代达到一个局部的最优解。
Unknown structure,full observability
这种情况虽然我们可以观察到概率图中每个节点的数据,但是节点与节点之间的边关系未知。完全图能够给出最大的似然值,那是因为这种情况最复杂,含有最多的参数,很明显过拟合了。
为了解决过拟合的问题,我们可以加上对模型选择的先验条件,使用贝叶斯公式最大化后验
求log我们得到
这里 c=−logP(D) 是个与模型 G 独立的常数。如果先验偏向于简单的模型,那么 P(G) 就能对复杂模型起到惩罚作用。事实上就算先验不这么做,使用贝叶斯原理计算的边缘似然(marginal likelihood)
( θ 为模型的参数)能够自动地倾向解释数据的最简单模型,如果模型参数太多的话,它只能在一个很宽的数据范围内预测,而没办法给小范围数据一个很大的发生概率(也就是说复杂模型更可能“对”,但是不够“准”),而简单模型刚好反之。这个现象被叫做奥卡姆剃刀(Ockham'razor)。
尽管我们可以通过上面那个 L 来衡量模型的好坏(被称作Bayesian Score),我们依然还是需要一个方法来寻找得分最高的概率图。穷举的复杂度是超指数级别的,所以我们一般用一些局部的搜索算法(比如多重启的爬山法)或者划分区域来搜索图空间。另外地,由于我们求的是模型生成数据的后验概率 P(G|D) ,我们可以直接从这个后验概率分布中抽样一些图出来,这叫MCMC search。
Unknown structure,partial observability
最后也是最难的情况,就是图结构未知,而且存在隐藏变量。这导致了边缘似然非常难求,需要对隐藏变量
Z
积分才能得到。
一种办法是做拉普拉斯近似(Laplace Approximation),计算得到
这里 M 是样本个数, θG^ 是参数的最大似然估计(由EM算法得到), d 是模型的维度(在全观察到的情况下,模型维度等于自由参数的个数,在存在隐藏变量的情况下,模型维度会少于参数个数)。这个式子被叫做Bayesian Information Criterion,和Minimum Description Length (MDL) 是等价的。
式子的第一项就是似然,而第二项减去一个代表模型复杂度的量,所以BIC score是对复杂模型有惩罚的。尽管BIC是可以分解的(decomposable),局部的搜索算法还是非常昂贵,因为我们每一步都要跑一次EM 算法来得到 θ 。一种可选的办法是在EM的M 步直接做一个局部搜索,得到一个局部最优的BIC score,这个方法被称作Structural EM。
当然,结构学习不仅仅包括寻找已经存在节点的连通性,还包括在必要情况下增加隐藏节点等等更为复杂的东西。
参考文献:
1.《An introduction to graphical models》 Kevin P. Murphy
2.http://freemind.pluskid.org/machine-learning/probabilistic-graphical-model/