Auto-Encoding Variational Bayes

  • 论文地址:https://arxiv.org/abs/1312.6114
  • 来源:CoRR, 2013
  • 作者:Diederik P Kingma, Max Welling
  • 关键词:Variational Bayes, Auto-Encoding, Bayes Inference, Probalistic Model

1. 前言

论文为bayes概率图模型难以求解的问题提供了一种有效的思路,利用auto-encoding方法结合variational lower bound求解bayes图模型隐变量的后验分布。

在推断和学习中,我们可以认为数据是根据某个隐变量生成的 — 可以从数据得到隐变量,也能够根据隐变量得到数据 — 就像一个编码、解码的过程。但是,通常隐变量的分布是未知的、复杂的,难以通过假定一个已知的分布来近似隐变量的真实分布。

简单谈一下个人对隐变量的理解:宽泛的讲,隐变量就像现实背后的某种神秘的、未知的因素,我们所见的现实背后蕴含着这种神秘的因素 — 隐变量,但我们通常是看不到隐变量的,也无法对它进行直接的观测,比如直接描述它是什么、它的形式、它发生的概率等等。但当我们得知隐变量后我们就像获得了某种神奇的力量,知道隐变量发生后现实中会发生什么。从数据的角度来看,隐变量可以是数据背后的“真理” — 特征、数据产生的原因。当我们能够描述隐变量后,我们就能够根据隐变量生成我们想要的数据。这就像一个编码-解码的过程,将原始数据编码为特征,再根据特征产生数据。

在这里插入图片描述

那么问题来了:如何得到隐变量呢?

2. 变分下界

如上图所示,图中实线可以看作生成(即解码)过程 — p θ ( z ) p θ ( x ∣ z ) p_{\theta}(\boldsymbol{z})p_{\theta}(\boldsymbol{x}|\boldsymbol{z}) pθ(z)pθ(xz),虚线可以看作编码过程 — q ϕ ( z ∣ x ) q_{\phi}(\boldsymbol{z}|\boldsymbol{x}) qϕ(zx) θ \theta θ表示真实的分布的参数, ϕ \phi ϕ表示近似ho后验分布的参数 — 该近似分布用于近似真实的后验分布 p θ ( z ∣ x ) p_{\theta}(\boldsymbol{z}|\boldsymbol{x}) pθ(zx)。为了使近似分布 q ϕ ( z ∣ x ) q_{\phi}(\boldsymbol{z}|\boldsymbol{x}) qϕ(zx)和真实分布 p θ ( z ∣ x ) p_{\theta}(\boldsymbol{z}|\boldsymbol{x}) pθ(zx)尽量相同,可以使用KL散度进行衡量。
在这里插入图片描述
由上述公式可得,对于训练数据中的每一个样本有:
log ⁡ p θ ( x ( i ) ) = K L ( q ϕ ( z ∣ x ( i ) ) ∣ ∣ p θ ( z ∣ x ( i ) ) ) + L ( θ , ϕ ; x ( i ) ) \log p_{\theta}(\boldsymbol{x}^{(i)}) = KL(q_{\phi}(\boldsymbol{z}|\boldsymbol{x}^{(i)})||p_{\theta}(\boldsymbol{z}|\boldsymbol{x}^{(i)})) + \mathcal{L}(\theta, \phi; \boldsymbol{x}^{(i)}) logpθ(x(i))=KL(qϕ(zx(i))pθ(zx(i)))+L(θ,ϕ;x(i))
其中,
L ( θ , ϕ ; x ( i ) ) = E q ϕ ( z ∣ x ) [ − log ⁡ q ϕ ( z ∣ x ) + log ⁡ p θ ( z , x ) ] \mathcal{L}(\theta, \phi; \boldsymbol{x}^{(i)}) = E_{q_{\phi}(\boldsymbol{z}|\boldsymbol{x})}[ -\log q_{\phi}(\boldsymbol{z}|\boldsymbol{x}) + \log p_{\theta}(\boldsymbol{z},\boldsymbol{x})] L(θ,ϕ;x(i))=Eqϕ(zx)[logqϕ(zx)+logpθ(z,x)]
因为KL是大于等于零的,那么显然有这样的关系: log ⁡ p θ ( x ( i ) ) ≥ L ( θ , ϕ ; x ( i ) ) \log p_{\theta}(\boldsymbol{x}^{(i)}) \ge \mathcal{L}(\theta, \phi; \boldsymbol{x}^{(i)}) logpθ(x(i))L(θ,ϕ;x(i))。所以 L ( θ , ϕ ; x ( i ) ) \mathcal{L}(\theta, \phi; \boldsymbol{x}^{(i)}) L(θ,ϕ;x(i))又叫做变分下界(variational lower bound)。 log ⁡ p θ ( x ( i ) ) \log p_{\theta}(\boldsymbol{x}^{(i)}) logpθ(x(i))相当于样本的对数似然函数,当给定了数据后,其实 log ⁡ p θ ( x ( i ) ) \log p_{\theta}(\boldsymbol{x}^{(i)}) logpθ(x(i))应该是确定的,那么为了使近似分布尽量接近真实分布,那么则应该让变分下界尽可能的大,这样近似分布就会尽可能地接近真实分布。OKAY!现在问题转化成了最大化 L ( θ , ϕ ; x ( i ) ) \mathcal{L}(\theta, \phi; \boldsymbol{x}^{(i)}) L(θ,ϕ;x(i))了。

