Understanding Diffusion Models: A Unified Perspective翻译和公式补充解读

“Understanding Diffusion Models: A Unified Perspective”是一篇写的非常好的扩散模型DDPM数学原理解读文章,这里翻译了一遍,对于一些细节补充记录一下,方便对照原文更好的理解。

这篇文章作者是Calvin Luo,来自Google Research的Brain Team,详细介绍了生成模型(Generative Models)的背景知识,包括证据下界(Evidence Lower Bound, ELBO)、变分自编码器(Variational Autoencoders, VAEs)以及层级变分自编码器(Hierarchical Variational Autoencoders, HVAEs)等概念。接着,深入探讨了变分扩散模型(Variational Diffusion Models)的学习、噪声参数的学习,以及三种等效的解释。此外,还讨论了基于分数的生成模型(Score-based Generative Models),以及分类器引导(Classifier Guidance)和无分类器引导(Classifier-Free Guidance)等技术。

1.引言:生成模型

生成模型的目标是从观测到的样本 x x x中学习其真实的数据分布 p ( x ) p(x) p(x)。一旦学习完成,我们可以随意从近似模型中生成新的样本。此外,在某些场景下,我们还能够使用学习到的模型来评估观测或采样数据的可能性。

当前文献中有几种主流的方向,我们仅在高层次上简要介绍。生成对抗网络(GANs)以对抗方式学习复杂分布的采样过程。另一类被称为“基于似然”的生成模型,寻求学习一个模型,为观测数据样本分配高似然。这包括自回归模型、归一化流和变分自编码器(VAEs)。另一种类似的方法是能量建模,其中分布被学习为任意灵活的能量函数,然后进行归一化。

基于分数的生成模型与之高度相关;它们不是学习建模能量函数本身,而是将能量模型的分数学习为神经网络。在这项工作中,我们探索并回顾了扩散模型,正如我们将展示的,它们既有基于似然的解释,也有基于分数的解释。我们尽可能详细地展示了这些模型背后的数学,目的是让任何人都能够理解扩散模型是什么以及它们的工作原理。

2.背景:ELBO、VAE和层级VAE

对于许多模态,我们可以将我们观察到的数据视为由相关但不可见的潜在变量表示或生成,我们可以将这个随机变量表示为z。表达这个想法的最佳直觉是通过柏拉图的洞穴寓言。在寓言中,一群人一生都被锁在一个洞穴里,只能看到前方墙上投下的二维影子,这些影子是由火前经过的不可见三维物体产生的。对于这些人来说,他们观察到的一切都是由他们永远无法看到的高维抽象概念决定的。

类似地,我们在现实世界中遇到的对象也可能是由某些更高层次的表示生成的;例如,这些表示可能封装了颜色、大小、形状等抽象属性。然后,我们观察到的可以被解释为这些抽象概念的三维投影或实例化,就像洞穴人观察到的是三维物体的二维投影一样。虽然洞穴人永远看不到(甚至完全理解不了)隐藏的物体,他们仍然可以推理并推断出它们的存在;同样,我们可以近似潜在表示,描述我们观察到的数据

柏拉图的洞穴寓言阐述了潜在变量作为可能不可观测的表征,这些表征决定了观测结果。然而,这个类比的一个警告是,在生成建模中,我们通常寻求学习的是低维度的潜在表征,而不是高维度的。这是因为尝试学习比观测结果更高维度的表征,如果没有强有力的先验知识,将是一种徒劳的努力。另一方面,学习低维度的潜在表征也可以被视为一种压缩形式,并且可能揭示出描述观测结果的语义上有意义的结构。

2.1证据下界(Evidence Lower Bound)

数学上,我们可以想象潜在变量和我们观察到的数据由联合分布 p ( x , z ) p(x, z) p(x,z)建模。回想一下,称为“基于似然”的生成建模方法是学习一个模型来最大化所有观测到的x的似然 p ( x ) p(x) p(x)。我们可以以两种方式操纵这个联合分布来恢复我们纯粹观测数据的似然 p ( x ) p(x) p(x);我们可以显式地边缘化潜在变量 z z z

p ( x ) = ∫ p ( x , z ) d z p(\boldsymbol{x})=\int p(\boldsymbol{x},\boldsymbol z)d\boldsymbol{z} p(x)=p(x,z)dz (1)

或者,我们也可以求助于概率的链式法则:

p ( x ) = p ( x , z ) p ( z ∣ x ) p(\boldsymbol{x})=\frac{p(\boldsymbol{x},\boldsymbol{z})}{p(\boldsymbol{z}|\boldsymbol{x})} p(x)=p(zx)p(x,z) (2)

直接计算和最大化似然 p ( x ) p(x) p(x)是困难的,因为它要么涉及在方程1中积分出所有潜在变量 z z z,这对于复杂模型来说是不可解的,或者它涉及访问真实潜在编码器 p ( z ∣ x ) p(z|x) p(zx)的访问。然而,使用这两个方程,我们可以推导出一个称为证据下界(ELBO)的项,顾名思义,它是证据的下界。在这种情况下,证据被量化为观测数据的对数似然。然后,最大化ELBO成为了优化潜在变量模型的代理目标;在最好的情况下,当ELBO被强有力地参数化并完美优化时,它变得与证据完全等价。ELBO的方程是:

E q ϕ ( z ∣ x ) [ log ⁡ p ( x , z ) q ϕ ( z ∣ x ) ] \mathbb{E}_{q_\phi(\boldsymbol{z}|\boldsymbol{x})}\left[\log\frac{p(\boldsymbol{x},\boldsymbol{z})}{q_\phi(\boldsymbol{z}|\boldsymbol{x})}\right] Eqϕ(zx)[logqϕ(zx)p(x,z)] (3)

为了使与证据的关系明确,我们可以数学上写出:

log ⁡ p ( x ) ≥ E q ϕ ( z ∣ x ) [ log ⁡ p ( x , z ) q ϕ ( z ∣ x ) ] \log p(\boldsymbol{x})\geq\mathbb{E}_{q_\phi(\boldsymbol{z}|\boldsymbol{x})}\left[\log\frac{p(\boldsymbol{x},\boldsymbol{z})}{q_\phi(\boldsymbol{z}|\boldsymbol{x})}\right] logp(x)Eqϕ(zx)[logqϕ(zx)p(x,z)] (4)

这里, q ϕ ( z ∣ x ) q_{\boldsymbol{\phi}}(\boldsymbol{z}|\boldsymbol{x}) qϕ(zx)是一个灵活的近似变分分布,其参数$\phi 我们寻求优化。直观地说,它可以被认为是一个可学习的参数化模型,用于估计给定观测 我们寻求优化。直观地说,它可以被认为是一个可学习的参数化模型,用于估计给定观测 我们寻求优化。直观地说,它可以被认为是一个可学习的参数化模型,用于估计给定观测x 的潜在变量的真实分布;换句话说,它寻求近似真实的后验 的潜在变量的真实分布;换句话说,它寻求近似真实的后验 的潜在变量的真实分布;换句话说,它寻求近似真实的后验p(z|x) 。当我们通过调整参数 。当我们通过调整参数 。当我们通过调整参数\phi $​来增加下界以最大化ELBO时,我们获得了可以用来建模真实数据分布并从中采样的组件,从而学习了一个生成模型。现在,让我们尝试更深入地了解为什么我们希望最大化ELBO。

变分分布:变分分布是变分推断中用于近似复杂后验分布的简化模型。它通过优化一个参数化的分布族来最好地捕捉原始分布的关键特征,通常选择易于计算且足够灵活的分布作为变分分布族,并通过最小化与真实后验分布的KL散度来调整参数。这种方法使得在计算上不可行的复杂概率分布推断变得可行。

我们首先使用公式 1 推导 ELBO:

image-20240409102053555

(6)->(7)解释:将对随机变量的积分转换为对其概率分布的期望值,意味着我们不是直接计算随机变量在所有可能取值上的积分,而是计算这个随机变量按照其概率分布取值时的平均值。这种转换是基于期望值的定义,即一个随机变量的期望值是它所有可能取值的概率加权和。具体来说,假设我们有一个随机变量 X X X 和一个概率分布 p ( x ) p(x) p(x),那么 X X X的期望值 E [ X ] E[X] E[X]定义为: E [ X ] = ∫ x p ( x ) d x E[X]=\int xp(x)dx E[X]=xp(x)dx。在变分推断中,由于直接计算(5)这个积分可能非常复杂,因此利用期望的性质来简化问题。期望的性质允许我们将对随机变量的积分转换为对其概率分布的期望值。

(7)->(8)解释:Jensen不等式是一个凸函数性质的结果,对于任意凸函数 f f f和概率分布 P P P,以下不等式成立: log ⁡ E P [ X ] ≥ E P [ log ⁡ X ] \log\mathbb{E}_P[X]\geq\mathbb{E}_P[\log X] logEP[X]EP[logX]

在这个推导过程中,我们通过应用詹森不等式直接得到了我们的下界。然而,这并没有给我们提供太多有关背后实际发生的事情的有用信息;关键的是,这个证明并没有给出为什么ELBO实际上是证据的一个下界的直觉,因为詹森不等式把它轻描淡写了。此外,仅仅知道ELBO是数据的一个真正的下界,并不足以告诉我们为什么我们想要将其最大化作为一个目标。为了更好地理解证据和ELBO之间的关系,让我们再次进行推导,这次使用方程2。

image-20240409103055469

(15)解释:KL散度也称为相对熵(Relative Entropy),是衡量两个概率分布差异的一种方法。它是两个概率分布 P P P Q Q Q之间的非对称距离度量,定义为: D K L ( P ∣ ∣ Q ) = ∑ x P ( x ) log ⁡ ( P ( x ) Q ( x ) ) D_{KL}(P||Q)=\sum_xP(x)\log\left(\frac{P(x)}{Q(x)}\right) DKL(P∣∣Q)=xP(x)log(Q(x)P(x)),其中, P P P 是数据的真实分布,而 Q Q Q 是模型或估计分布。KL散度的值总是非负的,当且仅当 P P P Q Q Q 完全相同时,KL散度为零。

从这个推导中,我们可以清楚地从方程15观察到,证据等于ELBO加上近似后验分布 q ϕ ( z ∣ x ) q_{\boldsymbol{\phi}}(\boldsymbol{z}|x) qϕ(zx)和真实后验分布 p ( z ∣ x ) p(\boldsymbol{z}|\boldsymbol x) p(zx)之间的KL散度。实际上,正是这个KL散度项在第一次推导的方程8中被詹森不等式神奇地消除了。理解这个项是理解ELBO与证据之间的关键,以及为什么优化ELBO是一个合适的目标的关键。

首先,我们现在知道为什么 ELBO 确实是一个下界:证据和 ELBO 之间的差异是严格非负 KL 项,因此 ELBO 的值永远不会超过证据。

