张芷铭的个人博客

变分推断通过最大化 ELBO 近似后验分布,分为基于平均场的坐标上升和基于梯度的随机变分推断(SGVI)。

问题设定

推断核心是求解参数后验分布:

$$p(\hat{x}|X)=\int_\theta p(\theta|X)p(\hat{x}|\theta)d\theta$$

变分下界

$$\log p(X)=ELBO+KL(q,p)$$

$$ELBO=L(q)=\int_Zq(Z)\log p(X,Z)dZ-\int_Zq(Z)\log q(Z)dZ$$

最大化 $L(q)$ 等价于最小化 KL 散度。

平均场变分推断

假设 $q(Z)=\prod_{i=1}^Mq_i(Z_i)$,坐标上升求解:

$$q_j(Z_j)=\hat{p}(X,Z_j)=\exp(\mathbb{E}{\prod{i\ne j}q_i}[\log p(X,Z)])$$

局限性:

  • 平均场假设太强
  • 期望中的积分可能无法计算

随机梯度变分推断 (SGVI)

将变分推断转化为优化问题:$\mathop{argmax}_\phi L(\phi)$

Score Function 梯度: $$\nabla_\phi L(\phi)=\mathbb{E}{q\phi}[(\nabla_\phi\log q_\phi)(\log p_\theta(x,z)-\log q_\phi(z))]$$

重参数化技巧:

令 $z=g_\phi(\varepsilon,x)$,$\varepsilon\sim p(\varepsilon)$:

$$\nabla_\phi L(\phi)=\mathbb{E}{p(\varepsilon)}[\nabla_z[\log p\theta(x,z)-\log q_\phi(z)]\nabla_\phi g_\phi(\varepsilon,x)]$$

重参数化降低方差,可通过蒙特卡洛采样估计梯度。

Comments