概率图模型基础

来源:互联网 发布:sql中dateadd 编辑:程序博客网 时间:2024/05/17 05:06

一:参数估计 

From:http://blog.csdn.net/yangliuy/article/details/8296481

以PLSA和LDA为代表的文本语言模型是当今统计自然语言处理研究的热点问题。这类语言模型一般都是对文本的生成过程提出自己的概率图模型,然后利用观察到的语料数据对模型参数做估计。有了语言模型和相应的模型参数,我们可以有很多重要的应用,比如文本特征降维、文本主题分析等等。本文主要介绍文本分析的三类参数估计方法-最大似然估计MLE、最大后验概率估计MAP及贝叶斯估计。

 

写在最前面:

 

最大似然估计MLE

最大似然,梯度

最大后验概率估计MAP

EM

贝叶斯估计

Gibbs采样,变分EM

 

首先联系这几个概念最终要的就是贝叶斯公式:

  ------>后验概率=似然函数X先验 /全概率(边缘概率)

 

最大似然估计:max  p(X|theta) 只有参数 ,一般可以求梯度求解;

最大似然估计:max p(X|theta)p(theta),一般需要知道最大的先验即 的最大值;

贝叶斯估计:max p(theta|X) ,因此需要知道 和 的完整的分布,在没有完整数据的情况下可以用MCMC模拟分布,而在边缘概率难以计算的情况下可以转而模拟条件概率,即Gibbs采样(或者变分推导);

 

EM算法中的M步骤,可以是最大似然也可以是最大后验;

 


 

1、最大似然估计MLE

首先回顾一下贝叶斯公式




这个公式也称为逆概率公式,可以将后验概率转化为基于似然函数和先验概率的计算表达式,即




最大似然估计就是要用似然函数取到最大值时的参数值作为估计值,似然函数可以写做



由于有连乘运算,通常对似然函数取对数计算简便,即对数似然函数。最大似然估计问题可以写成




这是一个关于的函数,求解这个优化问题通常对求导,得到导数为0的极值点。该函数取得最大值是对应的的取值就是我们估计的模型参数。

以扔硬币的伯努利实验为例子,N次实验的结果服从二项分布,参数为P,即每次实验事件发生的概率,不妨设为是得到正面的概率。为了估计P,采用最大似然估计,似然函数可以写作



其中表示实验结果为i的次数。下面求似然函数的极值点,有




得到参数p的最大似然估计值为




可以看出二项分布中每次事件发的概率p就等于做N次独立重复随机试验中事件发生的概率。

如果我们做20次实验,出现正面12次,反面8次

那么根据最大似然估计得到参数值p为12/20 = 0.6。


2、最大后验估计MAP

最大后验估计与最大似然估计相似,不同点在于估计的函数中允许加入一个先验,也就是说此时不是要求似然函数最大,而是要求由贝叶斯公式计算出的整个后验概率最大,即




注意这里P(X)与参数无关,因此等价于要使分子最大。与最大似然估计相比,现在需要多加上一个先验分布概率的对数。在实际应用中,这个先验可以用来描述人们已经知道或者接受的普遍规律。例如在扔硬币的试验中,每次抛出正面发生的概率应该服从一个概率分布,这个概率在0.5处取得最大值,这个分布就是先验分布。先验分布的参数我们称为超参数(hyperparameter)即




同样的道理,当上述后验概率取得最大值时,我们就得到根据MAP估计出的参数值。给定观测到的样本数据,一个新的值发生的概率是



下面我们仍然以扔硬币的例子来说明,我们期望先验概率分布在0.5处取得最大值,我们可以选用Beta分布即




其中Beta函数展开是




当x为正整数时


\Gamma(n) = (n-1)!\,


Beta分布的随机变量范围是[0,1],所以可以生成normalised probability values。下图给出了不同参数情况下的Beta分布的概率密度函数


我们取,这样先验分布在0.5处取得最大值,现在我们来求解MAP估计函数的极值点,同样对p求导数我们有




得到参数p的的最大后验估计值为




和最大似然估计的结果对比可以发现结果中多了这样的pseudo-counts,这就是先验在起作用。并且超参数越大,为了改变先验分布传递的belief所需要的观察值就越多,此时对应的Beta函数越聚集,紧缩在其最大值两侧。

