吉布斯采样

【吉布斯采样理论等我理解透彻在更新】
吉布斯采样是一种简单并且被广泛使用的马尔科夫蒙特卡洛算法,它可以被看成特殊情况的Metropolis-Hastings算法。
假设我们期望从 p(Z)=p(z1,z2,...,zM) 中进行采样,并且已经知道初始状态的马尔科夫链。吉布斯采样过程是替换其中一个变量,通过使用剩余变量作为条件对这个变量进行采样。
吉布斯 采样的流程
1、初始化 zi:i=1,...,M
2、对于 t=1,...T
采样 zt+11 服从 p(z1|zt2,zt3,...,ztM)
采样 zt+12 服从 p(z2|zt+11,zt3,...,ztM)
.
.
采样 zt+1M 服从 p(zM|zt+11,zt+13,...,zt+1M1)

解决问题,在一个绳子(假设为10米)上面剪两刀,求能构成三角形的概率。
吉布斯采样的大概流程是不知道联合概率分布,只知道每一个分量的条件概率分布。
在这个题目里面,条件概率很简单了。然后一次根据前面状态的分量来采样当前状态的分量。

matlab程序

num = 100000;
pix=zeros(num,4);
pix(1,:) = [0,0,10,0];
for i = 2:num
    for j = 1:2
        if j == 1
            pix(i,1) = rand(1)*(10-pix(i-1,2));
        else
            pix(i,2) = rand(1)*(10-pix(i,1));
        end 
    end
    pix(i,3) = 10-pix(i,1)-pix(i,2);
    if pix(i,1)+pix(i,2) > pix(i,3) && pix(i,3)+pix(i,2) > pix(i,1) && pix(i,1)+pix(i,3) > pix(i,2)
        pix(i,4) = 1;
    else
        pix(i,4) = 0;
    end
end
temp=pix(:,4);
temp=temp(2:end);
length(find(temp>0))*1.0/(num-1)

python程序

#Gibbs
import numpy as np
import numpy.random as nr

num=100000
pix=np.zeros((num,3))
pix[0,:]=[0,0,10]
temp=0
for idx in range(1,num):
    for j in range(0,2):
        if j==0:
            pix[idx,0]=nr.uniform(0,10-pix[idx-1,1],1)
        else:
            pix[idx,1]=nr.uniform(0,10-pix[idx,0],1)
    pix[idx,2]=10-pix[idx,0]-pix[idx,1]
    if pix[idx,0]+pix[idx,1]>pix[idx,2] and pix[idx,2]+pix[idx,1]>pix[idx,0] and pix[idx,0]+pix[idx,2]>pix[idx,1]:
        temp+=1
print temp*1.0/num

运行结果是在0.25左右

