[2] Denoising Diffusion Probabilistic Models
作者:Jonathan Ho Ajay Jain Pieter Abbeel
单位:加州大学伯克利分校
摘要:
我们提出了高质量的图像合成结果使用扩散概率模型,一类潜变量模型从非平衡热力学的考虑启发。我们的最佳结果是通过根据扩散概率模型和与Langevin动力学匹配的去噪分数之间的一种新的联系设计的加权变分界进行训练得到的,并且我们的模型自然地承认一个渐进的有损解压方案,可以解释为自回归解码的一个推广。在无条件的CIFAR10数据集上,我们获得了9.46的Inception分数和3.17的最先进的FID分数。在256x256LSUN上,我们得到了与ProgressiveGAN类似的样本质量。
主要贡献:
我们表明,扩散模型实际上能够生成高质量的样本,有时比其他类型的生成模型的发布结果更好。此外,我们证明了扩散模型的某种参数化揭示了与训练过程中多个噪声水平上的去噪分数匹配以及采样过程中退火朗之万动力学的等价性。我们使用这个参数化得到了我们最好的样本质量结果。
创新点:
为了指导我们的选择,我们在扩散模型和去噪得分匹配之间建立了一个新的显式联系,从而得到了一个简化的、加权的扩散模型变分界限目标。我们忽略了前向过程方差β t可以通过重新参数化学习的事实,而是将它们固定为常量。因此,在我们的实现中,近似后验q没有可学习的参数,因此LT在训练过程中是一个常数,可以忽略。
简介:
近年来,各种深度生成模型在各种数据模态中都展示了高质量的样本。生成式对抗网络( GAN )、自回归模型、流和变分自编码器( VAEs )合成了引人注目的图像和音频样本,并且在基于能量的建模和得分匹配方面取得了显著进展,产生了与GAN 相当的图像。本文介绍了扩散概率模型的研究进展。
框图:
[2] Ho, J., Jain, A., & Abbeel, P. (2020). Denoising diffusion probabilistic models. In Proceedings of the 34th Conference on Neural Information Processing Systems (NeurIPS 2020).
采样过程差不多是x→A→B→C→z*σ+μ
x代表输入的数据,有可能是随机数的个数和范围,通过A输出相应的随机数数据,这些随机数通过B函数的处理,得到符合N(0,1)的数据,然后这些数据再经过参数重整化,得到最终数据。这样做的好处就是把数据和σ、μ结合起来,使得能够接入到网络中。
说一下扩散模型的两个过程:
一, 扩散过程
对于一个初始数据的概率分布q(x),我们从这个概率分布中采样一些数据,记作x0。然后,我们在T个轮次中,不断向其加入高斯噪声(其实加入高斯噪声指的就是对于每一步的xt,对其参数重整化,也就是说让xt*σ+μ,当然这里的σ和μ都不是一个简单的值,使得经过处理之后的xt符合相应的高斯分布),使得最终的xT变成了一个各向独立的高斯分布。
通过上述的一个公式推导,能得到什么样的信息:①对于每一个轮次或者说是时刻的xt都能够算出来,因为
是和β有关的一个项,而β是初始给出的参数。x0也是初始数据,z是每次从N(0,1)采样出来的数据,这些都是可获得的,所以xt能得到。②因为q(xt|x0)是知道的,所以q(xt|x0)*q(x0)这个式子对x0求积分,得到的是q(xt)的概率分布,而我们想要使得最终的分布是各向独立的高斯分布,只需令此时的分布均值为0,方差为1就行了。
二,逆扩散过程
通过一系列的公式推导,我们最终得到xt-1的公式,最终可以得到x0的结果。
前面的扩散过程已经解释清楚了,然后,对于训练过程,就是让一个神经网络使得Lsimple这个公式的值最小,也就是说对于每一步都要使得预测的噪声与真实噪声的差异最小,对于每一轮都要训练完。
最后的逆扩散过程就是,从N(0,1)中随机采样出xT,对于T个轮次,从N(0,1)随机采样出z,然后带入公式逐步得到x0.
之前对扩散模型的运行流程存在一些错误,现在解释一下正确的运行步骤:
从q(x)中采样x0,作为初始数据,开始加噪声,那么怎么加呢?从标准正太分布中采样得到z1,给出β1的值,对x0进行参数重整化,得到x1的值,形式上来看就是x1=x0+噪声,然后向参数网络中输入x0,t等数据,进行网络训练,使得所输出的预测噪声尽量和加入的噪声z1有较小的差距,一边扩散一边训练参数网络,直到结束。然后在逆扩散过程中,xt-1根据参数网络预测的各个噪声,逐步算出,直到算出x0,产生最终结果。