变分推断学习笔记(2)——一维高斯模型的例子

ref:http://www.crescentmoon.info/?p=745

举一个一元高斯模型的例子。假设我们有数据 X={x1,,xM} ,要推断平均值 μ 和精度 τ(1/σ) 的后验概率分布。
写出似然

p(X|μ,τ)=(τ2π)N/2exp{τ2n=1N(xnμ)2}(1)

其中 μ,τ 各自服从先验分布
p(μ|τ)=N(μ|μ,(λ0τ)1)(2)
p(τ)=Gam(τ|a0,b0)(3)

其中Gam为Gamma分布(见备注1)。

通用的估计方法

好,我们现在假设 q 之间的分布都独立。

q(μ,τ)=qu(μ)qr(τ)(4)

对于 qu(μ) 我们有

lnqu(μ)=Er[lnp(X|μ,τ)+lnp(μ|τ)]+const=E[τ]2{λ0(μu0)2+n=1N(xnμ)2}+const(5)

我们把未知数 μ 的项加和起来,就可以看出 qu(μ) 恰好是个高斯分布  N(μ|uN,λ1N) ,其中
uNλN=λ0u0+Nx¯λ0+N=(λ0+N)E[τ](6)

同样对于 qr(τ) ,我们有

lnqr(τ)=Eu[lnp(X|μ,τ)+lnp(μ|τ)]+lnp(τ)+const=(a01)lnτboτ+12lnτ+N2lnττ2Eu[n=1N(xnμ)2+λ0(μu0)2]+const(7)

这里 qr(τ) 也恰好是个Gamma分布  Gam(τ|aN,bN) ,其中
aNbN=a0+N2=b0+12Eu[n=1N(xnμ)2+λ0(μu0)2](8)

首先,要注意我们并未对 qu(μ) qr(τ) 的最佳形式作出任何假设,它们就自然地形成了似然函数的形式(高斯分布)和它的先验分布形式(Gamma分布)。
然后可以看到这里 qu(μ) qr(τ) 通过 Er Eu 相互依赖。我们展开这些式子,使用高斯分布与Gamma分布的性质(见备注1)计算它们的期望:
E[τ|aN,bN]=aNbNE[μ|uN,λ1N]=uNE[X2]=Var(X)+(E[X])2E[μ2|uN,λ1N]=λ1N+u2N(9)

将式子(9)带入之前的式子(7)消去期望,最终得到:
uN=λ0u0+Nx¯λ0+NλN=(λ0+N)aNbNaN=a0+N+12bN=b0+12[(λ0+N)(λ1N+μ2N)2(λ0u0+n=1Nxn)uN+(n=1Nxn2)+λ0u02)](10)

所以这时候循环依赖的对象变成了 λN bN 。然后我们迭代计算这些值

  1. 利用x的值,计算 aN uN
  2. λN 赋一个初始值
  3. 利用 λN ,获得新的 bN
  4. 利用 bN ,获得新的 λN
  5. 反复迭代3,4步,直到收敛为止。

最后我们就得到了近似分布 Q(Z) 的所有超参数的值。

另一种估计方法

首先我们看到,之前这个 lnp(X) (也就是似然)难求是因为 Z 未知,在我们这个例子里的具体表现为未知参数 μ τ 之间存在耦合关系,即 μ 是由 τ 生成的( p(μ|τ) 。由于原模型存在共轭先验,所以变分后验分布的因子函数形式也可以用同样的共轭结构。因为我们定义 Q(Z) 分布的目的是要获得tractable的分布,所以可以在原模型的分布上作小修改,只要斩断耦合的部分即可。(这部分论述可能有问题,还需要多看书才行)

所以我们假设 q(μ) q(τ) 之间相互独立,即 q(μ) 的参数不受 τ 的控制。但它依旧是个高斯分布, q(τ) 依旧是个Gamma分布,只是各自的参数未知。所以我们只要把下界看成这些分布的未知参数的函数形式,然后通过对各自参数的求导就能获得下界的极大值。(可能是因为指数家族的关系,未知参数的期望都有固定的函数形式,所以比较好求)

以之前为例,我们假设

q(μ)=N(μ|uN,λ1N)q(τ)=Gam(τ|aN,bN)(11)

其中, aN,bN,uN,λ1N 均为未知参数。

写出变分下界

L=q(μ,τ)lnp(X,μ,τ)q(μ,τ)dudr=Eq[lnp(X,μ,τ)]Eq[lnq(μ,τ)]=Eq[lnp(X|μ,τ)]+Eq[lnp(μ|τ)]+Eq[lnp(τ)]Eq[lnq(μ)]Eq[lnq(τ)](12)

其中
Eq[lnp(X|μ,τ)]=N2Er[lnτ]τ2Eu[n=1N(xnμ)2]Eq[lnp(μ|τ)]=12Er[lnτ]τ2Eu[λ0(μu0)2]Eq[lnp(τ)]=(a01)Er[lnτ]boEr[τ]Eq[lnq(μ)]=uNEq[lnp(τ)]=aNbN(13)

根据Gamma分布的性质,将消去式(13)中的期望,最后我们获得的式子将只包括 aN,bN,uN,λ1N 这4个变量,分别对其求导,就可以得到每个参数的更新公式了(同式(10))。

备注:
1.Gamma分布

Gam(λ|a,b)=1Γ(a)baλa1exp(bλ)(14)

它的一些期望
E[λ]=abvar[λ]=ab2E[lnλ]=Ψ(a)ln(b)(15)

其中 Ψ(a)=ddalnΓ(a)


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值