论文链接:https://arxiv.org/abs/2006.11239
简介
扩散模型(Diffusion Model)是用于生成数据的一类深度生成模型,特别擅长于图像生成。其工作原理基于通过随机噪声的逐步转换来生成目标数据。扩散模型分为两部分:正向过程(forward process)和逆向过程(reverse process)。
前向加噪过程:该过程会逐渐将高斯噪声添加到图像中,直到最终得到纯噪声。
逆向去噪过程:训练一个神经网络,从纯噪音开始逐渐去噪,直到得到一个真实图像。
前向与后向的步数由下标 t定义,并且有预先定义好的总步数 T。t=0 时为从数据集中采样得到的一张真实图片, t=T 时近似为一张纯粹的噪声。
基本原理
扩散模型是潜在变量模型的一种,其形式为 。这意味着我们要生成数据样本 x0,需要通过对潜在变量 x1,x2,...,xT 进行积分(或求和)。
潜在变量 x1 与数据 x0 具有相同的维度。数据 x0 来自某个数据分布 q(x0)。
正向过程
正向过程是一个逐步增加噪声的过程,将数据分布逐步“扩散”成高斯噪声。假设我们有一个数据样本 x0,正向过程将其通过一系列的时间步长逐步加入噪声,生成一系列中间状态{x1,x2,...,xT}。其数学形式通常表示为:
其中,α_t 是控制噪声大小的参数。
逆向过程
逆向过程则是逐步去噪的过程,从高斯噪声逐步生成目标数据。其目标是训练一个模型 pθ(x_{t−1}∣x_t)来反向模拟正向过程,使得可以从高斯噪声 xT 逐步生成无噪声的数据样本 x0。通常其形式是:
训练过程
扩散模型的训练主要是学习逆向过程中的参数 θ\thetaθ,以使得模型 pθ(x_{t−1}∣x_t) 能够尽可能地接近真实的逆向扩散概率 q(xt−1∣xt,x0)。通常通过优化以下损失函数:
模型的生成过程
在实际生成数据时,扩散模型从纯噪声开始(通常是标准高斯分布的样本),然后通过逆向过程一步一步地去噪,逐渐生成一个逼真的数据样本。生成过程如下:
- 从高斯分布中采样:
- 使用训练好的模型
依次生成
。
优点与应用
- 高质量的图像生成:扩散模型在图像生成任务中表现优异,生成的图像质量通常优于GANs(生成对抗网络)。
- 稳定的训练:与GANs不同,扩散模型的训练过程相对稳定,容易收敛。
- 多种应用:扩散模型不仅用于图像生成,还应用于图像修复、图像上采样、图像编辑等任务。
主要变种
- DDPM (Denoising Diffusion Probabilistic Models):最基础的扩散模型。
- Score-Based Generative Models:基于分数的生成模型,利用得分函数来指导逆向采样。
- Latent Diffusion Models:在潜在空间中进行扩散,从而减少计算成本。
参考文献
- “Denoising Diffusion Probabilistic Models” by Jonathan Ho, Ajay Jain, Pieter Abbeel: 提出最基础的扩散模型框架,进行了广泛的实验。
- “Score-Based Generative Modeling through Stochastic Differential Equations” by Yang Song, Stefano Ermon: 提出了一种基于得分函数的扩散模型变种。