image-20240409103846855

图 1:以图形方式表示的变分自动编码器。这里,编码器 q ( z ∣ x ) q(z|x) q(zx) 定义了观测值 x x x 的潜在变量 z z z 的分布,并且 p ( x ∣ z ) p(x|z) p(xz) 将潜在变量解码为观测值。

其次,我们探讨为什么我们要寻求最大化ELBO。在我们引入了想要建模的潜在变量 z z z之后,我们的目标是学习描述我们观测数据的潜在结构。换句话说,我们想要优化变分后验 q ϕ ( z ∣ x ) q_{\phi}(\boldsymbol{z}|\boldsymbol{x}) qϕ(zx)的参数,以便它能精确匹配真实的后验分布 p ( z ∣ x ) p(\boldsymbol{z}|\boldsymbol x) p(zx),这是通过最小化KL散度(理想情况下为零)来实现的。不幸的是,直接最小化KL散度项是非常困难的,因为我们没有真实分布 p ( z ∣ x ) p(\boldsymbol{z}|\boldsymbol x) p(zx) 的访问权限。

然而,请注意,在方程15的左侧,我们的数据的似然性(我们的证据项 log ⁡ p ( x ) \log p(\boldsymbol{x}) logp(x))对于 ϕ \phi ϕ来说始终是一个常数,因为它是通过从联合分布 p ( x , z ) p(\boldsymbol{x}, \boldsymbol{z}) p(x,z)中边缘化所有潜在变量 z \boldsymbol{z} z 来计算的,而且它不依赖于 ϕ \phi ϕ。由于ELBO和KL散度项的总和是一个常数,任何对ELBO项关于 ϕ \phi ϕ 的最大化必然会导致KL散度项的同等最小化。

因此,ELBO可以被最大化,作为学习如何完美建模真实潜在后验分布的一个代理目标;我们对ELBO的优化越多,我们的近似后验就越接近真实的后验。此外,一旦模型训练完成,ELBO还可以用于估计观测到的或生成的数据的似然性,因为它被训练来近似模型的证据 log ⁡ p ( x ) \log p(\boldsymbol{x}) logp(x)

2.2 变分自动编码器(Variational Autoencoders)

在变分自编码器(VAE)的默认公式中,我们直接最大化ELBO。这种方法是变分的,因为我们在由 ϕ \phi ϕ参数化的一系列潜在后验分布中优化以找到最佳的 q ϕ ( z ∣ x ) q_{\phi}(\boldsymbol{z}|\boldsymbol{x}) qϕ(zx)。它被称为自编码器,因为它让人想起了传统的自编码器模型,在这种模型中,输入数据经过一个中间的瓶颈表示步骤后被训练来预测自身。为了明确这种联系,让我们进一步剖析ELBO项:

image-20240409104822931

在这种情况下,我们学习了一个中间瓶颈分布 q ϕ ( z ∣ x ) q_\phi(z|x) qϕ(zx),它可以被视为一个编码器;它将输入转换为可能的潜在变量的分布。同时,我们学习了一个确定性函数 p θ ( x ∣ z ) p_\theta(x|z) pθ(xz)来将给定的潜在向量 z z z 转换成观测值 x x x,这可以被解释为一个解码器

方程19中的两个项各自有直观的描述:第一项衡量了解码器从我们的变化分布中重构的可能性;这确保了学习到的分布是模拟有效的潜在变量,原始数据可以从中再生。第二项衡量了学习到的变化分布与对潜在变量持有的先验信念的相似度。最小化这个项鼓励编码器实际学习一个分布,而不是塌陷成一个狄拉克 δ δ δ函数。

因此,最大化ELBO(证据下界)相当于最大化其第一项并最小化其第二项。

变分自编码器(VAE)的一个决定性特征是它如何联合地对参数 ϕ \phi ϕ θ \theta θ进行ELBO(证据下界)优化。VAE的编码器通常被选择来对角线协方差矩阵的多变量高斯分布进行建模,而先验通常被选择为标准的多变量高斯分布:

image-20240409123528891

然后,ELBO中的KL散度项可以被解析地计算出来,重构项可以使用蒙特卡洛估计来近似。我们的目标随后可以被重写为:

image-20240409124056281

(22)解释:为了优化这个目标函数,我们通常需要计算它的梯度,并使用反向传播算法进行参数更新。然而,直接计算ELBO的期望项可能涉及到对随机变量的期望,这在计算上是不可行的。为了解决这个问题,我们可以使用蒙特卡洛近似来估计期望。从 q ϕ ( z ∣ x ) q_{\phi}(z|x) qϕ(zx)中采样多个潜在变量 { z ( l ) } l = 1 L \{z^{(l)}\}_{l=1}^{L} {z(l)}l=1L,然后计算这些样本的平均值作为期望的近似。这样,原始的ELBO可以被近似为: ≈ 1 L ∑ l = 1 L [ log ⁡ p θ ( x ∣ z ( l ) ) − D K L ( q ϕ ( z ∣ x ) ∥ p ( z ) ) ] \approx\frac{1}{L}\sum_{l=1}^{L}\left[\log p_{\theta}(x|z^{(l)})-D_{\mathrm{KL}}(q_{\phi}(z|x)\parallel p(z))\right] L1l=1L[logpθ(xz(l))DKL(qϕ(zx)p(z))]

需要注意的是,这个近似假设了 q ϕ ( z ∣ x ) q_{\phi}(z|x) qϕ(zx)可以被重参数化,这是使用蒙特卡洛方法的前提。对于多变量高斯分布,由于其闭合形式的性质,可以通过改变随机变量的表示来实现重参数化,从而使得这个近似成立。

在这个设置中,潜在变量 { z ( l ) } l = 1 L \{z^{(l)}\}_{l=1}^{L} {z(l)}l=1L从编码器分布 q ϕ ( z ∣ x ) q_\phi(z|x) qϕ(zx)中采样,对于数据集中的每个观测值 x x x 都是如此。然而,在这个默认设置中出现了一个问题:每次计算损失函数时所使用的每个 z ( l ) z^{(l)} z(l)都是通过一个随机采样过程生成的,这个过程通常是不可微的。 幸运的是,当 q ϕ ( z ∣ x ) q_\phi(z|x) qϕ(zx)被设计为模拟某些特定分布时,包括多变量高斯分布,这个问题可以通过重参数化技巧来解决。重参数化技巧允许我们对随机采样过程进行变换,使其成为一个可微分的操作,从而可以使用标准的反向传播算法来优化模型参数。这样,即使原始的采样过程是不可微的,我们也可以通过这种技巧来有效地训练VAE模型。

重参数化技巧将随机变量改写为一个噪声变量的确定性函数,这允许通过梯度下降法优化非随机项。例如,来自正态分布 x ∼ N ( x ; μ , σ 2 ) x \sim \mathcal{N}(x; \mu, \sigma^2) xN(x;μ,σ2) 的样本,其中 μ \mu μ是任意均值, σ 2 \sigma^2 σ2 是方差,可以被改写为:

image-20240409125347751

在这里, ϵ \epsilon ϵ是一个标准正态分布 ϵ ∼ N ( 0 , 1 ) \epsilon \sim \mathcal{N}(0, 1) ϵN(0,1)的随机变量,而 f ( ϵ ) f(\epsilon) f(ϵ)是一个确定性函数,它依赖于 ϵ \epsilon ϵ但不是随机的。通过这种方式,原始的随机采样过程 x x x被转换成了一个参数化的确定性过程,其中 μ \mu μ σ \sigma σ成为了可优化的参数。这种改写的关键之处在于,它使得 x x x 的分布依赖于 μ \mu μ σ \sigma σ,而这两个参数可以通过梯度下降法进行优化。这是因为 f ( ϵ ) f(\epsilon) f(ϵ) ϵ \epsilon ϵ的确定性函数,所以 x x x关于 μ \mu μ σ \sigma σ的导数可以被计算出来,从而可以使用反向传播算法来更新这些参数。在变分自编码器(VAE)的上下文中,这种技巧特别有用,因为它允许我们对编码器 q ϕ ( z ∣ x ) q_\phi(z|x) qϕ(zx)和解码器 p θ ( x ∣ z ) p_\theta(x|z) pθ(xz)的参数进行优化,即使原始的采样过程是不可微分的。通过这种方式,我们可以有效地训练VAE模型,同时保持其生成的数据与真实数据的相似性,并且能够通过调整模型参数来控制生成数据的多样性。

解释:重参数化技巧

重参数化技巧是机器学习和深度学习中用于处理随机梯度问题的一种方法。在许多模型中,特别是在生成模型如变分自编码器(VAE)中,我们经常需要从概率分布中采样,而这些采样操作本身是随机的,不可导的。这就意味着我们不能直接通过这些随机采样来计算梯度,并用它们来更新模型参数。

为了解决这个问题,重参数化技巧通过引入一个新的随机变量,并将其作为一个噪声变量来重新表达原始的随机采样。这个新的表达式是原始随机变量的一个确定性函数,这意味着它完全依赖于模型参数和一个新的独立的随机变量。这样,我们就可以通过这个新的随机变量来计算原始随机变量的期望值,而这个期望值是可导的,因为它不再依赖于模型参数的随机选择。具体来说,假设我们有一个随机变量 Z Z Z,它是通过从某个分布 P ( Z ) P(Z) P(Z)中采样得到的。在没有重参数化技巧的情况下,我们不能直接对 Z Z Z进行梯度下降优化。但是,如果我们能够找到一种方法,使得 Z Z Z可以被表达为一个确定性函数 g g g和一个独立的随机变量 ϵ \epsilon ϵ的组合,即 Z = g ( ϵ ; θ ) Z = g(\epsilon; \theta) Z=g(ϵ;θ),其中 θ \theta θ 是模型参数,那么我们就可以使用 ϵ \epsilon ϵ来计算 Z Z Z的期望值,并通过 ϵ \epsilon ϵ的分布来计算梯度。这种方法的关键优势在于,尽管 Z Z Z本身是随机的,但 g ( ϵ ; θ ) g(\epsilon; \theta) g(ϵ;θ) 是确定性的,并且可以通过 ϵ \epsilon ϵ来计算梯度。因此,我们可以使用标准的梯度下降算法来优化模型参数 θ \theta θ,即使整个表达式涉及到随机变量。

在VAE的情况下,重参数化技巧允许我们将编码器输出的随机潜在变量 Z Z Z其他 重写为一个关于模型参数 ϕ \phi ϕ的确定性函数,同时依赖于一个独立的随机变量。这样,我们就可以通过梯度下降来优化编码器和解码器的参数,同时保持生成的数据与真实数据的相似性。

