最大似然估计加强
扩散模型在最大似然估计的表现差于基于似然函数的生成模型,但最大化似然估计在诸多应用场景都有重要意义,比如图片压缩, 半监督学习, 对抗性净化。由于对数似然难以直接计算,研究主要集中在优化和分析变分下界(VLB)。我们对提高扩散模型最大似然估计的模型进行了详细的阐述。我们将其细化分类为三类方法:Objectives Designing,Noise Schedule Optimization,Learnable Reverse Variance。
A.Objectives Designing 方法利用扩散 SDE 推倒出生成数据的对数似然与分数函数匹配的损失函数的关系。这样通过适当设计损失函数,就可以最大化 VLB 和对数似然。Song et al. 证明了可以设计损失函数的权重函数,使得 plug-in reverse SDE 生成样本的似然函数值小于等于损失函数值,即损失函数是似然函数的上界。分数函数拟合的损失函数如下:
我们只需将权重函数λ(t)设为扩散系数 g(t)即可让损失函数成为似然函数的 VLB,即:
B.Noise Schedule Optimization 通过设计或学习前向过程的噪声进度来增大 VLB。VDM 证明了当离散步数接近无穷时,损失函数完全由信噪比函数 SNR(t)的端点决定:
那么在离散步数接近无穷时,可以通过学习信噪比函数 SNR(t)的端点最优化 VLB,而通过学习信噪比函数中间部分的函数值来实现模型其他方面的改进。
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 和分数匹配的关系:
该式在忽略常数的意义下成立。通过参数化扩散过程中样本的分数函数,LSGM 可以高效的学习和优化 ELBO。
B.Data-Dependent Transition Kernels 方法根据数据类型的特点设计 diffusion process 中的 transition kernels,使扩散模型可以直接应用于特定的数据类型。D3PM 为离散型数据设计了 transition kernel,可以设为 lazy random-walk,absorbing state 等。GEODIFF 为 3D 分子图数据设计了平移 - 旋转不变的图神经网络,并且证明了具有不变性的初分布和 transition kernel 可以导出具有不变性的边缘分布。假设 T 是一个平移 - 旋转变换,如:
那么生成的样本分布也有平移 - 旋转不变性:
和其他生成模型的联系
在下面的每个小节中,我们首先介绍其他五类重要的生成模型,并分析它们的优势和局限性。然后我们介绍了扩散模型是如何与它们联系起来的,并说明通过结合扩散模型来改进这些生成模型。VAE,GAN,Autoregressive model, Normalizing flow, Energy-based model 和扩散模型的联系如下图所示:
DDPM 可以视作层次马尔可夫 VAE(hierarchical Markovian VAE)。但 DDPM 和一般的 VAE 也有区别。DDPM 作为 VAE,它的 encoder 和 decoder 都服从高斯分布、有马尔科夫行;其隐变量的维数和数据维数相同;decoder 的所有层都共用一个神经网络。
DDPM 可以帮助 GAN 解决训练不稳定的问题。因为数据是在高维空间中的低维流形中,所以 GAN 生成数据的分布和真实数据的分布重合度低,导致训练不稳定。扩散模型提供了一个系统地增加噪音的过程,通过扩散模型向生成的数据和真实数据添加噪音,然后将加入噪音的数据送入判别器,这样可以高效地解决 GAN 无法训练、训练不稳定的问题。
Normalizing flow 通过双射函数将数据转换到先验分布,这样的作法限制了 Normalizing flow 的表达能力,导致应用效果较差。类比扩散模型向 encoder 中加入噪声,可以增加 Normalizing flow 的表达能力,而从另一个视角看,这样的做法是将扩散模型推广到前向过程也可学习的模型。
Autoregressive model 在需要保证数据有一定的结构,这导致设计和参数化自回归模型非常困难。扩散模型的训练启发了自回归模型的训练,通过特定的训练方式避免了设计的困难。
Energy-based model 直接对原始数据的分布建模,但直接建模导致学习和采样都比较困难。通过使用扩散恢复似然,模型可以先对样本加入微小的噪声,再从有略微噪声的样本分布来推断原始样本的分布,使的学习和采样过程更简单和稳定。
扩散模型的应用
在本节中,我们分别介绍了扩散模型在计算机视觉、自然语言处理、波形信号处理、多模态学习、分子图生成、时间序列以及对抗学习等七大应用方向中的应用,并对每类应用中的方法进行了细分并解析。例如在计算机视觉中可以用 diffusion model 进行图像补全修复(RePaint):
在多模态任务中可以用 diffusion model 进行文本到图像的生成(GLIDE):
还可以在分子图生成中用 diffusion model 进行药物分子和蛋白质分子的生成(GeoDiff):
应用分类汇总见表:
未来研究方向
应用假设再检验。我们需要检查我们在应用中普遍接受的假设。例如,实践中普遍认为扩散模型的前向过程会将数据转换为标准高斯分布,但事实并非如此,更多的前向扩散步骤会使最终的样本分布与标准高斯分布更接近,与采样过程一致;但更多的前向扩散步骤也会使估计分数函数更加困难。理论的条件很难获得,因此在实践中操作中会导致理论和实践的不匹配。我们应该意识到这种情况并设计适当的扩散模型。
从离散时间到连续时间。由于扩散模型的灵活性,许多经验方法可以通过进一步分析得到加强。通过将离散时间的模型转化到对应的连续时间模型,然后再设计更多、更好的离散方法,这样的研究思路有前景。
新的生成过程。扩散模型通过两种主要方法生成样本:一是离散化反向扩散 SDE,然后通过离散的反向 SDE 生成样本;另一个是使用逆过程中马尔可夫性质对样本逐步去噪。然而,对于一些任务,在实践中很难应用这些方法来生成样本。因此,需要进一步研究新的生成过程和视角。
泛化到更复杂的场景和更多的研究领域。虽然目前 diffusion model 已经应用到多个场景中,但是大多数局限于单输入单输出的场景,将来可以考虑将其应用到更复杂的场景,比如 text-to-audiovisual speech synthesis。也可以考虑和更多的研究领域相结合。