扩散模型的理论基础

描述

来源:3D视觉工坊

1. 引言

扩散模型的迅速崛起是过去几年机器学习领域最大的发展之一。在这本简单易懂的指南中,学习你需要知道的关于扩散模型的一切。

扩散模型是生成模型,在过去的几年中已经获得了显著的流行,并且有很好的理由。20世纪20年代发表的几篇开创性论文单独的向世界展示了扩散模型的能力,比如击败GANs关于图像合成。

鉴于最近扩散模型的成功浪潮,许多机器学习实践者肯定对它们的内部工作方式感兴趣。在本文中,我们将研究扩散模型的理论基础,关于扩散模型的更直观的解释,请随意查看我们的文章。

2. 扩散模型简介

扩散模型是生成模型,意味着它们被用来生成与它们被训练的数据相似的数据。基本上,扩散模型的工作原理是,通过连续添加高斯噪声,销毁训练数据。然后学习去噪的过程,来恢复数据。经过训练后,我们可以通过所学习的去噪过程,使用扩散模型来生成数据。

更具体地说,扩散模型是一种隐变量模型,它使用固定的马尔可夫链映射到隐空间。该链逐渐向数据中添加噪声,以获得近似的后验概率q(x1:T|x0),其中x1、….、x是与x0具有相同维数的潜变量。在下图中,我们看到这样的马尔可夫链表现为图像数据。

扩散模型

最终,图像会渐近地转化为纯高斯噪声。训练扩散模型的目标是学习反向过程--即训练p(xt-1|xt)。通过沿着这条链反向遍历,我们可以生成新的数据。

扩散模型

3. 扩散模型的好处

如上所述,近年来对扩散模型的研究呈爆炸式增长。受非平衡热力学的启发,扩散模型目前产生最先进的图像质量,其示例如下所示:

除了尖端的图像质量,扩散模型还有许多其他好处,包括不需要对抗性训练。对抗性训练的困难是有据可查的;而且,如果存在非对抗性的替代方案,表现和训练效率相当,通常最好利用它们。关于培训效率的话题,扩散模型也有额外的好处可扩展性和并行性。

虽然扩散模型似乎是凭空产生结果,但有许多仔细而有趣的数学选择和细节为这些结果提供了基础,最佳实践仍在文献中不断发展。现在让我们更详细地看看支撑扩散模型的数学理论。

4. 扩散模型-深入

如上所述,扩散模型包括正向过程(或者扩散过程),其中一个数据(通常是一个图像)是渐进的噪声,和翻转过程(或者反向扩散过程),其中噪声从目标分布转换回样本。

当噪声水平足够低时,正向过程中的采样链转换可以设置为条件高斯型。将这一事实与马尔可夫假设相结合,导致正向过程的简单参数化:

扩散模型

其中β是方差表,(学习或固定),如果行为良好,确保xT是近似的各向同性高斯为足够大的T。给定马尔可夫假设,潜在变量的联合分布是高斯条件链转移的产物:

扩散模型

如前所述,扩散模型的“魔法”在于逆向过程。在训练过程中,模型学习逆向扩散过程以生成新数据。从纯高斯开始,噪声p(xT):=N(xT, 0, I),模型学习联合分布p(x0:T)为

扩散模型

其中学习高斯跃迁的时间相关参数。特别要注意的是,马尔可夫公式断言给定的反向扩散转移分布仅取决于前一时间步(或后一时间步,取决于你如何看待它):

扩散模型

 

扩散模型

5. 训练

扩散模型通过以下方式训练找到使训练数据的可能性最大化的反向马尔可夫转移。实际上,训练等价地包括最小化负对数似然的变分上限。

扩散模型

我们试图根据 Kullback-Leibler(KL)散度重写 Lvlbin。KL散度是一个不对称统计距离度量一个概率分布P与参考分布0的差异。我们感兴趣的是制定KL散度的Lvlbin 项,因为我们的马尔可夫链中的转移分布是正态分布,正态分布之间的KL 散度具有封闭形式。

KL散度是什么?连续分布KL发散的数学形式为

扩散模型

双线表示该功能是不关于它的参数是对称的。

下面你可以看到不同分布的KL散度P(蓝色)来自参考分布Q(红色)。绿色曲线表示上述KL散度定义中积分内的函数,曲线下的总面积表示KL散度的值P从Q在任何给定的时刻,也是用数字显示的一个值。

扩散模型

如前所述,根据KL的差异几乎完全重写Lvlb是可能的:

扩散模型

在 Lt-1中,将前向过程的后验概率x0条件化,得到一个易于处理的公式,使得所有 KL散度都是高斯之间的比较。这意味着可以使用封闭形式的表达式而不是蒙特卡罗估计来精确计算散度

6. 模型选择

随着我们的目标函数的数学基础的建立,我们现在需要就如何实现我们的扩散模型作出几个选择。对于前向过程,唯一需要的选项是定义方差时间表,其值通常在前向过程中增加。

对于反向过程,我们应选择高斯分布参数化/模型架构。请注意Diffusion模型的高度灵活性--我们架构的唯一要求是其输入和输出具有相同的维数。

我们将在下面更详细地探讨这些选择的细节。

前向流程与LT