换句话说,任意的高斯分布可以被解释为标准高斯分布(其中 ϵ \epsilon ϵ是一个样本),其均值从零移动到目标均值 μ \mu μ 通过加法实现,其方差通过目标方差 σ 2 \sigma^2 σ2 进行伸缩。因此,通过重参数化技巧,从任意高斯分布中采样可以通过从标准高斯分布中采样,将结果按目标标准差进行缩放,并通过目标均值进行偏移来实现。

在变分自编码器(VAE)中,每个潜在变量 z z z因此可以被计算为输入 x x x和辅助噪声变量 ϵ \epsilon ϵ的确定性函数。这个过程通常涉及以下步骤:

image-20240409133343484

在这个重参数化的 z z z版本下,可以计算相对于 ϕ \phi ϕ的梯度,以期望优化 μ ϕ \mu_\phi μϕ σ ϕ \sigma_\phi σϕ。因此,变分自编码器(VAE)利用重参数化技巧和蒙特卡洛估计来联合优化 ϕ \phi ϕ θ \theta θ上的证据下界(ELBO)。其中,符号 ⊙ \odot 表示逐元素乘积。

训练 VAE 后,可以通过直接从潜在空间 p ( z ) p(z) p(z) 采样然后通过解码器运行来生成新数据。当 z z z 的维度小于输入 x x x 的维度时,变分自动编码器特别有趣,因为我们可能会学习紧凑、有用的表示。此外,当学习到语义上有意义的潜在空间时,可以在将潜在向量传递到解码器之前对其进行编辑,以更精确地控制生成的数据。

2.3 分层变分自动编码器(Hierarchical Variational Autoencoders)

分层变分自动编码器 (HVAE) 是 VAE 的推广,可扩展到潜在变量的多个层次结构。根据公式,潜在变量本身被解释为从其他更高级别、更抽象的潜在变量生成。直观上,就像我们将三维观察对象视为从更高层次的抽象潜在对象生成一样,柏拉图洞穴中的人们将三维对象视为生成二维观察的潜在对象。因此,从柏拉图的洞穴居民的角度来看,他们的观察可以被视为由深度为二(或更多)的潜在层次结构建模。

image-20240409135240552

图 2:具有 T 个分层潜在变量的马尔可夫分层变分自动编码器。生成过程被建模为马尔可夫链,其中每个潜在 z t z_t zt 仅从前一个潜在 z t + 1 z_{t+1} zt+1 生成。

与具有T层层次结构的一般分层变分自编码器(HVAE)不同,在一般HVAE中,每个潜在变量都被允许基于所有先前的潜在变量进行条件化;在本研究中,我们关注的是一个特殊情况,我们称之为马尔可夫分层变分自编码器(MHVAE)。在MHVAE中,生成过程是一个马尔可夫链;也就是说,层次结构中的每个转换都是马尔可夫的,其中解码每个潜在变量 z t z_t zt仅基于前一个潜在变量 z t + 1 z_{t+1} zt+1进行条件化。直观上和视觉上,这可以被看作是简单地将变分自编码器(VAEs)堆叠在一起,如图2所示;描述这个模型的另一个恰当术语是递归变分自编码器(Recursive VAE)。数学上,我们表示马尔可夫分层变分自编码器的联合分布和后验分布为:

image-20240409135400573

然后,我们可以轻松地将 ELBO 扩展为:

image-20240409135601955

然后,我们可以将联合分布(方程 23)和后验分布(方程 24)代入方程 28,以产生另一种形式:

image-20240409135643912

正如我们将在下面展示的,当我们研究变分扩散模型时,这个目标可以进一步分解为可解释的组件。

3变分扩散模型(Variational Diffusion Models)

image-20240409140757363

图 3:变分扩散模型的直观表示; x 0 x_0 x0 表示真实的数据观察,例如自然图像, x T x_T xT 表示纯高斯噪声, x t x_t xt x 0 x_0 x0 的中间噪声版本。每个 q ( x t ∣ x t − 1 ) q(x_t|x_{t−1}) q(xtxt1) 都被建模为高斯分布,该分布使用前一个状态的输出作为其平均值。

变分扩散模型(VDM)最简单的理解方式就是将其视为一个具有三个关键限制的马尔可夫分层变分自编码器(MHVAE):

  • 潜在维度完全等于数据维度。
  • 每个时间步骤的潜在编码器的结构不是学习得来的;它被预定义为一个线性高斯模型。换句话说,它是一个以前一个时间步骤的输出为中心的高斯分布。
  • 潜在编码器的高斯参数随时间变化,以这样的方式,最终时间步骤T的潜在分布是一个标准高斯分布。

此外,我们明确保持了标准马尔可夫分层变分自编码器之间的马尔可夫属性。 让我们进一步阐述这些假设的含义。根据第一个限制,有些滥用符号的情况下,我们现在可以将真实数据样本和潜在变量表示为 x t x_t xt,其中 t = 0 t = 0 t=0 代表真实数据样本, t ∈ [ 1 , T ] t\in[1,T] t[1,T]代表对应于层次结构中索引为 t t t 的潜在变量。VDM 的后验与 MHVAE 的后验相同(参见公式 24),但现在可以重写为:

image-20240409141309324

根据第二个假设,我们知道编码器中的每个潜在变量的分布是一个以它之前的层次潜在变量为中心的高斯分布。与马尔可夫分层变分自编码器(HVAE)不同,每个时间步骤 t t t 的编码器结构不是通过学习得来的;它被固定为一个线性高斯模型,其中均值和标准差可以事先设定为超参数,或者作为参数进行学习。我们用均值 μ t ( x t ) = α t x t − 1 \boldsymbol{\mu}_t(\boldsymbol{x}_t)=\sqrt{\alpha_t}\boldsymbol{x}_{t-1} μt(xt)=αt xt1和方差 Σ t ( x t ) = ( 1 − α t ) I ! \boldsymbol{\Sigma}_{t}(\boldsymbol{x}_{t})=(1-\alpha_{t})\overset{!}{\mathbf{I}} Σt(xt)=(1αt)I!来参数化高斯编码器,其中系数的形式被选择为使得潜在变量的方差保持在相似的尺度上;换句话说,编码过程是保持方差的。请注意,允许使用其他的高斯参数化方法,并且可以得到类似的推导结果。主要的观点是, α t \alpha_t αt 是一个(可能可学习的)系数,可以根据层次深度 t 进行变化,以增加灵活性。数学上,编码器的转换表示为:

image-20240409141555347

根据第三个假设,我们知道系数 α t \alpha_t αt会根据一个固定的或可学习的计划随时间演变,这个计划的结构是这样的,最终潜在变量的分布 p ( x T ) p(x_T) p(xT) 是一个标准高斯分布。然后,我们可以更新马尔可夫分层变分自编码器(MHVAE)的联合分布(公式 23),以写出变分扩散模型(VDM)的联合分布:

image-20240409141737076

总的来说,这套假设描述的是对图像输入随时间逐渐增加噪声的过程;我们通过添加高斯噪声逐步破坏图像,直到最终它变得与纯高斯噪声完全相同。从视觉上看,这个过程在图3中被描绘出来。

请注意,我们的编码器分布 q ( x t ∣ x t − 1 ) q(\mathbf{x}_t|\mathbf{x}_{t-1}) q(xtxt1)已经不再由 ϕ \phi ϕ 参数化,因为它们完全被建模为在每个时间步骤具有确定的均值和方差参数的高斯分布。因此,在变分扩散模型(VDM)中,我们只对学习条件分布 p θ ( x t − 1 ∣ x t ) p_\theta(\mathbf{x}_{t-1}|\mathbf{x}_t) pθ(xt1xt) 感兴趣,这样我们就可以模拟新的数据。在优化了VDM之后,采样过程就像从 p ( x T ) p(\mathbf{x}_T) p(xT) 中采样高斯噪声,然后迭代地运行去噪转换 p θ ( x t − 1 ∣ x t ) p_\theta(\mathbf{x}_{t-1}|\mathbf{x}_t) pθ(xt1xt)进行 T 步,以生成一个新的 x 0 \mathbf{x}_0 x0。 像任何分层变分自编码器(HVAE)一样,VDM可以通过最大化证据下界(ELBO)来进行优化,它可以被推导为:

image-20240409142111440image-20240409142130923

解释:

(34):边缘分布的概念

(35):分子分母同乘以一个量,值不变

(36):期望的定义

(37):Jessen不等式

(38)-(42):就是各种数学化简,没啥可说的

(42)-(43):求和的期望(期望对求和的操作)与期望的求和(求和对期望的操作)在数学上是相等的。这是由于期望的线性属性所保证的。

(43)-(44):根据表达式中的下标,对下标具体化

(44)-(45):这里解释其中第二项 E q ( x T − 1 , x T ∣ x 0 ) [ log ⁡ p ( x T ) q ( x T ∣ x T − 1 ) ] = − E q ( x T − 1 ∣ x 0 ) [ D K L ( q ( x T ∣ x T − 1 ) ∥ p ( x T ) ) ] \mathbb{E}_{q(\boldsymbol{x}_{T-1},\boldsymbol{x}_T|\boldsymbol{x}_0)}\left[\log\frac{p(\boldsymbol{x}_T)}{q(\boldsymbol{x}_T|\boldsymbol{x}_{T-1})}\right] = -\mathbb{E}_{q(\boldsymbol{x}_{T-1}|\boldsymbol{x}_{0})}\left[D_{\mathrm{KL}}(q(\boldsymbol{x}_{T}|\boldsymbol{x}_{T-1})\parallel p(\boldsymbol{x}_{T}))\right] Eq(xT1,xTx0)[logq(xTxT1)p(xT)]=Eq(xT1x0)[DKL(q(xTxT1)p(xT))],第三项同理,期望是在 q ( x T − 1 , x T ∣ x 0 ) q(\boldsymbol{x}_{T-1},\boldsymbol{x}_T|\boldsymbol{x}_0) q(xT1,xTx0)这个联合分布下计算的,意味着考虑了 x T − 1 \boldsymbol{x}_{T-1} xT1 x T \boldsymbol{x}_T xT的所有可能的组合。而 − E q ( x T − 1 ∣ x 0 ) [ D K L ( q ( x T ∣ x T − 1 ) ∥ p ( x T ) ) ] -\mathbb{E}_{q(\boldsymbol{x}_{T-1}|\boldsymbol{x}_0)}\left[D_{\mathrm{KL}}(q(\boldsymbol{x}_T|\boldsymbol{x}_{T-1})\parallel p(\boldsymbol{x}_T))\right] Eq(xT1x0)[DKL(q(xTxT1)p(xT))]是首先对 x T − 1 \boldsymbol{x}_{T-1} xT1求期望,然后计算给定 x T − 1 \boldsymbol{x}_{T-1} xT1时, x T \boldsymbol{x}_T xT的分布 q ( x T ∣ x T − 1 ) q(\boldsymbol{x}_{T}|\boldsymbol{x}_{T-1}) q(xTxT1)与其先验 p ( x T ) p(\boldsymbol{x}_{T}) p(xT)之间的KL散度的负值。这两个表达式等价的原因如下:

  1. 期望的性质:由于KL散度内部本身就是一个对数期望形式,这个期望的外部和内部可以合并,这是因为期望的计算是线性的,可以跨越概率分布的边界。
  2. KL散度的定义:上述的KL散度定义直接对应于你的第一个表达式的内部。KL散度衡量的是在特定条件下,两个分布的相对熵。

