变分推断学习笔记

ref:http://www.crescentmoon.info/?p=709#more-709

问题描述

变分推断是一类用于贝叶斯估计和机器学习领域中近似计算复杂(intractable)积分的技术,它广泛应用于各种复杂模型的推断。本文是学习PRML第10章的一篇笔记,错误或不足的地方敬请指出。

先给出问题描述。记得在上一篇EM的文章中,我们有一个观察变量 X={x{1},,x{m}} 和隐藏变量 Z={z{1},,z{m}} , 整个模型 p(X,Z) 是个关于变量 X,Z 的联合分布,我们的目标是得到后验分布 P(Z|X) 的一个近似分布。

在之前介绍过Gibbs Sampling这一类Monte Carlo算法,它们的做法就是通过抽取大量的样本估计真实的后验分布。而变分推断不同,与此不同的是,变分推断限制近似分布的类型,从而得到一种局部最优,但具有确定解的近似后验分布。

之前在EM算法的介绍中我们有似然的式子如下:

lnp(X)=L(q)+KL(q||p)(1)

其中
L(q)=q(Z)lnp(X,Z)p(Z)dZ(2)
KL(q||p)=q(Z)lnp(Z|X)q(Z)dZ(3)

这里公式中不再出现参数 θ ,因为参数不再是固定的值,而变成了随机变量,所以也是隐藏变量,包括在 Z 之内了。


这里的KL散度 KL(q||p) 描述了估计分布与真实分布的差别。当 KL(q||p)=0 时,俩分布就是相同的。因为我们不知道真实的后验分布是啥,所以直接最小化KL是做不到的,但是我们可以通过最大化 L(q)  来达到这个目的。可以认为 L(q) 越大,则模型对数据拟合程度越好。由于 lnp(X)L(q) 始终成立,所以 L(q) 被称作证据下界(evidence lower bound),见图1。

admin-ajax

为了极大化 L(q) ,我们需要选择合适的函数 q ,使其便于计算。要注意到 L(q) 并非普通的函数,而是以函数 q 为自变量的函数,这就是泛函。泛函可以看成是函数概念的推广,而变分方法是处理泛函的数学领域,和处理函数的普通微积分相对。变分法最终寻求的是极值函数:它们使得泛函取得极大或极小值。

条件独立假设

如果参数之间具有相互依赖关系(mutually dependent),求积分时会比较麻烦。所以我们为 q(Z) 的分布加一个限制条件,将 Z 分为 M 组变量,组与组之间变量相互独立,这样 q 的分布就可以分解为

q(Z)=i=1Mqi(Zi)(4)

要注意我们对每个 q(Zi) 的函数形式并没有做任何限制。这种将 q 分解的方法叫做平均场理论(mean field theory),主要基于基于系统中个体的局部相互作用可以产生宏观层面较为稳定的行为这个物理思想。

求解过程

根据以上假设,我们来最大化下界 L(q) ,因为假设 qi(Zi) 分布之间都是独立的,所以我们依次轮流来优化,以 qj(Zj) 为例(为了简单起见,缩写为 qj )。

L(qj)=iqj{lnp(X,Z)ilnqi}dZ=qj{lnp(X,Z)ijqidZi}dZjqjlnqjdZj+const=qjlnp~(X,Zj)dZjqjlnqjdZj+const(5)

这里我们定义一个新分布 lnp~(X,Zj)
lnp~(X,Zj)=lnp(X,Z)ijqidZi(6)

我们发现它刚好是除去与 qj 分布相关的 zj 之后原似然的期望值,有
lnp~(X,Zj)=Eij[lnp(X,Z)]+const(7)

然后看式(5)的最后部分,就是 qj(Zj) lnp~(X,Zj) 的KL散度的负值,这里我们固定 qij 不变,那么最大化 L(q) 就变成了最小化这个KL散度,而KL 散度的最小值在 qj(Zj)=lnp~(X,Zj) 时取到。所以,最优解 qj(Zj)
lnqj(Zj)=Eij[lnp(X,Z)]+C(8)

另加的这个C是为了归一化整个分布,有 C=exp(Eij[lnp(X,Z)])dZj  。然后依次更新其他 Zj ,最终相互迭代达到稳定。

变分下界

我们也可以直接衡量模型的下界。在实际应用中,变分下界可以直接判断算法是否收敛,也可以通过每次迭代都不会降低这一点来判断算法推导和实现的部分是否存在问题。

L(q)=q(Z)lnp(X,Z)p(Z)dZ=Eq[lnp(X,Z)]Eq[lnq(Z)]


值得一提的是,如果我们能知道变分后验每个因子的函数形式的话,我们还有另一种估计参数的方法,这个详见 例子

变分推断和Gibbs Sampling之间的联系

变分推断和Gibbs sampling其实挺相似的:

  • 在Gibbs Sampling中,我们从条件分布 P(Zj|Z¬j) 中抽样。
  • 在变分推断中,我们迭代 Zj 的分布 Q(Zj)1Cexp{Eij[lnp(X,Z)]}

参考:
1.《Pattern_Recognition_and_Machine_Learning》第10章
2.http://en.wikipedia.org/wiki/Variational_Bayesian_methods


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

余额充值