【扩散模型】论文精读:Denoising Diffusion Probabilistic Models(DDPM)

文章目录

  • 前言
  • Abstract
  • 1 Introduction
  • 2 Background
  • 3 Diffusion models and denoising autoencoders
    • 3.1 Forward process and LT
    • 3.2 Reverse process and L1:T −1
    • 3.3 Data scaling, reverse process decoder, and L0
    • 3.4 Simplified training objective
  • 4 Experiments
    • 4.1 Sample quality
    • 4.2 Reverse process parameterization and training objective ablation
    • 4.3 Progressive coding
    • 4.4 Interpolation
  • 5 Related Work
  • 6 Conclusion
  • Broader Impact
  • Extra information
  • A Extended derivations
  • B Experimental details
  • C Discussion on related work
  • D Samples


前言

论文题目:Denoising Diffusion Probabilistic Models —— 去噪扩散概率模型

论文地址:Denoising Diffusion Probabilistic Models

作者提供的论文源码:https://github.com/hojonathanho/diffusion

扩散模型奠基文章,大名鼎鼎的DDPM!

Abstract

我们使用扩散概率模型展示了高质量的图像合成结果,这是一种受非平衡热力学考虑启发的潜在变量模型。我们最好的结果是通过对加权变分界进行训练获得的,该边界是根据扩散概率模型和与朗之万动力学的去噪分数匹配之间的新联系设计的,我们的模型自然承认渐进式有损解压缩方案,可以解释为自回归解码的泛化。在无条件 CIFAR10 数据集上,我们获得了 9.46 的 Inception 分数和 3.17 的最新 FID 分数。在 256x256 LSUN 上,我们获得了类似于 ProgressiveGAN 的样本质量。我们的实现可在 https://github.com/hojonathanho/diffusion 获得。

1 Introduction

各种深度生成模型最近在各种数据模式中表现出高质量的样本。生成对抗网络(GANs)、自回归模型、流和变分自编码器(VAEs)合成了引人注目的图像和音频样本[14,27,3,58,38,25,10,32,44,57,26,33,45],在基于能量的建模和评分匹配方面取得了重大进展,生成的图像可与GANs相媲美[11,55]。
在这里插入图片描述

本文介绍了扩散概率模型[53]的进展。扩散概率模型(为简洁起见,我们将其称为“扩散模型”)是使用变分推理训练的参数化马尔可夫链,以生成在有限时间后匹配数据的样本。学习该链的跃迁来逆转扩散过程,这是一个马尔可夫链,它逐渐将噪声添加到采样相反方向的数据中,直到信号被破坏。当扩散由少量高斯噪声组成时,也足以将采样链跃迁设置为条件高斯,从而允许特别简单的神经网络参数化。

扩散模型可以直接定义和高效训练,但据我们所知,还没有证明它们能够生成高质量的样本。我们表明,扩散模型实际上能够生成高质量的样本,有时甚至优于其他类型的生成模型上公布的结果(第 4 节)。此外,我们表明扩散模型的某些参数化揭示了训练期间多个噪声水平的去噪分数匹配和采样期间退火的朗之万动力学的等价性(第 3.2 节)[55, 61]。我们使用这种参数化(第 4.2 节)获得了我们最好的样本质量结果,因此我们认为这种等价性是我们的主要贡献之一。

尽管样本质量很高,但与其他基于似然的模型相比,我们的模型没有具有竞争力的对数似然(然而,我们的模型确实的对数似然比据报道退火重要性抽样的大估计更好,以产生基于能量的模型和分数匹配 [11, 55])。我们发现我们模型的大部分无损代码长度用于描述难以察觉的图像细节(第 4.3 节)。我们在有损压缩语言中对这种现象进行了更精细的分析,我们表明扩散模型的采样过程是一种渐进式解码,类似于沿位排序的自回归解码,这极大地概括了自回归模型通常可能发生的事情。在这里插入图片描述

2 Background