所以,当从 q ( x T − 1 , x T ∣ x 0 ) q(\boldsymbol{x}_{T-1},\boldsymbol{x}_T|\boldsymbol{x}_0) q(xT1,xTx0)这个条件分布计算期望时,实际上是在遍历所有 x T − 1 \boldsymbol{x}_{T-1} xT1 x T \boldsymbol{x}_T xT的组合,并评估 q ( x T ∣ x T − 1 ) q(\boldsymbol{x}_T|\boldsymbol{x}_{T-1}) q(xTxT1) p ( x T ) p(\boldsymbol{x}_T) p(xT)之间的相对熵。当你把这个过程表示为KL散度,并注意到KL散度本身就是期望的形式时,两边就能够匹配上,并通过将KL散度的定义带入,完成从左侧到右侧的转换。

最后三行公式是对变分扩散模型(VDM)中的证据下界(ELBO)进行分解和解释的过程。ELBO是变分推断中的一个重要概念,用于衡量模型对数据的拟合程度。ELBO被分解为三个主要部分:重构项(reconstruction term)、先验匹配项(prior matching term)和一致性项(consistency term)。下面是对这些步骤的解释:

  1. 重构项 E q ( x 1 ∣ x 0 ) [ log ⁡ p θ ( x 0 ∣ x 1 ) ] \mathbb{E}_{q(\boldsymbol{x}_{1}|\boldsymbol{x}_{0})}\left[\log p_{\boldsymbol{\theta}}(\boldsymbol{x}_{0}|\boldsymbol{x}_{1})\right] Eq(x1x0)[logpθ(x0x1)]这一项计算的是给定第一步潜在变量 x 1 \boldsymbol{x}_1 x1时,原始数据 x 0 \boldsymbol{x}_0 x0的对数概率的期望。这一项反映了模型重构数据的能力,与普通VAE中的重构项类似。
  2. 先验匹配项 E q ( x T − 1 ∣ x 0 ) [ log ⁡ p ( x T ) q ( x T ∣ x T − 1 ) ] \mathbb{E}_{q(\boldsymbol{x}_{T-1}|\boldsymbol{x}_{0})}\left[\log\frac{p(\boldsymbol{x}_{T})}{q(\boldsymbol{x}_{T}|\boldsymbol{x}_{T-1})}\right] Eq(xT1x0)[logq(xTxT1)p(xT)]这一项计算的是最终潜在变量 x T \boldsymbol{x}_T xT 的分布与高斯先验分布之间的对数比。当最终潜在变量的分布在所有步骤后与高斯先验分布匹配时,这一项的值最小。
  3. 一致性项 ∑ t = 1 T − 1 E q ( x t − 1 , x t , x t + 1 ∣ x 0 ) [ log ⁡ p θ ( x t ∣ x t + 1 ) q ( x t ∣ x t − 1 ) ] \sum_{t=1}^{T-1}\mathbb{E}_{q(\boldsymbol{x}_{t-1},\boldsymbol{x}_t,\boldsymbol{x}_{t+1}|\boldsymbol{x}_0)}\left[\log\frac{p_{\boldsymbol{\theta}}(\boldsymbol{x}_t|\boldsymbol{x}_{t+1})}{q(\boldsymbol{x}_t|\boldsymbol{x}_{t-1})}\right] t=1T1Eq(xt1,xt,xt+1x0)[logq(xtxt1)pθ(xtxt+1)]这一项是一系列KL散度的和,它衡量的是在每个中间步骤中,由后向前生成的潜在变量 x t \boldsymbol{x}_t xt 的分布与由前向后生成的潜在变量 x t \boldsymbol{x}_t xt 的分布之间的差异。一致性项确保了正向过程(从数据到潜在变量)和反向过程(从潜在变量到数据)在每个中间步骤中是一致的。

这些项的和构成了VDM的ELBO,它是优化过程中的目标函数。通过最大化ELBO,我们可以调整模型参数 θ \boldsymbol{\theta} θ 来提高模型对数据的拟合程度,同时确保生成过程的一致性。这个过程涉及到对联合分布和条件分布的积分进行计算,通常需要使用蒙特卡洛估计和重参数化技巧来近似这些期望值。通过这种方式,我们可以有效地训练VDM模型,使其能够生成与训练数据相似的新样本。

image-20240409145823071图 4:根据第一个推导,变分扩散模型(VDM)可以通过确保对于每一个中间潜在变量 x t x_t xt,来自上层潜在变量的后验分布 p θ ( x t ∣ x t + 1 ) p_\theta(x_t|x_{t+1}) pθ(xtxt+1)与来自下层潜在变量的高斯噪声破坏的分布 q ( x t ∣ x t − 1 ) q(x_t|x_{t-1}) q(xtxt1)相匹配来优化。在这个图中,对于每一个中间潜在变量 x t x_t xt,最小化由粉色和绿色箭头所表示的分布之间的差异。

从视觉上看,ELBO的这种解释在图 4 中被描绘出来。优化一个变分扩散模型(VDM)的成本主要由第三项主导,因为我们必须要在所有时间步骤 t t t 上进行优化。 根据这个推导,ELBO的所有项都是作为期望值计算的,因此可以使用蒙特卡洛估计来进行近似。然而,使用刚刚推导出的项来实际优化ELBO可能是次优的;因为一致性项是作为两个随机变量 { x t − 1 , x t + 1 } \{\boldsymbol{x}_{t-1},\boldsymbol{x}_{t+1}\} {xt1,xt+1}的期望值来计算的,对于每个时间步骤,其蒙特卡洛估计的方差可能比使用每个时间步骤仅一个随机变量估计的项更高。由于它是通过累加 T − 1 T-1 T1 个一致性项来计算的,对于大的 T T T 值,ELBO的最终估计值可能会有很高的方差。 让我们尝试推导出一个ELBO的形式,其中每个项都是作为一次只对一个随机变量的期望值来计算的。关键的洞察是我们可以将编码器的转换重写为 q ( x t ∣ x t − 1 ) = q ( x t ∣ x t − 1 , x 0 ) q(x_t|x_{t-1}) = q(x_t|x_{t−1},x_0) q(xtxt1)=q(xtxt1,x0),其中额外的条件化项由于马尔可夫性质而变得多余。然后,根据贝叶斯规则,我们可以将每个转换重写为:

解释一下:原先推导出来一致性项是作为两个随机变量 { x t − 1 , x t + 1 } \{\boldsymbol{x}_{t-1},\boldsymbol{x}_{t+1}\} {xt1,xt+1}的期望值来计算的。当使用蒙特卡洛方法来近似这个期望值时,通常是通过从这些随机变量的分布中采样来进行的。由于每次采样都是独立的,当同时对两个随机变量进行采样时,这些采样点的组合将形成一个联合分布,其方差可能会比单个随机变量的方差更大。

在蒙特卡洛估计中,方差是衡量估计值稳定性的一个指标。高方差意味着估计值在不同的采样下会有较大的波动,这可能导致优化过程中的不稳定性。在VDM的情况下,由于一致性项是通过累加 T − 1 T-1 T1 个这样的KL散度项来计算的,如果 T T T很大,那么最终的ELBO估计值的方差可能会非常高,这会影响优化算法的性能和收敛速度。

为了解决这个问题,我们可以尝试推导出一个新的ELBO形式,其中每个项都是作为仅对一个随机变量的期望值来计算的。这样做可以降低蒙特卡洛估计的方差,从而提高优化过程的稳定性和效率。通过这种方式,我们可以更准确地估计ELBO,并更有效地优化模型参数。

image-20240409150955226

有了这个新方程,可以重试从方程 37 中的 ELBO 恢复的推导:

image-20240409151403305image-20240409151419813

因此,我们成功地推导出了一种ELBO的解释,其估计具有较低的方差,因为每个项都是作为最多一次一个随机变量的期望值来计算的。这种表述还具有一个优雅的解释,当检查每个单独的项时可以揭示出来:

  1. \mathbb{E}{q(x_1|x_0)}[\log p\theta(x_0|x_1)] 可以被解释为一个重构项;就像在普通VAE的ELBO中的类似项一样,这个项可以使用蒙特卡洛估计来近似和优化。
  2. D_{\text{KL}}(q(x_T|x_0) \parallel p(x_T)) 表示最终噪声输入的分布与标准高斯先验的接近程度。它没有可训练的参数,并且在我们的假设下也等于零。
  3. E q ( x t ∣ x 0 ) [ D KL ( q ( x t − 1 ∣ x t , x 0 ) ∥ p θ ( x t − 1 ∣ x t ) ) ] \mathbb{E}_{q(x_t|x_0)} [D_{\text{KL}}(q(x_{t-1}|x_t, x_0) \parallel p_\theta(x_{t-1}|x_t))] Eq(xtx0)[DKL(q(xt1xt,x0)pθ(xt1xt))]是一个去噪匹配项。我们学习期望的去噪转换步骤 p θ ( x t − 1 ∣ x t ) p_\theta(x_{t-1}|x_t) pθ(xt1xt)作为可行的、真实的去噪转换步骤 q ( x t − 1 ∣ x t , x 0 ) q(x_{t-1}|x_t, x_0) q(xt1xt,x0)的近似。由于 q ( x t − 1 ∣ x t , x 0 ) q(x_{t-1}|x_t, x_0) q(xt1xt,x0)转换步骤定义了如何使用对最终完全去噪图像 x 0 x_0 x0的了解来去噪一个噪声图像 x t x_t xt,因此它可以作为一个真实的信号。因此,当两个去噪步骤尽可能接近匹配时,这个项被最小化,通过它们的KL散度来衡量。

作为一个旁注,人们观察到在两个ELBO推导过程中(公式 45 和公式 58),只使用了马尔可夫假设;因此,这些公式对于任何任意的马尔可夫HVAE都是成立的。此外,当我们设置 T = 1 T = 1 T=1 时,VDM的两个ELBO解释完全重现了普通VAE的ELBO方程,如公式 19 所写。

在这个ELBO的推导中,优化成本的大部分再次在于求和项,它支配了重构项。虽然在任意复杂的马尔可夫HVAE中,每个KL散度项 D KL ( q ( x t − 1 ∣ x t , x 0 ) ∥ p θ ( x t − 1 ∣ x t ) ) D_{\text{KL}}(q(x_{t-1}|x_t, x_0) \parallel p_\theta(x_{t-1}|x_t)) DKL(q(xt1xt,x0)pθ(xt1xt))对于任意后验来说都是难以最小化的,因为同时学习编码器的复杂性增加了,在VDM中我们可以利用高斯转换假设来使优化变得可行。根据贝叶斯规则,我们有:

