(VAE)Auto-Encoding Variational Bayes
引用: Kingma D P , Welling M .Auto-Encoding Variational Bayes[C]//International Conference on Learning Representations.Ithaca, NYarXiv.org, 2013.
论文链接: [1312.6114] Auto-Encoding Variational Bayes
代码链接: GitHub - AntixK/PyTorch-VAE: A Collection of Variational Autoencoders (VAE) in PyTorch.
简介
作者引入了一种随机变分推理和学习算法,该算法可以扩展到大型数据集,并且在一些温和的可微性条件下,甚至可以在棘手的情况下工作。在Auto-Encoding variational Bayesian (AEVB) 算法中,通过使用 SGVB (Stochastic Gradient Variational Bayes) 估计器来优化识别模型,从而使推理和学习变得特别高效,该模型允许我们使用简单的ancestra采样执行非常有效的近似后验推理,这反过来又使我们能够有效地学习模型参数,而无需每个数据点昂贵的迭代推理方案(例如 MCMC)。学习到的近似后验推理模型还可用于许多任务,例如识别、去噪、表示和可视化目的。当神经网络用于识别模型时,会得到variational auto-encoder。首先,变分下界的重新参数化会产生一个下界估计器,可以使用标准随机梯度方法直接优化该估计器。其次,对于每个数据点具有连续潜在变量的独立同分布数据集,通过使用提出的下界估计器将近似推理模型(也称为识别模型)拟合到棘手的后验,可以使后验推理特别有效。
Method
VAE可用于为具有连续潜在变量的各种有向图形模型推导下限估计器(随机目标函数)。在这里,将目标限制在常见的情况中,即有一个 i.i.d. 数据集,每个数据点都有潜在变量,并且希望对(全局)参数执行最大似然 (ML) 或最大后验 (MAP) 推理,并对潜在变量进行变分推理。
假设数据是由某个随机过程生成的,涉及一个未观察到的连续随机变量$ z$,过程分为两步:
-
由某个先验分布 p θ ∗ ( z ) p _ { \theta ^ \ast } ( z ) pθ∗(z)生成的值 z ( i ) z^{(i)} z(i)
-
由某个条件分布 p θ ∗ ( x ∣ z ) p _ { \theta ^ \ast } ( x | z ) pθ∗(x∣z)生成的值 x ( i ) x^{(i)} x(i)
假设先验 p θ ∗ ( z ) p _ { \theta ^ \ast } ( z ) pθ∗(z) 和似然 p θ ∗ ( x ∣ z ) p _ { \theta ^ \ast } ( x | z ) pθ∗(x∣z) 来自分布 p θ ( z ) p _ { \theta } ( z ) pθ(z) 和 p θ ( x ∣ z ) p _ { \theta } ( x | z ) pθ(x∣z) 的参数族,并且它们的 PDF 几乎可以在 θ θ θ 和 $z $ 的任何地方微分。不幸的是,这个过程的很多内容都隐藏在我们的视野之外:真正的参数 θ ∗ θ^∗ θ∗ 以及潜在变量 z ( i ) z^{(i)} z(i) 的值对我们来说是未知的。
注意,作者没有对边缘或后验概率做出常见的简化假设。
在本文中,还将识别模型 q ϕ ( z ∣ x ) q _ { \phi } ( z | x ) qϕ(z∣x)称为概率编码器(对棘手的真后验 p θ ( z ∣ x ) p _ { \theta } ( z | x ) pθ(z∣x) 的近似值),因为给定一个数据点 x x x,它会在编码 z z z 的可能值上产生一个分布(例如高斯),从中可以生成数据点 x x x。同样,将 p θ ( x ∣ z ) p _ { \theta } ( x | z ) pθ(x∣z) 称为概率解码器,因为给定编码 z z z 时,它会在可能的 x x x 相应值上生成分布。
边际似然marginal likelihood由单个数据点的边际似然的总和组成,可以被写作:
log p θ ( x ( i ) ) = D K L ( q ϕ ( z ∣ x ( i ) ) ∣ ∣ p θ ( z ∣ x ( i ) ) ) + L ( θ , ϕ ; x ( i ) ) \log p _ { \theta } ( x ^ { ( i ) } ) = D _ { K L } ( q _ { \phi } ( z | x ^ { ( i ) } ) | | p _ { \theta } ( z | x ^ { ( i ) } ) ) + L ( \theta , \phi ; x ^ { ( i ) } ) logpθ(x(i))=DKL(qϕ(z∣x(i))∣∣pθ(z∣x(i)))+L(θ,ϕ;x(i))
第一个 RHS 项是近似值与真实后验值的 K L KL KL 散度。由于这种 K L KL KL 散度是非负的,因此第二个 RHS 项称为数据点 i i i 边际似然的(变分)下界,可以写为:
log p θ ( x ( i ) ) ≥ L ( θ , ϕ ; x ( i ) ) = E q ϕ ( z ∣ x ) [ − log q ϕ ( z ∣ x ) + log p θ ( x , z ) ] \log p _ { \theta } ( x ^ { ( i ) } ) \geq L ( \theta , \phi ; x ^ { ( i ) } ) = E _ { q_\phi ( z | x ) } \left[ - \log q _ { \phi } ( z | x ) + \log p _ { \theta } ( x , z ) \right] logpθ(x(i))≥L(θ,ϕ;x(i))=Eqϕ(z∣x)[−logqϕ(z∣x)+logpθ(x,z)]
L ( θ , ϕ ; x ( i ) ) = − D K L ( q ϕ ( z ∣ x ( i ) ) ∣ ∣ p θ ( z ) ) + E q ϕ ( z ∣ x ( i ) ) [ log p θ ( x ( i ) ∣ z ) ] L ( \theta , \phi ; x ^ { ( i ) } ) = - D _ { K L } ( q _ { \phi } ( z | x ^ { ( i ) } ) | | p _ { \theta } ( z ) ) + E _ { q \phi ( z | x ^ { ( i ) } ) } \left[ \log p _ { \theta } ( x ^ { ( i ) } | z ) \right] L(θ,ϕ;x(i))=−DKL(qϕ(z∣x(i))∣∣pθ(z))+Eqϕ(z∣x(i))[logpθ(x(i)∣z)]
因此,需要对变分参数 φ φ φ 和生成参数 θ θ θ 的下界 L ( θ , ϕ ; x ( i ) ) L ( \theta , \phi ; x ^ { ( i ) } ) L(θ,ϕ;x(i)) 进行微分和优化。
在某些温和条件下,对于选定的近似后验 q ϕ ( z ∣ x ( i ) ) q _ { \phi } ( z | x ^ { ( i ) } ) qϕ(z∣x(i)),可以使用(辅助)噪声变量的可微变换 g ϕ ( ϵ , x ) g _ { \phi } ( \epsilon , x ) gϕ(ϵ,x) 重新参数化随机变量 $\tilde { z } \sim q _ { \phi } ( z | x ) $。选择适当分布 p ( ϵ ) p(\epsilon) p(ϵ) 和函数 g ϕ ( ϵ , x ) g _ { \phi } ( \epsilon , x ) gϕ(ϵ,x) ,可以对某个函数 f ( z ) f(z) f(z) w.r.t. q ϕ ( z ∣ x ) q _ { \phi } ( z | x ) qϕ(z∣x) 的期望值进行蒙特卡罗估计,如下所示:
E q ϕ ( z ∣ x ( i ) ) [ f ( z ) ] = E p ( ϵ ) [ f ( g ϕ ( ϵ , x ( i ) ) ) ] ≃ 1 L ∑ l = 1 L f ( g ϕ ( ϵ ( l ) , x ( i ) ) ) w h e r e ϵ ( l ) ∼ p ( ϵ ) E _ { q _ { \phi } ( z | x ^ { ( i ) } ) } \left[ f ( z ) \right] = E _ { p ( \epsilon ) } \left[ f ( g _ { \phi } ( \epsilon , x ^ { ( i ) } ) ) \right] \simeq \frac { 1 } { L } \sum _ { l = 1 } ^ { L } f ( g _ { \phi } ( \epsilon ^ { ( l ) } , x ^ { ( i ) } ) ) \quad w h e r e \quad \epsilon ^ { ( l ) } \sim p ( \epsilon ) Eqϕ(z∣x(i))[f(z)]=Ep(ϵ)[f(gϕ(ϵ,x(i)))]≃L1l=1∑Lf(gϕ(ϵ(l),x(i)))whereϵ(l)∼p(ϵ)
将此技术应用于变分下界,得到通用的随机梯度变分贝叶斯 (SGVB) 估计器:
L ~ A ( θ , ϕ ; x ( i ) ) = 1 L ∑ l = 1 L log p θ ( x ( i ) , z ( i , l ) ) − log q ϕ ( z ( i , l ) ∣ x ( i ) ) \tilde { L } ^ { A } ( \theta , \phi ; x ^ { ( i ) } ) = \frac { 1 } { L } \sum _ { l = 1 } ^ { L } \log p _ { \theta } ( x ^ { ( i ) } , z ^ { ( i , l ) } ) - \log q _ { \phi } ( z ^ { ( i , l ) } | x ^ { ( i ) } ) L~A(θ,ϕ;x(i))=L1l=1∑Llogpθ(x(i),z(i,l))−logqϕ(z(i,l)∣x(i))
w h e r e z ( i , l ) = g ϕ ( ϵ ( i , l ) , x ( i ) ) a n d ϵ ( l ) ∼ p ( ϵ ) w h e r e \quad z ^ { ( i , l ) } = g _ { \phi } ( \epsilon ^ { ( i , l ) } , x ^ { ( i ) } ) \quad a n d \quad \epsilon ^ { ( l ) } \sim p ( \epsilon ) wherez(i,l)=gϕ(ϵ(i,l),x(i))andϵ(l)∼p(ϵ)
通常, K L KL KL 散度可以解析积分,因此只有重构误差期望需要通过抽样进行估计。然后, K L KL KL 散度项可以解释为正则化,鼓励近似后验接近先前的 p θ ( z ) p_θ(z) pθ(z) 。给定来自具有 N N N 个数据点的数据集 X X X 的多个数据点,可以基于小批量构建一个完整数据集的边际似然下限的估计器:
L ( θ , ϕ ; X ) ≃ L ~ M ( θ , ϕ ; X M ) = N M ∑ i = 1 M L ~ ( θ , ϕ ; x ( i ) ) L ( \theta , \phi ; X ) \simeq \tilde { L } ^ { M } ( \theta , \phi ; X ^ { M } ) = \frac { N } { M } \sum _ { i = 1 } ^ { M } \tilde { L } ( \theta , \phi ; x ^ { ( i ) } ) L(θ,ϕ;X)≃L~M(θ,ϕ;XM)=MNi=1∑ML~(θ,ϕ;x(i))
在实验中发现,只要小批量大小 M M M 足够大,例如 M = 100 M = 100 M=100,每个数据点的样本数 L L L 就可以设置为 1 1 1。
目标函数第一项是(近似后验与前一项的KL散度)作为正则化器,而第二项是预期的负重建误差。选择函数 g φ ( . ) g_φ(.) gφ(.) 将数据点 x ( i ) x^{(i)} x(i) 和随机噪声向量 ϵ ( l ) \epsilon ^{(l)} ϵ(l) 映射到该数据点的近似后验样本: z ( i , l ) = g ϕ ( ϵ ( l ) , x ( i ) ) w h e r e z ( i , l ) ∼ q ϕ ( z ∣ x ( i ) ) z ^ { ( i , l ) } = g _ { \phi } ( \epsilon ^ { ( l ) } , x ^ { ( i ) } ) \quad w h e r e \quad z ^ { ( i , l ) } \sim q _ { \phi } ( z | x ^ { ( i ) } ) z(i,l)=gϕ(ϵ(l),x(i))wherez(i,l)∼qϕ(z∣x(i)) 。随后,样本 z ( i , l ) z ^ { ( i , l ) } z(i,l) 被输入到函数 $\log p _ { \theta } ( x ^ { ( i ) } | z ^ { ( i , l ) } ) $,它等于给定 z ( i , l ) z ^ { ( i , l ) } z(i,l) 的生成模型下数据点 x ( i ) x^{(i)} x(i) 的概率密度(或质量)。
基本的参数化技巧非常简单。设 z z z 为连续随机变量, q ϕ ( z ∣ x ) q _ { \phi } ( z | x ) qϕ(z∣x) 为某种条件分布。然后,通常可以将随机变量 z z z 表示为确定性变量 z = g ϕ ( ϵ , x ) z = g_\phi(\epsilon, x) z=gϕ(ϵ,x) ,其中 ϵ \epsilon ϵ 是具有独立边际 p ( ϵ ) p(\epsilon) p(ϵ) 的辅助变量,$g_\phi(.) $ 是一些由 φ φ φ 参数化的向量值函数。这种重新参数化很有用,因为它可用于重写期望值 w.r.t q ϕ ( z ∣ x ) q _ { \phi } ( z | x ) qϕ(z∣x),使期望值的蒙特卡洛估计值可微分w.r.t φ φ φ。证明如下:
C o n s i d e r z = g ϕ ( ϵ , x ) a n d d z = ∏ i d z i Consider \quad z = g_\phi ( \epsilon , x ) \quad and \quad d z = \prod _ { i } d z _ { i } Considerz=gϕ(ϵ,x)anddz=i∏dzi
q ϕ ( z ∣ x ) ∏ i d z i = p ( ϵ ) ∏ i d ϵ i q _ { \phi } ( z | x ) \prod _ { i } d z _ { i } = p ( \epsilon ) \prod _ { i } d \epsilon _ { i } qϕ(z∣x)i∏dzi=p(ϵ)i∏dϵi
∫ q ϕ ( z ∣ x ) f ( z ) d z = ∫ p ( ϵ ) f ( z ) d ϵ = ∫ p ( ϵ ) f ( g ϕ ( ϵ , x ) ) d ϵ \int q _ { \phi } ( z | x ) f ( z ) d z = \int p ( \epsilon ) f ( z ) d \epsilon = \int p ( \epsilon ) f ( g _ { \phi } ( \epsilon , x ) ) d \epsilon ∫qϕ(z∣x)f(z)dz=∫p(ϵ)f(z)dϵ=∫p(ϵ)f(gϕ(ϵ,x))dϵ
∫ q ϕ ( z ∣ x ) f ( z ) d z ≈ 1 L ∑ l = 1 L f ( g ϕ ( x , ϵ ( l ) ) ) w h e r e ϵ ( l ) ∼ p ( ϵ ) \int q _ { \phi } ( z | x ) f ( z ) d z \approx \frac { 1 } { L } \sum _ { l = 1 } ^ { L } f ( g _ { \phi } ( x , \epsilon ^ { ( l ) } ) ) \quad where \quad \epsilon ^ { ( l ) } \sim p ( \epsilon ) ∫qϕ(z∣x)f(z)dz≈L1l=1∑Lf(gϕ(x,ϵ(l)))whereϵ(l)∼p(ϵ)
选择这样的可微变换 g ϕ ( . ) g_\phi(.) gϕ(.) 和辅助变量 ϵ ∼ p ( ϵ ) \epsilon \sim p ( \epsilon ) ϵ∼p(ϵ) 的三种基本方法是:
- 易于处理的反向 CDF。设 ϵ ∼ U ( 0 , I ) \epsilon \sim U(0, I) ϵ∼U(0,I) ,设 g ϕ ( ϵ , x ) g_\phi(\epsilon, x) gϕ(ϵ,x) 为 q ϕ ( z ∣ x ) q _ { \phi } ( z | x ) qϕ(z∣x) 的逆 CDF。如指数分布、Cauchy分布、Logistic分布、Rayleigh分布、Pareto分布、Weibull分布、Reciprocal分布、Gompertz分布、Gumbel分布和Erlang分布。
- 与高斯示例类似,对于任何“location-scale”分布族,可以选择标准分布(location = 0,scale = 1)作为辅助变量 ϵ \epsilon ϵ ,并让 g ( . ) = l o c a t i o n + s c a l e × ϵ g(.) = location + scale × \epsilon g(.)=location+scale×ϵ 。如:拉普拉斯分布、椭圆分布、Student’s t,分布、逻辑分布、均匀分布、三角分布和高斯分布。
- 组成:通常可以将随机变量表示为辅助变量的不同变换。示例:对数正态分布(正态分布变量的幂)、Gamma(指数分布变量的总和)、狄利克雷(Gamma 变量的加权和)、Beta、卡方和 F 分布。
实验结果