扩散模型(Diffusion Model)是一类十分先进的基于扩散思想的深度学习生 成模型。生成模型除了扩散模型之外,还有出现较早的 VAE ( Variational Auto- Encoder,变分自编码器) 和 GAN ( Generative Adversarial Net ,生成对抗网络) 等。 虽然它们与扩散模型也有一些渊源,不过这并不在本书的讨论范围之内。同时本书 也不会深入介绍扩散模型背后复杂的数学原理。即便如此,你仍然可以基于本书介绍的内容学会通过相关代码来生成精美的图像。
本章涵盖的知识点如下。
● 扩散模型的原理,旨在介绍扩散模型是如何“扩散”的。
● 扩散模型的发展,旨在介绍扩散模型在图像生成方面的技术迭代与生态发展 历程。
● 扩散模型的应用,旨在介绍扩散模型除了图像生成领域之外的其他应用。
1.1 扩散模型的原理
扩散模型是一类生成模型,它运用了物理热力学中的扩散思想,主要包括前向 扩散和反向扩散两个过程。本节将介绍扩散模型的原理,其中不包含复杂的数学 推导。
1.1.1 生成模型
在深度学习中,生成模型的目标是根据给定的样本(训练数据) 生成新样本。 首先给定一批训练数据X,假设其服从某种复杂的真实分布 p(x),则给定的训练数 据可视为从该分布中采样的观测样本 x 。如果能够从这些观测样本中估计出训练数据的真实分布,不就可以从该分布中源源不断地采样出新的样本了吗?生成模型实 际上就是这么做的,它的作用是估计训练数据的真实分布,并将其假定为 q(x)。在 深度学习中,这个过程称为拟合网络。
那么问题来了,怎么才能知道估计的分布 q(x) 和真实分布p(x) 的差距大不大 呢?一种简单的思路是要求所有的训练数据样本采样自 q(x) 的概率最大。这种思路 实际上来自统计学中的最大似然估计思想,它也是生成模型的基本思想之一,因此 生成模型的学习目标就是对训练数据的分布进行建模。
1.1.2 扩散过程
最大似然估计思想已经在一些模型(如 VAE)上应用并取得了不错的效果。扩 散模型可看作一个更深层次的 VAE。扩散模型的表达能力更加丰富,而且其核心在
于扩散过程。
扩散的思想来自物理学中的非平衡热力学分支。非平衡热力学专门研究某些不 处于热力学平衡中的物理系统,其中最为典型的研究案例是一滴墨水在水中扩散的 过程。在扩散开始之前,这滴墨水会在水中的某个地方形成一个大的斑点,我们可 以认为这是这滴墨水的初始状态,但要描述该初始状态的概率分布则很困难,因为 这个概率分布非常复杂。随着扩散过程的进行,这滴墨水随着时间的推移逐步扩散 到水中,水的颜色也逐渐变成这滴墨水的颜色,如图 1- 1 所示。此时,墨水分子的 概率分布将变得更加简单和均匀,这样我们就可以很轻松地用数学公式来描述其中 的概率分布了。
在这种情况下,非平衡热力学就派上用场了,它可以描述这滴墨水随时间推移 的扩散过程中每一个“时间步”(旨在将连续的时间过程离散化)状态的概率分布。 若能够想到办法把这个过程反过来,就可以从简单的分布中逐步推断出复杂的分布。
公认最早的扩散模型 DDPM (Denoising Diffusion Probabilistic Model)的扩散 原理就由此而来,不过仅有上述条件依然很难从简单的分布倒推出复杂的分布。 DDPM 还做了一些假设,例如假设扩散过程是马尔可夫过程 1(即每一个时间步状态的概率分布仅由上一个时间步状态的概率分布加上当前时间步的高斯噪声得到), 以及假设扩散过程的逆过程是高斯分布等。

DDPM 的扩散过程如图 1-2 所示,具体分为前向过程和反向过程两部分。

1 )前向过程
前向过程是给数据添加噪声的过程。假设给定一批训练数据,数据分布为 x0 ~ q(x0) ,其中,0 表示初始状态,即还没有开始扩散。如前所述,将前向加噪过 程分为离散的多个时间步 T,在每一个时间步 t,给上一个时间步t−1 的数据 xt−1 添 加高斯噪声,从而生成带有噪声(简称“带噪”)的数据 xt ,同时数据 xt 也会被送
入下一个时间步 t+1 以继续添加噪声。其中,噪声的方差是由一个位于区间( 0,1 ) 的固定值 βt 确定的,均值则由固定值 βt 和当前时刻“带噪”的数据分布确定。在 反复迭代和加噪(即添加噪声) T 次之后,只要&

211

被折叠的 条评论
为什么被折叠?