q ( x t − 1 ∣ x t , x 0 ) = q ( x t ∣ x t − 1 , x 0 ) q ( x t − 1 ∣ x 0 ) q ( x t ∣ x 0 ) q(\boldsymbol{x}_{t-1}|\boldsymbol{x}_t,\boldsymbol{x}_0)=\frac{q(\boldsymbol{x}_t|\boldsymbol{x}_{t-1},\boldsymbol{x}_0)q(\boldsymbol{x}_{t-1}|\boldsymbol{x}_0)}{q(\boldsymbol{x}_t|\boldsymbol{x}_0)} q(xt1xt,x0)=q(xtx0)q(xtxt1,x0)q(xt1x0)

由于我们已经知道根据我们关于编码器转换的假设(公式 31), q ( x t ∣ x t − 1 , x 0 ) = q ( x t ∣ x t − 1 ) = N ( x t ; α t x t − 1 , ( 1 − α t ) I ) q(\boldsymbol{x}_t|\boldsymbol{x}_{t-1},\boldsymbol{x}_0)=q(\boldsymbol{x}_t|\boldsymbol{x}_{t-1})=\mathcal{N}(\boldsymbol{x}_t;\sqrt{\alpha_t}\boldsymbol{x}_{t-1},(1-\alpha_t)\mathbf{I}) q(xtxt1,x0)=q(xtxt1)=N(xt;αt xt1,(1αt)I),剩下的就是推导出 q ( x t ∣ x 0 ) q(x_t|x_0) q(xtx0) q ( x t − 1 ∣ x 0 ) q(x_{t-1}|x_0) q(xt1x0)的形式。 幸运的是,通过利用变分扩散模型(VDM)的编码器转换是线性高斯模型这一事实,这些也可以变得可行。回想一下,在重参数化技巧下,样本 x t ∼ q ( x t ∣ x t − 1 ) x_t \sim q(x_t|x_{t-1}) xtq(xtxt1)可以被重写为:

image-20240409152447784

类似地,采样 x t − 1 ∼ q ( x t − 1 ∣ x t − 2 ) \boldsymbol{x}_{t-1}\sim q(\boldsymbol{x}_{t-1}|\boldsymbol{x}_{t-2}) xt1q(xt1xt2)可以重写为:

image-20240409152621533

image-20240409152717633

图 5:展示的是一种替代的、方差更低的方法来优化变分扩散模型(VDM);我们使用贝叶斯规则计算真实的去噪步骤 q ( x t − 1 ∣ x t , x 0 ) q(x_{t-1}|x_t, x_0) q(xt1xt,x0)的形式,并最小化它与我们的近似去噪步骤 p θ ( x t − 1 ∣ x t ) p_\theta(x_{t-1}|x_t) pθ(xt1xt)之间的KL散度。这再次通过匹配绿色箭头和粉色箭头所代表的分布来视觉上表示。在完整图中,每个粉色箭头也必须源自 x 0 x_0 x0,因为它也是一个条件项。

然后,通过重复应用重参数化技巧,可以递归地推导出 q ( x t ∣ x 0 ) q(x_t|x_0) q(xtx0) 的形式。假设我们可以获得 2 T 2T 2T个随机噪声变量 { ϵ t ∗ , ϵ t } t = 0 T \{\epsilon^*_t, \epsilon_t\}_{t=0}^T {ϵt,ϵt}t=0T,它们独立同分布(iid)于标准正态分布 ϵ ∼ N ( 0 , I ) \epsilon \sim \mathcal{N}(0, I) ϵN(0,I)。那么,对于任意样本 x t ∼ q ( x t ∣ x 0 ) x_t \sim q(x_t|x_0) xtq(xtx0),我们可以将其重写为:

image-20240409153237116

在公式 64 中,利用了两个独立的高斯随机变量之和仍然是一个高斯分布这一事实,其均值为两个均值之和,方差为两个方差之和。将 1 − α t ϵ t − 1 ∗ \sqrt{1-\alpha_{t}}\epsilon_{t-1}^{*} 1αt ϵt1解释为来自高斯分布 N ( 0 , ( 1 − α t ) I ) \mathcal{N}(0, (1 - \alpha_t)I) N(0,(1αt)I)的样本,将 解 α t − α t α t − 1 ϵ t − 2 ∗ \sqrt{\alpha_{t}-\alpha_{t}\alpha_{t-1}}\epsilon_{t-2}^{*} αtαtαt1 ϵt2释为来自高斯分布 的样本,那么我们就可以将它们的和视为从高斯分布 N ( 0 , ( α t − α t α t − 1 ) I ) \mathcal{N}(\mathbf{0},(\alpha_{t}-\alpha_{t}\alpha_{t-1})\mathbf{I}) N(0,(αtαtαt1)I)中采样的随机变量。来自这个分布的样本随后可以使用重参数化技巧表示为 1 − α t α t − 1 ϵ t − 2 \sqrt{1-\alpha_{t}\alpha_{t-1}}\epsilon_{t-2} 1αtαt1 ϵt2,如公式 66 所示。

因此,我们已经推导出了 q ( x t ∣ x 0 ) q(x_t|x_0) q(xtx0) 的高斯形式。这个推导可以被修改以产生描述 q ( x t − 1 ∣ x 0 ) q(x_{t-1}|x_0) q(xt1x0)的高斯参数化。现在,知道了 q ( x t ∣ x 0 ) q(x_t|x_0) q(xtx0) q ( x t − 1 ∣ x 0 ) q(x_{t-1}|x_0) q(xt1x0)的形式,我们可以通过代入贝叶斯规则展开来计算 q ( x t − 1 ∣ x t , x 0 ) q(x_{t-1}|x_t, x_0) q(xt1xt,x0)的形式:

image-20240409154415692

image-20240409154508380

在公式 75 中, C ( x t , x 0 ) C(x_t, x_0) C(xt,x0) 是一个关于 x t − 1 x_{t-1} xt1 的常数项,它是 x t x_t xt x 0 x_0 x0 α \alpha α 值的组合计算得到的;这个项在公式 84 中被隐含地返回,以完成平方的计算。 因此,我们已经展示了在每一步中, x t − 1 ∼ q ( x t − 1 ∣ x t , x 0 ) x_{t-1} \sim q(x_{t-1}|x_t, x_0) xt1q(xt1xt,x0)都是正态分布的,其均值 μ q ( x t , x 0 ) \mu_q(x_t, x_0) μq(xt,x0) x t x_t xt x 0 x_0 x0的函数,方差 Σ q ( t ) \Sigma_q(t) Σq(t) α \alpha α 系数的函数。这些 α \alpha α 系数在每个时间步骤是已知的和固定的;它们要么被永久设置为超参数,要么被视为一个网络的当前推断输出,该网络旨在对它们进行建模。根据公式 84,我们可以将我们的方差方程重写为 Σ q ( t ) = σ q 2 ( t ) \Sigma_q(t) = \sigma_q^2 (t) Σq(t)=σq2(t),其中:

image-20240409155911855

为了尽可能紧密地将近似的去噪转换步骤 p_\theta(x_{t-1}|x_t)与真实的去噪转换步骤 q ( x t − 1 ∣ x t , x 0 ) q(x_{t-1}|x_t, x_0) q(xt1xt,x0)匹配起来,我们也可以将其建模为一个高斯分布。此外,由于所有的 α \alpha α 项在每个时间步骤都是已知且固定的,我们可以立即构建近似去噪转换步骤的方差也为 Σ q ( t ) = σ q 2 ( t ) \Sigma_q(t) = \sigma_q^2 (t) Σq(t)=σq2(t)。然而,我们必须将其均值 μ θ ( x t , t ) \mu_\theta(x_t, t) μθ(xt,t) 参数化为 x t x_t xt 的函数,因为 p θ ( x t − 1 ∣ x t ) p_\theta(x_{t-1}|x_t) pθ(xt1xt)不依赖于 x 0 x_0 x0

回想一下,两个高斯分布之间的 KL 散度为:

image-20240409160150991

在我们的例子中,可以将两个高斯的方差设置为完全匹配,优化 KL 散度项可以减少两个分布均值之间的差异:

image-20240409160312985

这里,我们用 μ q \mu_q μq 作为 μ q ( x t , x 0 ) \mu_q(x_t, x_0) μq(xt,x0)的简写,用 μ θ \mu_\theta μθ作为 μ θ ( x t , t ) \mu_\theta(x_t, t) μθ(xt,t)的简写,以便表述。换句话说,我们想要优化一个 μ θ ( x t , t ) \mu_\theta(x_t, t) μθ(xt,t)来匹配 μ q ( x t , x 0 ) \mu_q(x_t, x_0) μq(xt,x0),根据我们推导出的公式 84,它的形式是:

image-20240409160800333

由于 μ θ ( x t , t ) \mu_\theta(x_t, t) μθ(xt,t) 也依赖于 x t x_t xt,我们可以通过将其设置为以下形式来紧密匹配 μ q ( x t , x 0 ) \mu_q(x_t, x_0) μq(xt,x0)

image-20240409160943135

其中 x ^ θ ( x t , t ) \hat{x}_\theta(x_t, t) x^θ(xt,t)由一个神经网络参数化,该网络旨在从噪声图像 x_t和时间索引 t t t预测 x 0 x_0 x0。然后,优化问题简化为:

image-20240409161124986

因此,优化变分扩散模型(VDM)归结于学习一个神经网络,以从其任意噪声版本预测原始的真实图像。此外,通过最小化我们推导出的ELBO目标(公式 58)中所有噪声水平的求和项,可以通过最小化所有时间步骤的期望来近似:

image-20240409161317582

然后可以使用随时间步长的随机样本进行优化。

3.1 Learning Diffusion Noise Parameters

下面探究如何联合学习VDM(变分下采样模型)的噪声参数。一种潜在的方法是使用神经网络 α ^ η ( t ) \hat{\alpha}_{\eta}(t) α^η(t)来对参数 α t \alpha_t αt进行建模,其中 η \eta η为网络参数。然而,这样做效率较低,因为在每个时间步 t t t都需要进行多次推理以计算 α ˉ t \bar{\alpha}_t αˉt。 尽管通过缓存可以缓解这种计算成本,我们还可以推导出另一种学习扩散噪声参数的方法。通过将方程 85 中的方差方程代入我们推导出的每个时间步的目标方程 99 中,我们可以简化:

image-20240410084516269