那么问题又来了:如何最大化变分下界呢?

经过一顿操作后,变分下界可写为:
L ( θ , ϕ ; x ( i ) ) = − K L ( q ϕ ( z ∣ x ( i ) ) ∣ ∣ p θ ( z ) ) + E q ϕ ( z ∣ x ( i ) ) [ log ⁡ p θ ( x ( i ) ∣ z ) ] \mathcal{L}(\theta, \phi; \boldsymbol{x}^{(i)}) = -KL(q_{\phi}(\boldsymbol{z}|\boldsymbol{x}^{(i)})||p_{\theta}(\boldsymbol{z})) + E_{q_{\phi}(\boldsymbol{z}|\boldsymbol{x}^{(i)})}[\log p_{\theta}(\boldsymbol{x}^{(i)}|\boldsymbol{z})] L(θ,ϕ;x(i))=KL(qϕ(zx(i))pθ(z))+Eqϕ(zx(i))[logpθ(x(i)z)]
其中第一项可以看作正则化项(当增加隐变量的数量时,可以防止过拟合),第二项可以看作重构损失。为了最大化变分下界,可以使用梯度下降的方法,但是上式中变分下界难以计算,且近似分布 q ϕ ( z ∣ x ( i ) ) q_{\phi}(\boldsymbol{z}|\boldsymbol{x}^{(i)}) qϕ(zx(i))是未知的。如果直接使用蒙特卡洛方法计算变分下界,将会带来较大方差。论文中针对这个问题使用了重参数化(reparameterization)来表示隐变量: z ^ = g ϕ ( ϵ , x ) \hat{\boldsymbol{z}} = g_{\phi}(\boldsymbol{\epsilon}, \boldsymbol{x}) z^=gϕ(ϵ,x),其中 ϵ \boldsymbol{\epsilon} ϵ服从于某个分布 p ( ϵ ) p(\boldsymbol{\epsilon}) p(ϵ)。那么问题就转化成了选择合适的函数 g g g和分布 p ( ϵ ) p(\boldsymbol{\epsilon}) p(ϵ)。已知一个函数关于其自变量的后验分布的的蒙特卡洛估计为下式:
E q ϕ ( z ∣ x ( i ) ) [ f ( z ) ] = E p ( ϵ ) [ f ( g ϕ ( ϵ , x ( i ) ) ) ] ≃ 1 L ∑ l = 1 L f ( g ϕ ( ϵ ( l ) , x ( i ) ) ) E_{q_{\phi}(\boldsymbol{z}|\boldsymbol{x}^{(i)})}[f(\boldsymbol{z})] = E_{p(\boldsymbol{\epsilon})}[f(g_{\phi}(\boldsymbol{\epsilon}, \boldsymbol{x}^{(i)} ) ) ] \simeq \frac{1}{L} \sum_{l=1}^{L} f(g_{\phi}(\boldsymbol{\epsilon}^{(l)}, \boldsymbol{x}^{(i)} ) ) Eqϕ(zx(i))[f(z)]=Ep(ϵ)[f(gϕ(ϵ,x(i)))]L1l=1Lf(gϕ(ϵ(l),x(i)))
其中 L L L为对每个数据 x ( i ) \boldsymbol{x}^{(i)} x(i)进行蒙特卡洛采样的次数。那么使用蒙特卡洛估计重参数化后的变分下界,形式为:
L ( θ , ϕ ; x ( i ) ) = 1 L ∑ l = 1 L log ⁡ p θ ( z ( i , l ) , x ( i ) ) − log ⁡ q ϕ ( z ( i , l ) ∣ x ( i ) ) \mathcal{L}(\theta, \phi; \boldsymbol{x}^{(i)}) = \frac{1}{L} \sum_{l=1}^{L} \log p_{\theta}(\boldsymbol{z}^{(i, l)},\boldsymbol{x}^{(i)}) - \log q_{\phi}(\boldsymbol{z}^{(i, l)}|\boldsymbol{x}^{(i)}) L(θ,ϕ;x(i))=L1l=1Llogpθ(z(i,l),x(i))logqϕ(z(i,l)x(i))
其中, z ( i , l ) = g ϕ ( ϵ ( i , l ) , x ( i ) ) , ϵ ( l ) ∼ p ( ϵ ) \boldsymbol{z}^{(i, l)}=g_{\phi}(\boldsymbol{\epsilon}{(i, l)}, \boldsymbol{x}{(i)}), \boldsymbol{\epsilon}^{(l)} \sim p(\boldsymbol{\epsilon}) z(i,l)=gϕ(ϵ(i,l),x(i)),ϵ(l)p(ϵ)。之后便可以使用小批量的随机梯度下降算法优化参数 θ , ϕ \theta, \phi θ,ϕ

关于VAE的tutorial可以参考:Tutorial on Variational Autoencoders。未使用重参数化技巧与使用了重参数化技巧对比如下图所示:
在这里插入图片描述

一些网上的参考资料:

3. 方法解决的问题/优势}

  • 从参数化变分下界,使得能够使用随机梯度下降算法优化参数

4. 方法的局限性/未来方向}

  • 时序模型
  • 具有隐变量的监督学习模型,可用于学习复杂的噪声分布

欢迎访问我的个人博客~~~

猜你喜欢

转载自blog.csdn.net/Miha_Singh/article/details/111874963