扩散模型[53]是pθ (x0):=∫pθ (x0:T) dx1:T形式的潜变量模型,其中x1,。, xT 是与数据 x0 ∼ q(x0) 相同维度的潜在表示。联合分布 pθ (x0:T ) 称为反向过程,它被定义为具有从 p(xT ) = N (xT ; 0, I) 开始的学习高斯跃迁的马尔可夫链:
p θ ( x 0 : T ) : = p ( x T ) ∏ t = 1 T p θ ( x t − 1 ∣ x t ) , p θ ( x t − 1 ∣ x t ) : = N ( x t − 1 ; μ θ ( x t , t ) , Σ θ ( x t , t ) ) (1) p_{\theta}\left(\mathbf{x}_{0: T}\right):=p\left(\mathbf{x}_{T}\right) \prod_{t=1}^{T} p_{\theta}\left(\mathbf{x}_{t-1} \mid \mathbf{x}_{t}\right), \quad p_{\theta}\left(\mathbf{x}_{t-1} \mid \mathbf{x}_{t}\right):=\mathcal{N}\left(\mathbf{x}_{t-1} ; \boldsymbol{\mu}_{\theta}\left(\mathbf{x}_{t}, t\right), \mathbf{\Sigma}_{\theta}\left(\mathbf{x}_{t}, t\right)\right)\tag{1} pθ(x0:T):=p(xT)t=1Tpθ(xt1xt),pθ(xt1xt):=N(xt1;μθ(xt,t),Σθ(xt,t))(1)
扩散模型与其他类型的潜在变量模型的区别在于,称为正向过程或扩散过程的近似后验 q(x1:T |x0) 固定在马尔可夫链上,该马尔可夫链根据方差表 β1 … βT 逐渐向数据添加高斯噪声。 :
q ( x 1 : T ∣ x 0 ) : = ∏ t = 1 T q ( x t ∣ x t − 1 ) , q ( x t ∣ x t − 1 ) : = N ( x t ; 1 − β t x t − 1 , β t I ) (2) q\left(\mathbf{x}_{1: T} \mid \mathbf{x}_{0}\right):=\prod_{t=1}^{T} q\left(\mathbf{x}_{t} \mid \mathbf{x}_{t-1}\right), \quad q\left(\mathbf{x}_{t} \mid \mathbf{x}_{t-1}\right):=\mathcal{N}\left(\mathbf{x}_{t} ; \sqrt{1-\beta_{t}} \mathbf{x}_{t-1}, \beta_{t} \mathbf{I}\right)\tag{2} q(x1:Tx0):=t=1Tq(xtxt1),q(xtxt1):=N(xt;1βt xt1,βtI)(2)
训练是通过优化负对数似然的常用变分界来执行的:
E [ − log ⁡ p θ ( x 0 ) ] ≤ E q [ − log ⁡ p θ ( x 0 : T ) q ( x 1 : T ∣ x 0 ) ] = E q [ − log ⁡ p ( x T ) − ∑ t ≥ 1 log ⁡ p θ ( x t − 1 ∣ x t ) q ( x t ∣ x t − 1 ) ] = : L (3) \mathbb{E}\left[-\log p_{\theta}\left(\mathbf{x}_{0}\right)\right] \leq \mathbb{E}_{q}\left[-\log \frac{p_{\theta}\left(\mathbf{x}_{0: T}\right)}{q\left(\mathbf{x}_{1: T} \mid \mathbf{x}_{0}\right)}\right]=\mathbb{E}_{q}\left[-\log p\left(\mathbf{x}_{T}\right)-\sum_{t \geq 1} \log \frac{p_{\theta}\left(\mathbf{x}_{t-1} \mid \mathbf{x}_{t}\right)}{q\left(\mathbf{x}_{t} \mid \mathbf{x}_{t-1}\right)}\right]=: L\tag{3} E[logpθ(x0)]Eq[logq(x1:Tx0)pθ(x0:T)]=Eq[logp(xT)t1logq(xtxt1)pθ(xt1xt)]=:L(3)
正向过程方差βt可以通过重新参数化[33]或保持常数作为超参数来学习,反向过程的表达性部分是通过pθ (xt−1|xt)中高斯条件的选择来保证的,因为当βt较小时,这两个过程具有相同的函数形式[53]。正向过程的一个显着特性是它允许以封闭形式在任意时间步 t 采样 xt:使用符号 αt := 1 - βt 和 ̄αt := ∏t s=1 αs,我们有
q ( x t ∣ x 0 ) = N ( x t ; α ˉ t x 0 , ( 1 − α ˉ t ) I ) (4) q\left(\mathbf{x}_{t} \mid \mathbf{x}_{0}\right)=\mathcal{N}\left(\mathbf{x}_{t} ; \sqrt{\bar{\alpha}_{t}} \mathbf{x}_{0},\left(1-\bar{\alpha}_{t}\right) \mathbf{I}\right)\tag{4} q(xtx0)=N(xt;αˉt x0,(1αˉt)I)(4)
因此,可以通过使用随机梯度下降优化 L 的随机项来实现有效的训练。通过将 L (3) 重写为:
E q [ D K L ( q ( x T ∣ x 0 ) ∥ p ( x T ) ) ⏟ L T + ∑ t > 1 D K L ( q ( x t − 1 ∣ x t , x 0 ) ∥ p θ ( x t − 1 ∣ x t ) ) ⏟ L t − 1 − log ⁡ p θ ( x 0 ∣ x 1 ) ⏟ L 0 ] (5) \mathbb{E}_{q}[\underbrace{D_{\mathrm{KL}}\left(q\left(\mathbf{x}_{T} \mid \mathbf{x}_{0}\right) \| p\left(\mathbf{x}_{T}\right)\right)}_{L_{T}}+\sum_{t>1} \underbrace{D_{\mathrm{KL}}\left(q\left(\mathbf{x}_{t-1} \mid \mathbf{x}_{t}, \mathbf{x}_{0}\right) \| p_{\theta}\left(\mathbf{x}_{t-1} \mid \mathbf{x}_{t}\right)\right)}_{L_{t-1}} \underbrace{-\log p_{\theta}\left(\mathbf{x}_{0} \mid \mathbf{x}_{1}\right)}_{L_{0}}]\tag{5} Eq[LT DKL(q(xTx0)p(xT))+t>1Lt1 DKL(q(xt1xt,x0)pθ(xt1xt))L0 logpθ(x0x1)](5)
(详见附录 A。术语的标签在第 3 节中使用。)等式 (5) 使用 KL 散度直接将 pθ (xt−1|xt) 与前向过程后验进行比较,这在以 x0 为条件时易于处理:
q ( x t − 1 ∣ x t , x 0 ) = N ( x t − 1 ; μ ~ t ( x t , x 0 ) , β ~ t I ) , (6) q\left(\mathbf{x}_{t-1} \mid \mathbf{x}_{t}, \mathbf{x}_{0}\right)=\mathcal{N}\left(\mathbf{x}_{t-1} ; \tilde{\boldsymbol{\mu}}_{t}\left(\mathbf{x}_{t}, \mathbf{x}_{0}\right), \tilde{\beta}_{t} \mathbf{I}\right),\tag{6} q(xt1xt,x0)=N(xt1;μ~t(xt,x0),β~tI),(6)
 where  μ ~ t ( x t , x 0 ) : = α ˉ t − 1 β t 1 − α ˉ t x 0 + α t ( 1 − α ˉ t − 1 ) 1 − α ˉ t x t  and  β ~ t : = 1 − α ˉ t − 1 1 − α ˉ t β t (7) \text { where } \quad \tilde{\boldsymbol{\mu}}_{t}\left(\mathbf{x}_{t}, \mathbf{x}_{0}\right):=\frac{\sqrt{\bar{\alpha}_{t-1}} \beta_{t}}{1-\bar{\alpha}_{t}} \mathbf{x}_{0}+\frac{\sqrt{\alpha_{t}}\left(1-\bar{\alpha}_{t-1}\right)}{1-\bar{\alpha}_{t}} \mathbf{x}_{t} \quad \text { and } \quad \tilde{\beta}_{t}:=\frac{1-\bar{\alpha}_{t-1}}{1-\bar{\alpha}_{t}} \beta_{t}\tag{7}  where μ~t(xt,x0):=1αˉtαˉt1 βtx0+1αˉtαt (1αˉt1)xt and β~t:=1αˉt1αˉt1βt(7)
因此,方程式中的所有 KL 散度。 (5) 是高斯之间的比较,因此它们可以以 Rao-Blackwellized 方式计算,具有封闭形式表达式,而不是高方差蒙特卡罗估计。

3 Diffusion models and denoising autoencoders

扩散模型可能看起来是一类受限的潜在变量模型,但它们在实现中允许大量的自由度。必须选择正向过程的方差 βt 和反向过程的模型架构和高斯分布参数化。为了指导我们的选择,我们在扩散模型和去噪分数匹配之间建立了一个新的显式连接(第 3.2 节),这导致了扩散模型的简化加权变分界目标(第 3.4 节)。最终,我们的模型设计由简单性和实证结果证明(第 4 节)。我们的讨论按等式的术语进行分类。 (5)。

3.1 Forward process and LT

我们忽略了前向过程方差 βt 可以通过重新参数化来学习的事实,而是将它们固定为常数(详见第 4 节)。因此,在我们的实现中,近似后验 q 没有可学习的参数,因此 LT 在训练期间是一个常数,可以忽略。

3.2 Reverse process and L1:T −1

现在我们讨论我们在 pθ (xt−1|xt) = N (xt−1; μθ (xt, t), Σθ (xt, t))) 中对 1 < t ≤ T 的选择。首先,我们将 Σθ (xt, t) = σ2t I 设置为未经训练的时间依赖性常数。在实验上,σ2t = βt和σ2t = ̃βt = 1− ̄αt−11− ̄αt βt 的结果相似。第一个选择对于 x0 ∼ N (0, I) 是最优的,第二个对于确定性设置为一个点的 x0 是最优的。这些是两个极端选择,对应于具有坐标单位方差的数据的反向过程熵的上界和下界[53]。