回想方程 70,q(\mathbf{x}_t|\mathbf{x}_0) 是一个高斯分布,形式为 N ( x t ; α ˉ t x 0 , ( 1 − α ˉ t ) I ) \mathcal{N}(\mathbf{x}_t; \sqrt{\bar{\alpha}_t}\mathbf{x}_0, (1 - \bar{\alpha}_t) I) N(xt;αˉt x0,(1αˉt)I)。然后,根据信噪比(SNR)的定义为 SNR = μ 2 σ 2 \text{SNR} = \frac{\mu^2}{\sigma^2} SNR=σ2μ2,我们可以将每个时间步 t t t的信噪比写为:

image-20240410084713843

然后,我们导出的方程 108(和方程 99)可以简化为:

image-20240410084747700

顾名思义,信噪比(SNR)代表了原始信号与存在的噪声量之间的比率;较高的SNR表示信号更多,较低的SNR表示噪声更多。在扩散模型中,我们要求随着时间步 t t t的增加,信噪比单调减少;这正式化了被扰动的输入 x t \mathbf{x}_t xt 随时间变得越来越嘈杂的概念,直到在 t = T t = T t=T时变得与标准高斯分布相同。 遵循方程 110 中目标的简化,我们可以直接使用神经网络对每个时间步的信噪比进行参数化,并与扩散模型一起联合学习。由于信噪比必须随时间单调减少,我们可以将其表示为:

image-20240410084933227

其中, ω η ( t ) \omega_{\eta}(t) ωη(t)被建模为一个参数为 η \eta η 的单调递增的神经网络。对 ω η ( t ) \omega_{\eta}(t) ωη(t) 取反可以得到一个单调递减的函数,而指数函数则确保结果项为正值。请注意,方程 100 中的目标现在也必须对 η \eta η进行优化。 通过将方程 111 中的信噪比参数化与方程 109 中的信噪比定义结合起来,我们还可以显式地推导出 α ˉ t \bar{\alpha}_t αˉt 以及 1 − α ˉ t 1 - \bar{\alpha}_t 1αˉt的优雅表达形式:

image-20240410085153517

这些项对于各种计算是必需的;例如,在优化过程中,它们被用来使用重参数化技巧从输入 x 0 x_0 x0创建任意噪声的 x t x_t xt,如方程 69 中所推导的。

3.2三种等效的解释(Three Equivalent Interpretations)

正如我们之前证明的,变分扩散模型可以通过简单地学习一个神经网络来预测原始自然图像 x 0 x_0 x0从任意噪声版本 x t x_t xt及其时间索引 t t t 中得到训练。然而, x 0 x_0 x0有两种其他等效的参数化方式,这导致了对 VDM 的两种进一步解释。 首先,我们可以利用重参数化技巧。在我们推导 q ( x t ∣ x 0 ) q(\mathbf{x}_t|\mathbf{x}_0) q(xtx0)的形式时,我们可以重新排列方程 69 来看:

image-20240410085634867

将这个结果代入我们之前推导出的真实去噪转换均值 μ q ( x t , x 0 ) \mu_q(\mathbf{x}_t, \mathbf{x}_0) μq(xt,x0),我们可以重新推导出如下:

image-20240410085738426

因此,我们可以将我们的近似去噪转换均值 μ θ ( x t , t ) \mu_{\theta}(\mathbf{x}_t, t) μθ(xt,t) 设定为:

image-20240410090003523

相应的优化问题变为:

image-20240410090035999

在这里, μ ^ θ ( x t , t ) \hat{\mu}_{\theta}(\mathbf{x}_t, t) μ^θ(xt,t) 是一个神经网络,它学习预测源噪声 ϵ ∼ N ( ϵ ; 0 , I ) \epsilon \sim \mathcal{N}(\epsilon; 0, I) ϵN(ϵ;0,I),这个噪声决定了从 x 0 \mathbf{x}_0 x0 x t \mathbf{x}_t xt的转换。因此,我们已经展示了通过预测原始图像 x 0 \mathbf{x}_0 x0来学习 VDM 与学习预测噪声是等价的;然而,实证上,一些研究工作发现预测噪声可以带来更好的性能
为了推导出变分扩散模型的第三种常见解释,我们引用了 Tweedie 公式。Tweedie 公式指出,给定从一个指数族分布中抽取的样本,可以通过样本的最大似然估计(即经验均值)加上一些涉及估计得分的修正项来估计该指数族分布的真实均值。在只有一个观测样本的情况下,经验均值就是样本本身。它通常被用来减轻样本偏差;如果观测样本都位于潜在分布的一端,那么负得分会变得很大,并将原始的最大似然估计的样本向真实均值进行修正。
数学上,对于一个高斯变量 z ∼ N ( z ; μ z , Σ z ) z \sim \mathcal{N}(z; \mu_z, \Sigma_z) zN(z;μz,Σz),Tweedie 公式指出:

KaTeX parse error: Got function '\boldsymbol' with no arguments as subscript at position 101: …Sigma}_z\nabla_\̲b̲o̲l̲d̲s̲y̲m̲b̲o̲l̲{z}\log p(\bold…

在这种情况下,我们应用它来预测给定样本的 x t x_t xt 的真实后验平均值。从方程 70 中,我们知道:

q ( x t ∣ x 0 ) = N ( x t ; α ˉ t x 0 , ( 1 − α ˉ t ) I ) q(\boldsymbol{x}_t|\boldsymbol{x}_0)=\mathcal{N}(\boldsymbol{x}_t;\sqrt{\bar{\alpha}_t}\boldsymbol{x}_0,(1-\bar{\alpha}_t)\mathbf{I}) q(xtx0)=N(xt;αˉt x0,(1αˉt)I)

然后,根据 Tweedie 公式,我们有:

image-20240410090616314

这里我们为了符号简单,将 ∇ x t log ⁡ p ( x t ) \nabla_{\mathbf{x}_t} \log p(\mathbf{x}_t) xtlogp(xt)写作 ∇ log ⁡ p ( x t ) \nabla \log p(\mathbf{x}_t) logp(xt)。根据 Tweedie 公式,从 x t \mathbf{x}_t xt生成的真实均值的最好估计 μ x t \mu_{\mathbf{x}_t} μxt定义为:

image-20240410090958637

然后,我们可以再次将方程 133 代入我们的真实去噪转换均值 μ q ( x t , x 0 ) \mu_q(\mathbf{x}_t, \mathbf{x}_0) μq(xt,x0)并推导出一个新的形式:image-20240410091215050

因此,我们还可以将近似去噪转移平均值 μ θ ( x t , t ) \boldsymbol{\mu}_{\boldsymbol{\theta}}(\boldsymbol{x}_t,t) μθ(xt,t)设置为:

image-20240410091321345

相应的优化问题变为:

image-20240410091355372

在这里, s θ ( x t , t ) s_{\theta}(\mathbf{x}_t, t) sθ(xt,t)是一个神经网络,它学习预测得分函数 ∇ x t log ⁡ p ( x t ) \nabla_{\mathbf{x}_t} \log p(\mathbf{x}_t) xtlogp(xt),这是数据空间中 x t \mathbf{x}_t xt 的梯度,对于任意的噪声水平 t t t

敏锐的读者会注意到,得分函数 ∇ log ⁡ p ( x t ) \nabla \log p(\mathbf{x}_t) logp(xt)在形式上与源噪声 ϵ 0 \epsilon_0 ϵ0非常相似。这可以通过结合 Tweedie 公式(方程 133)和重参数化技巧(方程 115)来明确展示:

image-20240410091610811

结果表明,这两个项之间的差异是一个随时间变化的常数因子。得分函数衡量了如何在数据空间中移动以最大化对数概率;直观地说,由于源噪声是添加到自然图像中以破坏它,向其相反方向移动“去噪”图像,并且将是提高随后对数概率的最佳更新。我们的数学证明证实了这种直觉;我们明确展示了学习建模得分函数等同于建模源噪声的负值(考虑一个缩放因子)
因此,我们已经推导出了三个等价的目标来优化 VDM:学习一个神经网络来预测原始图像 x 0 x_0 x0、源噪声 ϵ 0 \epsilon_0 ϵ0或任意噪声水平下的图像得分 ∇ log ⁡ p ( x t ) \nabla \log p(\mathbf{x}_t) logp(xt)。VDM 可以通过随机采样时间步 t t t并最小化预测与真实目标的范数来可扩展地进行训练。

4. 基于分数的生成模型(Score-based Generative Models)

我们已经展示了,通过优化神经网络 s θ ( x t , t ) s_{\theta}(\mathbf{x}_t, t) sθ(xt,t)来预测得分函数 ∇ log ⁡ p ( x t ) \nabla \log p(\mathbf{x}_t) logp(xt),就可以学习变分扩散模型(VDM)。然而,在我们的推导中,得分项来自于 Tweedie 公式的应用;这并不一定为我们提供了很好的直觉或洞察力,以理解得分函数究竟是什么,以及为什么值得对其进行建模。幸运的是,我们可以借鉴另一类生成模型——基于得分的生成模型(Score-based Generative Models),来获得这种直觉。结果表明,我们可以展示我们之前推导出的 VDM 公式与等价的基于得分的生成模型公式是一致的,这使我们能够灵活地在这两种解释之间随意切换。

image-20240410092026625

图 6:展示了使用朗之万动力学生成的三条随机采样轨迹的可视化,所有轨迹都从同一个初始化点开始,针对的是高斯混合模型。左侧图表在三维等高线上绘制了这些采样轨迹,而右侧图表则将采样轨迹与真实得分函数进行了对比。从同一个初始化点开始,由于朗之万动力学采样过程中的随机噪声项,我们能够从不同的模式生成样本;如果没有这个噪声项,从固定点采样每次都将确定性地遵循得分到达同一个模式。

为了开始理解优化得分函数的意义,我们绕道并重新审视基于能量的模型。任意灵活的概率分布可以写成以下形式:

image-20240410092219120

其中 f θ ( x ) f_{\theta}(\mathbf{x}) fθ(x)是一个任意灵活的、可参数化的函数,称为能量函数,通常由神经网络建模,而 Z θ Z_{\theta} Zθ是一个归一化常数,以确保 ∫ p θ ( x ) d x ) = 1 \int p_{\theta}(\mathbf{x}) d\mathbf{x}) = 1 pθ(x)dx)=1。学习这样一种分布的一种方法是最大似然估计;然而,这需要可计算地计算归一化常数 Z θ = ∫ e − f θ ( x ) d x Z_{\theta} = \int e^{-f_{\theta}(\mathbf{x})} d\mathbf{x} Zθ=efθ(x)dx,对于复杂的 f θ ( x ) f_{\theta}(\mathbf{x}) fθ(x)函数来说,这可能是不可能的。

