DDIM论文阅读

DDIM介绍

DDIM是一种为提升采样速度的扩散模型的改进模型,它的训练方法和DDPM是一样的。DDIM的逆扩散过程用一种非马尔可夫进行了一般化的推广,使得采样速度大大提高,在生成质量大致相同的时候能提高10到50倍。

论文:Denoising Diffusion Implicit Models Jiaming Song, Chenlin Meng & Stefano Ermon

思路推导

DDPM有两个特点:

  1. 损失函数只依赖于
  2. 采样过程只依赖于

尽管整个过程是以为出发点一步步往前推的,但是从结果上来看与并没有关系。因此,DDIM提出的第一个观点是:

观点1: 既然结果跟无关,是否可以将从整个推导过程中去掉?

在DDPM的论文中,前向过程是一个马尔可夫过程,每一步都是无后效性的。但是既然我们的损失函数仅仅与边缘分布有关,那么对应同一个边缘分布,可以有不同的联合分布。既然如此,我们就可以不一定用马尔可夫过程来进行建模,而是用非马尔可夫过程建模,这样在生成过程中,由于生成过程是模仿前向过程的逆过程,因此这样做也许会加快生成过程,从而加速采样。

论文中对于前向过程建模为如下的非马尔可夫过程: 其中是一个与有关的实向量,,这与DDPM保持一致,且对于所有的,设置 之所以如此设置是为了满足边缘分布与DDPM提出的边缘分布相同。(这一步设置用到了类似数学归纳法的原理,论文后面有证明)

有了上面的一些规定,我们就可以利用贝叶斯公式导出前向过程: 可以看到这个正向过程不再是马尔可夫的,因为每一个都可以同时依赖于

另外控制了正向过程的随机性。

但是现在我们的目标是获得而不是,因此我们需要消除。考虑初步预估一个,预估的方式还是由DDPM推导的这个公式而来: 我们可以通过来推得 然后我们就可以写出生成过程的表达式: 由于没有改动,所以训练所用的目标函数可以认为与DDPM的目标函数相同(除去权重系数),也就是说训练过程没有改变,我们可以用回DDPM训练好的模型。它的特点是训练过程没有变化(也就是说最终保存下来的模型没有变化),但生成过程却有一个可变动的参数,就是这个参数给DDPM带来了新鲜的结果。

所以我们最终导出了DDIM的模型,如下: 扩散模型的生成过程被认为是反向过程的近似;由于正向过程有个步骤,因此生成过程也被迫对个步骤进行采样。但是,由于只要是固定的,去噪目标函数就不依赖于特定的正向过程,因此我们也可以考虑长度小于T的正向过程,这样无需训练不同的模型,即可加速相应的生成过程。因此,DDIM提出的第二个重要观点如下:

观点2: DDPM的训练结果实质上包含了它的任意子序列参数的训练结果。

具体来说,设的任意子序列,那么我们以为参数训练一个扩散步数为步的DDPM,其目标函数实际上是原来以步DDPM的目标函数的一个子集。所以在模型拟合能力足够好的情况下,它其实包含了任意子序列参数的训练结果。

那么反过来想,如果有一个训练好的步DDPM模型,我们也可以将它当成是以为参数训练出来的步模型,而既然是步的模型,生成过程也就只需要步了,从而起到了加速采样的作用。

另外,对于前向过程引入的,论文里并没有有过多的约束,但是不同的采样过程会呈现出不同的特点:

时,前向过程变成马尔可夫过程,与DDPM相同

最特殊的一个例子是取,此时从是一个确定性变换: 这也是DDIM论文中特别关心的一个例子,准确来说,原论文的DDIM就是特指的情形,其中“I”的含义就是“Implicit”,意思这是一个隐式的概率模型,因为跟其他选择所不同的是,此时从给定的出发,得到的生成结果是不带随机性的。这在理论上和实用上都带来了一些好处。

此外,生成过程还可以建模为微分方程的形式,将生成过程等同于求解常微分方程后,可以借助常微分方程的数值解法,为生成过程的加速提供更丰富多样的手段。