variational inference

theta: org parameter, theta_P: variational parameter

1. goal: 估计p(z|x)


2. 找p(x|theta)likelihood的lower bound,再max这个lower bound 就能找到 p(z|x)的近似分布q(z|theta_P)


3. 找complete likelihood   ln[p(x,z)]的关于qj j!=i的期望


4. incomplete likelihood的lower bound 应该是 q(z)*ln p(x,z)/q(z)这个玩意, complete likelihood 乘除q(z)


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) 的一个近似分布。This is our goal

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

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

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

其中
L(q)=q(Z)lnp(X,Z)q(Z)dZ原文写是p(z)
KL(q||p)=q(Z)lnp(Z|X)q(Z)dZ

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

因为这里假设参数theta是给定的,所以lnp(X|theta)是定值,所以要min KL(q||p),只需要maxL(q) 这个incomplete likelihood lower bound即可。


这里的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)
这里每个q_j都有自己的variational parameter,每一个q_j都是求上式期望迭代得到的,ln P(x,z)是 complete likelihood


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

变分下界

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

L(q)=q(Z)lnp(X,Z)/q(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


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值