什么是扩散模型(深度学习)
扩散模型的灵感来自非平衡热力学。它们定义了一个马尔可夫链扩散步骤,以缓慢地向数据添加随机噪声,然后学习逆转扩散过程以从噪声中构建所需的数据样本。与VAE
或流模型不同,扩散模型是通过固定程序学习的,并且潜在变量具有高维度(与原始数据相同)。
什么是扩散模型?
已经提出了几种基于扩散的生成模型,其基本思想类似,包括扩散概率模型(Sohl-Dickstein
等,2015
)、噪声条件得分网络(NCSN;Yang & Ermon
,2019
)和去噪扩散概率模型(DDPM;Ho
等,2020
)。
正向扩散过程
给定从真实数据分布中采样的数据点
数据样本
上述过程的一个优点是我们可以采样
回想一下,当我们合并两个不同方差的高斯时,
Langevin dynamics
是物理学中的一个概念,用于对分子系统进行统计建模。结合了随机梯度下降,随机梯度Langevin dynamics
(SGLD
)(Welling & Teh 2011
)可以从概率密度中产生样本
在这里Langevin dynamics
将高斯噪声注入参数更新中,以避免陷入局部最小值。
逆向扩散过程
如果我们可以逆向上述过程并从
值得注意的是,当满足以下条件时,逆向条件概率是可处理的(
利用贝叶斯规则,我们可以得到:
在这里
我们将
这种设置与VAE非常相似,因此我们可以使用变分下界来优化负对数似然。
使用 Jensen 不等式也可以直接得到相同的结果。假设我们想要最小化交叉熵作为学习目标:
为了将方程中的每个项转换为可分析计算的,可以进一步将目标重写为几个KL
散度和熵项的组合:
让我们分别标记变分下限损失中的每个元素:
参数化L_t训练损失
我们需要学习一个神经网络来近似逆向扩散过程中的条件概率分布,
损失项
从实证研究来看,Ho
等人, 2020
年发现,采用忽略加权项的简化方法来训练扩散模型效果会更好:
最终的结果是:
在这里
噪声条件分数网络(NCSN)
Song & Ermon
,2019
)提出了一种基于分数的生成建模方法,其中样本通过随机梯度Langevin dynamics
生成,使用通过分数匹配估计的数据分布梯度。每个样本的分数Vincent,2011
)或切片分数匹配(Song
等人,2019
)。去噪分数匹配会向数据添加预先指定的小噪声Langevin dynamics
可以仅使用分数从概率密度分布中采样数据点Song & Ermon,2019
通过用不同级别的噪声扰动数据对其进行了改进,并训练了一个噪声条件下的得分网络来联合估计不同噪声水平下所有扰动数据的得分。噪声水平增加的时间表类似于正向扩散过程。如果我们使用扩散过程注释,得分近似于
参数化\beta_t
在Ho,2020
中,前向方差被设置为线性增加的常数序列,来自Nichol & Dhariwal,2021
提出了几种改进技术,以帮助扩散模型获得更低的NLL
。其中一项改进是使用基于余弦的方差调度。调度函数的选择可以是任意的,只要它在训练过程的中间提供近乎线性的下降,并在周围提供细微的变化即可
其中小偏移
逆向过程方差的参数化\sum_{\theta}
Ho
等人,2020
年选择修复Nichol & Dhariwal,2021
提出学习
然而,简单的目标
条件生成
在使用条件信息的图像(例如ImageNet
数据集)训练生成模型时,通常会生成以类标签或一段描述性文本为条件的样本。
分类器引导扩散
为了将类别信息明确地纳入传播过程,Dhariwal & Nichol,2021
训练了一个分类器
因此,一个新的分类器引导预测器
为了控制分类器指导的强度,我们可以添加一个权重delta
部分:
由此产生的消融扩散模型(ADM
)和具有附加分类器指导的模型(ADM-G
)能够取得比SOTA
生成模型(例如BigGAN
)更好的结果。
此外,Dhariwal & Nichol,2021
对U-Net
架构进行了一些修改,其性能优于采用扩散模型的GAN
。架构修改包括更大的模型深度/宽度、更多的注意力头、多分辨率注意力、用于上/下采样的BigGAN
残差块、残差连接重新缩放AdaGN
)。
无分类器引导
没有独立的分类器Ho & Salimans, 2021
)。让无条件去噪扩散模型
他们的实验表明,无分类器指导可以在FID
(区分合成图像和生成图像)和IS
(质量和多样性)之间实现良好的平衡。引导扩散模型GLIDE(Nichol、Dhariwal 和 Ramesh
等人,2022
年)探索了两种引导策略,即CLIP
引导和无分类器引导,并发现后者更受欢迎。他们假设这是因为CLIP
引导利用对抗性示例对CLIP
模型进行攻击,而不是优化更匹配的图像生成。
加速扩散模型
通过遵循逆向扩散过程的马尔可夫链从DDPM
生成样本非常慢,因为Song
等人,2020
年:“例如,从DDPM
中采样50k
张32 × 32
大小的图像大约需要20
个小时,但从Nvidia 2080 Ti GPU
上的GAN
中采样只需不到一分钟。”
减少采样步骤和蒸馏
一种简单的方法是运行跨步采样计划(Nichol & Dhariwal,2021
),每隔一段时间进行一次采样更新
回想一下,
让DDIM;Song
等人,2020
年)。DDIM
具有相同的边际噪声分布,但确定性地将噪声映射回原始数据样本。在生成过程中,我们不必遵循整个链条DDIM
更新步骤为:
虽然所有模型都经过训练DDIM
(DDPM
(DDPM
确实表现得更好(DDIM
,可以训练扩散模型进行任意数量的前向步骤,但只能从生成过程中的一部分步骤中进行采样。
与DDPM
相比,DDIM
能够:
- 使用更少的步骤生成更高质量的样本。
- 由于生成过程是确定性的,因此具有“一致性”属性,这意味着以相同潜在变量为条件的多个样本应该具有相似的高级特征。
- 由于一致性,
DDIM
可以在潜在变量中进行语义上有意义的插值。
渐进式蒸馏(Salimans & Ho,2022
)是一种将训练好的确定性采样器蒸馏成采样步骤减半的新模型的方法。学生模型从教师模型初始化,并朝着一个学生DDIM
步骤匹配2
个步骤的目标进行去噪,而不是使用原始样本
一致性模型(Song
等人,2023
年)学习映射任何中间噪声数据点
给定轨迹
一致性模型可以一步生成样本,同时仍保持通过多步采样过程来交易计算以获得更好质量的灵活性。论文介绍了两种训练一致性模型的方法:
一致性蒸馏(
CD
):通过最小化由相同轨迹生成的对之间的模型输出差异,将扩散模型蒸馏为一致性模型。这使得抽样评估的成本大大降低。一致性蒸馏损失为:在这里:
是单步`ODE`求解器的更新函数; ,具有均匀分布 ;- 网络参数
是EMA
版本的 这极大地稳定了训练(就像在DQN
或动量对比学习中一样); 是一个正距离度量函数,满足 和 当且仅当 。例如 , 或`LPIPS`(学习感知图像块相似性)距离; 是一个正权重函数,论文中设置 。
一致性训练(
CT
):另一种选择是独立训练一致性模型。请注意,在CD
中,预先训练的评分模型 用于近似真实得分 但在CT
中,我们需要一种方法来估计这个得分函数,结果是 存在为CT
损失定义如下:根据论文中的实验,他们发现:
Heun ODE
求解器比欧拉一阶求解器效果更好,因为高阶 ODE 求解器在同样的条件下估计误差更小 。在距离度量函数的不同选项中
,LPIPS
指标比 和 距离。较小
导致更快的收敛但样本更差,而更大的 导致收敛速度较慢,但收敛时样本更好。
潜变量空间
潜在扩散模型(LDM;Rombach & Blattmann
等人,2022
年)在潜变量空间而不是像素空间中运行扩散过程,从而降低训练成本并加快推理速度。它的动机是观察到图像的大多数位都对感知细节有贡献,并且语义和概念组成在经过大量压缩后仍然存在。LDM
通过生成模型学习松散地分解感知压缩和语义压缩,首先使用自动编码器修剪像素级冗余,然后使用学习到的潜在扩散过程操纵/生成语义概念。
感知压缩过程依赖于自动编码器模型。编码器
KL-reg
:对学习到的潜在标准正态分布的小KL
惩罚,类似于VAE
。VQ-reg
:在解码器内使用矢量量化层,类似VQVAE
,但量化层被解码器吸收。
扩散和去噪过程发生在潜在向量上U-Net
,并增加了交叉注意机制,以处理用于图像生成的灵活条件信息(例如类标签、语义图、图像的模糊变体)。该设计相当于使用交叉注意机制将不同模态的表示融合到模型中。每种类型的条件信息都与特定于域的编码器配对
提高AI生成内容的分辨率和整体质量
为了生成高分辨率的高质量图像,Ho
等人,2021
提出使用多个扩散模型的管道来提高分辨率。管道模型之间的噪声条件增强对于最终的图像质量至关重要,即对条件输入应用强大的数据增强U-net
是用于高分辨率图像生成的扩散建模中模型架构的常见选择。
他们发现最有效的噪声是在低分辨率下应用高斯噪声,在高分辨率下应用高斯模糊。此外,他们还探索了两种需要对训练过程进行小幅修改的条件增强形式。请注意,条件噪声仅适用于训练,而不适用于推理。
- 截断条件增强会在步骤早期停止扩散过程
低分辨率。 - 非截断条件增强会运行完整的低分辨率逆过程,直到步骤
0
,但随后会通过 然后喂养s损坏的 进入超分辨率模型。
两阶段扩散模型unCLIP
(Ramesh等人,2022)年大量利用CLIP
文本编码器来生成高质量的文本引导图像。给定一个预训练的CLIP
模型CLIP
文本和图像嵌入,unCLIP
并行学习两个模型:
- 先前模型
:输出CLIP
图像嵌入 鉴于文本 。 - 解码器
:生成图像 给定CLIP
图像嵌入 以及可选的原始文本 。
这两个模型可以实现条件生成,因为:
unCLIP
遵循两阶段图像生成过程:
- 给定文本首先使用
CLIP
模型生成文本嵌入。使用CLIP
潜在空间可以通过文本进行零样本图像处理。 - 扩散或自回归先验
处理此CLIP
文本嵌入以构建图像先验,然后构建扩散解码器 根据先前条件生成图像。该解码器还可以根据图像输入生成图像变化,同时保留其风格和语义。
Imagen(Saharia
等人,2022
年)不使用CLIP
模型,而是使用预先训练的LLM
(即冻结的T5-XXL
文本编码器)对文本进行编码以生成图像。普遍趋势是,更大的模型尺寸可以带来更好的图像质量和文本-图像对齐。他们发现T5-XXL
和CLIP
文本编码器在MS-COCO
上实现了类似的性能,但人类评估更喜欢DrawBench
(涵盖11
个类别的提示集合)上的T5-XXL
。当应用无分类器引导时,增加
- 静态阈值:剪辑
预测 。 - 动态阈值:在每个采样步骤中,计算
作为某个百分位绝对像素值;如果 ,将预测剪辑到 并除以 。
他们发现噪声条件增强、动态阈值和高效U-Net
对于图像质量至关重要,但缩放文本编码器大小比U-Net
大小更重要。
模型架构
扩散模型有两种常见的主干架构选择:U-Net
和Transformer
。U-Net
(Ronneberger
等人,2015
年)由下采样堆栈和上采样堆栈组成。
- 下采样:每个步骤包括重复应用两个
3x3
卷积(无填充卷积),每个卷积后跟一个ReLU
和一个步幅为2
的2x2
最大池化。在每个下采样步骤中,特征通道的数量都会加倍。 - 上采样:每个步骤包括对特征图进行上采样,然后进行
2x2
卷积,并且每次将特征通道数量减半。 - 快捷方式:快捷方式连接导致与下采样堆栈的相应层连接,并为上采样过程提供必要的高分辨率特性。
为了实现以附加图像为条件的图像生成,以获取Canny
边缘、Hough
线、用户涂鸦、人体骨骼、分割图、深度和法线等构图信息,ControlNet
(Zhang
等人,2023
年)通过在U-Net
的每个编码器层中添加可训练的原始模型权重副本的“夹层”零卷积层来引入架构变化。确切地说,给定一个神经网络块ControlNet
执行以下操作:
- 首先冻结原始参数
原始区块。 - 将其克隆为具有可训练参数的副本
以及附加条件向量 。 - 使用两个零卷积层,表示为
和 ,它是1x1
卷积层,权重和偏差都初始化为零,用于连接这两个块。零卷积通过在初始训练步骤中消除梯度作为随机噪声来保护这个主干。 - 最终输出为:
。
用于扩散建模的扩散变换器(DiT;Peebles & Xie,2023
)对潜在斑块进行操作,使用与LDM
(潜在扩散模型)相同的设计空间。DiT
具有以下设置:
- 获取输入的潜在表示作为
DiT
的输入。 - “修补”尺寸噪声潜伏期
分成大小 并将其转换为大小为 。 - 然后,这个
token
序列会经过Transformer
块。他们正在探索三种不同的设计,以根据时间步长等上下文信息进行生成 或类别标签 。在三种设计中,adaLN
(自适应层范数)-Zero
效果最好,优于上下文条件和交叉注意块。尺度和移位参数, 和 ,是从嵌入向量的总和回归而来的 和 。维度缩放参数 也会回归并立即应用于DiT
块内的任何残差连接之前。 Transformer
解码器输出噪声预测和输出对角协方差预测。
Transformer
架构可以轻松扩展,这一点众所周知。这是DiT
的最大优势之一,因为其性能会随着计算量的增加而提升,而且实验表明,更大的DiT
模型具有更高的计算效率。
结论
- 优点:可处理性和灵活性是生成模型中两个相互冲突的目标。可处理模型可以通过分析评估并廉价地拟合数据(例如通过高斯或拉普拉斯),但它们无法轻松描述丰富数据集中的结构。灵活的模型可以拟合数据中的任意结构,但评估、训练或从这些模型中采样通常成本高昂。扩散模型既具有分析可处理性,又具有灵活性。
- 缺点:扩散模型依赖于较长的马尔可夫链扩散步骤来生成样本,因此在时间和计算方面可能非常昂贵。虽然已经提出了新方法来加快该过程,但采样速度仍然比
GAN
慢。