czcx的个人博客分享 http://blog.sciencenet.cn/u/czcx

博文

模型求解系列(1)-Gibbs,MCMC,EM,Variational Inference

已有 6565 次阅读 2014-6-11 00:28 |系统分类:科研笔记

模型求解系列(1)-Gibbs,MCMC,EM,Variational inference


1. MCMC具体方法:

   在蒙特卡洛模拟中,我们在后验分布中抽取样本,当这些样本独立时,利用大数定律样本均值会收敛到期望值。如果得到的样本是不独立的,那么就要借助于马尔科夫链进行抽样。MCMC方法就是为了这个目的而诞生的。马尔科夫链的一个很重要的性质是平稳分布。简单的说,主要统计性质不随时间而变的马尔科夫链就可以认为是平稳的。数学上有马氏链收敛定理,当步长n足够大时,一个非周期且任意状态联通的马氏链可以收敛到一个平稳分布π(x)。这个定理就是所有的MCMC方法的理论基础。我们对一个马氏链进行状态转移。设从初始分布π0出发,假设到第n步这个链可以收敛到平稳分布π0,那个这个过程可以表示为: X0 π0(x),X1 π1(x),...,Xn πn(x)=π(x),Xn+1 π(x),Xn+2 π(x),...在利用马氏链进行抽样时,在收敛之前的一段时间,比如上面的前n-1次迭代,各个状态的边际分布还不能认为是稳定分布,所以在进行估计的时候,应该把前面的这n-1个迭代值去掉。这个过程称为“burn-in”。


   MCMC方法就是构造合适的马尔科夫链进行抽样而使用蒙特卡洛方法进行积分计算。 既然马尔科夫链可以收敛到平稳分布。我们可以建立一个以π为平稳分布的马尔科夫链,对这个链运行足够长时间之后,可以达到平稳状态。此时马尔科夫链的值就相当于在分布π(x)中抽取样本。利用马尔科夫链进行随机模拟的方法就是MCMC。


   马氏链的收敛性质主要由转移矩阵P 决定, 所以基于马氏链做抽样的关键问题是如何构造转移矩阵P,使得平稳分布恰好是我们要的分布π(x)。这里用到了马尔科夫链的另一个性质,如果具有转移矩阵P和分布π(x)的马氏链对所有的状态i,j满足下面的等式:π(i)p(i,j)=π(j)p(j,i)  这个等式称为细致平衡方程。满足细致平衡方程的分布π(x)是平稳的。 所以我们希望抽样的马尔科夫链是平稳的,可以把细致平衡方程作为出发点。但是一般情况下,任给的分布分布π(x)不一定是平稳的。那么为了让细致平衡方程成立,我们可以引入一个函数α(i,j) 满足≤α(i,j)≤1,使得π(i)p(i,j)α(i,j)=π(j)p(j,i)α(j,i)按照对称性,我们可以取:
α(i,j)=π(j)p(j,i)    α(j,i)=π(j)p(i,j)
q(i,j)=p(i,j)α(i,ij)    q(j,i)=p(j,i)α(j,i)
这样就得到了新的以q(i,j)为转移概率的马尔科夫链,且具有平稳分布π(x)。这里的α(i,j)叫做接受率,也就是在原来的马氏链上以概率α(i,j)接受从状态i到状态j的转移概率为p(i,j)的状态转移。 进一步的,如果接受率过小,会导致马氏链过多地拒绝状态转移,这样马氏链的收敛速度会很慢。因此,我们可以考虑放大α(i,j),使 π(i)p(i,j)α(i,j)=π(j)p(j,i)α(j,i)中的两个方程中大的alpha$取到1,小的同比例放大。这样拒绝率就可以表示为:
α(i,j)=min(1,π(j)p(j,i)/π(i)p(i,j))

M-H算法的步骤:
(1)构造合适的提议分布(Proposal distribution) g(⋅∣Xt)在分布g中产生X0;
(2)迭代下面的步骤:
   在g(⋅∣Xt)中生成新样本Y;
   从均匀分布U(0,1)抽取随机数U;
   如果U满足U ≤ f(Y)*g(Xt∣Y) / f(Xt)*g(Y∣Xt), 则令Xt+1=Y(转移到新状态),否则Xt+1=Xt(状态不变)。其中f是目标分布,也就是 我们需要进行抽样的后验分布;
   增加t值,进行下一步迭代。


2. Gibbs sampling思路:

   由于MLE和MAP进行的估计都是选择了概率最大的点作为最终的结果,这样丢失了取其他小概率点的可能性,所以提出使用贝叶斯估计。

   在贝叶斯估计中,计算贝叶斯估计的后验概率就要进行积分。但积分往往是难以计算的,从而贝叶斯估计很难有解析解。Gibbs采样允许我们通过采样逼近一个概率分布,而不需要积分得到概率分布的精确形式。

   如何采样?构建一个markov网络,其节点是p(z)的各个可能的取值zi,各节点之间转移的概率为p(z)。p(zi)与访问节点zi的可能性相关(即与zi本身在p(z)中的概率成正比)。另外,t时刻条件下t+1时刻的状态取值概率可表达为:p(z(t+1)|z(t))=p(zj|zi). MCMC采样即通过不断迭代,寻找一组稳定的状态(p(z)的取值),再进行平均,即为服从概率分布p(z)的一个合理取值。

   Gibbs采样是MCMC的一种特殊情况,它要求每个状态zi至少是两维以上的变量集合,z(t)=<za(t),zb(t),zc(t),zd(t)>。其中每维za(t)对应模型中的一个参数变量。具体步骤如下:

   (1)写出所有变量的联合分布

   (2)简化联合分布的形式 collapsed sampling

   (3)确定条件分布的形式p(za(t+1)|zb(t),zc(t),zd(t))   block sampling

   (4)给出采样器的最终形式

Gibbs在每个循环都会产生变量的值,丢弃达到稳定状态之前的结果,对后面的T个采样值取平均即为各个变量的值。

The standard setup for Gibbs sampling over a space of variables a,b,c (I'll assume there are no exploitable independences) is:

Draw a conditioned on b,c

Draw b conditioned on a,c

Draw c conditioned on a,b

This is quite a simple story that, in some cases, be "improved." For instance, it is often possible to jointly draw a and b, yielding:

Draw a,b conditioned on c

Draw c conditioned on a,b

This is the "blocked Gibbs sampler."

Another variant, that is commonly used in our community, is when one of the variables (say, b) can be analytically integrated out, yielding:

Draw a conditioned on c

Draw b conditioned on a,c

Draw c conditioned on a,b

This is the "collapsed Gibbs sampler." In fact, we can often collapse b out entirely and, in cases where we don't actually care about it's value, we get:

Draw a conditioned on c

Draw c conditioned on a





https://blog.sciencenet.cn/blog-751870-802288.html

上一篇:基础概率模型系列(1)-Guass,beta,Dirichlet,Logit normal
下一篇:主体模型系列(1)-LDA,Correlated,Dynamic,Supervised,Relational
收藏 IP: 125.71.229.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (1 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-25 13:32

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部