3.8 KiB
变分推导
变分推断(Variational Inference, VI)是贝叶斯近似推断方法中的一大类方法,将后验推断问题巧妙地转化为优化问题进行求解,相比另一大类方法马尔可夫链蒙特卡洛方法(Markov Chain Monte Carlo, MCMC),VI 具有更好的收敛性和可扩展性(scalability),更适合求解大规模近似推断问题。
引言
变分推断(Variational Inference, VI)是一种近似贝叶斯后验的方法,通过引入变分分布 q(z) 来逼近真实后验 $p(z|x)$。
本笔记从全概率公式出发,使用积分形式推导证据下界(ELBO)和KL散度,严格避免期望符号。
假设观测数据 $x$,潜在变量 z ,联合分布 p(x,z) = p(x|z) p(z) ,变分分布 q(z) 满足 $\int q(z) , dz = 1$。
避开$p(w|x,y)=\frac{p(y|x,w)p(w)}{\int p(y|x,w)p(w)dw}$的分母积分求解
目标:最大化边缘似然 ( \log p(x) ),但积分难算,故引入变分近似。
推导
对于变分推导,我们从全概率公式开始:有
p(x) = \int p(x, z) dz = \int p(x|z)p(z)dz
我们对其用$\frac{q(z)}{q(z)}=1$重写式子,并对两边取对数
p(x) = \int \frac{p(x,z)}{q(z)}q(z)dz = \int \frac{p(x|z)p(z)}{q(z)}q(z)dz
\log \space p(x) = \log \int \frac{p(x,z)}{q(z)}q(z)dz = \log \int \frac{p(x|z)p(z)}{q(z)}q(z)dz
引理:Jensen不等式的积分形式 对于凹函数$\log$,对于非负函数$f(z) = \frac{p(x,z)}{q(z)} \geq 0 $,有:
\log \int f(z)q(z)dz \geq \int \log(f(z))q(z)dz
回到上式,对右侧进行变换
log \space p(x) = \log \int \frac{p(x,z)}{q(z)}q(z)dz \geq \int \log \frac{p(x,z)}{q(z)}q(z)dz = \int (\log p(x,z) - \log q(z))q(z)dz
展开上式
= \int q(z)\log p(x,z)dz - \int q(z)\log q(z)dz **$= \int q(z)\log \frac{p(x,z)}{q(z)}dz ** = \int q(z)\log p(x|z)dz + \int q(z)\log p(z)dz - \int q(z)\log q(z)dz$
我们称上式为ELBO
\mathcal L(q; x) = \int q(z)\log \frac{p(x,z)}{q(z)}dz = \int q(z)\log p(x|z)dz + \int q(z)\log p(z)dz - \int q(z)\log q(z)dz
第一项:期望重构似然 $\mathbb{E}_q [\log p(x|z)]$(拟合数据)。 第二项:期望对数先验 $\mathbb{E}_q [\log p(z)]$(贝叶斯正则)。 第三项:变分熵 $H(q) = -\int q(z) \log q(z) , dz$(鼓励分布平滑)。
整理上式得到(重要):
\log p(x) \geq \mathcal L(q; x) = \int q(z)\log \frac{p(x,z)}{q(z)}dz
将左右做差,得到
\log p(x) - \mathcal L(q; x) = \log p(x) - \int q(z)\log \frac{p(x,z)}{q(z)}dz
= \int q(z) \log p(x)dz - \int q(z)\log \frac{p(x,z)}{q(z)}dz
= \int q(z)\log \frac{p(x)q(z)}{p(x,z)}dz
将$p(x,z)=p(z|x)p(x)$带入得到
= \int q(z)\log \frac{q(z)}{p(z|x)}dz
定义其为KL散度,记作
KL(q(z)||p(z|x)) = \log p(x) - \mathcal L(q; x) = \int q(z)\log \frac{q(z)}{p(z|x)}dz
严格性补充
-
关于支撑(support)与可积性:Jensen 与对数运算要求被积函数合法。通常需要假设
q(z)>0\quad\text{whenever}\quad p(x,z)>0,否则
\tfrac{p(x,z)}{q(z)}可能发散或出现\log 0问题。更弱的条件是:q与p(\cdot,x)在同一支撑上且被积函数可积。 -
关于等号成立的条件:
\log p(x)=\mathcal L(q;x)当且仅当 $ \mathrm{KL}(q|p(\cdot|x))=0$,即q(z)=p(z|x)对几乎处处(a.e.)成立。 -
符号与熵:你写的第三项
-\int q\log q是变分熵 (H(q))。保持符号一致:有时人们把 ELBO 写为重构项-\mathrm{E}_q[\log p(x|z)]+ KL,但你的形式(直接展开)更直观。 -
Jensen 的前提:Jensen 用在这里是因为
\log在(0,\infty)上是凹函数,所以\log\int f(z)q(z),dz \ge \int \log f(z),q(z),dz对
f(z)=\tfrac{p(x,z)}{q(z)}\ge0生效(前提同第1点)。