如上所述,关于前向过程,我们必须定义方差进度表。特别是,我们将它们设置为时间相关的常数,忽略了它们可以被学习的事实。无论选择什么特定的值,方差表固定的事实导致LT成为我们可学习参数集的一个常数使我们可以在训练时忽略它。

扩散模型

逆向过程和L 1:T -1

现在我们讨论定义反向过程所需要的选择,从上面我们定义的反向马尔可夫转换为高斯:

扩散模型

我们简单地设置:

扩散模型

也就是说,我们假设多元正态分布是独立正态分布的乘积,这些独立正态分布具有相同的方差,方差值可以随时间变化。我们将这些方差设定为与我们的正向过程方差表相等。

扩散模型

其中差值中的第一个项是xt和x0的线性组合,该组合取决于方差。时间表决定这个函数的确切形式与我们的目的无关。最直接的参数化是预测扩散后均值。重要的是,预测任何给定时间步数的噪声成分会产生更好的结果。

扩散模型

这导致了下面的替代损失函数,能带来更稳定的训练和更好的结果:

扩散模型

还要注意扩散模型的这种公式化与基于朗之万动力学的分数匹配生成模型的联系。事实上,似乎扩散模型和基于分数的模型可能是同一枚硬币的两面,类似于基于波的量子力学和基于矩阵的量子力学的独立和并行发展,揭示了同一现象的两个等效公式。

7. 网络体系结构

虽然我们简化的损失函数试图训练一个模型。我们还没有定义这个模型的架构。请注意仅仅对模型的要求是它的输入和输出维数相同。鉴于这种限制,图像扩散模型通常用类似U-Net的架构来实现就不足为奇了。

扩散模型

8. 反向过程解码器和L0

沿着相反过程的路径由连续条件高斯分布下的许多变换组成。在反向过程的最后,回想一下我们试图生成一个图像,由整数像素值组成。因此,我们必须设计一种方法来获得离散(对数)可能性对于所有像素中的每个可能的像素值。

实现这一点的方法是将反向扩散链中的最后一个转换设置为独立离散解码器。为了确定给定图像的可能性,我们首先在数据维度之间强加独立性:

扩散模型

其中,D是数据的维数,上标i表示提取一个坐标。现在的目标是确定在给定像素的分布下,每个整数值对给定像素的概率。在时间t=1时,微带噪声图像中对应像素的可能值:

扩散模型

其中,t=1的像素分布由以下多元高斯分布得出,其对角线协方差矩阵允许我们将分布分解为多元高斯分布的乘积,对每个数据维度:

扩散模型

我们假设图像由 0、1、…255(与标准 RGB图像相同)中的整数组成,这些整数已被线性缩放为 【-1,1】。然后,我们将实线分解为小的“桶”,其中,对于给定的缩放像素值x,该范围内的桶为【x-1/255,x+1/256】。给定x1中相应像素的一元高斯分布像素值x的概率是围绕x中心桶内的一元高斯分布的面积。推荐课程:机械臂抓取从入门到实战课程(理论+源码)。

您可以在下面看到每个桶的区域以及它们的平均-0高斯概率,在这种情况下,平均像素值为255/2(一半亮度)。红色曲线表示t=1图像中特定像素的分布,而区域给出t=0图像中相应像素值的概率。

扩散模型

给定每个像素的t=0像素值,p(x0|x1)的值就是它们的乘积。这个过程简洁地用下面的方程来描述:

扩散模型

给出p(xo|x1)的这个方程式,我们可以计算Lvb的最后一个项,这个项不是用KL散度来表示的:

扩散模型

9. 最终目标

正如在上一节中所提到的,预测图像在给定时间步数下的噪声成分会产生最佳结果。最终,他们使用以下目标:

扩散模型

因此,我们的扩散模型的训练和采样算法可以简洁地体现在下图中:

扩散模型

10. 扩散模型总结

我们详细探讨了扩散模型的理论,很容易陷入数学细节,因此我们在下面指出了这一节中最重要的几点,以便从鸟瞰的角度保持我们的方向:

1.我们的扩散模型参数化为马尔可夫链,这意味着我们的潜变量x1,…,xT仅依赖于之前(或后续)时间步。

2.在马尔可夫链的过渡分布是高斯,其中的正向过程需要方差调度,和反向过程的参数被学习。

3.扩散过程确保xT是渐近分布的各向同性高斯。

4.在我们的情况下,方差时间表是固定的,但也可以学习。对于固定的时间表遵循几何级数可能比线性级数提供更好的结果。在这两种情况下,方差通常随着时间的推移而增加。

5.扩散模型非常灵活,允许使用输入和输出维数相同的任何体系结构,许多实现使用类似于U-Net的体系结构。

6.训练目标是使训练数据的可能性最大化。这表现在调整模型参数以最小化负对数似然的变分上界。

7.由于我们的马尔可夫假设,目标函数中几乎所有的项都可以转换为KL散度。这些值变得可信的计算,因为我们使用高斯,因此省略了执行蒙特卡罗近似的需要。

8.最终,使用一个简化的训练目标来训练一个预测给定潜变量的噪声分量的函数会产生最佳和最稳定的结果。

9.作为反向扩散过程的最后一步,使用离散解码器来获取像素值之间的似然率。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分