(VAE)Auto-Encoding Variational Bayes

文章介绍了变分自编码器(VAE)的Auto-EncodingVariationalBayes(AEVB)算法,一种利用随机梯度变分贝叶斯(StochasticGradientVariationalBayes)进行高效推理和学习的方法。它通过近似的后验推理和连续潜在变量处理大型数据集,且在优化过程中包含正则化效果,被广泛应用于识别、去噪和可视化等任务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(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$,过程分为两步:

  1. 由某个先验分布 p θ ∗ ( z ) p _ { \theta ^ \ast } ( z ) pθ(z)生成的值 z ( i ) z^{(i)} z(i)

  2. 由某个条件分布 p θ ∗ ( x ∣ z ) p _ { \theta ^ \ast } ( x | z ) pθ(xz)生成的值 x ( i ) x^{(i)} x(i)

假设先验 p θ ∗ ( z ) p _ { \theta ^ \ast } ( z ) pθ(z) 和似然 p θ ∗ ( x ∣ z ) p _ { \theta ^ \ast } ( x | z ) pθ(xz) 来自分布 p θ ( z ) p _ { \theta } ( z ) pθ(z) p θ ( x ∣ z ) p _ { \theta } ( x | z ) pθ(xz) 的参数族,并且它们的 PDF 几乎可以在 θ θ θ 和 $z $ 的任何地方微分。不幸的是,这个过程的很多内容都隐藏在我们的视野之外:真正的参数 θ ∗ θ^∗ θ 以及潜在变量 z ( i ) z^{(i)} z(i) 的值对我们来说是未知的。

注意,作者没有对边缘或后验概率做出常见的简化假设。

在本文中,还将识别模型 q ϕ ( z ∣ x ) q _ { \phi } ( z | x ) qϕ(zx)称为概率编码器(对棘手的真后验 p θ ( z ∣ x ) p _ { \theta } ( z | x ) pθ(zx) 的近似值),因为给定一个数据点 x x x,它会在编码 z z z 的可能值上产生一个分布(例如高斯),从中可以生成数据点 x x x。同样,将 p θ ( x ∣ z ) p _ { \theta } ( x | z ) pθ(xz) 称为概率解码器,因为给定编码 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ϕ(zx(i))∣∣pθ(zx(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ϕ(zx)[logqϕ(zx)+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ϕ(zx(i))∣∣pθ(z))+E(zx(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ϕ(zx(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ϕ(zx) 的期望值进行蒙特卡罗估计,如下所示:

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ϕ(zx(i))[f(z)]=Ep(ϵ)[f(gϕ(ϵ,x(i)))]L1l=1Lf(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=1Llogpθ(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=1ML~(θ,ϕ;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ϕ(zx(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ϕ(zx) 为某种条件分布。然后,通常可以将随机变量 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ϕ(zx),使期望值的蒙特卡洛估计值可微分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=idzi

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ϕ(zx)idzi=p(ϵ)idϵ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ϕ(zx)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ϕ(zx)f(z)dzL1l=1Lf(gϕ(x,ϵ(l)))whereϵ(l)p(ϵ)

选择这样的可微变换 g ϕ ( . ) g_\phi(.) gϕ(.) 和辅助变量 ϵ ∼ p ( ϵ ) \epsilon \sim p ( \epsilon ) ϵp(ϵ) 的三种基本方法是:

  1. 易于处理的反向 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ϕ(zx) 的逆 CDF。如指数分布、Cauchy分布、Logistic分布、Rayleigh分布、Pareto分布、Weibull分布、Reciprocal分布、Gompertz分布、Gumbel分布和Erlang分布。
  2. 与高斯示例类似,对于任何“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,分布、逻辑分布、均匀分布、三角分布和高斯分布。
  3. 组成:通常可以将随机变量表示为辅助变量的不同变换。示例:对数正态分布(正态分布变量的幂)、Gamma(指数分布变量的总和)、狄利克雷(Gamma 变量的加权和)、Beta、卡方和 F 分布。

实验结果

在这里插入图片描述
在这里插入图片描述

### 变分信息瓶颈(VIB)在回归任务中的应用 变分信息瓶颈(VIB)是一种用于机器学习的方法,旨在通过控制模型复杂度来提高泛化能力。对于回归任务而言,VIB同样适用,并且能够有效防止过拟合现象的发生。 #### VIB理论基础 VIB的核心理念是在保持数据集特征X与目标Y之间关系的同时减少不必要的冗余信息。具体来说,在处理回归问题时,VIB试图寻找一个最优的隐含表示T,使得这个表示既包含了足够的关于响应变量y的信息又不会过分依赖于特定样本x的具体细节[^1]。 #### 应用到回归场景下 当应用于回归分析中时,VIB可以通过调整编码器网络参数θ以及解码器(即预测函数)f_ϕ(x; θ),使得到达如下两个目的: - **最大化互信息I(T,Y)**:确保隐藏层学到有用的模式而不是噪声; 这意味着要让隐藏状态t尽可能多地携带有关真实值y的知识。 - **最小化互信息I(X,T)**:降低输入向量x对中间抽象层次的影响程度 即限制从原始观测值得到的内部表征的数量级,以此达到简化模型结构的效果。 为了实现上述目标,通常会构建损失函数L作为两部分之和——重构误差E(y,f(t))加上正则项β⋅I(X,T)[^4]。其中前者衡量了输出预测值f(t)同实际测量结果y间的差距大小;后者则是用来惩罚那些过度复杂的映射方式,从而促使算法倾向于选择更简单有效的解决方案路径。 ```python import torch.nn.functional as F def loss_function(recon_x, x, mu, logvar): BCE = F.mse_loss(recon_x, x.view(-1, 784), reduction='sum') # see Appendix B from VAE paper: # Kingma and Welling. Auto-Encoding Variational Bayes. ICLR, 2014 # https://arxiv.org/abs/1312.6114 KLD = -0.5 * torch.sum(1 + logvar - mu.pow(2) - logvar.exp()) return BCE + beta*KLD ``` 此代码片段展示了如何定义一个结合均方差(MSE)重建错误和KL散度(Kullback-Leibler divergence)作为正则化的损失函数。这里的`beta`系数决定了两者之间的权衡比例。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

煌澄艾

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值