扩散模型

机器学习中，扩散模型或扩散概率模型是一类潜变量模型，是用变分估计训练的马尔可夫链。扩散模型的目标是通过对数据点在潜空间中的扩散方式进行建模，来学习数据集的潜结构。计算机视觉中，这意味着通过学习逆扩散过程训练神经网络，使其能对叠加了高斯噪声的图像进行去噪。计算机视觉中使用通用扩散模型框架的3个例子是去噪扩散概率模型、噪声条件得分网络和随机微分方程。

扩散模型是在2015年提出的，其动机来自非平衡态热力学。

扩散模型可以应用于各种任务，如图像去噪、图像修复、超分辨率成像、图像生成等等。例如，一个图像生成模型，经过对自然图像的扩散过程的反转训练之后，可从一张完全随机的噪声图像开始逐步生成新的自然图像。比较近的例子有2022年4月13日OpenAI公布的文生图模型DALL-E。它将扩散模型用于模型的先验解释器和产生最终图像的解码器。

数学原理

于所有图像的空间中生成一张图像
考虑图像生成问题。令代表一张图，令为在所有可能图像上的機率分布。若有本身，便可以肯定地说给定的一张图的機率有多大。但这在一般情况下是难以解决的。

大多数时候，我们并不想知道某个图像的绝对機率，相反，我们通常只想知道某个图像与它的周围相比，機率有多大：一张猫的图像与它的小变体相比，機率哪个大？如果图像里有一根、两根或三根胡须，或者加入了一些高斯噪声，機率会更大吗？

因此，我们实际上对本身不感兴趣，而对感兴趣。这有两个效果：

 其一，我们不再需要标准化，而是可以用任何，其中是任意常数，我们不需要去关心它。
 其二，我们正在比较的邻居，通过

令分数函数为，然后考虑我们能对做什么。

实际上，允许我们用随机梯度朗之万动力学从中取样，这本质上是马尔可夫链蒙特卡洛的无限小版本。

学习分数函数
分数函数可通过加噪-去噪学习。

主要变体

分类指导器
假设我们希望不是从整个图像的分布中取样，而是以图像描述为条件取样。我们不想从一般的图像中取样，而是从符合描述“红眼睛的黑猫”的图片中取样。一般来说，我们想从分布中取样，其中的范围是图像，的范围是图像的类别（对y而言，“红眼黑猫”的描述过于精细，“猫”又过于模糊）。

从噪声信道模型的角度来看，我们可以将这一过程理解如下：为生成可描述为的图像，我们设想请求者脑海中真有一张图像，但它经过多次加噪，出来的是毫无意义可言的乱码，也就是。这样一来图像生成只不过是推断出请求者心中的是什么。

换句话说，有条件的图像生成只是“从文本语言翻译成图像语言”。之后，像在噪声信道模型中一样，我们可以用贝叶斯定理得到也就是说，如果我们有一个包含所有图像空间的好模型，以及一个图像到类别的好翻译器，我们就能“免费”得到一个类别到图像的翻译器，也就是文本到图像生成模型。

SGLD使用其中是分数函数，如上所述进行训练，用可微图像分类器便可以找到。

温度
分类器引导的扩散模型会从中取样，它集中在最大后验概率周围。如果我们想迫使模型向最大似然估计 的方向移动，可以用其中可解释为逆温度，在扩散模型研究中常称其为制导尺度（guidance scale）。较高的会迫使模型在更靠近的分布中采样。这通常会提高生成图像的品質。

这可以简单地通过SGLD实现，即

无分类指导器
如果我们没有分类器，我们仍可以从图像模型本身提取一个：这样的模型通常要在训练时提供和，这样才能让它同时为和建模。

这是GLIDE、DALL-E和Google Imagen等系统的重要组成部分。

另见
 扩散过程
 马尔可夫链
 变分贝叶斯方法
 变分自编码器

阅读更多
 Guidance: a cheat code for diffusion models . Good overview up to 2022.

参考文献

马尔可夫模型
机器学习演算法