扩散模型
1 扩散模型(DM)
扩散模型 (Diffusion Model)起源于非均衡热动力学(non-equilibrium thermodynamics),是一类基于 概率似然 (likelihood)的 生成 模型。
以后对扩散模型的钻研次要围绕 三种支流的实现:
- 去噪扩散概率模型(Denoising Diffusion Probabilistic Models / DDPMs)
- 基于分数的生成模型(Score-based Generative Models / SGMs)
- 随机微分方程(Stochastic Differential Equations / Score SDEs)
以后最风行的扩散模型包含:
模型 | 文章 | 是否开源 | 开发 |
---|---|---|---|
DALL-E 2 | Hierarchical Text-Conditional Image Generation with CLIP Latents – arXiv 2022 | 否 | OpenAI |
Imagen | Imagen: Text-to-Image Diffusion Model with Conditional Priors – arXiv 2022 | 否 | Google Research, Brain Team |
Stable Diffusion | High-Resolution Image Synthesis with Latent Diffusion Models – CVPR 2022 | 是 | Stability AI |
1.1 生成模型之间的差别和关联
1.1.1 差别
模型 | 文章 | 劣势 | 劣势 |
---|---|---|---|
生成反抗网络(Generative Adversarial Networks / GAN) | Generative Adversarial Networks – NIPS 2014 | – 高质量图像生成 – 无监督训练 – 绝对较快的训练和推断 | – 训练过程不稳固 – 生成样本的多样性绝对弱 |
变分自编码器(Variational Autoencoders / VAE) | Auto-Encoding Variational Bayes – ICLR 2014 | – 精确捕捉数据分布 – 计算过程可追踪 | – 生成品质不如 GAN – 示意能力无限 |
自回归模型(Autoaggressive Model / AG) | Language Models are Unsupervised Multitask Learners – NeurlPS 2019 | – 长距离依赖 – 精确的概率预计 | – 训练和计算速度绝对较慢 – 难以获取高维数据的全局依赖 |
流模型(Flow-based Model) | Density Estimation Using Real NVP – ICLR 2017 | – 精确捕捉数据分布 – 生成高质量细节的图像 | – 训练和计算速度绝对较慢 – 架构设计比拟艰难 |
扩散模型(Diffusion Model) | Denoising Diffusion Probabilistic Models – NeurlPS 2020 | – 高质量图像生成 – 精确捕捉数据分布 – 训练过程固定 | – 训练和计算速度慢 |
其中,GANs 有着较好的 图像品质 – 多样性的衡量(trade-off),导致生成高质量的图像的代价是就义一部分数据分布(多样性)。VAE、AG 和 Flow 在数据分布的学习能力方面优于 GAN,然而在图像品质上难以与之相比。此外,VAE 依赖与 surrogate loss、Flow 模型必须应用独特的架构来构建反向变换。
1.1.2 关联
GAN 与扩散模型的关联
GAN 训练过程不稳固的次要起因是 生成数据和输出数据之间不重叠的数据分布。 其中一种解决办法是通过给分别器的输出注入乐音来进一步帮忙生成器和分别器的散布,这种办法由扩散模型所启发。另一方面,扩散模型的抽样速度要慢于 GAN,次要起因是去噪步骤中的高斯假如,该假如使得去噪的步长(step)较小。有工作通过应用 conditional GAN 来对每一步去噪过程建模,增大了去噪的步长。
VAE 与扩散模型的关联
DDPM 可被视为是 固定编码器的层级式马尔可夫 VAE。具体来说,DDPM 的前向过程作为编码器,该过程能够用线性高斯模型形容。DDPM 的反向过程对应于解码器,在多个解码过程中共享。解码器中的潜变量和样本数据有着同样大小的尺寸。
有工作指出:在间断工夫设定下,分数匹配指标函数可近似于深层 VAE 的证据下界(ELBO)。因而,扩散模型的优化过程可被视为训练一个有限层深的 VAE。
基于分数的潜生成模型(LSGM)进一步示意:在潜空间情境下,ELBO 能够作为非凡的分数匹配指标函数。
2 去噪扩散概率模型(DDPM)
2.1 DDPM 总览
惯例的深度学习模型通常用 图表 来示意网络结构,而扩散模型用 数学公式 来表述。
与惯例的机器学习 Pipeline 做类比,扩散模型能够这样了解:
- 扩散模型的 输出 是原始图像或者文本 prompt,输入 是相似原始图像的生成图像
- 扩散模型的训练包含两个过程:前向 过程也叫扩散过程,反向 过程也叫抽样过程。这两个过程都采纳 马尔科夫链
- 马尔科夫链包含一系列的状态和一系列的变动概率,这里的状态指的是含有不同的乐音等级的图片,变动概率指的是从以后状态变动到下一状态的概率,应用变动矩阵来实现
- 扩散模型的 超参数 包含:乐音的策略,学习率,迭代的次数等
- 扩散模型的 损失函数 优化的是负对数似然(negative log likelihood)
DDPM(”Denoising Diffusion Probabilistic Models”)一文中给出的算法流程:
-
算法 1 形容的是 训练 过程(对乐音分别器的训练)(前向 过程、扩散 过程)
-
反复如下步骤,直到收敛
- 从训练集的数据分布中抽取一个样本(图片)X0
- 在无限工夫序列从 1 – T 的某个时刻 t
- 从高斯分布的乐音等级中选取某个等级的乐音 ε
- 对图片增加乐音
- 依据 loss 函数,开始梯度降落更新模型参数
-
-
算法 2 形容的是是 反向 过程(去噪 过程、抽样 过程)
- 从高斯分布中抽取某个图片 XT
-
对工夫序列从 T 开始到 1,执行下述步骤:
- 如果 t > 1,从高斯分布中选取 z,否则 z = 0 (z 是应用重参数化 reparameterization 技巧产生的表示法)
- 应用重参数化技巧计算 Xt-1
- 失去生成图片 X0 返回
2.2 前向过程
简略来说,前向过程的输出是原始图片,该图片遵从肯定的散布,输入是乐音图片,该图片遵从高斯分布。
在前向过程中,对于一个输出图片,在某一个特定的工夫 t 下,增加某种程度的乐音,失去乐音样本。前向过程一直反复该步骤,后果是一个工夫序列和一系列乐音增大的图片。
具体来说,从数据分布 q(x) 中选取图片 x0,在工夫序列 {0, T} 内的某个工夫 t,选取某个等级的乐音 nt,把乐音增加到输出图片,失去乐音样本 xt。在 T 个步长后失去样本序列:{X0, Xt}。步长由 超参数 方差机制 βt(0 – 1) 来管制。
前向过程的数学示意:
通过 重参数化(reparameterization) 技巧失去 αt = 1 – βt,因而上述过程能够化简为:
这样的益处是 能够从任意一个时刻 t 以解析解(closed form)来抽样 xt。(把依赖于前一个工夫的条件概率 q(xt|xt-1) 转化为依赖于初值的条件概率 q(xt|x0))
前向过程是 固定的 ,也就是 没有 须要学习的参数。
2.3 反向过程
简略来说,反向过程的输出是增加了乐音的图片,该图片遵从高斯分布。输入是去噪之后的图片,该图片遵从肯定的散布(如果网络训练结束,那么该图片的散布应该靠近模型的输出图片的散布)。
在反向过程中,对于一个带乐音的输出图片,在某一特定工夫 t 下,打消一部分的乐音,失去乐音少了一些的图片。反向过程一直反复该步骤,后果是一个工夫序列和一系列的乐音越来越少的图片,最终乐音齐全隐没,只剩下相似于原始图片的生成图片。
具体来说。如果能够逆转前向过程,那么只须要从最终的后果中抽样就能够失去清晰的图片。然而咱们不能间接预计条件概率 q(xt-1|xt),因为这须要对整个数据集来执行前向过程。所以须要构建 pθ 来近似上述条件概率来运行反向过程。
反向过程的数学示意:
当条件为 X0 时,反向过程的条件概率是能够追踪的。
决定高斯分布的主要参数是:均值和方差。
在 DDPM(”Denoising Diffusion Probabilistic Models”)一文中,作者 固定 了方差的大小,所以 均值 是反向过程中惟一须要学习的 参数。(尽管后续 OpenAI 的工作表明,使方差变为学习参数可能晋升 DDPM 的性能)。
应用贝叶斯公式和参数化技巧,能够把均值示意为:
2.4 Loss 函数
因为扩散模型的学习过程十分相似于 VAE,所以咱们能够用 VAE 中的 变分下界 (variational lower bound)或 证据下界(evidence lower bound)来优化负对数似然)。
通过一系列推导可得:
Lvlb 由三项损失组成:
- LT 是常数,因为 q 过程(前向过程)没有要学习的参数,而 pθ 过程(逆向过程)的 XT 就是该过程的输出或者前向过程的输入或者齐全是乐音的图片,遵从高斯分布。因而该项在计算时能够疏忽
- Lt 用 KL 散度度量的生成数据和输出数据之间的散布差别
- L0 就是反向过程的散布
2.5 参数
2.5.1 超参数 βt
前向过程对乐音机制的方差 βt 设置为 线性机制。变动范畴从 β1 = 1e-4 到 βT = 0.02。试验结果表明:线性机制尽管可能生成高质量的图像,然而对数似然指标不如其余生成模型。
2.5.2 参数 Σθ
在 DDPM(”Denoising Diffusion Probabilistic Models”)一文中,作者固定了 βt 作为常数,并设置 Σθ(xt, t) = σ^2I,其中 σ 是不可学习的,设置为 βt 或者 βt-hat。因为作者发现学习方差 Σθ 会导致训练过程不稳固并生成低质量图像。
参考
- Ling Yang et al.“Diffusion Models: A Comprehensive Survey of Methods and Applications .”arXiv 2023.
- Jonathan Ho et al. “Denoising Diffusion Probabilistic Models”. NeurIPS 2020.
- Jiaming Song et al. “Denoising Diffusion Implicit Models”. ICLR 2021.
- Alex Nichol et al. “Improved Denoising Diffusion Probabilistic Models”. ICML 2021.
- Robin Rombach et al. “High-Resolution Image Synthesis with Latent Diffusion Models”. arXiv 2022.
- Prafulla Dhariwal et al. Diffusion “Models Beat GANs on Image Synthesis”. NeurIPS 2021.
- Jonathan Ho et al. “Classifier-Free Diffusion Guidance”. NeurIPS Workshop 2021.
- Tim Salimans et al. “Progressive Distillation for Fast Sampling of Diffusion Models”. ICLR 2022.
- Chenlin Meng et al. On Distillation of Guided Diffusion Models”. CVPR 2023.