其次,为了表示均值 μθ (xt, t),我们提出了一个特定的参数化,其动机是对 Lt 进行以下分析。其中 pθ (xt−1|xt) = N (xt−1; μθ (xt, t), σ2t I),我们可以写:
L t − 1 = E q [ 1 2 σ t 2 ∥ μ ~ t ( x t , x 0 ) − μ θ ( x t , t ) ∥ 2 ] + C (8) L_{t-1}=\mathbb{E}_{q}\left[\frac{1}{2 \sigma_{t}^{2}}\left\|\tilde{\boldsymbol{\mu}}_{t}\left(\mathbf{x}_{t}, \mathbf{x}_{0}\right)-\boldsymbol{\mu}_{\theta}\left(\mathbf{x}_{t}, t\right)\right\|^{2}\right]+C\tag{8} Lt1=Eq[2σt21μ~t(xt,x0)μθ(xt,t)2]+C(8)
其中 C 是一个不依赖于 θ 的常数。因此,我们看到 μθ 最直接的参数化是一个预测 ̃μt 的模型,正向过程后验均值。然而,我们可以通过重新参数化方程来进一步扩展方程。 (4) 作为 xt(x0, ) = √ ̄αtx0 + √1− ̄αt for ∼ N (0, I) 并应用前向过程后验公式 (7):
L t − 1 − C = E x 0 , ϵ [ 1 2 σ t 2 ∥ μ ~ t ( x t ( x 0 , ϵ ) , 1 α ˉ t ( x t ( x 0 , ϵ ) − 1 − α ˉ t ϵ ) ) − μ θ ( x t ( x 0 , ϵ ) , t ) ∥ 2 ] (9) L_{t-1}-C=\mathbb{E}_{\mathbf{x}_{0}, \boldsymbol{\epsilon}}\left[\frac{1}{2 \sigma_{t}^{2}}\left\|\tilde{\boldsymbol{\mu}}_{t}\left(\mathbf{x}_{t}\left(\mathbf{x}_{0}, \boldsymbol{\epsilon}\right), \frac{1}{\sqrt{\bar{\alpha}_{t}}}\left(\mathbf{x}_{t}\left(\mathbf{x}_{0}, \boldsymbol{\epsilon}\right)-\sqrt{1-\bar{\alpha}_{t}} \boldsymbol{\epsilon}\right)\right)-\boldsymbol{\mu}_{\theta}\left(\mathbf{x}_{t}\left(\mathbf{x}_{0}, \boldsymbol{\epsilon}\right), t\right)\right\|^{2}\right]\tag{9} Lt1C=Ex0,ϵ[2σt21 μ~t(xt(x0,ϵ),αˉt 1(xt(x0,ϵ)1αˉt ϵ))μθ(xt(x0,ϵ),t) 2](9)
= E x 0 , ϵ [ 1 2 σ t 2 ∥ 1 α t ( x t ( x 0 , ϵ ) − β t 1 − α ˉ t ϵ ) − μ θ ( x t ( x 0 , ϵ ) , t ) ∥ 2 ] (10) =\mathbb{E}_{\mathbf{x}_{0}, \boldsymbol{\epsilon}}\left[\frac{1}{2 \sigma_{t}^{2}}\left\|\frac{1}{\sqrt{\alpha_{t}}}\left(\mathbf{x}_{t}\left(\mathbf{x}_{0}, \boldsymbol{\epsilon}\right)-\frac{\beta_{t}}{\sqrt{1-\bar{\alpha}_{t}}} \boldsymbol{\epsilon}\right)-\boldsymbol{\mu}_{\theta}\left(\mathbf{x}_{t}\left(\mathbf{x}_{0}, \boldsymbol{\epsilon}\right), t\right)\right\|^{2}\right]\tag{10} =Ex0,ϵ[2σt21 αt 1(xt(x0,ϵ)1αˉt βtϵ)μθ(xt(x0,ϵ),t) 2](10)
在这里插入图片描述
式(10)表明μθ必须在给定xt的情况下预测1√αt(xt−βt√1−̄αt)。由于 xt 作为模型的输入可用,我们可以选择参数化
μ θ ( x t , t ) = μ ~ t ( x t , 1 α ˉ t ( x t − 1 − α ˉ t ϵ θ ( x t ) ) ) = 1 α t ( x t − β t 1 − α ˉ t ϵ θ ( x t , t ) ) (11) \boldsymbol{\mu}_{\theta}\left(\mathbf{x}_{t}, t\right)=\tilde{\boldsymbol{\mu}}_{t}\left(\mathbf{x}_{t}, \frac{1}{\sqrt{\bar{\alpha}_{t}}}\left(\mathbf{x}_{t}-\sqrt{1-\bar{\alpha}_{t}} \boldsymbol{\epsilon}_{\theta}\left(\mathbf{x}_{t}\right)\right)\right)=\frac{1}{\sqrt{\alpha_{t}}}\left(\mathbf{x}_{t}-\frac{\beta_{t}}{\sqrt{1-\bar{\alpha}_{t}}} \boldsymbol{\epsilon}_{\theta}\left(\mathbf{x}_{t}, t\right)\right)\tag{11} μθ(xt,t)=μ~t(xt,αˉt 1(xt1αˉt ϵθ(xt)))=αt 1(xt1αˉt βtϵθ(xt,t))(11)

其中 θ 是一个函数逼近器,旨在从 xt 预测。为了对 xt−1 ∼ pθ (xt−1|xt) 进行采样是计算 xt−1 = 1√αt(xt − βt√1− ̄αt θ (xt, t))+ σtz,其中 z ∼ N (0, I)。完整的采样过程,算法 2,类似于朗之万动力学,θ 作为数据密度的学习梯度。此外,通过参数化(11),等式。 (10) 简化为:
E x 0 , ϵ [ β t 2 2 σ t 2 α t ( 1 − α ˉ t ) ∥ ϵ − ϵ θ ( α ˉ t x 0 + 1 − α ˉ t ϵ , t ) ∥ 2 ] (12) \mathbb{E}_{\mathbf{x}_{0}, \boldsymbol{\epsilon}}\left[\frac{\beta_{t}^{2}}{2 \sigma_{t}^{2} \alpha_{t}\left(1-\bar{\alpha}_{t}\right)}\left\|\boldsymbol{\epsilon}-\boldsymbol{\epsilon}_{\theta}\left(\sqrt{\bar{\alpha}_{t}} \mathbf{x}_{0}+\sqrt{1-\bar{\alpha}_{t}} \boldsymbol{\epsilon}, t\right)\right\|^{2}\right]\tag{12} Ex0,ϵ[2σt2αt(1αˉt)βt2 ϵϵθ(αˉt x0+1αˉt ϵ,t) 2](12)
这类似于t[55]索引的多个噪声尺度上的去噪分数匹配。如式(12)等于类似朗之万的反向过程(11)的变分界,我们看到优化类似于去噪分数匹配的目标等价于使用变分推理来拟合类似于朗之万动力学的采样链的有限时间边际。

总而言之,我们可以训练反向过程均值函数逼近器 μθ 来预测 ̃μt,或者通过修改其参数化,我们可以对其进行训练以预测。(也有预测 x0 的可能性,但我们发现这会导致我们实验中的样本质量更差。)我们已经证明 - 预测参数化既类似于 Langevin 动力学,又简化了扩散模型的变分界到类似于去噪分数匹配的目标。尽管如此,这只是 pθ (xt−1|xt) 的另一个参数化,因此我们在第 4 节中验证了其有效性,其中我们将预测与预测 ̃μt 进行比较。

3.3 Data scaling, reverse process decoder, and L0

