You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

变分推断:如何推导ELBO针对单隐变量分布的分解形式?

推导单个隐变量变分分布的ELBO形式

嘿,我当初刚学Mean Field变分推断的时候也卡在这里过,其实核心就是把联合期望拆成迭代期望,再把与当前优化变量无关的项归为常数,一步步来拆,保证你能看明白:

1. 先明确原始ELBO和符号定义

原始ELBO的表达式是:
$$ELBO(q) = \mathbb{E}_q[\log p(z,x)] - \mathbb{E}_q[\log q(z)]$$
这里:

  • $z = {z_j, z_{-j}}$:$z_j$是我们当前要优化的单个隐变量,$z_{-j}$是除$z_j$之外的所有其他隐变量
  • $q(z) = q_j(z_j) \cdot q_{-j}(z_{-j})$:Mean Field假设下,变分分布是各个隐变量分布的乘积(这个假设是分解的核心前提)

2. 拆分第一项:$\mathbb{E}_q[\log p(z,x)]$

根据迭代期望公式 $\mathbb{E}[X] = \mathbb{E}Y[\mathbb{E}{X|Y}[X]]$,联合期望$\mathbb{E}q[\cdot]$是对$z_j$和$z{-j}$的联合期望,所以可以拆成“先对$z_{-j}$求期望,再对$z_j$求期望”:
$$\mathbb{E}q[\log p(z,x)] = \mathbb{E}{q_j(z_j)} \left[ \mathbb{E}{q{-j}(z_{-j})} \left[ \log p(z_j, z_{-j}, x) \right] \right]$$
为了简化写法,通常把$\mathbb{E}{q_j(z_j)}$记作$\mathbb{E}j$,$\mathbb{E}{q{-j}(z_{-j})}$记作$\mathbb{E}{-j}$,所以这一项就变成:
$$\mathbb{E}j\left[\mathbb{E}{-j}\left[\log p(z_j, z
{-j}, x)\right]\right]$$

3. 拆分第二项:$\mathbb{E}_q[\log q(z)]$

因为$q(z) = q_j(z_j) \cdot q_{-j}(z_{-j})$,根据对数的性质,$\log q(z) = \log q_j(z_j) + \log q_{-j}(z_{-j})$,所以期望可以拆成两个部分的和:
$$\mathbb{E}_q[\log q(z)] = \mathbb{E}q[\log q_j(z_j)] + \mathbb{E}q[\log q{-j}(z{-j})]$$

3.1 处理$\mathbb{E}_q[\log q_j(z_j)]$

$\log q_j(z_j)$只和$z_j$有关,和$z_{-j}$完全无关,所以对$z_{-j}$的期望不会改变它的值,因此:
$$\mathbb{E}q[\log q_j(z_j)] = \mathbb{E}{q_j(z_j)}[\log q_j(z_j)] = \mathbb{E}_j[\log q_j(z_j)]$$

3.2 处理$\mathbb{E}q[\log q{-j}(z_{-j})]$

同理,$\log q_{-j}(z_{-j})$只和$z_{-j}$有关,对$z_j$的期望不影响它,所以:
$$\mathbb{E}q[\log q{-j}(z_{-j})] = \mathbb{E}{q{-j}(z_{-j})}[\log q_{-j}(z_{-j})]$$
关键来了:当我们固定所有$q_{-j}$(也就是只优化$q_j$的时候),这个项是一个与$q_j$无关的常数,我们可以把它记作$C'$。

4. 合并所有部分得到目标形式

把拆分后的各项代入原始ELBO:
$$
\begin{align*}
ELBO(q) &= \mathbb{E}j\left[\mathbb{E}{-j}\left[\log p(z_j, z_{-j}, x)\right]\right] - \left( \mathbb{E}j[\log q_j(z_j)] + C' \right) \
&= \mathbb{E}j\left[\mathbb{E}{-j}\left[\log p(z_j, z
{-j}, x)\right]\right] - \mathbb{E}j[\log q_j(z_j)] - C'
\end{align*}
$$
这里的$-C'$也是一个常数,我们可以把它重新记作$C$,就得到了针对单个$q_j$的ELBO形式:
$$ELBO(q_j) = \mathbb{E}j\left[\mathbb{E}{-j}\left[\log p(z_j, z
{-j}, x)\right]\right] - \mathbb{E}_j[\log q_j(z_j)] + C$$

补充:为什么要这么拆分?

在Mean Field变分推断的坐标上升法中,我们每次只优化一个$q_j$,固定其他所有$q_{-j}$。因为常数$C$不影响$q_j$的最优解(求导时会消失),所以我们只需要最大化前两项即可,这也是这个分解的实际意义所在。

内容的提问来源于stack exchange,提问作者Zhiya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 07:55:00