Lecture Notes in Probabilistic Diffusion Models

https://arxiv.org/pdf/2312.10393

打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片

摘要

扩散模型是基于非平衡热力学的松散模型,其中扩散是指颗粒从高浓度区域流向低浓度区域。在统计学中,其含义非常相似,即把Rd上的复杂分布pcomplex转化为同一域上的简单分布pprior的过程。这构成了向数据缓慢添加随机噪声的扩散步骤的马尔可夫链,随后是反向扩散过程,其中数据从噪声中重建。扩散模型通过对大量数据点进行训练来学习原始数据样本所属的数据流形,从而学习重建数据样本所属的数据流形。当扩散过程将数据样本推离数据manifold时,相反的过程会找到返回数据流形的轨迹。与变分自动编码器和流量模型不同,扩散模型具有与原始数据维数相同的潜在变量,并且目前在模拟自然图像分布等方面优于其他方法,包括生成式对抗网络(GANs)。

1导言

本文件旨在成为与扩散模型相关的数学基础的连贯描述。这一领域的文献数量增长非常快,但扩散过程的数学基础基本上保持不变。在这份文件中,我们给出了这个基础的selfcontained演示,使用连贯的符号。我们将尽可能避免讨论与实现相关的问题,而是关注扩散模型的基本属性。本文档最初是作为挪威科技大学课程“IT3030:深度学习”的课堂笔记准备的。

2 扩散过程

2.1 前向扩散

假设我们有一个可以从中提取数据样本 x0 的分布。下标0表示这是一个没有添加任何噪声的原始数据样本(例如图像)。在前向扩散过程中,噪声分T步逐渐添加到样本中,生成噪声越来越大的样本 (意味着 xT - 样本遵循预定义的分布 pprior 对于足够大的 T)。必须安排噪声程序以正确的速度添加噪声(“破坏”数据样本)。为此,添加噪声的方差 β 按照时间表增加,即扩散步骤由方差时间表 参数化。通过重复应用马尔可夫扩散核 K,数据分布逐渐转换为另一种分布,即第 t 步的数据样本 xt 是使用以下公式从 生成的:

打开网易新闻 查看精彩图片

其中 βt 是扩散速率。这清楚地表明该过程是马尔可夫的,因为每个步骤仅取决于前一个样本。从原始数据样本x0到步骤T最终样本的整个过程的联合概率可以写为

打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片

我们在上面的开发中给了 Z 变量明确的索引来跟踪时间步长,但请记住,它们都遵循均值为 0 和协方差矩阵 I 的标准高斯分布。(8) 中的点 表示对所有步骤重复此过程,直到 X0,并且在等式(9)中,我们引入了紧凑符号 因此,我们得出了在给定初始样本 x0 的情况下生成单个噪声样本 xt 的表达式:

请注意,添加的噪声的协方差矩阵始终是对角的。样本xt的噪声逐渐增加,当T → ∞时,xT从各向同性高斯分布中提取, N(0,I)= p prior。【Ho等人,2020年】使用T = 1000。关于方差表,βt的值通常在【104,0.02】范围内。【Sohl-Dickstein等人,2015年】中使用的时间表定义了t和βt之间的线性关系hip,而【Nichol和Dhariwal,2021年】中使用的时间表是余弦。图2显示了该范围的参数值,为简单起见,使用了线性标度。

总之,前向扩散过程由采样x0到随机高斯噪声变量 的逐步变换组成。我们从x0开始,在每个时间步长t = 1。。。T进行调整,使得xt的均值逐渐向零移动,方差随着T的增加逐渐向1增加。通过使用图2研究等式(10)中参数的数值,可以很容易地看出这一点。

打开网易新闻 查看精彩图片

最后,我们还可以使用等式(10)直接从原始样本x0生成样本xt