我们假设图像数据由 {0, 1, 中的整数组成。, 255} 线性缩放到 [-1, 1]。这确保了神经网络反向过程对从标准正态先验 p(xT) 开始的一致缩放的输入进行操作。为了获得离散对数似然,我们将反向过程的最后一项设置为从高斯 N (x0; μθ (x1, 1), σ2 1 I) 导出的独立离散解码器:
p θ ( x 0 ∣ x 1 ) = ∏ i = 1 D ∫ δ − ( x 0 i ) δ + ( x 0 i ) N ( x ; μ θ i ( x 1 , 1 ) , σ 1 2 ) d x δ + ( x ) = { ∞  if  x = 1 x + 1 255  if  x < 1 δ − ( x ) = { − ∞  if  x = − 1 x − 1 255  if  x > − 1 (13) \begin{aligned} p_{\theta}\left(\mathbf{x}_{0} \mid \mathbf{x}_{1}\right) & =\prod_{i=1}^{D} \int_{\delta_{-}\left(x_{0}^{i}\right)}^{\delta_{+}\left(x_{0}^{i}\right)} \mathcal{N}\left(x ; \mu_{\theta}^{i}\left(\mathbf{x}_{1}, 1\right), \sigma_{1}^{2}\right) d x \\ \delta_{+}(x) & =\left\{\begin{array}{ll} \infty & \text { if } x=1 \\ x+\frac{1}{255} & \text { if } x<1 \end{array} \quad \delta_{-}(x)=\left\{\begin{array}{ll} -\infty & \text { if } x=-1 \\ x-\frac{1}{255} & \text { if } x>-1 \end{array}\right.\right. \end{aligned}\tag{13} pθ(x0x1)δ+(x)=i=1Dδ(x0i)δ+(x0i)N(x;μθi(x1,1),σ12)dx={x+2551 if x=1 if x<1δ(x)={x2551 if x=1 if x>1(13)
其中 D 是数据维度,i 上标表示提取一个坐标。(相反,将更强大的解码器(如条件自回归模型)合并起来很简单,但我们将其留给未来的工作。)类似于 VAE 解码器和自回归模型 [34, 52] 中使用的离散化连续分布,我们在这里的选择确保变分界是离散数据的无损码长,不需要向数据添加噪声或将缩放操作的雅可比合并到对数似然中。在采样结束时,我们无噪声地显示 μθ (x1, 1)。

3.4 Simplified training objective

通过上面定义的反向过程和解码器,变分界由方程导出的项组成。(12)和(13)在θ上明显可微,并准备用于训练。然而,我们发现样本质量(实现起来更简单)在变分界的以下变体上进行训练是有益的:
L simple  ( θ ) : = E t , x 0 , ϵ [ ∥ ϵ − ϵ θ ( α ˉ t x 0 + 1 − α ˉ t ϵ , t ) ∥ 2 ] (14) L_{\text {simple }}(\theta):=\mathbb{E}_{t, \mathbf{x}_{0}, \boldsymbol{\epsilon}}\left[\left\|\boldsymbol{\epsilon}-\boldsymbol{\epsilon}_{\theta}\left(\sqrt{\bar{\alpha}_{t}} \mathbf{x}_{0}+\sqrt{1-\bar{\alpha}_{t}} \boldsymbol{\epsilon}, t\right)\right\|^{2}\right]\tag{14} Lsimple (θ):=Et,x0,ϵ[ ϵϵθ(αˉt x0+1αˉt ϵ,t) 2](14)
其中 t 在 1 和 T 之间是均匀的。t = 1 情况对应于 L0,离散解码器定义 (13) 中的积分由高斯概率密度函数乘以 bin 宽度来近似,忽略 σ2 1 和边缘效应。t > 1 案例对应于等式的未加权版本。 (12),类似于 NCSN 去噪分数匹配模型 [55] 使用的损失权重。(LT没有出现,因为正向过程方差βt是固定的。)算法1显示了这个简化目标的完整训练过程。

由于我们的简化目标(14)丢弃了方程中的权重。(12),它是一个加权变分界,与标准变分界[18,22]相比,它强调重建的不同方面。特别是,我们在第 4 节中的扩散过程设置导致简化目标降低对应于小 t 的损失项。这些术语训练网络去噪具有非常少量的噪声的数据,因此降低它们的权重是有益的,以便网络可以专注于更大 t 个术语的更困难的去噪任务。我们将在我们的实验中看到,这种重新加权会导致更好的样本质量。

4 Experiments

对于所有实验,我们设置 T = 1000,以便采样期间所需的神经网络评估数量与之前的工作相匹配 [53, 55]。我们将正向过程方差设置为从 β1 = 10−4 线性增加到 βT = 0.02 的常数。相对于缩放到 [-1, 1] 的数据,这些常数被选择为很小,确保反向和正向过程具有大致相同的功能形式,同时保持 xT 处的信噪比尽可能小(在我们的实验中,LT =DKL(q(xT |x0) ‖ N (0, I))) ≈ 10−5 位)。

为了表示反向过程,我们使用类似于未屏蔽的PixelCNN++[52,48]的U-Net主干,并在整个[66]中进行组归一化。参数是跨时间共享的,使用Transformer正弦位置嵌入[60]将其指定给网络。我们在 16 × 16 特征图分辨率下使用自注意力 [63, 60]。详细信息在附录 B 中。

4.1 Sample quality

表 1 显示了 CIFAR10 上的 Inception 分数、FID 分数和负对数似然(无损代码长度)。我们的 FID 得分为 3.17,我们的无条件模型比文献中的大多数模型实现了更好的样本质量,包括类条件模型。我们的 FID 分数是根据训练集计算的,就像标准做法一样;当我们在测试集上计算它时,得分为 5.24,这仍然优于文献中的许多训练集 FID 分数。
在这里插入图片描述

我们发现,根据预期,在真实变分界上训练模型比对简化目标进行训练产生更好的代码长度,但后者产生了最好的样本质量。CIFAR10和CelebA-HQ 256 × 256样本见图1,LSUN 256 × 256样本[71]图3和图4,更多样本见附录D。在这里插入图片描述

4.2 Reverse process parameterization and training objective ablation

在表 2 中,我们展示了反向过程参数化和训练目标的样本质量影响(第 3.2 节)。我们发现,只有当在真实变分界而不是未加权均方误差上进行训练时,预测 ̃μ 的基线选项才能很好地工作,这是一个类似于方程式的简化目标。 (14)。我们还看到,与固定方差相比,学习反向过程方差(通过将参数化对角 Σθ (xt) 合并到变分界中)会导致训练不稳定,样本质量较差。正如我们提出的,在具有固定方差的变分界上训练时,预测的性能近似和预测 ̃μ,但在使用我们的简化目标进行训练时要好得多。在这里插入图片描述

4.3 Progressive coding

表 1 还显示了我们的 CIFAR10 模型的代码长度。训练和测试之间的差距每个维度最多为 0.03 位,与其他基于似然的模型报告的差距相当,并表明我们的扩散模型没有过度拟合(最近邻可视化请参见附录 D)。尽管如此,虽然我们的无损代码长度优于基于能量的模型和使用退火重要性采样 [11] 的分数匹配报告的大估计,但它们与其他类型的基于似然的生成模型 [7] 没有竞争力。由于我们的样本仍然是高质量的,我们得出结论,扩散模型具有归纳偏差,这使得它们具有出色的有损压缩器。将变分界项 L1 + · · · + LTas 率和 L0 视为失真,我们具有最高质量样本的 CIFAR10 模型的速率为 1.78bits/dim,失真为 1.97 位/dim,这相当于在 0 到 255 的尺度上为 0.95 的均方根误差。超过一半的无损码长描述了难以察觉的失真。
在这里插入图片描述

渐进式有损压缩 我们可以通过引入反映方程形式的渐进式有损代码来进一步探测我们模型的速率失真行为。 (5):参见算法 3 和 4,假设可以访问过程,例如最小随机编码 [19, 20],它可以平均使用近似 DKL(q(x) ‖ p(x)) 位传输样本 x ∼ q(x),对于任何分布 p 和 q,其中只有 p 可以预先提供给接收器。当应用于 x0 ∼ q(x0) 时,算法 3 和 4 传输 xT 。, x0 按顺序使用等于等式的总预期代码长度。 (5)。接收器,在任何时间 t,都有部分信息 xt 完全可用,并且可以逐步估计:
x 0 ≈ x ^ 0 = ( x t − 1 − α ˉ t ϵ θ ( x t ) ) / α ˉ t (15) \mathbf{x}_{0} \approx \hat{\mathbf{x}}_{0}=\left(\mathbf{x}_{t}-\sqrt{1-\bar{\alpha}_{t}} \boldsymbol{\epsilon}_{\theta}\left(\mathbf{x}_{t}\right)\right) / \sqrt{\bar{\alpha}_{t}}\tag{15} x0x^0=(xt1αˉt ϵθ(xt))/αˉt (15)
由于方程式。 (4)。(随机重建 x0 ∼ pθ (x0|xt) 也是有效的,但我们在这里不考虑它,因为它使失真更难评估。)图 5 显示了 CIFAR10 测试集上的结果率失真图。每次t时,失真计算为均方根误差√‖x0−ˆx0‖2/D,速率计算为到目前为止在时间t接收到的比特数。失真在率失真图的低速率区域急剧下降,表明大多数比特确实被分配给难以察觉的失真。在这里插入图片描述
渐进式生成 我们还运行渐进式无条件生成过程,该过程由随机位进行渐进式解压缩给出。换句话说,我们使用算法 2 从反向过程中采样来预测反向过程 ^x0 的结果。图 6 和图 10 显示了反向过程过程中 ^x0 的结果样本质量。大尺度图像特征首先出现,细节最后出现。图 7 显示了随机预测 x0 ∼ pθ (x0|xt),其中 xtfrozen 用于各种 t。当 t 较小时,保留除精细细节之外的所有细节,当 t 很大时,仅保留大规模特征。也许这些都是概念压缩的暗示[18]。在这里插入图片描述在这里插入图片描述

在这里插入图片描述
与自回归解码的联系 请注意,变分界 (5) 可以重写为:
L = D K L ( q ( x T ) ∥ p ( x T ) ) + E q [ ∑ t ≥ 1 D K L ( q ( x t − 1 ∣ x t ) ∥ p θ ( x t − 1 ∣ x t ) ) ] + H ( x 0 ) (16) L=D_{\mathrm{KL}}\left(q\left(\mathbf{x}_{T}\right) \| p\left(\mathbf{x}_{T}\right)\right)+\mathbb{E}_{q}\left[\sum_{t \geq 1} D_{\mathrm{KL}}\left(q\left(\mathbf{x}_{t-1} \mid \mathbf{x}_{t}\right) \| p_{\theta}\left(\mathbf{x}_{t-1} \mid \mathbf{x}_{t}\right)\right)\right]+H\left(\mathbf{x}_{0}\right)\tag{16} L=DKL(q(xT)p(xT))+Eq[t1DKL(q(xt1xt)pθ(xt1xt))]+H(x0)(16)
(推导见附录A。)现在考虑将扩散过程长度T设置为数据的维数,定义正向过程,使q(xt|x0)将所有概率质量放在x0上,第一个t个坐标被屏蔽掉(即q(xt|xt−1)屏蔽掉第t个坐标),设置p(xT)将所有质量放在空白图像上,为了论证,将pθ (xt−1|xt)设为是一个完全富有表现力的条件分布。有了这些选择,DKL(q(xT)‖p(xT))=0,最小化DKL(q(xt−1|xt)‖pθ(xt−1|xt))训练pθ复制坐标t+1,。, T 不变并预测给定 t + 1 的第 t 个坐标。, T。因此,使用这种特定扩散训练 pθ 是训练自回归模型。

因此,我们可以将高斯扩散模型 (2) 解释为一种具有广义位排序的自回归模型,无法通过重新排序数据坐标来表示。先前的工作表明,这种重新排序引入了对样本质量有影响的归纳偏差[38],因此我们推测高斯扩散服务于类似的目的,可能更大的影响,因为与掩蔽噪声相比,高斯噪声可能更自然地添加到图像中。此外,高斯扩散长度不限于等于数据维度;例如,我们使用 T = 1000,这在我们的实验中小于 32 × 32 × 3 或 256 × 256 × 3 图像的维度。对于快速采样或更长的模型表达能力,高斯扩散可以更短。

4.4 Interpolation

我们可以使用 q 作为随机编码器 xt, x′t ∼ q(xt|x0) 在潜在空间中插值源图像 x0, x′0 ∼ q(x0),然后通过反向过程将线性插值的潜在 ̄xt = (1 − λ)x0 + λx′0 解码为图像空间,̄x0 ∼ p(x0| ̄xt)。实际上,我们使用反向过程从源图像的线性插值损坏版本中去除伪影,如图 8(左)所示。我们固定了 λ 不同值的噪声,因此 xt 和 x′t 保持不变。图8(右)显示了原始CelebA-HQ 256 × 256图像的插值和重建(t = 500)。反向过程产生高质量的重建,以及合理的插值,可以平滑地改变姿势、肤色、发型、表情和背景等属性,而不是眼镜。较大的会导致更粗糙和更多样化的插值,在 t = 1000 时有新样本(附录图 9)。在这里插入图片描述

5 Related Work

虽然扩散模型可能类似于流[9,46,10,32,5,16,23]和VAE[33,47,37],但设计了扩散模型,使得q没有参数,并且顶层潜在XT与数据x0具有几乎零的互信息。我们的预测反向过程参数化建立了扩散模型和在多个噪声水平上的去噪分数匹配之间的联系,并使用退火朗之万动力学进行采样[55,56]。然而,扩散模型承认直接的对数似然评估,训练过程使用变分推理显式训练朗之万动力学采样器(详见附录 C)。该连接还具有相反的含义,即去噪分数匹配的某些加权形式与变分推理相同,以训练类似朗之万的采样器。其他学习马尔可夫链转移算子的方法包括输液训练[2]、变分回溯[15]、生成随机网络[1]等[50,54,36,42,35,65]。

通过分数匹配和基于能量的建模之间的已知联系,我们的工作可能对最近关于基于能量的模型的其他工作产生影响 [67-69、12、70、13、11、41、17、8]。我们的速率失真曲线是在变分界的一个评估中随时间计算的,这让人想起如何在退火重要性采样[24]的一次运行中通过失真惩罚来计算速率失真曲线。我们的渐进解码参数可以在卷积 DRAW 和相关模型 [18, 40] 中看到,并且还可能导致自回归模型的子尺度排序或采样策略更一般的设计 [38, 64]。

6 Conclusion

我们使用扩散模型展示了高质量的图像样本,我们发现扩散模型和变分推理之间的联系用于训练马尔可夫链、去噪分数匹配和退火朗之万动力学(以及基于能量的模型通过扩展)、自回归模型和渐进有损压缩。由于扩散模型似乎对图像数据具有出色的归纳偏差,我们期待研究它们在其他数据模态中的效用以及其他类型的生成模型和机器学习系统中的组件。

Broader Impact

我们对扩散模型的工作涉及与其他类型的深度生成模型现有工作类似的范围,例如努力提高 GAN、流、自回归模型等的样本质量。我们的论文代表了使扩散模型成为这一系列技术中普遍有用的工具的进展,因此它可以放大生成模型在更广泛的世界中拥有的任何影响(并将有)。

不幸的是,生成模型有许多众所周知的恶意用途。样本生成技术可用于为政治目的生成高个人资料人物的虚假图像和视频。虽然假图像是在软件工具可用之前手动创建的,但我们的模型等生成模型使该过程更容易。幸运的是,CNN 生成的图像目前存在允许检测 [62] 的细微缺陷,但生成模型的改进可能会使这种情况变得更加困难。生成模型还反映了他们训练的数据集中的偏差。由于自动化系统从互联网上收集了许多大型数据集,因此很难消除这些偏差,尤其是当图像未标记时。如果在这些数据集上训练的生成模型的样本在整个互联网上激增,那么这些偏差只会进一步加强。

另一方面,扩散模型可能对数据压缩有用,随着数据的分辨率越来越高,随着全球互联网流量的增加,确保互联网对广泛受众的可访问性可能至关重要。我们的工作可能有助于对大量下游任务的未标记原始数据的表示学习,从图像分类到强化学习,扩散模型也可能在艺术、摄影和音乐中创造性使用变得可行。

Extra information

LSUN 数据集的 LSUN FID 分数如表 3 所示。标有 * 的分数由 StyleGAN2 报告为基线,其他分数由它们各自的作者报告。在这里插入图片描述
渐进式压缩 我们在第 4.3 节中的有损压缩参数只是一个概念证明,因为算法 3 和 4 依赖于最小随机编码 [20] 等过程,这对于高维数据并不容易处理。这些算法作为Sohl-Dickstein等人[53]变分界(5)的压缩解释,还没有作为实际的压缩系统。在这里插入图片描述

A Extended derivations

以下是Eq.(5)的推导,扩散模型的方差变分界减小。这个材料来自Sohl-Dickstein等人[53];为了完整起见,我们在这里只包括它。
L = E q [ − log ⁡ p θ ( x 0 : T ) q ( x 1 : T ∣ x 0 ) ] = E q [ − log ⁡ p ( x T ) − ∑ t ≥ 1 log ⁡ p θ ( x t − 1 ∣ x t ) q ( x t ∣ x t − 1 ) ] = E q [ − log ⁡ p ( x T ) − ∑ t > 1 log ⁡ p θ ( x t − 1 ∣ x t ) q ( x t ∣ x t − 1 ) − log ⁡ p θ ( x 0 ∣ x 1 ) q ( x 1 ∣ x 0 ) ] = E q [ − log ⁡ p ( x T ) − ∑ t > 1 log ⁡ p θ ( x t − 1 ∣ x t ) q ( x t − 1 ∣ x t , x 0 ) ⋅ q ( x t − 1 ∣ x 0 ) q ( x t ∣ x 0 ) − log ⁡ p θ ( x 0 ∣ x 1 ) q ( x 1 ∣ x 0 ) ] = E q [ − log ⁡ p ( x T ) q ( x T ∣ x 0 ) − ∑ t > 1 log ⁡ p θ ( x t − 1 ∣ x t ) q ( x t − 1 ∣ x t , x 0 ) − log ⁡ p θ ( x 0 ∣ x 1 ) ] \begin{aligned} L & =\mathbb{E}_{q}\left[-\log \frac{p_{\theta}\left(\mathbf{x}_{0: T}\right)}{q\left(\mathbf{x}_{1: T} \mid \mathbf{x}_{0}\right)}\right] \\ & =\mathbb{E}_{q}\left[-\log p\left(\mathbf{x}_{T}\right)-\sum_{t \geq 1} \log \frac{p_{\theta}\left(\mathbf{x}_{t-1} \mid \mathbf{x}_{t}\right)}{q\left(\mathbf{x}_{t} \mid \mathbf{x}_{t-1}\right)}\right] \\ & =\mathbb{E}_{q}\left[-\log p\left(\mathbf{x}_{T}\right)-\sum_{t>1} \log \frac{p_{\theta}\left(\mathbf{x}_{t-1} \mid \mathbf{x}_{t}\right)}{q\left(\mathbf{x}_{t} \mid \mathbf{x}_{t-1}\right)}-\log \frac{p_{\theta}\left(\mathbf{x}_{0} \mid \mathbf{x}_{1}\right)}{q\left(\mathbf{x}_{1} \mid \mathbf{x}_{0}\right)}\right] \\ & =\mathbb{E}_{q}\left[-\log p\left(\mathbf{x}_{T}\right)-\sum_{t>1} \log \frac{p_{\theta}\left(\mathbf{x}_{t-1} \mid \mathbf{x}_{t}\right)}{q\left(\mathbf{x}_{t-1} \mid \mathbf{x}_{t}, \mathbf{x}_{0}\right)} \cdot \frac{q\left(\mathbf{x}_{t-1} \mid \mathbf{x}_{0}\right)}{q\left(\mathbf{x}_{t} \mid \mathbf{x}_{0}\right)}-\log \frac{p_{\theta}\left(\mathbf{x}_{0} \mid \mathbf{x}_{1}\right)}{q\left(\mathbf{x}_{1} \mid \mathbf{x}_{0}\right)}\right] \\ & =\mathbb{E}_{q}\left[-\log \frac{p\left(\mathbf{x}_{T}\right)}{q\left(\mathbf{x}_{T} \mid \mathbf{x}_{0}\right)}-\sum_{t>1} \log \frac{p_{\theta}\left(\mathbf{x}_{t-1} \mid \mathbf{x}_{t}\right)}{q\left(\mathbf{x}_{t-1} \mid \mathbf{x}_{t}, \mathbf{x}_{0}\right)}-\log p_{\theta}\left(\mathbf{x}_{0} \mid \mathbf{x}_{1}\right)\right] \end{aligned} L=Eq[logq(x1:Tx0)pθ(x0:T)]=Eq[logp(xT)t1logq(xtxt1)pθ(xt1xt)]=Eq[logp(xT)t>1logq(xtxt1)pθ(xt1xt)logq(x1x0)pθ(x0x1)]=Eq[logp(xT)t>1logq(xt1xt,x0)pθ(xt1xt)q(xtx0)q(xt1x0)logq(x1x0)pθ(x0x1)]=Eq[logq(xTx0)p(xT)t>1logq(xt1xt,x0)pθ(xt1xt)logpθ(x0x1)]
= E q [ D K L ( q ( x T ∣ x 0 ) ∥ p ( x T ) ) + ∑ t > 1 D K L ( q ( x t − 1 ∣ x t , x 0 ) ∥ p θ ( x t − 1 ∣ x t ) ) − log ⁡ p θ ( x 0 ∣ x 1 ) ] =\mathbb{E}_{q}\left[D_{\mathrm{KL}}\left(q\left(\mathbf{x}_{T} \mid \mathbf{x}_{0}\right) \| p\left(\mathbf{x}_{T}\right)\right)+\sum_{t>1} D_{\mathrm{KL}}\left(q\left(\mathbf{x}_{t-1} \mid \mathbf{x}_{t}, \mathbf{x}_{0}\right) \| p_{\theta}\left(\mathbf{x}_{t-1} \mid \mathbf{x}_{t}\right)\right)-\log p_{\theta}\left(\mathbf{x}_{0} \mid \mathbf{x}_{1}\right)\right] =Eq[DKL(q(xTx0)p(xT))+t>1DKL(q(xt1xt,x0)pθ(xt1xt))logpθ(x0x1)]
以下是 L 的替代版本。估计并不容易,但它对我们在第 4.3 节中的讨论很有用。
L = E q [ − log ⁡ p ( x T ) − ∑ t ≥ 1 log ⁡ p θ ( x t − 1 ∣ x t ) q ( x t ∣ x t − 1 ) ] = E q [ − log ⁡ p ( x T ) − ∑ t ≥ 1 log ⁡ p θ ( x t − 1 ∣ x t ) q ( x t − 1 ∣ x t ) ⋅ q ( x t − 1 ) q ( x t ) ] = E q [ − log ⁡ p ( x T ) q ( x T ) − ∑ t ≥ 1 log ⁡ p θ ( x t − 1 ∣ x t ) q ( x t − 1 ∣ x t ) − log ⁡ q ( x 0 ) ] = D K L ( q ( x T ) ∥ p ( x T ) ) + E q [ ∑ t ≥ 1 D K L ( q ( x t − 1 ∣ x t ) ∥ p θ ( x t − 1 ∣ x t ) ) ] + H ( x 0 ) \begin{aligned} L & =\mathbb{E}_{q}\left[-\log p\left(\mathbf{x}_{T}\right)-\sum_{t \geq 1} \log \frac{p_{\theta}\left(\mathbf{x}_{t-1} \mid \mathbf{x}_{t}\right)}{q\left(\mathbf{x}_{t} \mid \mathbf{x}_{t-1}\right)}\right] \\ & =\mathbb{E}_{q}\left[-\log p\left(\mathbf{x}_{T}\right)-\sum_{t \geq 1} \log \frac{p_{\theta}\left(\mathbf{x}_{t-1} \mid \mathbf{x}_{t}\right)}{q\left(\mathbf{x}_{t-1} \mid \mathbf{x}_{t}\right)} \cdot \frac{q\left(\mathbf{x}_{t-1}\right)}{q\left(\mathbf{x}_{t}\right)}\right] \\ & =\mathbb{E}_{q}\left[-\log \frac{p\left(\mathbf{x}_{T}\right)}{q\left(\mathbf{x}_{T}\right)}-\sum_{t \geq 1} \log \frac{p_{\theta}\left(\mathbf{x}_{t-1} \mid \mathbf{x}_{t}\right)}{q\left(\mathbf{x}_{t-1} \mid \mathbf{x}_{t}\right)}-\log q\left(\mathbf{x}_{0}\right)\right] \\ & =D_{\mathrm{KL}}\left(q\left(\mathbf{x}_{T}\right) \| p\left(\mathbf{x}_{T}\right)\right)+\mathbb{E}_{q}\left[\sum_{t \geq 1} D_{\mathrm{KL}}\left(q\left(\mathbf{x}_{t-1} \mid \mathbf{x}_{t}\right) \| p_{\theta}\left(\mathbf{x}_{t-1} \mid \mathbf{x}_{t}\right)\right)\right]+H\left(\mathbf{x}_{0}\right) \end{aligned} L=Eq[logp(xT)t1logq(xtxt1)pθ(xt1xt)]=Eq[logp(xT)t1logq(xt1xt)pθ(xt1xt)q(xt)q(xt1)]=Eq[logq(xT)p(xT)t1logq(xt1xt)pθ(xt1xt)logq(x0)]=DKL(q(xT)p(xT))+Eq[t1DKL(q(xt1xt)pθ(xt1xt))]+H(x0)

B Experimental details

我们的神经网络架构遵循PixelCNN++[52]的主干,这是一种基于Wide ResNet[72]的U-Net[48]。我们用组归一化[66]替换了权值归一化[49],使实现更简单。我们的 32 × 32 模型使用四个特征图分辨率(32 × 32 到 4 × 4),我们的 256 × 256 模型使用六个。所有模型都在每个分辨率级别有两个卷积残差块,在卷积块[6]之间的16 × 16分辨率下具有自注意块。扩散时间t是通过将Transformer正弦位置嵌入[60]添加到每个剩余块中来指定的。我们的CIFAR10模型有35.7万个参数,我们的LSUN和CelebA-HQ模型有114万个参数。我们还通过增加过滤器计数训练了 LSUN Bedroom 模型的更大变体,其参数约为 256 万个。

我们在所有实验中都使用了 TPU v3-8(类似于 8 个 V100 GPU)。我们的 CIFAR 模型以每秒 21 步的速度进行训练,批量大小为 128(训练在 800k 步完成时为 10.6 小时),采样一批 256 张图像需要 17 秒。我们的CelebA-HQ/LSUN (2562)模型在批大小为64的每秒2.2步训练,采样一批128张图像需要300秒。我们在CelebA-HQ上训练了0.5M步,LSUN卧室为2.4M步,LSUN猫为1.8M步,LSUN教堂为1.2M步。较大的 LSUN Bedroom 模型训练了 1.15M 步。

除了早期选择超参数以使网络规模适应内存限制之外,我们还进行了大多数超参数搜索以优化 CIFAR10 样本质量,然后将生成的设置转移到其他数据集上:

• 我们从一组常数、线性和二次调度中选择βt调度,所有这些都受到限制,使LT≈0。我们设置T = 1000而不进行扫描,我们从β1 = 10−4到βT = 0.02中选择一个线性调度。
• 我们通过扫描值{0.1,0.2,0.3,0.4}将CIFAR10上的辍学率设置为0.1。在 CIFAR10 上没有 dropout,我们获得了较差的样本,让人想起未正则化 PixelCNN++ [52] 中的过度拟合伪影。我们将其他数据集的 dropout 率设置为零,而无需扫描。
• 我们在 CIFAR10 训练期间使用随机水平翻转;我们尝试在有和没有翻转的情况下进行训练,并发现翻转略微提高样本质量。我们还为除 LSUN Bedroom 之外的所有其他数据集使用了随机水平翻转。
• 我们在实验中早期尝试了 Adam [31] 和 RMSProp,并选择了前者。我们将超参数留给它们的标准值。在没有任何扫描的情况下,我们将学习率设置为 2 × 10−4,对于 256 × 256 图像,我们将其降低到 2 × 10−5,这似乎不稳定以更大的学习率进行训练。
• 我们将 CIFAR10 的批量大小设置为 128,对于较大的图像设置为 64。我们没有扫描这些值。
• 我们在模型参数上使用EMA,衰减因子为0.9999。我们没有扫描这个值。

最终实验在训练期间进行了一次训练和评估,以获得样本质量。在训练期间,在最小 FID 值上报告样本质量分数和对数似然。在 CIFAR10 上,我们分别使用 OpenAI [51] 和 TTUR [21] 存储库的原始代码计算了 50000 个样本的 Inception 和 FID 分数。在LSUN上,我们使用来自StyleGAN2[30]存储库的代码计算了50000个样本的FID分数。CIFAR10 和 CelebA-HQ 由 TensorFlow 数据集 (https://www.tensorflow.org/datasets) 提供的加载,LSUN 使用 StyleGAN 的代码准备。数据集拆分(或其不足)是论文的标准,这些论文在生成建模上下文中介绍了它们的使用。所有细节都可以在源代码发布中找到。

C Discussion on related work

我们的模型架构、前向过程定义和先验与 NNCSN [55, 56] 在提高样本质量的微妙但重要的方面有所不同,特别是,我们直接训练我们的采样器作为潜在变量模型,而不是在事后训练后添加它。更详细地说:

  1. 我们使用具有自注意力的 U-Net; NNCSN 使用具有扩张卷积的 RefineNet。我们通过添加 Transformer 正弦位置嵌入来调节 t 上的所有层,而不仅仅是在归一化层 (NCSNv1) 或仅在输出 (v2) 中。
  2. 扩散模型使用每个正向过程步骤(√1−βt因子)对数据进行缩放,以便在添加噪声时方差不会增长,从而为神经网络反向过程提供一致缩放的输入。NCSN 省略了这个比例因子。
  3. 与NCSN不同的是,我们的正向过程破坏了信号(DKL(q(xT |x0)‖N (0, I)))≈0),确保了xT的先验和聚合后验之间的密切匹配。同样与 NCSN 不同,我们的 βt 非常小,这确保了前向过程由具有条件高斯的马尔可夫链可逆。这两个因素都防止了采样时的分布转移。
  4. 我们的类似朗之万的采样器在前向过程中具有严格从 βt 导出的系数(学习率、噪声尺度等)。因此,我们的训练过程直接训练我们的采样器以匹配 T 步后的数据分布:它使用变分推理将采样器训练为潜在变量模型。相比之下,NCSN 的采样器系数由手动事后设置,并且它们的训练过程不能保证直接优化其采样器的质量度量。

D Samples

其他样本 图11、13、16、17、18和19显示了在CelebA-HQ、CIFAR10和LSUN数据集上训练的扩散模型中未经策划的样本。

潜在的结构和反向过程随机性 采样过程中,先验xT ~ N (0, I)和朗之万动力学都是随机的。为了了解第二个噪声源的重要性,我们对以CelebA256 × 256数据集相同的中间潜伏为条件的多个图像进行采样。图 7 显示了从反向过程 x0 ∼ pθ (x0|xt) 的多个绘制,该过程共享 t ∈ {1000, 750, 500, 250} 的潜在 xt。为此,我们从先验的初始抽屉运行单个反向链。在中间时间步,链被分成多个图像进行采样。当链在 xT =1000 的先验绘制之后拆分时,样本存在显着差异。然而,当链经过更多步骤后拆分时,样本共享高级属性,如性别、头发颜色、眼镜、饱和度、姿势和面部表情。这表明像 x750 这样的中间潜伏期编码了这些属性,尽管它们是不可察觉的。

粗到细插值 图 9 显示了一对源 CelebA256 × 256 图像之间的插值,因为我们在潜在空间插值之前改变扩散步骤的数量。增加扩散步数会破坏源图像中更多的结构,即模型在反向过程中完成。这允许我们在细粒度和粗粒度上进行插值。在0个扩散步骤的极限情况下,插值将源图像混合在像素空间中。另一方面,在 1000 个扩散步骤之后,源信息丢失,插值是新样本。在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

C语言: 指针讲解

为什么需要指针? &#xff08;1&#xff09;指针的使用使得不同区域的代码可以轻易的共享内存数据。当然你也可以通过数据的复制达到相同的效果&#xff0c;但是这样往往效率不太好&#xff0c;因为诸如结构体等大型数据&#xff0c;占用的字节数多&#xff0c;复制很消耗性能…

Linux-进程控制(进程创建、进程终止、进程等待)

一、进程创建 1.1 fork函数介绍 在命令行下我们可以通过 ./ exe文件 来创建一个进程&#xff0c;通过fork函数&#xff0c;我们可以通过代码的形式从一个进程中创建一个进程&#xff0c;新进程为子进程&#xff0c;原进程为父进程&#xff0c;子进程在创建时&#xff0c;会与…

软件项目-详细设计说明书范文参考(46页Word原件)

一、 关于本文档 &#xff08;一&#xff09; 编写目的 &#xff08;二&#xff09; 预期读者 二、 项目概要 &#xff08;一&#xff09; 建设背景 &#xff08;二&#xff09; 建设目标 &#xff08;三&#xff09; 建设内容 三、 总体设计 &#xff08;一&#xff0…

git基础-撤销操作

撤销操作 在任何阶段&#xff0c;我们都可能希望撤消某些操作。在这里&#xff0c;我们将回顾一些基本工具&#xff0c;用于撤消之前所做的更改。操作要谨慎&#xff0c;因为这些撤销可能无法修复。这是 Git 中为数不多的几个领域之一由于操作不当&#xff0c;导致丢失一些工作…

一篇文章,告别Flutter状态管理争论,问题和解决

起因 每隔一段时间&#xff0c;都会出现一个新的状态管理框架&#xff0c;最近在YouTube上也发现了有人在推signals, 一个起源于React的状态管理框架&#xff0c;人们总是乐此不疲的发明各种好用或者为了解决特定问题而产生的方案&#xff0c;比如Bloc, 工具会推陈出新&#x…

JavaParser 手动安装和配置

目录 前言 一、安装 Maven 工具 1.1 Maven 软件的下载 1.2 Maven 软件的安装 1.3 Maven 环境变量配置 1.4 通过命令检查 Maven 版本 二、配置 Maven 仓库 2.1 修改仓库目录 2.2 添加国内镜像 三、从 Github 下载 JavaParser 3.1 下载并解压 JavaParser 3.2 从路径打…

手摸手教你安装使用nvm(简单明了)

1.nvm定义 &#xff08;node.js version management&#xff09; nvm是node版本管理工具&#xff0c;通过nvm可以安装和切换不同版本的node.js 2.卸载之前安装的node 打开系统的控制面板&#xff0c;点击卸载程序&#xff0c;卸载nodejs 提示&#xff1a;如果你没有安装过…

【使用postman发送post请求】

1&#xff09;post http://ip:8090/version?appVersion1.0.0&channelgoogle&platformandroid&deviceId90991c4465e1886a81b00dac855fe098&notice1 这样子选择json格式提交数据&#xff0c;可读性强 好处&#xff1a; 1.最大的好处莫过于我可以记录下来曾经做…

使用easyYapi生成文档

easyYapi生成文档 背景1.安装配置1.1 介绍1.2 安装1.3 配置1.3.1 Export Postman1.3.2 Export Yapi1.3.3 Export Markdown1.3.4 Export Api1.3.6 常见问题补充 2. java注释规范2.1 接口注释规范2.2 出入参注释规范 3. 特定化支持3.1 必填校验3.2 忽略导出3.3 返回不一致3.4 设置…

智慧医疗包括哪些方面?智慧医疗发展前景如何?

近年来&#xff0c;随着云计算、物联网&#xff08;internet of things&#xff0c;IOT&#xff09;、移动互联网、大数据、人工智能&#xff08;artificial intelligence&#xff0c;AI&#xff09;、5G网络、区块链等新一代信息技术的逐步成熟和广泛应用&#xff0c;信息化已…

HTML(二)

一、表格标签 1.1表格的主要作用 表格主要用于显示、展示数据&#xff0c;因为它可以让数据显示的非常的规整&#xff0c;可读性非常好。特别是后台展示数据的时候&#xff0c;能够熟练运用表格就显得很重要。一个清爽简约的表格能够把繁杂的数据表现得很有条理。 1.2 表格的…

外地报医保怎么备案?异地就医备案流程是什么?

外地医疗保险如何办理&#xff1f; 外地医疗保险备案的具体流程可能因地区和医疗保险政策的不同而有所不同&#xff0c;但一般来说&#xff0c;可以通过以下方式进行备案&#xff1a; 1、网上备案&#xff1a;不少地区已经推出网上备案服务&#xff0c;可以通过当地医保局官网…

SQLServer SEQUENCE用法

SEQUENCE&#xff1a;数据库中的序列生成器 在数据库管理中&#xff0c;经常需要生成唯一且递增的数值序列&#xff0c;用于作为主键或其他需要唯一标识的列的值。为了实现这一功能&#xff0c;SQL Server 引入了 SEQUENCE 对象。SEQUENCE 是一个独立的数据库对象&#xff0c;用…

高等数学基础篇(数二)之微分方程(高阶线性微分方程)

高阶线性微分方程&#xff1a; 1.线性微分方程的解的结构 2.常系数齐次线性微分方程 3.常系数非齐次线性微分方程 4.欧拉方程 5.差分方程 目录 1.线性微分方程的解的结构 2.常系数齐次线性微分方程 3.常系数非齐次线性微分方程 4.欧拉方程 5.差分方程 1.线性微分方程…

【C++练级之路】【Lv.16】红黑树(冰与火的碰撞,红与黑的史诗)

快乐的流畅&#xff1a;个人主页 个人专栏&#xff1a;《C语言》《数据结构世界》《进击的C》 远方有一堆篝火&#xff0c;在为久候之人燃烧&#xff01; 文章目录 引言一、红黑树的概念二、红黑树的模拟实现2.1 结点2.2 成员变量2.3 插入情况一&#xff1a;uncle在左&#xff…

C++ STL- list 的使用以及练习

目录 0.引言 1. list 介绍 2. list 使用 2.1 构造函数 2.2 list iterator 的使用 3 list capacity 4. list element access 5. list modifiers 6. list 迭代器失效 7. list 与vector 对vector 8. OJ 题讲解 删除链表的倒数第 N 个节点&#xff1a; 0.引言 …

tcp/ip是什么意思,tcp/ip协议包含哪几层

TCP/IP是一种网络通信协议&#xff0c;它是互联网所采用的基本协议。TCP/IP协议是由美国国防部高级研究计划局&#xff08;ARPA&#xff09;在上世纪70年代设计开发的&#xff0c;经过多年发展和完善&#xff0c;已成为全球范围内最重要的网络通信协议之一。 首先&#xff0c;让…

python能做什么

python能做什么 Web开发&#xff1a;Python具有许多流行的Web框架&#xff0c;如Django和Flask&#xff0c;使得它成为Web开发的首选语言。它简洁、易于学习、且拥有丰富的生态系统&#xff0c;能够快速构建高性能的Web应用。 数据科学和机器学习&#xff1a;Python在数据科学…

Luminar Neo:重塑图像编辑新纪元,Mac与Win双平台畅享创意之旅

在数字时代的浪潮中&#xff0c;图像编辑软件已成为摄影师和设计师们不可或缺的创作工具。Luminar Neo&#xff0c;作为一款专为Mac与Windows双平台打造的图像编辑软件&#xff0c;正以其卓越的性能和创新的编辑功能&#xff0c;引领着图像编辑的新潮流。 Luminar Neo不仅继承…

Vue3更新Package.json版本号

由于我之前已经更新过了&#xff0c;下面的方法提示我已经是最新的了&#xff0c;记录一下&#xff0c;过段时间在测试一下 npm install -g vue/clivue upgrade