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

本文介绍了一元高斯模型参数的两种估计方法:一种是通过变分推断技术来逼近后验概率分布;另一种是通过修改模型的耦合部分以简化计算。文中详细推导了每种方法中参数的更新公式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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(τ)通过ErEu相互依赖。我们展开这些式子,使用高斯分布与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)

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

  1. 利用x的值,计算aNuN
  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)


### 回答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、付费专栏及课程。

余额充值