本综述(Diffusion Models: A Comprehensive Survey of Methods and Applications)来自加州大学 & Google Research 的 Ming-Hsuan Yang、北京大学崔斌实验室以及 CMU、UCLA、蒙特利尔 Mila 研究院等众研究团队,首次对现有的扩散生成模型(diffusion model)进行了全面的总结分析,从 diffusion model 算法细化分类、和其他五大生成模型的关联以及在七大领域中的应用等方面展开,最后提出了 diffusion model 的现有 limitation 和未来的发展方向。
尽管 diffusion model 在各类任务中都有着优秀的表现,它仍还有自己的缺点,并有诸多研究对 diffusion model 进行了改善。为了系统地阐明 diffusion model 的研究进展,我们总结了原始扩散模型的三个主要缺点,采样速度慢,最大化似然差、数据泛化能力弱,并提出将的 diffusion models 改进研究分为对应的三类:采样速度提升、最大似然增强和数据泛化增强。我们首先说明改善的动机,再根据方法的特性将每个改进方向的研究进一步细化分类,从而清楚的展现方法之间的联系与区别。在此我们仅选取部分重要方法为例, 我们的工作中对每类方法都做了详细的介绍,内容如图所示:
在分析完三类扩散模型后,我们将介绍其他的五种生成模型 GAN,VAE,Autoregressive model, Normalizing flow, Energy-based model。考虑到扩散模型的优良性质,研究者们已经根据其特性将 diffusion model 与其他生成模型结合,所以为了进一步展现 diffusion model 的特点和改进工作,我们详细地介绍了 diffusion model 和其他生成模型的结合的工作并阐明了在原始生成模型上的改进之处。Diffusion model 在诸多领域都有着优异的表现,并且考虑到不同领域的应用中 diffusion model 产生了不同的变形,我们系统地介绍了 diffusion model 的应用研究,其中包含如下领域:计算机视觉,NLP、波形信号处理、多模态建模、分子图建模、时间序列建模、对抗性净化。对于每个任务,我们定义了该任务并介绍利用扩散模型处理任务的工作,我们将本项工作的主要贡献总结如下:
在应用时,为了让新样本的质量达到最佳,扩散模型往往需要进行成千上万步计算来获取一个新样本。这限制了 diffusion model 的实际应用价值,因为在实际应用时,我们往往需要产生大量的新样本,来为下一步处理提供材料。研究者们在提高 diffusion model 采样速度上进行了大量的研究。我们对这些研究进行了详细的阐述。我们将其细化分类为三种方法:Discretization Optimization,Non-Markovian Process,Partial Sampling。
C.Learnable Reverse Variance 方法学习反向过程的方差,从而较少拟合误差,可以有效地最大化 VLB。Analytic-DPM 证明,在 DDPM 和 DDIM 中存在反向过程中的最优期望和方差:
使用上述公式和训练好的分数函数,在给定前向过程的条件下,最优的 VLB 可以近似达到。
数据泛化增强
扩散模型假设数据存在于欧几里得空间,即具有平面几何形状的流形,并添加高斯噪声将不可避免地将数据转换为连续状态空间,所以扩散模型最初只能处理图片等连续性数据,直接应用离散数据或其他数据类型的效果较差。这限制了扩散模型的应用场景。数个研究工作将扩散模型推广到适用于其他数据类型的模型,我们对这些方法进行了详细地阐释。我们将其细化分类为两类方法:Feature Space Unification,Data-Dependent Transition Kernels。
A.Feature Space Unification 方法将数据转化到统一形式的 latent space,然后再 latent space 上进行扩散。LSGM 提出将数据通过 VAE 框架先转换到连续的 latent space 上后再在其上进行扩散。这个方法的难点在于如何同时训练 VAE 和扩散模型。LSGM 表明由于潜在先验是 intractable 的,分数匹配损失不再适用。LSGM 直接使用 VAE 中传统的损失函数 ELBO 作为损失函数,并导出了 ELBO 和分数匹配的关系:
DDPM 可以帮助 GAN 解决训练不稳定的问题。因为数据是在高维空间中的低维流形中,所以 GAN 生成数据的分布和真实数据的分布重合度低,导致训练不稳定。扩散模型提供了一个系统地增加噪音的过程,通过扩散模型向生成的数据和真实数据添加噪音,然后将加入噪音的数据送入判别器,这样可以高效地解决 GAN 无法训练、训练不稳定的问题。