变分推断通过最大化 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