如果我们做20次实验,出现正面12次,反面8次,那么

那么根据MAP估计出来的参数p为16/28 = 0.571,小于最大似然估计得到的值0.6,这也显示了“硬币一般是两面均匀的”这一先验对参数估计的影响。


3 贝叶斯估计

贝叶斯估计是在MAP上做进一步拓展,此时不直接估计参数的值,而是允许参数服从一定概率分布。回顾一下贝叶斯公式




现在不是要求后验概率最大,这样就需要求,即观察到的evidence的概率,由全概率公式展开可得




当新的数据被观察到时,后验概率可以自动随之调整。但是通常这个全概率的求法是贝叶斯估计比较有技巧性的地方。

那么如何用贝叶斯估计来做预测呢?如果我们想求一个新值的概率,可以由




来计算。注意此时第二项因子在上的积分不再等于1,这就是和MLE及MAP很大的不同点。

我们仍然以扔硬币的伯努利实验为例来说明。和MAP中一样,我们假设先验分布为Beta分布,但是构造贝叶斯估计时,不是要求用后验最大时的参数来近似作为参数值,而是求满足Beta分布的参数p的期望,有




注意这里用到了公式




当T为二维的情形可以对Beta分布来应用;T为多维的情形可以对狄利克雷分布应用

根据结果可以知道,根据贝叶斯估计,参数p服从一个新的Beta分布。回忆一下,我们为p选取的先验分布是Beta分布,然后以p为参数的二项分布用贝叶斯估计得到的后验概率仍然服从Beta分布,由此我们说二项分布和Beta分布是共轭分布。在概率语言模型中,通常选取共轭分布作为先验,可以带来计算上的方便性。最典型的就是LDA中每个文档中词的Topic分布服从Multinomial分布,其先验选取共轭分布即Dirichlet分布;每个Topic下词的分布服从Multinomial分布,其先验也同样选取共轭分布即Dirichlet分布。

根据Beta分布的期望和方差计算公式,我们有




可以看出此时估计的p的期望和MLE ,MAP中得到的估计值都不同,此时如果仍然是做20次实验,12次正面,8次反面,那么我们根据贝叶斯估计得到的p满足参数为12+5和8+5的Beta分布,其均值和方差分别是17/30=0.567, 17*13/(31*30^2)=0.0079。可以看到此时求出的p的期望比MLE和MAP得到的估计值都小,更加接近0.5。

综上所述我们可以可视化MLE,MAP和贝叶斯估计对参数的估计结果如下

个人理解是,从MLE到MAP再到贝叶斯估计,对参数的表示越来越精确,得到的参数估计结果也越来越接近0.5这个先验概率,越来越能够反映基于样本的真实参数情况。


参考文献

Gregor Heinrich, Parameter estimation for test analysis, technical report 

Wikipedia Beta分布词条 ,  http://en.wikipedia.org/wiki/Beta_distribution


二:条件独立

from:http://www.haogongju.net/art/2383453

条件独立式多随机变量的重要概念。定义如下,若

clip_image002(1)

我们就说,a与b关于c条件独立。条件独立的符号表示如下:

clip_image004

三个简单的例子

下面我们用贝叶斯网络结合条件独立给出三个例子,来加深理解。

例子1

clip_image006

a,b,c都是随机变量,如上图我们知道

clip_image008 (1)

一般情况,a,b不是独立的。但是若我们知道了c,如下图,知道了C所以要给C添加阴影

clip_image010

利用(1)式,我们得出a,b是关于c条件独立的。

clip_image012

由这个例子我们看出,存在情况a,b不独立,但a,b关于c条件独立

C可以说成,a,b结点之间,尾巴到尾巴(tail-to-tail)的结点。我们可以这样理解,当我们观察到C,即C到条件上时,结点C阻挡(Block)了A,B之间的路,所以a,b关于c条件独立

例子2

clip_image014

一般情况a,b不相互独立。当知道c后:

clip_image016

推出a,b关于c条件独立。即clip_image018