图 3 显示了单变量扩散过程的示例轨迹。该图的顶部显示了全部从同一个 x0 开始的 10 条轨迹。数据是通过使用 按照方程 (3) 迭代采样生成的。最终,在 t = T 时,样本大致遵循右侧所示的目标高斯分布。图 3 的底部给出了基于大量采样轨迹的每个 t 的估计密度 ,另请参见方程 (10),再次使用与顶部部分相同的起始点 x0。数字。

打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片

图 3:前向过程沿着时间增加的方向移动(从左到右)。每个图右侧的边际分布给出了分布 q(xT |x0)。顶部:从同一起点 x0 采样的 10 条轨迹。底部:对于每个 t,该图显示了基于从同一起点 x0 采样的 25.000 个轨迹的估计条件分布 .‍

关于正向扩散过程的最后一点是我们不需要训练一个机器学习模型来做这些。我们简单地机械地遵循等式(3)来变换来自数据分布pdata的样本x0,直到我们获得(近似地)来自更简单的pprior的变换样本xT。人们可能会问我们从中获得了什么。在下一小节中,当我们颠倒这个过程时,这一点将有望变得清楚:从样本 开始,我们将逐渐改变它,直到我们获得一个(大约)来自pcomplex的x0。

2.2 生成建模=消除扩散

打开网易新闻 查看精彩图片

请记住,我们之前将 q(x0) 称为 pcomplex,因为我们没有理由相信它是高斯分布(或者它来自任何其他数学上方便的分布族):它仅适用于 t > 0 且 条件是在起点 x0 上所有变量都是高斯分布。总之,我们将无法直接计算 q(xt−1|xt),而是需要做其他事情。相反,这个想法是找到 q(xt−1|xt) 的合适近似值,并让该近似值定义相反的过程。幸运的是,即使我们限制 pcomplex 的使用,我们也可以定义这样的反向扩散过程。在下文中,我们将仅访问发行版中的示例。我们将通过从训练数据中随机选择示例来生成这些样本,训练数据代表数据分布 pdata,因此近似于 pcomplex。这是扩散模型背后的核心思想,接下来将描述所有这些如何结合在一起。

作为使用贝叶斯规则反转扩散过程的替代方法,我们将定义一个新的分布,旨在直接表示相反的过程。也就是说,我们将创建一个至少近似 q(xt−1|xt) 的逐步降噪过程 p(xt−1|xt)。利用反向过程必须具有与正向过程相同的函数形式的观察结果(假设正向过程中每个 βt 足够小),每个反向步骤都可以参数化为高斯分布,并且可以通过拟合 正如 [Sohl-Dickstein et al., 2015] 所观察到的,神经网络。这意味着我们只需估计分布 p(xt−1|xt) 的均值和方差即可从中抽取样本。让一个由 θ 参数化的神经网络代表这个分布,即产生分布参数 µ 和 Σ,我们可以这样写

打开网易新闻 查看精彩图片

当学习生成等式(12)中的参数的网络时,深度神经网络除了时间步 t 本身之外,还将时间 t, xt 处的样本作为输入,以考虑前向过程的方差调度 ; 由于不同的时间步长与不同的噪声水平相关,因此模型必须学会单独撤消这些步长。

打开网易新闻 查看精彩图片

这里,分布p(xT ) 与q(xT ) 相同,即纯噪声分布pprior =N (xT ; 0, I)。这意味着生成过程从高斯噪声开始,然后从逆过程中学习到的各个步骤中进行采样。

请注意,虽然原始数据样本(例如图像)不具有零非对角协方差(相邻像素包含彼此的信息),但添加到原始样本的噪声是对角的,这意味着我们可以假设 去除的噪声也是对角线的,即 对于某个标量值 σ,Σ = σ · I。在对角协方差矩阵 Σ 的情况下,可以单独估计每个维度的均值和方差,并且可以用单变量高斯的乘积来描述多元密度函数。如果给出了方差,我们只需预测平均值即可。在[Nichol and Dhariwal,2021]中,经验表明学习协方差可以提高生成样本的质量,但这不是我们在这里关注的重点。我们宁愿只预测反向扩散过程分布的平均值,而方差遵循由 t 参数化的时间表。因此,逆过程的一般过程如图 4 所示。我们从 pprior 的样本开始,使用由参数 θ 的神经网络驱动的方程(12),最终获得 x0。我们将讨论两种不同的逆过程,即去噪扩散概率模型 [Ho et al., 2020, Nichol and Dhariwal, 2021] 和去噪扩散隐式模型 [Song et al., 2020]。然而,我们将首先讨论如何定义神经网络的损失函数。

