ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

变分推断

2021-02-13 11:01:05  阅读:257  来源: 互联网

标签:log ELBO 变分 KL 推断 aligned


一、近似推断问题

马尔科夫蒙特卡洛(MCMC)采样是近似推断(Approximate Inference)的一种重要方法,其改进包括Metropolis-Hastings算法,Gibbs采样。

在MCMC不满足性能要求的时候,我们使用变分推断(Variational Inference,VI)。变分推断通过优化逼近后验,而MCMC通过采样逼近后验。

对观测数据\(x = (x_1,\ldots,x_n)\)和隐变量\(z = (z_1,\ldots,z_m)\),推断问题(inference)希望计算出隐变量的后验概率\(p(z|x)\),利用贝叶斯公式重写后验概率如下公式。在确定隐变量z的先验概率\(p(z)\)时,公式中的联合概率\(p(z,x)\)能够计算,而\(p(x)\)需要积分\(p(x) = \int p(z,x) dz\)计算,但是通常,这个积分没有解析解,利用采样的方法计算效率也非常低。

\[p(z|x) =\frac{p(z,x)}{p(x)} \]

二、变分分布和ELBO

变分推断选择一类分布族Q(称为变分分布族),将推断问题转换为优化\(q^*\in Q\)使得与后验\(p(z|x)\)的差别最小。

\[q^*(z) = argmin_{q(z)\in Q } KL[q(z)||p(z|x)] \]

变分推断使用\(KL[q||p]\)衡量变分分布(即分布q)和真实后验p之间的差别,KL散度是非对称的,这种形式的KL着重于惩罚真实后验p很小时变分概率q很大的情况。

我们无法最小化目标函数\(KL[q||p]\),因为KL中包含有\(log⁡p(x)\),如下推导:

\[\begin{aligned} KL[q(z)||p(z|x)] &= E_{q(z)}[\log q(z)] - E_{q(z)}[\log p(z|x)]\\ &=E_{q(z)}[\log q(z)] - E_{q(z)}[\log p(z,x)]+E_{q(z)}[\log p(x)]\\ &=E_{q(z)}[\log q(z)] - E_{q(z)}[\log p(z,x)]+\log p(x) \end{aligned} \]

但是,通过上面公式的变化可以得到一个新的目标函数ELBO:

\[\begin{aligned} ELBO(q) &= \log p(x) - KL[q(z)||p(z|x)] \\ &= E_{q(z)}[\log p(z,x)] - E_{q(z)}[\log q(z)] \end{aligned} \]

这个目标函数可以从两个方面来解释:

  • 由于\(log⁡p(x)\)相对于\(q(z)\)是一个常量,而我们想要最小化KL,\(ELBO\)等于负的KL加上一个常量,所以我们最大化\(ELBO\)就等价于最小化KL。
  • 最大化\(log⁡p(x)\)就是对观测数据的极大似然估计(即log evidence),由于KL是非负的,所以这个目标函数是极大似然估计的下确界(即evidence lower bound, ELBO)。

继续推导:

\[\begin{aligned} ELBO(q) &= E_{q(z)}[\log p(z,x)] - E_{q(z)}[\log q(z)]\\ &=E_{q(z)}[\log (p(x|z)p(z))]- E_{q(z)}[\log q(z)]\\ &=E_{q(z)}[\log p(x|z)] + E_{q(z)}[\log p(z)] - E_{q(z)}[\log q(z)]\\ &= E_{q(z)}[\log p(x|z)] - KL[q(z)||p(z)] \end{aligned} \]

从结果来看,\(ELBO\)目标函数第一项是似然的期望,第二项是与先验之间的差别。所以最大化ELBO就是在(1)隐变量对观测数据的解释最佳和(2)变分分布q更靠近先验之间平衡。

三、平均场变分分布族

对变分推断中选择的变分分布族Q进行介绍。

由于分布族Q越复杂,变分推断的优化就越复杂。一般变分推断中会假定一个性质,就是选择的分布族是平均场变分分布族(mean-field variational family)。这个性质保证了每一个隐变量\(z_j\)都相互独立而且只受自己的分布\(q_j\)的参数影响(即满足\(q(z) = \prod_j q_j(z_j)\)))。如果隐变量互相有影响,那么这种变分推断被称为结构化变分推断

使用平均场变分分布族的缺点是,当隐变量之间互相有关联的时候(性质被破坏)逼近的效果就会下降。比如下图的二维高斯后验,\(x_1\)和\(x_2\)两个隐变量的后验概率是紫色的椭圆形部分,而我们使用mean-field approximation的时候,会学习到一个均值相同但协方差不同的二维高斯分布。

img

四、优化

针对平均场变分分布,坐标上升近似推断算法(CAVI)是最常见的优化方法。CAVI交替地更新每个隐变量,更新时固定其他的隐变量的变分分布参数,用来计算当前隐变量zj的坐标上升公式。CAVI的算法步骤如下图所示。

img

首先,我们计算最佳分布\(q_j\)的表达式:

\[\begin{aligned} q&=E[p(\cdot)]\\ &=exp\{\log E[p(\cdot)]\}\\ &\approx exp\{ \log [E(p(\cdot)] - Var(p(\cdot))/(2*E[p(\cdot)]^2)\}\\ &= exp\{\log (E[p(\cdot)]\} * exp\{ h(p(\cdot)) \}\\ &< exp\{\log (E[p(\cdot)]\} \end{aligned} \]

因为在二阶泰勒展开的条件下\(q= exp\{\log (E[p(\cdot)]\} * exp\{ h(p(\cdot)) \}\\\),且\(q^*_j(z_j)=E[p(z_j|z_{-j},x)]\),故\(q_j\)与对数条件概率期望的指数成比例:

\[q^*_j(z_j)\propto exp\{E_{-j}[\log p(z_j|z_{-j},x)]\} \]

由于隐变量之间独立,这个公式右侧的期望项可以转化为:

\[\begin{aligned} E_{-j}[\log p(z_j|z_{-j},x)] &= E_{-j}[\log \frac {p(z_j,z_{-j}|x)}{p(z_{-j})}]\\ &=E_{-j}[\log p(z_j,z_{-j}|x)] - E_{-j}[\log p(z_{-j})]\\ &=E_{-j}[\log p(z_j,z_{-j},x)] - E_{-j}[\log p(z_{-j})]- E_{-j}[\log p(x)]\\ &=E_{-j}[\log p(z_j,z_{-j},x)] - const. \end{aligned} \]

因此,我们得到如下结论,也就是知道了联合分布的对数期望(而由于其他的隐变量确定,联合概率可求),就可以求最佳变分分布\(q^*_j\):

\[\begin{aligned} q^*_j(z_j)&\propto exp\{E_{-j}[\log p(z_j,z_{-j},x)] - const.\} \\ q^*_j(z_j)&\propto exp\{E_{-j}[\log p(z_j,z_{-j},x)]\} \\ \end{aligned} \]

在平均场变分分布族的假设下,\(ELBO\)可以被分解为对每一个隐变量\(z_j\)的函数。根据隐变量分解后的\(ELBO\)中,利用\(q\)分布的平均场性质,第一项将联合概率的期望迭代求出,第二项分解了变分分布的期望。当我们最大化\(q_j\)时,也就最大化了分解后的\(ELBO\)。

标签:log,ELBO,变分,KL,推断,aligned
来源: https://www.cnblogs.com/liulunyang/p/14399890.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有