LDA模型的理解对很多人是一种挑战,尤其是参数估计部分。本文档详细给出了TOTLDA和LDA两个主题概率模型的参数估计需要用到的后验概率的推导过程,并采用了两种方法,对主题概率模型研究人员具有很好的启发意义!Gibbs Sampling Derivation for LDA and ToT, Han Xiao, Ping luo Gibbs sampling:为了对x进行佔计,一般我们要从 P(X)≡P 中进行抽样。如果P(X)不易求得,我们可以通过对所有的P(x|X_)进行抽样来近似 其步骤如下 1.随机初始化X0)=(x10,x20)…,x 2.重复进行T轮抽样, 在每轮抽样中,对于=1…N,每个xP从P(xPx9,…2x1,x(+1…,x)抽样 3.当 Burn-in之后,可以通过几轮抽样计算P(X) 为了不失一般性,下面对ToT的 Gibbs sampling过稈进行推导 1.在TOT的 Gibbs sampling中,我们要求 P( zdilw,t,zdt,a,β,V) 然后才能跟据它,对生成wd,td的zd进行抽样估计。因为zd是隐减变量,一旦抽样估计完成,对丁每个wa它生成 自的 topIC就变成已知;对于每个 document,它包含的 topiCS也变成已知。那么对于 document-topics分布0d和 topic-words上的分布中2也就可以非常容易的破拟合出来。 Step1:根据 )=P(z) 和贝叶斯公式可以得到 P(zawt,z_dt,ax,β,V) P(W,tz,c,β,甲)P(w,t,zcB, P(wtzd,a,阝,乎P(w, t, z-dil,β,v 根据 Graphical Model,wda,ta都是由za生成的,如果不考虑zd则无法考虑wd,td。从而得到 P(zdw,t,z_di,x,βv)∝ P(Z,,t]a,B,p) t β,V) 2.由上式可知,在 Gibbs sampling中关键是要求出如下的联合概率 (w,t, zla, B, p) step1:根据 Graphical Model,咯去Φ,6,可以将联合概率拆开 P(w,t,zaB,)=P(w|z,β)P(t平,z)P(za) step2:引入Φ,θ,对Φ,回进行积分。再根据 Graphical Model,可以写出 P(w,t, zla,B,)=P(t!, 2) P(wlz, p)P(pIB)da P(zle)P(ela)do step3:对于整个 corpus,拆开所有黑体和大写,条件概率中的条件,z可以写做ψ;ZΦ写做中 N N plai P(中2|β)d中2 JITE P(zdi led)prelude Z=1 Step4:由于从第zd个 topic中抽去wd是满足多项式分布中2,的,因此 N d i 同理由于从第d个 document中抽取zu也是满足多项分布θa的,因此 P(zdi led) d d=1i=1 d=1z=1 将两式带入(2.3)中可以得到, Gibbs Sampling Derivation for LDa and ToT, Han Xiao, Ping Luo P(中2|β)d ed P(eala)de 7 d=1i=1 d=1z=1 step5:根据 dirichlet的后验分布,可以将P(中2|B)和P(Oda)开,得到 N 心!G T d=1i=1 r(β) 3-1)d中 11(ax)2=5 de step6:由于mCx18)与中无关,C叫2与无关,可以将它们提出,得: N P(tai lvz 2=1pv T r(a 1e()(心!(门 -1 d6, step7:由于不同的 topic的 topic-words分布是独立的(比如φ1与中2是独立的,可以通过d- separation判定),因此 连乘的积分可以写作积分的连乘;同理,不同 document的 document-topics分布也是独立的(01与02是独立的) 因此可以上式可以写为: r:)(21门(÷*a)(U nd, tarded 11(a dz d=11=1 step8:根据欧拉积分 I= r(1a) 对(27)式中后面两项使用欧拉积分可得 D C P(wt,za,β,)= r(nzy+阝) T(ndz +az) Ilv= r(Bv) d=1i=1 r(a)/ir(zv-1nz +Bv)d-r(zI-1ndz+a2) 3.* full conditional probability Step1:将(28)中的式子代入,可以得到 P(zW,ta,B平 t-di|a,阝, D -v=1 r(n2+β)mDT=r(naz+ 2n八(正=1r(民) r(a2) r(Ev=1n,y +Bv d-r(zi=1(nd z +ar)) 四1lepe(tdb)(( r(z=1a2) Iv-r(nz,y+By)rd Ilz-1r(ndz+ Ilv-1r(Bv)(2-1 T, r(a2/ v=tzv +β Σ=(na2+a2) -di step2:此时,要留意所有角标与di有关的nc2和n2x,由于不考虑zd,因此watd不用考虑(因为它们没有被牛成), 也就是说在考虑 topic Z和 word的所有共现次数时(即n2xy),我们忽略了这一次z与w的共现,这仅仅会让nda减 1,而对于其他的n2w并无影响:同样的,这也会使ndx减1,而并不会使其他的n发生改变。注意:MTD的 大小并没有发生改变 将上式拆成3部分来看,可以得到如下二式 P(taizu) Gibbs Sampling Derivation for LDA and ToT, Han Xiao, Ping luo v=1 Z=1 Ilv-ir(Bv)/\21r(az ) +0 3) nd, z tuz r(n Step3:关键是对(32.3式的化简),首先看其前一部分的分母 n,, (n2awa+阝wa-1)×m=1IV=r(n2x+B3) rCw=1nx+)T(C=(n+)-1)xr(=(2+B Step4:看前一部分的分子 (n+β) rInza wa d e,V 1r(x-(2+,)T((l2a+.)x(2=1(2+B) step5:(3.4)/(33),借助r(x+1)=xr(x)可以得到 (n2+阝 r(=1(n2+ +阝 ∑=1(n+B)-1 (xy=1(n2+阝 step6:看后一部分的分母 ∏z=1T(n ndg+ d diz )×TB=1I=1r(nd2+a2 Z z(叫2+c)=rCxm(ndna+a)-1)xm出,r(xm=(a+a2) step7:看后一部分的分子 Isr(ndz+ r(nd di, zdi )×[=1m=1r(naz+a2)d (2z_(nd. +a2))r(2z1nduix+ai)xIlad r(2T-(ndz +a2)) step8:(3.7)/(3.6},借助『(x+1)=xr(x)可得 ILs, r(ndz d=Ir(st (ndz+ n dinz di r(ndz ta 1d 1 n Step9:将(3.8)(35)(3.2)代入到(3.1)可得 P(zw,t,z-di,a阝,平)∝ P(z-di, W-di t-di a,B, y)P(tail zd )xyyatBwdi--1 P(Z,w, ta,B, p) =1(na+)-1∑=1(nx+)-1 (1-td) di“dt-1 nz,a, wui nd,ji, z i (nax+阝)-1 其中B(β) r(axr(β) 我们可以利用上式对每个zd进行抽样,当迭代次数足够大时,抽样结果趋丁稳定 r(a+β) LDA中 Gibbs Sampling中P(adw,zd,.,B)+a-1+2(adz+ nu, ldi 对比 LDA Gibbs Sampling发现,模型中加入时间信息后,对zd抽样时依据的概率分布做∫一些改变,相当于在LDA 的基础上增加了一个因子。 Gibbs Sampling Derivation for LDA and TOT, Han Xiao, Ping lut 当对zd的抽样完成后,我们可以方便的根据n2x和naz对中2与04进行计 例如,对于第z个 topIC的 topic-words分布,可以用 中2 n2+阝-1 (n2x+β) 求得中2=( D. Quick Derivation 对于TOT的 Gibbs Sampling,我们要求的是 P(zd1Wtz-dt,,阝平) 根据 Bayes rule,上式可以写作: P(zdi lw, t, z-di, a,B, P(w,tz,ax,阝,) P(wt,Z,a,阝,Y 根据 Graphical Model,wa,t都是山z生成的,如果不考虑za则无法考虑wd,td,因此: P(w,tZ,,β P(wtz|o,阝乎 P(edi lw, t, z-di, a, B,)ople-diw-di, t-di,a,B, y)P(z_di w aul-di/, B,Y) 根据 d-sperate可以判定对于不同的:zd,watd与zd,wd,td在条件a,β甲下是独立的。因此,上式右边可以拆为 各项连乘的形式,分子分母消去公共项,只剩P(zd,wd,tax,B,V),即 P(d|W,tzdi,,β,甲)∝P(ai,wd,tail,阝,甲) 又由于z,wd,td与z,w,td实际上在条件,,a,平下也是独立的,同理可得 P(zd|w,tzd中,,c,β,)∝P(z 中,e,x,β,甲) 根据 Graphical Mode|P(dwa,td|,e,a,,甲)可以写作 P(z 仲中6,,阝,)=P( wailed,中β)P y)P(zdi le, a) 山于抽wd和抽zd都满足多项式分布,批tG满足beta分布,于是有 P(wailed,,β)=、y ∑v=1(n2x+凤 n P(zdi le, a n di P(tai lzdi, p) (1-td B(中-1,中-1) 于是得到P(dw,txd,B甲)a(1t)帅t甲- B(山d-1,a-1)x +radix nd di di 对于LDA,推导过程同上,只是我们无需考虑td,于是P( dili, zdi a,B.甲)=2dym+B=x n Zdi.+Pv E。 References [1D Blei, A Ng, and m. Jordan Latent dirichlet allocation Journal of machine Learning research, 3: 993-1022, 2003 [2 Xuerui Wang, Andrew McCallum. Topics over Time: A Non-Markov Continuous-Time Model of Topical Trends. KDD06 August 20-23, 2006, Philadelphia, Pennsylvania, USA
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值