打开网易新闻 查看精彩图片

2.3 损失

我们在训练神经网络学习方程(12)时,要优化的目标是什么?所有生成模型都试图学习它们的训练数据的分布,因此最大化模型对x0赋予的似然性会是合理的。计算这一似然性需要对所有从t = T到t = 1的步骤进行边缘化处理。

打开网易新闻 查看精彩图片

最大化方程(14)给出了过程pθ关于 ,该过程具有产生观察到的x0的最大对数似然的性质。然而,评估上述表达式涉及对从噪声到数据流形的所有可能轨迹进行积分,这是不可行的。相反,我们可以最大化对数似然的一个下界,借鉴了变分自编码器的思想。

要得到这些结果,我们首先讨论了一些关于变分推断(第2.3.1节)和变分自编码器(第2.3.2节)的结果。不幸的是,社区背后使用的一些语法与本文档其他部分使用的不同。尽管如此,我们在描述中忠实于原始术语,然后尝试在第2.3.3节中将核心概念和思想“翻译”回我们的语言。

2.3.1 变分下界

打开网易新闻 查看精彩图片

然而,通常我们不知道如何计算积分 ,因此,我们不能计算上述表达式中的分母,而是选择用函数 来近似 。该函数可以来自近似族 ,其中我们试图选择使q4和真实分布p之间的某个距离度量A最小的一个。形式上,

打开网易新闻 查看精彩图片

因此,例如,如果我们让 为所有高斯分布的集合,那么ϕ = {µ, Σ}是用于识别 的每个成员的参数化,而方程(15)抽象地描述了如何选择最佳参数化。出于我们无法控制的原因,Kullbach-Leibler(KL)散度DKL已被认为是一种有利的距离度量,因为它具有一些良好的数学性质。它的计算方式是:

打开网易新闻 查看精彩图片

它量化了概率分布p与另一个分布q之间的差异。简写Ex∼q表示期望是使用来自q的x值计算的。KL散度始终为正,但在交换p和q时不对称是其较不理想的数学性质之一。图5给出了一个使用两个高斯分布的示例,其中KL散度是红色曲线下的面积。请注意,即使红色曲线本身有时会取负值,KL散度也不能为负。

打开网易新闻 查看精彩图片

利用KL散度,并利用qϕ(z|x)的概率分布归一化,即∫ qϕ(z|x)dz = 1,我们现在可以将对观察数据的对数似然log p(x)重新写为

打开网易新闻 查看精彩图片

最后一行的量被称为证据下界(ELBO),它是log p(x)的一个下界,因为DKL始终为正。这一步通常在讲义和论文中被省略,而是提及“Jensen不等式”,该不等式概括了凸函数的割线位于函数图像之上。在变分自编码器(VAEs)的标准制定中,目标是最大化ELBO。变分一词指的是从潜在近似函数家族Q中优化qϕ(z|x)。

请注意,真实数据分布p(x)与qϕ是常数(真实世界不关心我们选择哪个函数来近似它),这意味着ELBO和KL散度在优化ϕ时总和为一个常数。因此,相对于ϕ最大化ELBO等同于最小化DKL,这对应于找到一个最佳模型来近似真实的潜在分布。

2.3.2 变分自编码器 VAE

打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片

