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

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

变分推断学习笔记系列:

  1. 变分推断学习笔记(1)——概念介绍
  2. 变分推断学习笔记(2)——一维高斯模型的例子
  3. 变分推断学习笔记(3)——三硬币问题的变分推断解法

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

p(X|μ,τ)=(τ2π)N/2exp{τ2n=1N(xnμ)2}(1) (1)p(X|μ,τ)=(τ2π)N/2exp⁡{−τ2∑n=1N(xn−μ)2}
其中 μ,τ μ,τ各自服从先验分布
p(μ|τ)=N(μ|μ,(λ0τ)1)(2) (2)p(μ|τ)=N(μ|μ,(λ0τ)−1)
p(τ)=Gam(τ|a0,b0)(3) (3)p(τ)=Gam(τ|a0,b0)
其中Gam为Gamma分布(见备注1)。

通用的估计方法

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

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

对于 qu(μ) qu(μ)我们有

lnqu(μ)  =Er[lnp(X|μ,τ)+lnp(μ|τ)]+const=E[τ]2{λ0(μu0)2+n=1N(xnμ)2}+const(5) (5)ln⁡qu∗(μ)=Er[ln⁡p(X|μ,τ)+ln⁡p(μ|τ)]+const =−E[τ]2{λ0(μ−u0)2+∑n=1N(xn−μ)2}+const 

我们把未知数 μ μ的项加和起来,就可以看出 qu(μ) qu∗(μ)恰好是个高斯分布 N(μ|uN,λ1N) N(μ|uN,λN−1),其中

uNλN=λ0u0+Nx¯λ0+N=(λ0+N)E[τ](6) (6)uN=λ0u0+Nx¯λ0+NλN=(λ0+N)E[τ]

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

lnqr(τ)=Eu[lnp(X|μ,τ)+lnp(μ|τ)]+lnp(τ)+const=(a01)lnτboτ+12lnτ+N2lnττ2Eu[n=1N(xnμ)2+λ0(μu0)2]+const(7) (7)ln⁡qr∗(τ)=Eu[ln⁡p(X|μ,τ)+ln⁡p(μ|τ)]+ln⁡p(τ)+const=(a0−1)ln⁡τ−boτ+12ln⁡τ+N2ln⁡τ−τ2Eu[∑n=1N(xn−μ)2+λ0(μ−u0)2]+const
这里 qr(τ) qr∗(τ)也恰好是个Gamma分布 Gam(τ|aN,bN) Gam(τ|aN,bN),其中
aNbN=a0+N2=b0+12Eu[n=1N(xnμ)2+λ0(μu0)2](8) (8)aN=a0+N2bN=b0+12Eu[∑n=1N(xn−μ)2+λ0(μ−u0)2]
首先,要注意我们并未对 qu(μ) qu(μ) qr(τ) qr(τ)的最佳形式作出任何假设,它们就自然地形成了似然函数的形式(高斯分布)和它的先验分布形式(Gamma分布)。 然后可以看到这里 qu(μ) qu(μ) qr(τ) qr(τ)通过 Er Er Eu Eu相互依赖。我们展开这些式子,使用高斯分布与Gamma分布的性质(见备注1)计算它们的期望:
E[τ|aN,bN]=aNbNE[μ|uN,λ1N]=uNE[X2]=Var(X)+(E[X])2E[μ2|uN,λ1N]=λ1N+u2N(9) (9)E[τ|aN,bN]=aNbNE[μ|uN,λN−1]=uNE[X2]=Var(X)+(E[X])2E[μ2|uN,λN−1]=λN−1+uN2
将式子(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) (10)uN=λ0u0+Nx¯λ0+NλN=(λ0+N)aNbNaN=a0+N+12bN=b0+12[(λ0+N)(λN−1+μN2)−2(λ0u0+∑n=1Nxn)uN+(∑n=1Nxn2)+λ0u02)]
所以这时候循环依赖的对象变成了 λN λN bN bN。然后我们迭代计算这些值

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

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

另一种估计方法

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

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

以之前为例,我们假设

q(μ)=N(μ|uN,λ1N)q(τ)=Gam(τ|aN,bN)(11) (11)q(μ)=N(μ|uN,λN−1)q(τ)=Gam(τ|aN,bN)
其中, aN,bN,uN,λ1N aN,bN,uN,λN−1均为未知参数。

写出变分下界

L=q(μ,τ)lnp(X,μ,τ)q(μ,τ)dudr=Eq[lnp(X,μ,τ)]Eq[lnq(μ,τ)]=Eq[lnp(X|μ,τ)]+Eq[lnp(μ|τ)]+Eq[lnp(τ)]Eq[lnq(μ)]Eq[lnq(τ)](12) (12)L=∫∫q(μ,τ)ln⁡p(X,μ,τ)q(μ,τ)dudr=Eq[ln⁡p(X,μ,τ)]−Eq[ln⁡q(μ,τ)]=Eq[ln⁡p(X|μ,τ)]+Eq[ln⁡p(μ|τ)]+Eq[ln⁡p(τ)]−Eq[ln⁡q(μ)]−Eq[ln⁡q(τ)]
其中
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) (13)Eq[ln⁡p(X|μ,τ)]=N2Er[ln⁡τ]−τ2Eu[∑n=1N(xn−μ)2]Eq[ln⁡p(μ|τ)]=12Er[ln⁡τ]−τ2Eu[λ0(μ−u0)2]Eq[ln⁡p(τ)]=(a0−1)Er[ln⁡τ]−boEr[τ]Eq[ln⁡q(μ)]=uNEq[ln⁡p(τ)]=aNbN
根据Gamma分布的性质,将消去式(13)中的期望,最后我们获得的式子将只包括 aN,bN,uN,λ1N aN,bN,uN,λN−1这4个变量,分别对其求导,就可以得到每个参数的更新公式了(同式(10))。

