对图像生成论文自编码变分贝叶斯Auto-Encoding Variational Bayes原理理解和记录
Abstract
我们如何在有向概率模型中,在具有难以处理的后验分布的连续潜在变量z和大型数据集的存在下,执行有效的推理和学习? 我们介绍了一种随机变分推理和学习算法,它可以扩展到大型数据集,并且在一些温和的可微性条件下工作。 我们的贡献是双重的。 首先,我们证明了变分下界的重新参数化产生了一个下界估计量,可以使用标准随机梯度方法直接优化。 其次,我们表明,对于每个数据点具有连续潜在变量的i.i.d数据集,通过使用所提出的下界估计量将近似推理模型(也称为识别模型)拟合到难以处理的后验,可以使后验推理特别有效。 理论优势体现在实验结果上。
说明了作者的重要贡献,即- 传统的变分推理中,采样会让梯度变得不可导。- VAE 采用了重新参数化:例如把从 z∼N(μ,σ2)采样,转换为 z=μ+σ⋅ϵ,其中 ϵ∼N(0,1)。- 这样做的好处是:我们可以通过反向传播来训练模型,因为梯度可以传进采样过程。
第二项贡献是:**引入了“识别模型”(也称为编码器)来学习近似后验。- 对于每个数据点 x,我们用一个神经网络 q(z∣x)来近似后验 p(z∣x)。- 这个神经网络被称为 识别模型(recognition model) 或 推理网络。- 我们用提出的下界估计量(ELBO)**来训练它。这里可继续参考Introduction的注释解释了为什么传统无法通过反向传播的问题
Introduction
我们如何使用有向概率模型进行有效的近似推理和学习,其连续潜在变量和/或参数具有难以处理的后验分布? 变分贝叶斯(VB)方法涉及到难以处理的后验的近似优化。 不幸的是,一般的平均场方法需要期望的解析解,而不是近似后验,这在一般情况下也是难以处理的。 我们证明了变分下界的再参数化如何得到下界的一个简单的可微无偏估计; 这种SGVB(随机梯度变分贝叶斯)估计器可以用于几乎任何具有连续潜在变量和/或参数的模型的有效近似后验推理,并且使用标准随机梯度上升技术可以直接优化。
针对i.i.d数据集每个数据点连续潜在变量的情况,我们提出了自动编码VB (AEVB)算法。在AEVB算法中,我们通过使用SGVB估计器来优化识别模型,使推理和学习特别有效,该模型允许我们使用简单的祖先采样执行非常有效的近似后验推理,这反过来又允许我们有效地学习模型参数,而不需要昂贵的迭代推理方案(如MCMC)每个数据点。 学习到的近似后验推理模型也可以用于许多任务,如识别、去噪、表示和可视化目的。 当神经网络用于识别模型时,我们就得到了变分自编码器。
原文的描述还是比较生涩的,那么我们简单理解下就是,通常AE:xi→encoder→zi→decoder→xi’→loss(xi,xi’),但是在生成模型中这就存在问题,
- 例如n个x通过编码器可以得到n个z,但是生成图像试图生成新的图像,但是如果z来自于n个z中,解码得到的就会是见过的图像,这不是我们的目的。
- 所以z最好是符合某种分布、规律,就可以从分布中得到z
- 但是AE在训练中并没有约束z可能不规律的,就很难取到新的z生成新的图片
- 所以如果加入一个p(z)~N(0,1)是不是就可以了?难点在于我们无法将x1→z1映射到定义的空间内,z是采样得到的并不一定能和x对应上,难以优化decoder
Method
z~pθ(z|xi)假设后验分布已知,这里面取得的z是从xi的条件概率得到的,所以去优化decoder是可以进行优化的也就是输出x’与xi是关联的⇒将找具体zi转换为找p(z|xi)分布的问题。
变分贝叶斯的具体讲解和公式推导建议阅读我参考中的2和3
- 在高斯分布中找到一个分布最接近真实pθ(z|xi),例如先取出一个qφ(z|xi)希望优化φ,想离目标最近,即可以想到利用KL散度,这种优化手段可以称为变分贝叶斯法⇒最终推导得到最小化KL散度转化为最大化ELBO (logP(xi)=KL+ELBO)因为,logP(xi)是定值。
- ELBO继续推导,最大化ELBO即最小化KL(q(z)||p(z)),目的是编码器q(z|xi)要和真实的后验概率越近越好,推导发现如果要和真实后验概率越近那么就需要和先验概率越近越好,即我们假设的高斯分布
作者思路是pθ(z|xi)得到我们的z,这样更好的优化我们的decoder→利用变分贝叶斯→q(z|xi)找到离真实分布最近的分布→KL散度的方法去找这个最优的分布→推导转换成了一个最大化ELBO的问题→目的encoer的分布q(z|xi)接近真实分布p(z|xi)的分布即尽量的接近先验分布N(0,1)⇒这样我们就可以取到z是和xi对应的z就可以优化我们的decoder
下面就是对原文的一些翻译
2.1 问题描述
我们假设数据是由一些随机过程产生的,涉及一个未观察到的连续随机变量z。该过程包括两个步骤:(1)从某个先验分布pθ∗(z)产生一个值z(i); (2)由某个条件分布pθ∗(x|z)产生一个值x(i)。我们假设先验的pθ∗(z)和似然的pθ∗(x|z)来自分布的参数族pθ(z)和pθ(x|z),并且它们的pdf几乎在任何地方都是可微的。不幸的是,这个过程的许多部分都隐藏在我们的视野之外:真正的参数θ∗以及潜在变量z(i)的值对我们来说是未知的。
为了解决上述问题,我们引入一个识别模型qφ(z|x):它近似于难以处理的真后验pθ(z|x)。 请注意,与平均场变分推理中的近似后验相反,它不一定是阶乘,其参数φ也不是从某种封闭形式的期望中计算出来的。 相反,我们将引入一种与生成模型参数θ一起学习识别模型参数φ的方法。
从编码理论的角度来看,未观察到的变量z具有作为潜在表示或代码的解释。 因此,在本文中,我们也将识别模型qφ(z|x)称为概率编码器,因为给定一个数据点x,它会在代码z的可能值上产生一个分布(例如高斯分布),数据点x可以从中生成。 同样,我们将把pθ(x|z)称为概率解码器,因为给定代码z,它会产生x可能对应值的分布。
2.2The variational bound
变分自编码器(VAE) 论文中关于 边际似然(Marginal Likelihood)
可表示为
第一个RHS项是近似与真实后验的KL散度。 由于这个kl散度是非负的,第二个RHS项L(θ, φ; X (i))称为数据点i的边际似然的(变分)下界,可表示为:
Visualisations
图4:使用AEVB学习的具有二维潜在空间的生成模型的学习数据流形的可视化。 由于潜在空间的先验是高斯的,因此通过高斯的逆CDF变换单位平方上的线性空间坐标以产生潜在变量z的值。对于这些值z,我们绘制了相应的生成pθ(x|z)与学习参数θ。
参考
本文主要以理解原理为主,想了解其核心的数学推导可以通过下面参考内容以及原文一起理解。
1.变分自编码器(一):原来是这么一回事 - 科学空间|Scientific Spaces
2.VAE论文原教旨解读(含公式推导和代码实现) - 知乎
3.一个视频看懂VAE的原理以及关于latent diffusion的思考_哔哩哔哩_bilibili
这篇文章的理论推导部分十分有趣和优美,理解后有一种醍醐灌顶的感觉,后续如果实际应用中再次接触在进一步更深入的理解吧
对图像生成论文自编码变分贝叶斯Auto-Encoding Variational Bayes原理理解,方便后续对其他论文的学习,如有理解不当的地方请见谅。后续有新的体会在更新