因此,在优化ELBO时,我们学习两个分布;先验匹配项优化了编码函数qϕ(z|x)的参数ϕ,使其与真实的潜在分布p(z)相匹配,即鼓励近似后验与潜在变量上的先验相似,而重构项优化了解码函数pθ(x|z)的参数θ,最大化了给定潜在变量的数据分配的预期概率密度。联合优化参数ϕ和θ是VAE的一个显著特征。

打开网易新闻 查看精彩图片

蒙特卡洛操作发生在我们对训练数据中的每个x从qϕ(z|x)中采样z_l时。训练后,可以通过从潜在空间直接采样p(z),然后对这些样本运行解码器来生成新数据。

2.3.3 回到扩散

扩散模型的故事与第2.3.2节中的变分自编码器故事相反:我们从一个对象x0开始,通过已知过程q(xt|xt−1)逐渐将其转换为噪声。这与VAEs的设置形成对比,因为我们的前向过程——对应于编码到潜在变量的过程——不是学习的,而是固定的。因此,我们没有一个参数化的qϕ。然而,反向过程必须被学习,因此我们仍然有参数化的pθ。因此,我们只需要一个神经网络模型(用于学习反向过程),类似于VAE的解码器部分。尽管如此,我们仍然可以利用VAEs使用的训练目标。

打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片

稍后我们将把 提升为(负)损失函数,所以让我们首先讨论为什么这是合理的。显然,在训练数据集中的元素处评估的 给出了该特定示例的对数似然,即从随机初始化开始的逆过程应在该特定数据点结束的对数似然。如果这个数字很高,我们有一个相反的过程,使得生成数据点成为可能。换句话说,逆过程很有可能产生x0。如果逆向过程能够为我们的训练数据中的所有示例提供合理大小的对数似然,这表明逆向过程非常适合生成我们的数据。总体而言,使用对训练数据集中所有数据点求和的负对数似然似乎是合理的,因此是我们希望遵循的策略。不幸的是,我们无法获得这个数量,这就是为什么我们使用第 2.3.1 节中讨论的 ELBO 并在方程 (18) 中为扩散模型定义。

接下来,我们看看如何有效地计算 ELBO。下面,我们将其用于正实数 a 和 b,log a · b = log a + log b,并且 log a/b = log a − log b。在方程(18)中使用它,我们得到

打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片

这最终是用于训练扩散模型的(负)损失函数。

打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片

这意味着时间 t 时反向过程的分布(图 7b 中的红色区域)应尽可能接近同时的(绿色)正向过程。

打开网易新闻 查看精彩图片

2.3.4 只有一个期望

正如上面简要提到的,我们很自然地将损失函数定义为 ,因为观察到的数据点 的对数似然性较低,意味着预测性能较差 x0。由于我们无法通过分析计算此对数似然,因此我们可以使用方程(21),此处重复以方便参考:

打开网易新闻 查看精彩图片

请注意这里的术语 其中我们需要计算每个t在 上的期望值。双重期望的来源是,当q过程正向工作时(从t–1到t),pe过程反向工作(从t + 1到t)。现在的想法是使用贝叶斯规则来改变我们定义的损失函数中q过程的方向,这意味着我们试图表达

打开网易新闻 查看精彩图片
通过替代表示,我们现在反转该过程,即关注从 t 到 t − 1 的过渡,而不是前向过程:
打开网易新闻 查看精彩图片

确保 pθ 和 q 这两个过程在时间上颠倒,使它们更容易比较。这样做,我们发现损失可以表示为 − log ,其中

打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片

优化我们的神经网络以最小化类似于等式(28)的损失将有助于我们定义一个生成过程,为训练数据分配尽可能高的可能性。我们很快就会讨论如何使用它来生成(大约)从 pcomplex 中采样的新样本,但首先我们将总结迄今为止所发现的内容。

2.3.5 扩散过程和模型训练损失的总结

在下一节中,我们将考虑如何有效地优化关于θ的损失,但首先让我们总结一下我们目前的情况和我们是如何到达这里的:

