Variational Inference with Normalizing Flow

Rezende D., Mohamed S. Variational Inference with Normalizing Flow. ICML, 2015.

VAE的先验分布很重要, 但是后验分布也很重要, 我们常常假设\(q_{\phi}(z|x)\)满足一个高斯分布, 这就大大限制了近似后验分布的逼近的准确性.
这番假设实在是过于强烈了.
本文提出的 normalizing flows的方法可以提高\(q_{\phi}\)的逼近能力.

主要内容

首先, 假设我们得到了\(q_{0}(z_0|x)\)(通过重采样得到\(z\)), 此时我们通过一个可逆函数\(f\), 得到

\[z_1 = f(z_0), \]

\(z_1\)的分布满足:

\[q(z_1) = q(z_0) |\mathrm{det} \nabla_z f^{-1}| = q(z_0) |\mathrm{det} \nabla f|^{-1}. \]

以此类推可得:

\[z_K = f_K \circ \cdots \circ f_2 \circ f_1(z_0), \\ \ln q_K(z_K) = \ln q_0(z_0) - \sum_{k=1}^K \ln |\mathrm{det} \nabla_{z_{k-1}} f_k|. \]

也就是说, 只要我们能计算出Jacobian行列式, 那么后验分布的近似能力就大大提高了.

此时ELBO的负数形式为:

\[\begin{array}{ll} \mathcal{F}(x) &= \mathbb{E}_{q_{\phi}(z|x)}[\ln q_{\phi}(z|x) - \ln p_{\theta}(x,z)] \\ &= \mathbb{E}_{q_{0}(z_0)}[\ln q_{K}(z_K) - \ln p_{\theta}(x,z_K)] \\ &= \mathbb{E}_{q_0(z_0)}[\ln q_0(z_0)] - \mathbb{E}_{q_0(z_0)}[\sum_{k=1}^K\ln |\mathrm{det} \nabla_{z_{k-1}} f_k|] \\ & + \mathbb{E}_{q_0(z_0)} [\ln p_{\theta}(x,z_K)]. \end{array} \]

注:因为最后一项和\(q_K\)无关, 可以由采样直接近似.

一些合适的可逆变换

\[f(z) = z + u h(w^Tz + b), \]

其中\(h\)是一个非线性的激活函数. 则

\[\psi(z) = h'(w^Tz+b)w \\ |\mathrm{det} \nabla_z f| = |1 + u^T \psi(z)|. \]

\[f(z) = z + \beta \cdot h(\alpha, \gamma)(z-z_0), \\ \gamma = |z - z_0|, h(\alpha, \gamma) = 1/ (\alpha + \gamma). \]

此时

\[|\mathrm{det} \nabla_z f| = [1 + \beta h(\alpha, \gamma)]^{d-1}[1+\beta h(\alpha, \gamma) + \beta h'(\alpha, \gamma) \gamma]. \]

其中\(d\)\(z\)的维度.

代码

非官方代码

posted @ 2021-03-26 18:17  馒头and花卷  阅读(459)  评论(0编辑  收藏  举报