C可以说成,a,b结点之间,尾巴到尾巴(tail-to-head)的结点。我们可以这样理解,当我们观察到C,即C到条件上时,结点C阻挡(Block)了A,B之间的路,所以a,b关于c条件独立

例子3

clip_image020

根据贝叶斯网络,我们知道

clip_image022

对上式两边关于c求和得

clip_image024clip_image026

现在假设,我们观测到了C,如下图

clip_image028

推导

clip_image030

可以看出,这种情况下,一般clip_image032。由这个例子我们可以得出结论:

a,b独立不能推出a,b关于任意随机变量c条件独立
D-separation(D分割)

看了三个例子,我们希望确定,任意给一个有向图即贝叶斯网络我们可以得到图中任意A.B是否关于C条件独立。

定理:在一个一般的贝叶斯网络中,A,B,C是任意的不相交结点集合,一条路,从集合A中的任意的结点到集合B中的任意结点,如果出现下面的条件,则称为被堵住(be Blocked)

1)箭头在这条路上遇见了数据集合C的结点,并且这个结点是尾巴对尾巴(tail-to-tail)类型或者头对尾巴类型(head-to-tail)

2)箭头遇见了一个头对头(head-to-head)结点,这个结点既不属于集合C,这个结点的后代也不属于集合C

如果所有从A,到B的路都被堵住(Blocked),那么就称A与B被C,D分割了。也可以表示为clip_image034。下图是关于后代,父代的解释。

clip_image036

例4:

clip_image038

如上图,我们设置随机变量c是集合C中的唯一随机变量,即随机变量C是唯一被观测到的。a,b随机变量分别代表集合 A,B.(集合A,B,C对应于D-separation中的集合A,B,C) f是tail-to-tail,但是f是未观察到的随机变量,所以f不能阻挡a,到b.随机变量e是head-to-head,而且并未观测到,但是他的后代descendant是属于集合C,即被观测到的。所以从此图我们不能得到clip_image040

例子5

clip_image042

如上图,我们设置随机变量f是集合C中的唯一随机变量,即随机变量C是唯一被观测到的。a,b随机变量分别代表集合 A,B.(集合A,B,C对应于D-separation中的集合A,B,C) f是tail-to-tail,且f被观测到,即在集合C中。所以本图满足clip_image044

例子6:

另外一个例子是独立同分布的例子(i,i,d).设clip_image046。我们有

clip_image048

其贝叶斯网络图如下

clip_image050

右边是简易图。虽然clip_image046[1]是观测变量,我们理解D是未观测的,u是观测到的。则可以看出u是tail-to-tail点,所以D中的任意两点关于u条件独立,即推出:和独立同分布。然而当u和clip_image046[2]是一个性质的时候,独立的条件就不满足了。

从另外一个角度,我们可以把有向图(贝叶斯网络)想做一个滤波器。给定一个有向图代表滤波器,对于任意一个分布clip_image052,当且仅当该分布可以表达成,该有向图表示的如下公式(即上篇博文的公式(2)形式),则这个分布可以通过这个滤波器。

clip_image054

设有一个概率有向图,我们视之为一滤波器,设clip_image056。若我们给出关于clip_image058的所有分布集合clip_image052[1],通过滤波器的clip_image052[2]的子集则称为DF(directed factorization).如图

clip_image060

另一方面,我们考虑另外一种滤波器,利用D-separation(D分割定理)来列出所有有关这张有向图的条件独立的性质。对于任意的分布,如果满足所有列出的条件,就可以通过此滤波器。可以证明这两种滤波器是等价的。

Markov blanket or Markov boundary

考虑一张有向图中,一个点关于其他有所点的条件分布。

clip_image062

观察上面的分母的积分,若Xk与Xi独立,则可以放到等号外面来,与上面的进行约分。下面列出与Xi不独立,即不能放在积分式子外面的结点

1)Xi的父代2)Xi的子代(children)

3)Xi的配偶(Co-parent,和Xi拥有共同的孩子)。这些结点称为Xi的Markov blanket.如下图所示:

clip_image064

我们可以视Xi的Markov blanket,为把Xi从图中孤立的最小的结点集合

 


2 0
原创粉丝点击