变分推断:如何推导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

