# 变分推导 变分推断(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$$ ### 严格性补充 1. **关于支撑(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)$ 在同一支撑上且被积函数可积。 2. **关于等号成立的条件**: $\log p(x)=\mathcal L(q;x)$ 当且仅当 $ \mathrm{KL}(q|p(\cdot|x))=0$,即 $q(z)=p(z|x)$ 对几乎处处(a.e.)成立。 3. **符号与熵**:你写的第三项 $-\int q\log q$ 是变分熵 (H(q))。保持符号一致:有时人们把 ELBO 写为重构项 $-\mathrm{E}_q[\log p(x|z)]$ + KL,但你的形式(直接展开)更直观。 4. **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点)。