- 从预先确定和固定的扩散模型 开始,我们逐渐将数据点 从数据分布pcomplex扩散到简单分布pprior中的点xT,通常假设为标准高斯分布。

- 现在我们的目标是反转扩散过程,也就是找到 的“逆”,我们将其表示为 。我们有一个优势,就是我们知道逆过程应该结束在哪里,即我们知道t = 0时的边缘分布,pθ(x0),必须等于pdata,再次近似于pcomplex。

• 我们最初的目标是最大化似然 ,最终我们的目标变成了最小化类似于

打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片

2.4 反向采样器

现在我们已经有了定义损失的一般原则,我们回到如何定义反向扩散过程。

2.4.1 DDPM 采样器

打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片

图 8 显示了 DDPM 采样器针对简单的单变量问题的工作情况。该图显示了许多轨迹,全部从相同的采样 xT 开始,并且随着 t 的值从 t = T 减少到 t = 0(即从右向左移动),最终结果从双峰产生样本分布与用于生成训练数据的目标分布非常相似。

打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片

2.4.2 DDIM:确定性去噪

再次参考方程(34)中的DDPM采样器,如图8所示,我们看到去噪过程是随机的,我们无法确定哪个潜在位置xT是采样x0的起源。然而,鉴于噪声预测模型 ,我们可以替代地创建一个确定性的去噪过程来从目标分布中创建样本。这称为去噪扩散隐式模型(DDIMs),在[宋等人,2020]中介绍。

打开网易新闻 查看精彩图片

只取决于 (这是期望中使用的分布),而不是显式地取决于联合分布 或每个噪声步骤 。由于许多联合分布 可以具有相同的边缘 ,[Song et al., 2020] 探索了一种替代的、非马尔可夫的推断过程,导致了新的生成过程,但具有与DDPM相同的代理目标函数:他们考虑了一个定义为

打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片

接下来,[Song et al., 2020] 介绍了所有 t > 1 的去噪过程的以下函数表示2,

打开网易新闻 查看精彩图片

这是为了确保对于所有的t,qσ(xt|x0) = N (√¯αtx0,(1− ¯αt)I),即我们的方程(10)中的确切形式。

方程(36)中的表达式类似于方程(24),但请注意方差项已被参数σt替换,该参数可以取任何值,包括零。由于 ,就像对于DDPM一样,并且这个项是损失中唯一起作用的项(参见方程(33)中的期望),我们可以看到两种方法的训练将是相同的:作为一个DDPM模型训练的神经网络来估计 可以直接被DDIM反向过程使用。这真正令人兴奋的部分在于:我们不必为每个σt的选择训练不同的模型,而是可以使用我们的DDPM目标来学习一个由σt参数化的非马尔可夫正向过程的生成过程!

。DDPM导致我们研究了方程(24)中的分布,并获得了方程(34)中的采样步骤,这里为了参考再次重复:

打开网易新闻 查看精彩图片

DDIM对 的采样包括三个部分:首先我们从 中估计x0,然后(由于如果t > 0, 不应该是x0,而应该是在x0和xt之间路径上的一步),向x0朝向xt的方向移动。最后,我们添加标准差为σt的高斯噪声。关于噪声水平的最后一部分相比于DDPM给了我们更多的灵活性。对于DDPM,噪声必须按照方程(25)中定义的β˜t进行调度。然而,在DDIM中,σt被引入为一个额外的常数,我们可以自行选择。如果我们选择

打开网易新闻 查看精彩图片

这个前向过程变成了马尔可夫过程,我们重新获得了DDPM的生成过程。另一方面,现在已经成为习惯,更倾向于选择σt = 0,这种情况下生成过程是确定性的。这种模型被称为隐式概率模型[Mohamed and Lakshminarayanan, 2017]。由这样的模型执行的生成过程被[宋等人,2020]简称为去噪扩散隐式模型,简称DDIM。要记住的重要见解是,对于σt的任何值,训练目标都是等价的,这意味着使用通用DDPM过程训练的模型可以用于系列中的任何生成过程,包括DDIM,因此可以用来确定性地生成样本。这将我们引导到了算法3中的采样过程。