备注: 1.Gamma分布

Gam(λ|a,b)=1Γ(a)baλa1exp(bλ)(14) (14)Gam(λ|a,b)=1Γ(a)baλa−1exp⁡(−bλ)
它的一些期望
E[λ]=abvar[λ]=ab2E[lnλ]=Ψ(a)ln(b)(15) (15)E[λ]=abvar[λ]=ab2E[ln⁡λ]=Ψ(a)−ln⁡(b)
其中 Ψ(a)=ddalnΓ(a) Ψ(a)=ddaln⁡Γ(a)

分享到 Comments
### 回答1: 变分推断(variational inference)是一种用于在概率模型中近似推断潜在变量的方法。在概率模型中,我们通常有观测数据和潜在变量两个部分。我们希望通过观测数据集来估计潜在变量的后验分布。然而,由于计算复杂度的限制,我们无法直接计算后验分布。 变分推断通过近似后验分布为一个简化的分布来解决这个问题。它会选择一个与真实后验分布相似的分布族,然后通过最小化这个分布与真实后验分布之间的差异来得到一个最佳的近似分布。这个问题可以转化为一个最优化问题,通常使用变分推断的一个常用方法是最大化证据下界(evidence lower bound,ELBO)来近似后验分布。 变分推断的一个重要特点是可以处理大规模和复杂的概率模型。由于近似分布是通过简化的分布族来表示的,而不是直接计算后验分布,所以它可以减少计算复杂度。此外,变分推断还可以通过引入额外的约束或假设来进一步简化近似分布,提高计算效率。 然而,变分推断也有一些缺点。因为近似分布是通过简化的分布族来表示的,所以它会引入一定的偏差。此外,变分推断的结果依赖于所选择的分布族,如果分布族选择不合适,可能会导致较差的近似结果。 总之,变分推断是一种用于近似计算概率模型中后验分布的方法,通过选择一个与真实后验分布相似的分布族,并最小化与真实后验分布之间的差异来得到一个最佳的近似分布。它具有处理大规模和复杂模型的能力,但也有一些局限性。 ### 回答2: 转变分推断(variational inference)是一种用于近似求解复杂概率模型的方法。它的核心思想是将复杂的后验分布近似为一个简单的分布,通过最小化这两个分布之间的差异来求解模型的参数。 变分推断通过引入一个简单分布(称为变分分布)来近似复杂的后验分布。这个简单分布通常属于某个已知分布族,例如高斯分布或指数分布。变分推断通过最小化变分分布和真实后验分布之间的差异,来找到最优的参数。 为了实现这一点,变分推断使用了KL散度(Kullback-Leibler divergence)这一概念。KL散度是用来衡量两个概率分布之间的差异的指标。通过最小化变分分布与真实后验分布之间的KL散度,我们可以找到一个最优的变分分布来近似真实后验分布。 变分推断的步骤通常包括以下几个步骤: 1. 定义变分分布:选择一个简单的分布族作为变分分布,例如高斯分布。 2. 定义目标函数:根据KL散度的定义,定义一个目标函数,通常包括模型的似然函数和变分分布的熵。 3. 最优化:使用数值方法(例如梯度下降法)最小化目标函数,找到最优的变分参数。 4. 近似求解:通过最优的变分参数,得到近似的后验分布,并用于模型的推断或预测。 变分推断的优点是可以通过选择合适的变分分布,来控制近似精度和计算复杂度之间的平衡。它可以应用于各种概率模型和机器学习任务,例如潜在变量模型、深度学习和无监督学习等。 总而言之,转变分推断是一种用于近似求解复杂概率模型的方法,通过近似后验分布来求解模型的参数。它通过最小化变分分布与真实后验分布之间的差异来实现近似求解。这个方法可以应用于各种概率模型和机器学习任务,具有广泛的应用价值。 ### 回答3: 变分推断(Variational Inference)是一种用于概率模型中的近似推断方法。它的目标是通过近似的方式来近似估计概率分布中的某些未知参数或隐变量。 在概率模型中,我们通常希望得到后验概率分布,即给定观测数据的情况下,未知参数或隐变量的概率分布。然而,由于计算复杂性的原因,我们往往无法直接计算后验分布。 变分推断通过引入一个称为变分分布的简化分布,将原问题转化为一个优化问题。具体来说,我们假设变分分布属于某个分布族,并通过优化一个目标函数,使得变分分布尽可能接近真实的后验分布。 目标函数通常使用卡尔贝克-勒勒散度(Kullback-Leibler divergence)来度量变分分布与真实后验分布之间的差异。通过最小化这个目标函数,我们可以找到最优的近似分布。在这个优化问题中,我们通常将问题转化为一个变分推断问题,其中我们需要优化关于变分分布的参数。 变分推断的一个优点是可以应用于各种类型的概率模型,无论是具有连续随机变量还是离散变量。此外,变分推断还可以解决复杂的后验推断问题,如变分贝叶斯方法和逐步变分推断等。 然而,变分推断也存在一些限制。例如,它通常要求选择一个合适的变分分布族,并且该族必须在计算上可以处理。此外,变分推断还可能导致近似误差,因为我们将问题简化为一个优化问题,可能会导致对真实后验分布的一些信息丢失。 总而言之,变分推断是一种强大的近似推断方法,可以用于概率模型中的参数和隐变量的估计。它通过引入变分分布来近似计算复杂的后验概率分布,从而转化为一个优化问题。然而,需要注意选择合适的变分分布族和可能的近似误差。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值