避免计算或建模归一化常数的一种方法是使用神经网络 s θ ( x ) s_{\theta}(\mathbf{x}) sθ(x) 来学习分布 p ( x ) p(\mathbf{x}) p(x)的得分函数 ∇ log ⁡ p ( x ) \nabla \log p(\mathbf{x}) logp(x)。这是由以下观察所激发的:对方程 152 的两边取对数后进行微分得到:

image-20240410092522798

它可以自由地表示为神经网络,而不涉及任何归一化常数。可以通过使用真实得分函数最小化费舍尔散度来优化得分模型:

image-20240410092624584

分数函数代表什么?对于每个 x x x,取其对数似然相对于 x x x 的梯度本质上描述了数据空间中移动的方向,以进一步增加其似然。

直观上,得分函数定义了整个数据 x \mathbf{x} x所处空间上的一个向量场,指向模式(modes)。在视觉上,这在图 6 的右侧图中被描绘出来。然后,通过学习真实数据分布的得分函数,我们可以从同一空间中的任意起点开始生成样本,并迭代地遵循得分,直到达到一个模式。这种采样过程被称为朗之万动力学,数学上描述为:

image-20240410092806902

其中 x 0 x_0 x0是从先验分布(如均匀分布)中随机采样的,而 ϵ ∼ N ( ϵ ; 0 , I ) \epsilon \sim \mathcal{N}(\epsilon; 0, I) ϵN(ϵ;0,I) 是一个额外的噪声项,以确保生成的样本不会总是塌陷到一个模式上,而是在其周围徘徊以保持多样性。此外,由于学习到的得分函数是确定性的,涉及噪声项的采样增加了生成过程的随机性,使我们能够避免确定性轨迹。当采样从位于多个模式之间的位置上初始化时,这特别有用。朗之万动力学采样和噪声项的好处在图 6 中有视觉描绘。
需要注意的是,方程 157 中的目标依赖于能够访问真实的得分函数,而这对于复杂分布(如模拟自然图像的分布)我们是无法获得的。幸运的是,已经推导出了一些替代技术,称为得分匹配,可以在不知道真实得分的情况下最小化这个费舍尔散度,并且可以通过随机梯度下降进行优化。
总的来说,学习将分布表示为得分函数,并使用它通过马尔可夫链蒙特卡洛技术(如朗之万动力学)生成样本,被称为基于得分的生成建模
正如Song and Ermon所详述的,传统的得分匹配有三个主要问题。首先,当 x x x位于高维空间中的低维流形上时,得分函数是定义不清的。这可以从数学上看出;所有不在低维流形上的点都有概率为零,其对数是未定义的。当试图学习覆盖自然图像的生成模型时,这尤其不便,因为自然图像已知位于整个环境空间的低维流形上。
其次,通过传统得分匹配训练的估计得分函数在低密度区域不会准确。从我们在方程 157 中最小化的目标可以看出这一点。因为它是对 p ( x ) p(x) p(x)​的期望,并且明确地在来自它的样本上进行训练,模型对于罕见或未见的例子不会接收到准确的学习信号。这是有问题的,因为我们的采样策略涉及从高维空间中的随机位置开始,这很可能是随机噪声,并根据学习到的得分函数进行移动。由于我们正在跟随一个嘈杂或不准确的得分估计,最终生成的样本也可能是次优的,或者需要更多的迭代才能收敛到准确的输出。
最后,即使使用真实得分进行,朗之万动力学采样也可能不会混合。假设真实数据分布是两个不相交分布的混合:

image-20240410093142528

那么,当计算得分时,这些混合系数会丢失,因为对数操作将系数从分布中分离出来,并且梯度操作将其置零。为了形象化这一点,请注意图 6 右侧显示的真实得分函数并不考虑三个分布之间不同的权重;从所描绘的初始化点开始的朗之万动力学采样大约有相等的机会到达每个模式,尽管右下角的模式在实际的高斯混合中具有更高的权重。
结果表明,通过向数据添加多个高斯噪声级别,可以同时解决这三个缺点。首先,由于高斯噪声分布的支持是整个空间,一个被扰动的数据样本将不再局限于低维流形。其次,添加大的高斯噪声将增加每个模式在数据分布中所覆盖的区域,从而在低密度区域增加更多的训练信号。最后,添加具有递增方差的多个高斯噪声级别将导致中间分布尊重真实的混合系数。

我们可以选择一个噪声水平的正序列 { σ t } t = 1 T \{\sigma_t\}_{t=1}^T {σt}t=1T,其中 T T T 为序列的上界,并定义一系列逐步受到干扰的数据分布:

image-20240410223101862

随后,通过使用得分匹配方法来学习在所有噪声水平下的同时学习得分函数,可以学习一个神经网络 s θ ( x , t ) s_{\theta}(\boldsymbol{x},t) sθ(x,t)

image-20240410223239399

其中 λ ( t ) \lambda(t) λ(t) 是一个正的权重函数,它取决于噪声水平 t t t。请注意,这个目标几乎与方程 148 中得出的训练变分扩散模型(Variational Diffusion Model)的目标完全一致。此外,作者提出了退火朗之万动力学抽样作为一种生成过程,在该过程中,通过依次对每个 t = T , T − 1 , . . . , 2 , 1 t=T,T-1,...,2,1 t=T,T1,...,2,1运行朗之万动力学来产生样本。初始化从某个固定的先验分布中选择(例如均匀分布),每个随后的抽样步骤从上一次模拟的最终样本开始。由于噪声水平在时间步 t t t 上逐渐减小,并且我们随时间减小步长,样本最终会收敛到真实模式。这与变分扩散模型的马尔可夫 HVAE 解释中执行的抽样程序直接相似,在该程序中,一个随机初始化的数据向量在递减的噪声水平上被迭代地细化。 因此,我们在训练目标和抽样程序上,明确建立了变分扩散模型和基于得分的生成模型之间的联系。

一个问题是如何自然地将扩散模型推广到无限数量的时间步。在马尔可夫 HVAE 视角下,这可以被解释为将层级数量扩展到无限,即 $T\to\infty $。 从等价的基于得分的生成模型的角度来表示这一点更为清晰;在无限数量的噪声尺度下,图像在连续时间上的扰动可以被表示为一个随机过程,因此可以用随机微分方程(SDE)来描述。抽样则通过反转 SDE 来执行,这自然需要在每个连续值噪声水平上估计得分函数 。SDE 的不同参数化本质上描述了随时间变化的不同扰动方案,使得噪声过程的建模具有灵活性 。

5.使用指南(Guidance)

到目前为止,我们关注的是仅仅对数据分布 p ( x ) p(x) p(x) 进行建模。然而,我们通常也对学习条件分布 p ( x ∣ y ) p(x|y) p(xy) 感兴趣,这将使我们能够通过条件信息 y y y 显式地控制我们生成的数据。这是像级联扩散模型(Cascaded Diffusion Models)这样的图像超分辨率模型的基础,同时也是像 DALL-E 2 和 Imagen这样的最先进的图像-文本模型的基础。 自然地添加条件信息的方法是在每次迭代中,简单地将其与时间步信息一起加入。回想我们方程 32 中的联合分布:

p ( x 0 : T ) = p ( x T ) ∏ t = 1 T p θ ( x t − 1 ∣ x t ) p(\boldsymbol{x}_{0:T})=p(\boldsymbol{x}_T)\prod_{t=1}^Tp_{\boldsymbol{\theta}}(\boldsymbol{x}_{t-1}|\boldsymbol{x}_t) p(x0:T)=p(xT)t=1Tpθ(xt1xt)

然后,要将这个转换成一个条件扩散模型,我们可以在每个转换步骤中简单地添加任意的条件信息 y y y,如下所示:

image-20240410224058438

例如, y y y 可以是在图像-文本生成中的文本编码,或者是用于执行超分辨率的低分辨率图像。因此,我们能够像以前一样学习 VDM(变分扩散模型)的核心神经网络,通过预测 x ^ θ ( x t , t , y ) ≈ x 0 , ϵ ^ θ ( x t , t , y ) ≈ ϵ 0 \hat{\boldsymbol{x}}_{\boldsymbol{\theta}}(x_t,t,y)\approx\boldsymbol{x}_0,\boldsymbol{\hat{\epsilon}}_{\boldsymbol{\theta}}(\boldsymbol{x}_t,t,y)\approx\boldsymbol{\epsilon}_0 x^θ(xt,t,y)x0,ϵ^θ(xt,t,y)ϵ0,或者 s θ ( x t , t , y ) ≈ ∇ log ⁡ p ( x t ∣ y ) s_{\boldsymbol{\theta}}(\boldsymbol{x}_t,t,y)\approx\nabla\log p(\boldsymbol{x}_t|y) sθ(xt,t,y)logp(xty)来适应每种所需的解释和实现。

这种基本公式的一个警告是,以这种方式训练的条件扩散模型可能会潜在地学会忽略或淡化任何给定的条件信息。因此,提出了指导(Guidance)作为一种方法,以更明确地控制模型给予条件信息的权重,代价是牺牲样本多样性。最受欢迎的两种指导形式被称为分类器指导(Classifier Guidance)和无分类器指导(Classifier-Free Guidance)。

5.1 分类器指导(Classifier Guidance)

让我们从扩散模型的基于得分的公式开始,我们的目标是学习在任意噪声水平 t t t 下的条件模型的得分 ∇ log ⁡ p ( x t ∣ y ) \nabla \log p(xt|y) logp(xty)。请记住,为了简洁起见, ∇ \nabla ∇ x t \nabla_{xt} xt 的简写。通过贝叶斯规则,我们可以推导出以下等价形式:

image-20240410224640944

在这里,我们利用了关于 x t x_t xt 的对数 p ( y ) p(y) p(y) 的梯度为零这一事实。我们最终推导出的结果可以解释为学习一个无条件得分函数,结合分类器 p ( y ∣ x t ) p(y|x_t) p(yxt) 的对抗性梯度。因此,在分类器指导(Classifier Guidance)中,无条件扩散模型的得分如之前推导的那样被学习,同时学习一个分类器,该分类器接收任意噪声的 x t x_t xt 并尝试预测条件信息 y y y。然后,在抽样过程中,用于退火朗之万动力学的整体条件得分函数被计算为无条件得分函数与噪声分类器的对抗性梯度之和。 为了引入细粒度的控制,以鼓励或阻止模型考虑条件信息,分类器指导通过一个 $\gamma $ 超参数项来缩放噪声分类器的对抗性梯度。然后在分类器指导下学习到的得分函数可以总结为:

image-20240410225057622

直观地说,当 γ = 0 \gamma = 0 γ=0 时,条件扩散模型完全学会忽略条件信息;当 γ \gamma γ​ 值很大时,条件扩散模型学会生成严重依赖条件信息的样本。这将牺牲样本多样性为代价,因为它只会生成能够容易从给定条件信息中重新生成的数据,即使是在噪声水平下也是如此。