打开网易新闻 查看精彩图片

通过从去噪过程中移除随机元素,这个过程变成了完全确定性的,我们得到了模型的唯一潜在空间的概念。具体来说:给定相同的初始样本xT,DDIM过程,即方程(37),总是生成相同的最终样本,而DDPM过程,即方程(34),对于相同的初始样本生成不同的最终样本。这可以在图9中观察到。

打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片

图9:使用DDIM的逆过程:xT从一个各向同性高斯分布中采样,而随后的步骤是确定性的。逆过程被显示,因此从右向左移动。最左边的实线边缘显示了在多次重复采样时的经验分布,而阴影区域是实际分布pcomplex。请注意,起始xT和结果x0之间的确定性关系使得需要对许多xT进行采样,以获得对pcomplex的合理近似。

在扩散模型中,前向(即噪声)过程中的步数T是一个重要的超参数。如前所述,较小的步长使得去噪过程接近于一个高斯分布,因此使用高斯条件分布建模的生成过程是一个很好的近似。这激发了T值的大幅增加,就像[Ho et al., 2020]中所述。然而,与其他生成模型不同,其中过程可以并行化,DDPM中去噪过程中的所有步骤必须按顺序执行。这使得通过去噪生成的过程相比其他生成模型具有显著的劣势。因此,与DDIM相关的一个重要结果是,原则上只能对子集中的点评估逆过程,而不是在每个t处进行评估,通常不会显著降低生成对象的质量。由于这一发现并不是模型本身定义的核心内容,我们在这里不讨论这个结果,而是将感兴趣的读者引用到[宋等人,2020]。

3 文本提示

3.1 文本条件化

最基本的文本条件化尝试描述在[Nichol等人,2022]中,并与模型的结构紧密相连:U-Net[Ronneberger等人,2015],用于预测 。关键是,对于每个文本提示y,首先将文本编码成一系列k个标记,并将其馈送到一个Transformer模型中。变换器的标记嵌入的最后一层(一系列k个特征向量)与U-Net中每一层的注意力上下文连接在一起。然而,据报道,这种方法导致图像生成不稳定,需要更强的来自文本提示的信号。接下来将讨论这一点。

3.2 分类器引导

文本条件化(如第3.1节所示)使我们有机会温和地引导模型朝着与文本提示相关的对象前进。然而,有大量证据表明,这可以进一步改进。在本小节中,我们描述分类器引导,一种使用外部分类器指导生成的方法。我们首先描述主要思想及其数学基础,然后说明如何将其用于文本引导。

3.2.1 主要思想

打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片

"constant" 这个术语指的是与 z 无关的项。在方程(40)中使用这种表示方式来表示 log pθ(xt|xt+1),并决定围绕 ν = µt 进行 Taylor 近似,我们得到:

打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片

3.2.2 使用分类器指导文本

上述描述是一般性的,我们只需要一个概率分类器 pξ(y|x),并没有对分类器的学习方式或类别的实际含义做出硬性要求。在本小节中,我们将简要讨论如何将分类器引导的设置应用于文本提示。当然,如果我们让分类器表示标题,并认为对于每个图像来说只有一个正确的标题,那么我们原则上可以在这个(极其庞大的)类别集上学习一个分类器,并使用方程(43)来引导对象生成,使之与所需文本相关。这是 [Nichol et al., 2022] 的目标。然而,为了避免学习分类器的挑战,作者们使用了 CLIP [Radford et al., 2021]。

简单来说,CLIP 使用了一个包含 4 亿个(图像,文本)对的数据集,通过联合训练图像编码器 fimg(·) 和文本编码器 ftxt(·) 来学习一个多模态嵌入空间。这两个模型被学习,以便当图像 x 和标题 y 之间的余弦相似度 最大化时,y 是图像 x 的标题。

打开网易新闻 查看精彩图片

