0%

论文阅读[精读]-DENOISING DIFFUSION IMPLICIT MODELS

今天读了一篇编译,接下来回到老本行,来一篇diffusion model。这篇工作很有名,有点碰瓷DDPM的意思,其中“IMPLICIT”的意思是隐含。和DDPM的“probabilistic”相比,意思是减少随机性,加速采样。作者自己在AI Time上有个报告,好挺好的。

宋佳铭DDIM报告

这篇工作和别的diffusion model工作一样,比较数学,很多推导我就不详细写了,可以从附录里看。

Introduction

大概意思就是:

  • GAN很好,但今年的DDPM也不差

21年有一篇OpenAI的 BEAT GANS,用了DDIM,关注度很高,意思就是DDPM真的比GAN好

  • DDPM的问题是慢

    • 在CIFAR-10做32x32要20h
    • 在CIFAR-10做256x256要1000h
  • 本文解决这个问题,通过一个非马尔科夫的过程

Background

作者先讲了一般的DDPM是怎么搞的,这个叙述方式挺好的,讲讲重点

有一个公式:

也就是说,正常的DDPM是一个马尔科夫过程,想要从$X0$得到后面,需要一步一步加噪声。这个噪声是一个高斯分布,其均值和$X{t-1}$有关,是sample出来的。

反向的公式是:

其中

另一方面,由于这个高斯分布的传递性,我们可以把$x_t$视为单位高斯分布和$x_0$的线性叠加:

我们在训练时我们想要让 $\log p_\theta(x_0) \to \log q(x_0)$,也就是说,我们想要优化:

其中

  • 左边是实际马尔科夫链对$x_{t-1}$的估计,可计算

  • 右边是我们的去噪模型$\theta$对$x_{t-1}$的估计,可计算

这里我们套入上面$x_t$的公式,看做$x_t,\epsilon$的函数,进行一波化简,最终得到

忽略常数C,同时对所有的L进行优化:

就能学出DDPM模型了

VARIATIONAL INFERENCE FOR NON-MARKOVIAN FORWARD PROCESSES

上面全是DDPM的数学推导。接下来,作者讲了他的贡献。它发现:

  • DDPM中的loss$L\lambda$只依赖于$q(x_t|x_0)$,和$q(x{1:T} |x_0)$无关。这样符合边缘分布的可能性有很多,作者选取了一个非马尔科夫的过程

接下来,对于 $x_0 \sim q(x_0) , \epsilon_t \sim N (0, I)$我们可以获取其对应的$X_t$,由

如果我们有一个对$\epsilont$的预测器$\epsilon\theta^{(t)}(x_t)$输入不含$X_0$。我们可以用他来预测$X_0$:

由此,这个去噪的过程可以看做:

式子右边只和$x_t,\epsilon$有关

作者接下来证明了这个算法的train过程用到的loss和DDPM是等价的(差一个常数)。也就是说,训好的DDPM模型可以认为是训好的DDIM模型

sample

这个模型是怎么infer的呢?

进一步展开、化简刚才的$p\theta^{(t)}(x{t-1} | x_t)$,我们可以得到

这个式子里面只有最右边的部分是带有随机成分的。而且当

时退化为DDPM

如果我们取$\sigma_t = 0$。式子有确定性的输出,这个模型称作DDIM。

ACCELERATED GENERATION PROCESSES

说完了采样,那么加速在哪呢?

作者证明了:

  • 上面的逆过程不需要从$T,T-1,…,1,0$一路下降,其实选取一个递减的子集也是可以的!

实验

实验部分,作者实际上选取了:

其中$\eta$是超参,0代表是DDIM,1代表是DDPM。另一个变量是选取的子集S的大小($|S|=1000$代表没有简化),跑了这个图:

可以看出,DDIM在步数少的时候表现最好。最下面那个$\hat\sigma$代表原始的DDPM祖先采样。可以看出,衰减非常明显

作者还提到了这个方法的另一个优势:

  • 由于确定性的增加,相同的初始噪声映射到基本相同的结果。可以方便做图片的修改。

我的思考

  • 虽然证明和数学过程很复杂,但结论却是惊人的简单:同样的DDPM,换一个采样方法,就能加速50倍
  • 这个感觉是对上面论文ODE的一种实现?作者在论文里也用一小节说了这事。
论文阅读-SCORE-BASED-GENERATIVE-MODELING-THROUGH-STOCHASTIC-DIFFERENTIAL-EQUATIONS
  • 有个后文 DPM-Solver,10步就能媲美DDPM-1000步,过两天笔记整上