2021 年 9 月 19 日更新:强烈推荐杨松(参考文献中几篇重要论文的作者)撰写的关于基于分数的生成建模的博客文章。
更新于 2022-08-27:添加了无分类器指导、GLIDE、unCLIP 和 Imagen。
更新于 2022-08-31:添加了潜在扩散模型。
2024 年 4 月 13 日更新:添加了渐进蒸馏、一致性模型和模型架构部分。
到目前为止,我已经写了关于三种生成模型的文章,分别是 GAN、VAE 和基于流的模型。它们在生成高质量样本方面取得了巨大成功,但每种模型都有自己的局限性。GAN 模型以潜在不稳定的训练和生成中较少的多样性而闻名,这是由于其对抗性训练的特性。VAE 依赖于替代损失。流模型必须使用专门的架构来构建可逆变换。
扩散模型受非平衡热力学启发。它们定义了一个扩散步骤的马尔可夫链,逐步向数据添加随机噪声,然后学习逆转扩散过程,从噪声中构建所需的数据样本。与 VAE 或流模型不同,扩散模型是通过固定程序学习的,潜变量具有高维度(与原始数据相同)。
图 1. 不同类型生成模型的概述。
扩散模型是什么?
几种基于扩散的生成模型已经提出了类似的思路,包括扩散概率模型(Sohl-Dickstein 等,2015 年),噪声条件评分网络(NCSN;Yang&Ermon,2019 年)和去噪扩散概率模型(DDPM;Ho 等,2020 年)。
前向扩散过程
给定从真实数据分布中抽样的数据点
数据样本
图 2. 通过缓慢添加(移除)噪声生成样本的前向(反向)扩散过程的马尔可夫链。(图片来源:何等人 2020 年,附有少量额外注释)
上述过程的一个很好的特性是,我们可以使用重新参数化技巧在任意时间步
回想一下,当我们合并两个具有不同方差的高斯分布
通常,当样本变得更嘈杂时,我们可以承担更大的更新步骤,因此
随机梯度 Langevin 动力学的连接
Langevin 动力学是物理学中的一个概念,用于统计建模分子系统。结合随机梯度下降,随机梯度 Langevin 动力学(Welling&Teh 2011)可以仅使用更新的马尔可夫链中的梯度
其中
与标准的随机梯度下降相比,随机梯度 Langevin 动力学将高斯噪声注入参数更新中,以避免陷入局部最小值。
反向扩散过程
如果我们可以反转上述过程并从
图 3. 训练扩散模型来建模 2D 瑞士卷数据的示例。(图片来源:Sohl-Dickstein 等人,2015)
值得注意的是,当条件为
使用贝叶斯定理,我们有:
其中
由于这个很好的性质,我们可以表示
如图 2 所示,这样的设置与 VAE 非常相似,因此我们可以使用变分下界来优化负对数似然。
使用 Jensen 不等式得到相同的结果也很简单。假设我们希望将交叉熵最小化作为学习目标,
将方程中的每个项转换为可分析计算的形式,目标可以进一步重写为几个 KL 散度和熵项的组合(请参见 Sohl-Dickstein 等人 2015 年附录 B 中的详细逐步过程):
让我们分别为变分下界损失中的每个组件进行标记:
在
的参数化用于训练损失
回想一下,我们需要学习一个神经网络来逼近反扩散过程中的条件概率分布,
损失项
简化
根据经验,何等人(2020 年)发现,训练扩散模型时,使用一个忽略加权项的简化目标效果更好:
最终简单目标是:
其中
图 4. DDPM 中的训练和采样算法(图片来源:Ho 等人 2020 年)
与噪声条件评分网络(NCSN)的连接
Song & Ermon (2019)提出了一种基于分数的生成建模方法,其中样本是通过使用得分匹配估计的数据分布的梯度进行 Langevin 动力学产生的。每个样本的密度概率的得分被定义为其梯度。一个得分网络被训练来估计它。
为了使深度学习环境中的高维数据具有可扩展性,他们建议使用去噪得分匹配(Vincent, 2011)或切片得分匹配(使用随机投影;Song 等,2019)。去噪得分匹配向数据
回想一下,朗之万动力学可以使用迭代过程中的得分
然而,根据多样性假设,预计大多数数据将集中在低维流形中,即使观察到的数据可能看起来只是任意高维的。这对评分估计产生了负面影响,因为数据点无法覆盖整个空间。在数据密度较低的区域,评分估计不太可靠。在添加一点高斯噪声以使扰动数据分布覆盖整个空间
增加噪音水平的时间表类似于前向扩散过程。如果我们使用扩散过程注释,得分接近
的参数化
前向方差在 Ho 等人(2020 年)中被设置为一系列线性增加的常数,从
Nichol&Dhariwal(2021)提出了几种改进技术,以帮助扩散模型获得更低的 NLL。 其中一种改进是使用基于余弦的方差调度。 调度函数的选择可以是任意的,只要它在训练过程中提供接近线性的下降,并在
小偏移
图 5. 在训练过程中,线性调度和余弦调度
反向过程方差的参数化
Ho 等人(2020 年)选择将
尼科尔和达里瓦尔(2021 年)建议通过模型预测混合向量
然而,简单的目标
图 6. 改进的 DDPM 负对数似然与其他基于似然的生成模型的比较。NLL 以比特/维单位报告。(图片来源:Nichol & Dhariwal, 2021)
条件生成
在对带有条件信息的图像进行生成模型训练时,例如 ImageNet 数据集,通常会生成受类别标签或一段描述性文本条件的样本。
分类器引导扩散
为了明确将类别信息纳入扩散过程中,Dhariwal & Nichol (2021) 在嘈杂图像上训练了一个分类器
因此,一个新的分类器引导的预测器
控制分类器引导的强度,我们可以向增量部分添加权重
得到的消融扩散模型(ADM)和具有额外分类器指导的模型(ADM-G)能够比 SOTA 生成模型(例如 BigGAN)取得更好的结果。
图 7. 这些算法利用分类器的指导来运行带有 DDPM 和 DDIM 的条件生成。(图片来源:Dhariwal & Nichol, 2021)
此外,Dhariwal & Nichol(2021)对 U-Net 架构进行了一些修改,表现优于 GAN 与扩散模型。架构修改包括更大的模型深度/宽度,更多的注意力头,多分辨率注意力,用于上/下采样的 BigGAN 残差块,由
无分类器指导
没有独立的分类器
隐式分类器的梯度可以用条件和无条件得分估计器表示。一旦插入分类器引导的修改得分,得分就不再依赖于单独的分类器。
他们的实验表明,无分类器指导可以在 FID(区分合成和生成的图像)和 IS(质量和多样性)之间取得良好的平衡。
引导扩散模型 GLIDE(Nichol,Dhariwal&Ramesh 等,2022 年)探索了两种引导策略,即 CLIP 引导和无分类器引导,并发现后者更受青睐。他们假设这是因为 CLIP 引导利用对抗示例朝向 CLIP 模型优化模型,而不是优化更匹配的图像生成。
加快扩散模型
从反向扩散过程的马尔可夫链中生成 DDPM 样本非常缓慢,因为
更少的采样步骤和蒸馏
一种简单的方法是通过运行一个分步采样计划(Nichol&Dhariwal,2021),每隔
对于另一种方法,让我们将
模型
回想一下,在
让
在生成过程中,我们不必遵循整个链
在实验中,所有模型都是经过
图 8. CIFAR10 和 CelebA 数据集上不同设置的扩散模型的 FID 分数,包括
与 DDPM 相比,DDIM 能够:
使用更少的步骤生成更高质量的样本。
生成过程是确定性的,具有“一致性”属性,这意味着在相同潜变量条件下生成的多个样本应具有类似的高级特征。
由于一致性,DDIM 可以在潜变量中进行语义上有意义的插值。
图 9. 渐进蒸馏可以在每次迭代中将扩散采样步骤减少一半。(图片来源:Salimans & Ho, 2022)
渐进蒸馏(Salimans&Ho,2022)是一种将经过训练的确定性采样器蒸馏成新的模型,采样步骤减半的方法。学生模型是从教师模型初始化的,并朝着一个目标去噪,其中一个学生 DDIM 步骤匹配 2 个教师步骤,而不是使用原始样本
图 10. 算法 1(扩散模型训练)和算法 2(渐进蒸馏)并排比较,渐进蒸馏中的相对变化用绿色标出。
(图片来源:Salimans&Ho,2022)
一致性模型(Song 等人 2023 年)学习将扩散采样轨迹上的任何中间嘈杂数据点
图 11. 一致性模型学习将轨迹上的任何数据点映射回其原点。(图片来源:宋等人,2023)
给定一个轨迹
一种一致性模型可以在单个步骤中生成样本,同时仍保持在多步采样过程中交换计算以获得更好质量的灵活性。
这篇论文介绍了训练一致性模型的两种方法:
-
一致性蒸馏(CD):通过最小化相同轨迹生成的成对模型输出之间的差异,将扩散模型蒸馏为一致性模型。这样可以实现更便宜的采样评估。一致性蒸馏损失为:在哪里
是一步 ODE 求解器的更新函数;
,在 上具有均匀分布;
网络参数 是 的 EMA 版本,极大地稳定了训练(就像在 DQN 或动量对比学习中一样);
是一个正距离度量函数,当且仅当满足 和 时, ,例如 , 或 LPIPS(学习的感知图像块相似性)距离
是一个正的加权函数,论文设置 。
-
一致性训练(CT):另一种选择是独立训练一致性模型。请注意,在 CD 中,使用一个预训练的评分模型 来近似地估计真实评分 ,但在 CT 中,我们需要一种方法来估计这个评分函数,结果表明存在一个无偏估计器 存在,如 。CT 损失定义如下:
根据论文中的实验,他们发现,
Heun ODE 求解器比 Euler 的一阶求解器效果更好,因为更高阶的 ODE 求解器具有相同 的较小估计误差。
在不同选项的距离度量函数 中,LPIPS 度量比 和 距离更有效。
较小的 导致更快的收敛,但样本质量较差,而较大的 导致收敛较慢,但在收敛时样本质量更好。
图 12. 在不同配置下一致性模型性能的比较。CD 的最佳配置是 LPIPS 距离度量、Heun ODE 求解器和
潜变量空间
潜在扩散模型(LDM;Rombach&Blattmann 等,2022 年)在潜在空间而非像素空间中运行扩散过程,使训练成本更低,推断速度更快。它受到这样的观察启发:图像的大多数位对感知细节有贡献,即使在进行激进压缩后,语义和概念组合仍然存在。LDM 通过首先使用自动编码器削减像素级冗余,然后在学习的潜在空间上通过扩散过程操纵/生成语义概念,松散地分解了感知压缩和语义压缩。
图 13. 表示压缩率和失真之间的权衡的图,展示了两阶段压缩 - 感知和语义压缩。 (图片来源:Rombach & Blattmann 等人,2022)
感知压缩过程依赖于自动编码器模型。编码器
KL-reg: 对学习到的潜在空间施加一个小的 KL 惩罚,类似于 VAE 对标准正态分布。
VQ-reg:在解码器中使用向量量化层,类似于 VQVAE,但量化层被解码器吸收。
扩散和去噪过程发生在潜在向量
图 14. 潜在扩散模型(LDM)的架构。 (图片来源:Rombach&Blattmann 等人,2022 年)
扩大生成分辨率和质量
为了在高分辨率下生成高质量图像,Ho 等人(2021 年)建议使用一系列不断增加分辨率的多个扩散模型的流水线。在流水线模型之间进行噪声调节增强对最终图像质量至关重要,即对每个超分辨率模型的调节输入
图 15. 一系列级联的多个扩散模型,分辨率逐渐增加。【图片来源:何等人 2021】
他们发现,最有效的噪音是在低分辨率下应用高斯噪音,在高分辨率下应用高斯模糊。此外,他们还探索了两种形式的条件增强,这需要对训练过程进行小的修改。请注意,条件噪音仅应用于训练,而不应用于推断。
截断条件增强在低分辨率时在步骤 提前停止扩散过程。
非截断条件增强运行完整的低分辨率反向过程直到步骤 0,然后通过 对其进行破坏,然后将受损的 输入到超分辨率模型中。
两阶段扩散模型 unCLIP(Ramesh 等人 2022)大量利用 CLIP 文本编码器以高质量生成文本引导的图像。给定预训练的 CLIP 模型
一个先前的模型 :在给定文本 的情况下输出 CLIP 图像嵌入 。
一个解码器 :根据 CLIP 图像嵌入 生成图像 ,并可选择性地使用原始文本 。
这两个模型可以实现有条件的生成
图 16. unCLIP 的架构。(图片来源:Ramesh 等人 2022)
unCLIP 遵循两阶段图像生成过程:
给定一个文本 ,首先使用 CLIP 模型生成文本嵌入 。使用 CLIP 潜空间可以通过文本进行零镜头图像操作。
一个扩散或自回归先验 处理这个 CLIP 文本嵌入,以构建图像先验,然后扩散解码器 生成一幅图像,条件是先验。这个解码器还可以生成基于图像输入的图像变化,保留其风格和语义。
与 CLIP 模型不同,Imagen(Saharia 等人,2022 年)使用一个预训练的大型 LM(即冻结的 T5-XXL 文本编码器)来对图像生成进行编码。有一个普遍趋势,即更大的模型尺寸可以带来更好的图像质量和文本-图像对齐。他们发现 T5-XXL 和 CLIP 文本编码器在 MS-COCO 上实现了类似的性能,但人类评估更偏好 T5-XXL 在 DrawBench 上(一个涵盖 11 个类别的提示集合)。
当应用无分类器指导时,增加
静态阈值:将 预测剪切到
动态阈值化:在每个采样步骤中,计算 作为某个百分位绝对像素值;如果 ,则将预测剪切到 并除以 。
Imagen 对 U-net 进行了几项设计修改,使其更高效。
通过为较低分辨率添加更多残差块,将模型参数从高分辨率块转移到低分辨率
通过 来缩放跳跃连接
为了提高前向传播的速度,将下采样的顺序(将其移至卷积之前)和上采样操作(将其移至卷积之后)颠倒。
他们发现,噪声调节增强、动态阈值和高效的 U-Net 对图像质量至关重要,但是文本编码器尺寸的扩展比 U-Net 尺寸更重要。
模型架构
扩散模型有两种常见的骨干架构选择:U-Net 和 Transformer。
U-Net(Ronneberger 等人,2015 年)由一个下采样堆栈和一个上采样堆栈组成。
下采样:每个步骤由两个 3x3 卷积(无填充卷积)的重复应用组成,每个卷积后跟一个 ReLU 和一个 2x2 步幅为 2 的最大池化。在每个下采样步骤中,特征通道的数量翻倍。
上采样:每个步骤包括对特征图的上采样,然后是 2x2 卷积,每次减半特征通道的数量。
快捷方式:快捷连接导致与下采样堆栈的相应层级连接,并为上采样过程提供必要的高分辨率特征。
图 17. U-net 架构。每个蓝色方块都是一个特征图,顶部标有通道数,左下角标有高度 x 宽度尺寸。灰色箭头标记了快捷连接。(图片来源:Ronneberger, 2015)
为了使图像生成能够根据额外的图像进行条件生成,用于合成信息,如 Canny 边缘、Hough 线、用户涂鸦、人体姿势骨架、分割地图、深度和法线,ControlNet(Zhang 等人 2023 年)通过在 U-Net 的每个编码器层中添加一个“夹层”零卷积层的可训练模型权重的副本,引入了架构变化。准确地说,给定一个神经网络块
首先,冻结原始块的原始参数
克隆它以成为一个具有可训练参数 和额外条件向量 的副本。
使用两个零卷积层,表示为 和 ,这是 1x1 卷积层,权重和偏置都初始化为零,将这两个块连接起来。零卷积通过在初始训练步骤中消除随机噪声作为梯度来保护这个骨干。
最终输出为:
图 18. ControlNet 架构。 (图片来源:张等人 2023 年)
扩散变换器(DiT;Peebles&Xie,2023)用于扩散建模,操作潜在补丁,使用与 LDM(潜在扩散模型)相同的设计空间。 DiT 具有以下设置:
将输入 的潜在表示作为 DiT 的输入。
将大小为 的噪声潜在性转换为大小为 的补丁,并将其转换为大小为 的补丁序列。
然后,这一系列的标记通过 Transformer 块。他们正在探索三种不同的设计,以便根据上下文信息(如时间步 或类标签 )进行生成。在三种设计中,adaLN(自适应层归一化)-Zero 效果最好,比上下文条件和交叉注意力块更好。缩放和移位参数 和 是从 和 的嵌入向量之和回归得到的。维度缩放参数 也被回归并立即应用于 DiT 块内的任何残差连接之前。
变压器解码器输出噪声预测和输出对角协方差预测。
图 19. 扩散变压器(DiT)架构。
(图片来源:皮布尔斯和谢,2023 年)
Transformer 架构可以很容易地进行扩展,这是众所周知的。这是 DiT 的最大优势之一,因为随着更多计算资源的投入,其性能也会提升,根据实验结果,更大的 DiT 模型在计算效率上更高。
快速总结
-
优点:在生成建模中,可追溯性和灵活性是两个相互冲突的目标。可追溯的模型可以进行分析评估并廉价地拟合数据(例如通过高斯或拉普拉斯),但它们不能轻松描述丰富数据集中的结构。灵活的模型可以拟合数据中的任意结构,但通常评估、训练或从这些模型中抽样是昂贵的。扩散模型既具有分析可追溯性又具有灵活性。 -
缺点:扩散模型依赖于一个长的马尔可夫链扩散步骤来生成样本,因此在时间和计算方面可能会非常昂贵。已经提出了新的方法来加快这一过程,但采样仍然比 GAN 慢。
引用
引用为:
翻译文本:翁,莉莲。 (2021 年 7 月)。 什么是扩散模型?Lil’Log。https://lilianweng.github.io/posts/2021-07-11-diffusion-models/.
Or
@article{weng2021diffusion,
title = "What are diffusion models?",
author = "Weng, Lilian",
journal = "lilianweng.github.io",
year = "2021",
month = "Jul",
url = "https://lilianweng.github.io/posts/2021-07-11-diffusion-models/"
}
参考资料
Jascha Sohl-Dickstein 等人。“使用非平衡热力学进行深度无监督学习。”ICML 2015。
Max Welling 和 Yee Whye Teh。“通过随机梯度 Langevin 动力学进行贝叶斯学习。”ICML 2011。
杨松和斯特凡诺·厄尔蒙。“通过估计数据分布的梯度进行生成建模。”NeurIPS 2019。
杨松和 Stefano Ermon。“用于训练基于分数的生成模型的改进技术。”NeuriPS 2020。
[5] Jonathan Ho 等人。“去噪扩散概率模型。”arxiv 预印本 arxiv:2006.11239(2020)。【代码】
[6] 宋佳明等人。“去噪扩散隐式模型。”arxiv 预印本 arxiv:2010.02502(2020 年)。【代码】
[7] Alex Nichol&Prafulla Dhariwal。“改进的去噪扩散概率模型”arxiv 预印本 arxiv:2102.09672(2021)。【代码】
[8] Prafula Dhariwal & Alex Nichol. “扩散模型在图像合成方面胜过 GANs。”arxiv 预印本 arxiv:2105.05233(2021 年)。[代码]
乔纳森·何和蒂姆·萨利曼斯。《无分类器扩散引导》。NeurIPS 2021 深度生成模型和下游应用研讨会。
杨松等人。“基于分数的随机微分方程生成建模。”ICLR 2021。
[11] Alex Nichol, Prafulla Dhariwal & Aditya Ramesh 等人。“GLIDE: Towards Photorealistic Image Generation and Editing with Text-Guided Diffusion Models.” ICML 2022.
Jonathan Ho 等人。“级联扩散模型用于高保真图像生成。”J. Mach. Learn. Res. 23 (2022): 47-1.
[13] Aditya Ramesh 等人。“具有 CLIP 潜变量的分层文本条件图像生成。”arxiv 预印本 arxiv:2204.06125(2022)。
[14] Chitwan Saharia 和 William Chan 等人。“具有深度语言理解的照片逼真的文本到图像扩散模型。”arxiv 预印本 arxiv:2205.11487(2022)。
[15] Rombach&Blattmann 等人。“具有潜在扩散模型的高分辨率图像合成。”CVPR 2022. 代码
宋等人。“一致性模型”arxiv 预印本 arxiv:2303.01469(2023)
[17] Salimans & Ho. “渐进蒸馏用于快速采样扩散模型” ICLR 2022.
Ronneberger 等人。“U-Net: 用于生物医学图像分割的卷积网络” MICCAI 2015。
[19] Peebles&Xie。“具有变压器的可扩展扩散模型。”ICCV 2023。
张等人。“将条件控制添加到文本到图像扩散模型中。”arxiv 预印本 arxiv:2302.05543(2023)。