Variational Inference with Normalizing Flow

2023-05-26,,

目录

主要内容
一些合适的可逆变换
代码

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\)的维度.

代码

非官方代码

Variational Inference with Normalizing Flow的相关教程结束。

《Variational Inference with Normalizing Flow.doc》

下载本文的Word格式文档,以方便收藏与打印。