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算法中我们有似然的式子如下:
这里公式中不再出现参数θ,因为参数不再是固定的值,而变成了随机变量,所以也是隐藏变量,包括在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。
为了极大化L(q),我们需要选择合适的函数q,使其便于计算。要注意到L(q)并非普通的函数,而是以函数q为自变量的函数,这就是泛函。泛函可以看成是函数概念的推广,而变分方法是处理泛函的数学领域,和处理函数的普通微积分相对。变分法最终寻求的是极值函数:它们使得泛函取得极大或极小值。
如果参数之间具有相互依赖关系(mutually dependent),求积分时会比较麻烦。所以我们为q(Z)的分布加一个限制条件,将Z分为M组变量,组与组之间变量相互独立,这样q的分布就可以分解为
根据以上假设,我们来最大化下界L(q),因为假设qi(Zi)分布之间都是独立的,所以我们依次轮流来优化,以qj(Zj)为例(为了简单起见,缩写为qj)。
另加的这个C是为了归一化整个分布,有C=∫exp(Ei≠j[lnp(X,Z)])dZj 。然后依次更新其他Zj,最终相互迭代达到稳定。
我们也可以直接衡量模型的下界。在实际应用中,变分下界可以直接判断算法是否收敛,也可以通过每次迭代都不会降低这一点来判断算法推导和实现的部分是否存在问题。
变分推断和Gibbs sampling其实挺相似的:
参考:
1.《Pattern_Recognition_and_Machine_Learning》第10章
2.http://en.wikipedia.org/wiki/Variational_Bayesian_methods