大家好,欢迎来到IT知识分享网。
本文作者:合肥工业大学 电子商务研究所 钱洋 email:@.com 。
内容可能有不到之处,欢迎交流。
未经本人允许禁止转载。
变分推断简介
变分推理的目标是近似潜在变量(latent variables)在观测变量(observed variables)下的条件概率。解决该问题,需要使用优化方法。在变分推断中,需要使用到的一个重要理论,是平均场理论,读者可以参考我的另外一篇博客:
变分推断中的ELBO(证据下界)
变分推断等价于最小化KL散度。
其中, q ( z ) q(z) q(z)为近似分布, p ( z ∣ x ) p(z|x) p(z∣x)为所要求的的后验概率分布。这里之所以对 p ( z ∣ x ) p(z|x) p(z∣x)进行近似,是因为其很难计算,在下一小节将对其进行讨论。
KL散度可以表示为:
其中, Q ( x ) Q(x) Q(x)为要近似的分布, P ( x ∣ D ) P(x|D) P(x∣D)为参数 x x x的条件概率分布。
这个公式可以继续化简,读者可以参考我的另外一篇博客:
变分推断中的ELBO(证据下界)
或者参考:A Tutorial on Variational Bayesian Inference
化简后的结果为:
其中, l n P ( D ) lnP(D) lnP(D)为log似然, L L L为log似然的下界。使得KL散度最小,相当于最大化 L L L。如下为三者之间的关系:
ELBO
ELBO,全称为 Evidence Lower Bound,即证据下界。这里的证据指数据或可观测变量的概率密度。
假设 x = x 1 : n x=x_{1:n} x=x1:n表示一系列可观测数据集, z = z 1 : m z=z_{1:m} z=z1:m为一系列隐变量(latent variables)。则可用 p ( z , x ) p(z,x) p(z,x)表示联合概率, p ( z ∣ x ) p(z|x) p(z∣x)为条件概率, p ( x ) p(x) p(x)为证据。
那么,贝叶斯推理需要求解的就是条件概率,即:
然而,对很多模型而言,计算 p ( x ) p(x) p(x)是很困难的,即:
因此,无法直接计算 p ( z ∣ x ) p(z|x) p(z∣x)。那么,这里变分推断就来了。在上一节中已提及,变分推断的目标是找到一个概率密度函数 q ( z ) q(z) q(z)来近似 p ( z ∣ x ) p(z|x) p(z∣x)*,要得到最佳的 q ( z ) q(z) q(z)必须优化:
其中,KL散度可以表示为:
由于KL散度大于0,进而我们可以求得:
l o g p ( x ) ≥ E [ l o g p ( z ∣ x ) ] − E [ l o g q ( z ) ] logp(x)\geq E\left [ logp(z|x) \right ] – E\left [ logq(z) \right ] logp(x)≥E[logp(z∣x)]−E[logq(z)]
这里终于知道为什么叫证据下界了吧,即公式的左边的证据的对数形式,右边为其下界。因此,我们有:
在使用变分推断时,首先需要计算的便是ELBO。从上面的公式可以看到,要计算ELBO,需要写出联合概率密度 p ( z , x ) p(z,x) p(z,x)和 q ( z ) q(z) q(z)。
在写出这两个式子之后,带入ELBO公式,分别求对数。之后,分别求期望。在期望计算完之后,针对具体的变分参数,求偏导,并令偏导为0,即可得到变分参数的更新公式。
在实际公式推导过程中,关键点就在于如何求期望。其计算期望往往需要用到指数分布族的性质,即可以将期望计算转化成求导计算。关于指数分布族的介绍读者可以参考我的另外一篇博客:
变分推断中的ELBO(证据下界)
案例
高斯混合模型
第一个案例为,高斯混合模型。详细的介绍可参考我的另外一篇博客,该博客也提供了Python代码:
变分推断中的ELBO(证据下界)
其模型的生成过程为:
LDA
在LDA模型中,需要计算下界:
其中,
关于联合概率分布可以表示为:
基于平均场原理:
写出这两个式子之后,可以求其期望。这个中间步骤还是很繁琐的。最后,可以得到变分参数的更新公式:
参考文献
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/111399.html