分类器指导的一个明显缺点是它依赖于单独学习的一个分类器。因为分类器必须处理任意噪声的输入,而大多数现有的预训练分类模型并没有针对这一点进行优化,所以它必须与扩散模型一起特别地学习。

5.2 无分类器指导(Classifier-Free Guidance)

在无分类器指导(Classifier-Free Guidance)中,作者放弃了单独的分类器模型训练,转而采用一个无条件扩散模型和一个条件扩散模型。为了推导在无分类器指导下的得分函数,我们首先可以重新排列方程 165 来显示:

image-20240410225752379

然后,将其代入公式 166,我们得到:

image-20240410225911351

再次强调, γ \gamma γ 是一个控制我们学习的条件模型对条件信息关注程度的术语。当 γ = 0 \gamma=0 γ=0 时,学习的条件模型完全忽略条件因素,学习一个无条件的扩散模型。当 γ = 1 \gamma=1 γ=1 时,模型明确学习没有指导的普通条件分布。当 γ > 1 \gamma>1 γ>1 时,扩散模型不仅优先考虑条件得分函数,而且朝着远离无条件得分函数的方向移动。换句话说,它减少了生成不使用条件信息样本的概率,而倾向于那些明确使用条件信息的样本。这同样也有减少样本多样性的效果,代价是生成与条件信息准确匹配的样本。 由于学习两个独立的扩散模型成本很高,我们可以将条件和无条件扩散模型一起作为一个单一的条件模型来学习;通过将条件信息替换为固定常数值(如零),可以查询无条件扩散模型。这本质上是在条件信息上执行随机丢弃。无分类器指导之所以优雅,是因为它使我们能够更深入地控制我们的条件生成过程,同时不需要超出单一扩散模型的训练范围。

6.总结

让我们回顾一下我们在探索过程中的发现。首先,我们推导出变分扩散模型作为马尔可夫层次变分自编码器的一个特例,其中三个关键假设使得对ELBO的可计算性和可扩展优化成为可能。接着,我们证明了优化VDM归结为学习一个神经网络来预测三个潜在目标之一:从任意任意噪声版本中预测原始源图像,从任意任意噪声图像中预测原始源噪声,或者在任意噪声水平下预测噪声图像的得分函数。然后,我们更深入地探讨了学习得分函数的含义,并明确将其与基于得分的生成建模视角联系起来。最后,我们讨论了如何使用扩散模型学习条件分布。
总结来说,扩散模型作为生成模型展现了令人难以置信的能力;实际上,它们驱动了当前最先进的文本条件图像生成模型,如Imagen和DALL-E 2。此外,使这些模型成为可能的数学非常优雅。然而,仍有一些缺点需要考虑:

  • 我们人类自然建模和生成数据的方式不太可能是这样的;我们不会将样本作为随机噪声来迭代去噪生成。

  • VDM 不产生可解释的潜在变量。而VAE有望通过优化其编码器学习一个结构化的潜在空间,在VDM中,每个时间步的编码器已经被给定为线性高斯模型,无法灵活优化。因此,中间潜在变量被限制为原始输入的噪声版本。

  • 潜在变量被限制在与原始输入相同的维度,进一步阻碍了学习有意义、压缩的潜在结构的努力。

  • 抽样是一个昂贵的过程,因为在两种形式下都必须运行多个去噪步骤。

  • 请记住,其中一个限制是选择足够多的时间步T来确保最终潜在变量完全是高斯噪声;在抽样过程中,我们必须遍历所有这些时间步来生成一个样本。

最后要注意的是,扩散模型的成功突显了层次变分自编码器作为生成模型的强大。我们已经展示了,当我们推广到无限的潜在层次时,即使编码器是平凡的,潜在维度是固定的,假设马尔可夫转换,我们仍然能够学习强大的数据模型。这表明,在一般情况下,深度HVAEs可以取得进一步的性能提升,其中可以潜在地学习复杂的编码器和语义上有意义的潜在空间。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/533650.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

激活黑科技

下载/如何使用它? 方法 1 - PowerShell(推荐)Method 1 - PowerShell (Recommended) 右键单击 Windows 开始菜单,然后选择“PowerShell”或“终端(非 CMD)”。复制粘贴以下代码&…

ChatGLM3-6B大语言模型离线执行

ChatGLM3-6B大语言模型离线执行 模型准备 一般而言,模型和模型参数可以通过如下三个模型源进行相应的下载: HuggingFace | ModelScope | WiseModel 本实例中,使用的是HuggingFace的源下载,相应的地址如下: HuggingFa…

在线视频下载工具lux(原annie)安装及使用教程

安装教程 下载ffmpeg,参考这篇文章:Python——Windows下载ffmpeg由于博主的系统为windows,所以选择不安装lux,直接下载.exe文件,进入lux的github网站后,选择右侧的Releases,下载下图的windows …

求职要做在线人才测评,如果找人代做会被发现吗?

理论上都有办法能避开,这种在线测评的一定都有这个弊端,什么录音,录屏,录像,只要你愿意琢磨下,就一定有办法避开,除非是现场有人看着你。 但是我的观点是没必要作弊,使这个巧&…

起诉状与反诉状有什么不同,二者在写法上有何区别?李秘书讲写作教教你!

起诉状与反诉状有什么不同,二者在写法上有何区别?李秘书讲写作教教你! 起诉状和反诉状在民事诉讼中各自扮演着不同的角色,因此它们在内容和写法上有一些不同。#李秘书讲写作#这节就讲这个话题。 起诉状是原告向人民法院提起诉讼…

从 0 搭建公司Jenkins服务 Centos7

从 0 搭建公司Jenkins服务 Centos7 安装 (运维人员) 安装环境 配置DNS安装JDK17安装Jenkins安装Docker安装GIT安装Ansible启动Jenkins安装插件配置凭据配置共享库配置 (开发经理)使用 (开发、测试人员) 安装 (运维人员) 安装环境 配置DNS 新安装系统的服务器无法解析域名&a…

为什么选择成为一名程序员

选择成为一名程序员,其背后的原因往往既包含兴趣,也包含职业发展的考量。对于我来说,这两者并不是孤立的,而是相互交织,共同推动步入这一行业。 兴趣是选择成为程序员的重要驱动力。编程本身就是一种创造和解决问题的…

Calibre:如何在runset中设置LVS box

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 拾陆楼知识星球入口 相关文章链接: Calibre:LVS 流程 在“Calibre: LVS 流程”文章里介绍了再rule file和图形界面如何设置lvs box,这里再分享一种lvs box设置方法: 通常我们会保存runset文件

CSS 基础:border 的 3 个基础属性和简写方法

你好,我是云桃桃。 一个希望帮助更多朋友快速入门 WEB 前端的程序媛。大专生,一枚程序媛,感谢关注。回复 “前端基础题”,可免费获得前端基础 100 题汇总,回复 “前端工具”,可获取 Web 开发工具合集 264篇…

SpringCloudAlibaba-整合nacos(二)

目录地址: SpringCloudAlibaba整合-CSDN博客 一、nacos服务部分 1.下载nacos,并执行数据库脚本:nacos-mysql.sql 2.修改配置文件,配置mysql 3.启动nacos ./startup.sh -m standalone 4.访问:http://127.0.0.1:884…

Golang快速入门教程(一)

目录 一、环境搭建 1.windows安装 2.linux安装 3.开发工具 二、变量定义与输入输出 1.变量定义 2.全局变量与局部变量 3.定义多个变量 4.常量定义 5.命名规范 6.输出 7.输入 三、基本数据类型 1.整数型 2.浮点型 3.字符型 4.字符串类型 转义字符 多行字符…

基于51单片机的多床位病房呼叫器Proteus仿真

地址:https://pan.baidu.com/s/1WLTBD9WaWncZS_uRSjM-iA 提取码:1234 仿真图: 芯片/模块的特点: AT89C52/AT89C51简介: AT89C52/AT89C51是一款经典的8位单片机,是意法半导体(STMicroelectroni…

企业微信认证后可以修改主体吗?

企业微信变更主体有什么作用?如果原有的公司注销了,或者要更换一家公司主体来运营企业微信,那么就可以进行变更主体,变更主体后才可以保留原来企业微信上的所有用户,否则就只能重新申请重新积累用户了。企业微信变更主…

机器学习和深度学习--李宏毅(笔记与个人理解)Day9

Day9 Logistic Regression(内涵,熵和交叉熵的详解) 中间打了一天的gta5,图书馆闭馆正好npy 不舒服那天天气不好,哈哈哈哈哈总之各种理由吧,导致昨天没弄起来,今天补更! 这里重点注意…

面向对象设计原则实验“依赖倒置原则”

高层模块不应该依赖于低层模块。二者都应该依赖于抽象。抽象不应该依赖于细节。细节应该依赖于抽象。 (开闭原则、里氏代换原则和依赖倒转原则的三个实例很相似,原因是它之间的关系很紧密,在实现很多重构时通常需要同时使用这三个原则。开闭…

【智能优化算法详解】粒子群算法PSO量子粒子群算法QPSO

1.粒子群算法PSO 博主言简意赅总结-算法思想:大方向下个体自学习探索群体交流共享 对比适应度找到最优点 背景 粒子群算法,也称粒子群优化算法或鸟群觅食算法(Particle Swarm Optimization), 缩写为 PSO。粒子群…

HarmonyOS实战开发-如何实现文件管理相关的功能。

介绍 本示例主要展示了文件管理相关的功能,使用ohos.multimedia.medialibrary 、ohos.filemanagement.userFileManager 、ohos.fileio 、ohos.file.fs、ohos.app.ability.contextConstant 等接口,实现了增添文件、删除文件、查找指定类型文件文件、复制…

2024年MathorCup+认证杯数模竞赛思路预定与助攻计划

2024年的第14届“妈妈杯”与认证杯即将启动,云顶数模将团队众多国奖学长学姐将再次为大家精心准备的高质量解题思路、参考代码等,帮助大家在妈妈杯获得理想的成绩,也为国赛奠定坚实基础!! 小云也为大家提供了本周末两场…

安装selenium和关于chrome高版本对应的driver驱动下载安装【Win/Mac 】

目录 一、查看自己电脑上chrome的版本 二、下载 ChromeDriver 三、安装selenium 法一:打开pycharm,点击File,Setting进入配置页面,点击Project下面的Python Interpreter进入环境配置页面,点击。输入selenium。之后…

【太阳能控制器升压芯片方案】DC-DC异步升压恒压外置MOS芯片FP5207 主要应用于太阳能灯带、太阳能路灯/投光灯等市场

随着社会经济的发展,能源危机与生态环境问题日趋严重,大力发展可再生能源已经成为当今世界的必然趋势。太阳能作为取之不尽、清洁干净的资源,已成为世界各国研究开发的热点。光伏发电具有技术成熟、产业化程度高的特点,受到世界各…