这里需要最后一点说明,即原始的 CLIP 模型是在实际图像上训练了 ,而我们的使用情景是分析带有噪音的图像 xt,其中 t > 0。因此,[Nichol et al., 2022] 自然而然地能够通过重新训练图像嵌入来改进他们的结果,即通过使用带有噪音的图像重新训练一个图像嵌入器 ,该嵌入器接收一个带有噪音的图像 和噪音水平 (间接通过 t),并在同一多模态嵌入空间中产生一个嵌入。

3.3 无分类器引导

为了尝试在不需要“外部”分类器 pξ(y|x)(或 CLIP 嵌入模型 的情况下进行文本引导,[Ho 和 Salimans, 2021] 提出了一种在不依赖外部模型的情况下训练扩散模型的方法。

起点是在公式(32)中学习的 的估计器。现在的想法是学习一个条件模型, ,它现在也接收图像标题(或者在实践中是标题的语义嵌入;[Saharia et al., 2022] 已经证明预训练语言模型可以用于嵌入文本内容而不会损失图像生成质量)作为额外输入 y。这意味着该模型是从(图像,文本)对中学习的。现在和以后,也就是随机且以固定概率,文本信息会被压制在输入中,使得模型也学习 。

在图像生成时,系统首先生成提示的嵌入,得到嵌入 y。然后,引导 ϵ-估计器被定义为

打开网易新闻 查看精彩图片

其中 s 是一个超参数,用于确定引导的强度。[Ho 和 Salimans,2021] 表明,如果 -模型是精确的,那么

打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片

4 当前趋势

我们通过对正在进行的研究方向以及相关作品的示例进行一些快速评论来结束这些讲义。在撰写本文时,使用扩散模型的一个主要趋势是进一步改进基于文本的图像生成,同时扩展到 3D 合成 [Poole et al., 2022] 以及视频生成 [Xing et al., 2022]。,2023]。扩散模型还用于生成结构化数据类型,例如文本序列 [Gong et al., 2023] 和蛋白质折叠 [Wu et al., 2022],并且还用于解决强化学习问题 [Ajay et al., 2023] ]。此外,新的理论成果正在不断发展。一项有趣的工作与贝叶斯流网络 [Graves et al., 2023] 有关,它能够从连续变量和离散变量生成样本。

A 数学技巧

A.1 蒙特卡罗估计

打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片

A.2 重参数化技巧

在概率AI中的一个关键概念,对于训练我们的扩散模型时评估损失函数将非常有用,它依赖于所谓的重参数化技巧[Kingma和Welling,2014]。理解这个非常有用的想法的起点是期望值的近似,参见附录A.1。接下来,假设期望值是损失函数的一部分,并且我们希望优化相对于参数θ的损失,那么我们就需要刚刚近似的期望的梯度:

打开网易新闻 查看精彩图片

请注意,虽然我们可以使用方程(45)中的MC估计来通过简单评估每个样本x(m)的∇θ fθ x(m)来近似方程(46)右侧的第一个积分,但MC估计不能用于近似第二个积分。这是因为通常情况下,既不∇θ pθ(x)也不fθ(x)会是概率密度。因此,第二个积分不是一个期望,因此用样本平均来近似它是没有意义的。

打开网易新闻 查看精彩图片

在这里,方程(47)是对变量的简单变换,方程(48)成立是因为Y的分布不依赖于θ,因此我们可以交换期望和梯度,而方程(49)简单地使用蒙特卡罗采样来近似方程(48)中的期望,就像我们在方程(45)中所做的那样。请注意,我们需要使用导数的链式法则来计算 。在应用中,我们通常选择较低的M值来进行这些计算,有时甚至低至M = 10或者甚至M = 1,以便能够快速计算梯度的近似值。

打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片

在这个简单的例子中,我们因此可以计算出精确的值,并发现 。我们还能够证明,在M → ∞时,通过重参数化技巧得到相同的结果。这就完成了演示。