今天读了一篇编译,接下来回到老本行,来一篇 diffusion model。这篇工作很有名,有点碰瓷 DDPM 的意思,其中 “IMPLICIT” 的意思是隐含。和 DDPM 的 “probabilistic” 相比,意思是减少随机性,加速采样。作者自己在 AI Time 上有个报告,好挺好的。
这篇工作和别的 diffusion model 工作一样,比较数学,很多推导我就不详细写了,可以从附录里看。
Introduction
大概意思就是:
- GAN 很好,但今年的 DDPM 也不差
21 年有一篇 OpenAI 的 BEAT GANS,用了 DDIM,关注度很高,意思就是 DDPM 真的比 GAN 好
- DDPM 的问题是慢
- 在 CIFAR-10 做 32x32 要 20h
- 在 CIFAR-10 做 256x256 要 1000h
- 本文解决这个问题,通过一个非马尔科夫的过程
Background
作者先讲了一般的 DDPM 是怎么搞的,这个叙述方式挺好的,讲讲重点
有一个公式:
反向的公式是:
另一方面,由于这个高斯分布的传递性,我们可以把
左边是实际马尔科夫链对
的估计,可计算右边是我们的去噪模型
对 的估计,可计算
这里我们套入上面
VARIATIONAL INFERENCE FOR NON-MARKOVIAN FORWARD PROCESSES
上面全是 DDPM 的数学推导。接下来,作者讲了他的贡献。它发现:
- DDPM 中的 loss
只依赖于 ,和 无关。这样符合边缘分布的可能性有很多,作者选取了一个非马尔科夫的过程
接下来,对于
作者接下来证明了这个算法的 train 过程用到的 loss 和 DDPM 是等价的 (差一个常数)。也就是说,训好的 DDPM 模型可以认为是训好的 DDIM 模型
sample
这个模型是怎么 infer 的呢?
进一步展开、化简刚才的
这个式子里面只有最右边的部分是带有随机成分的。而且当
如果我们取
ACCELERATED GENERATION PROCESSES
说完了采样,那么加速在哪呢?
作者证明了:
- 上面的逆过程不需要从
一路下降,其实选取一个递减的子集也是可以的!
实验
实验部分,作者实际上选取了:
可以看出,DDIM 在步数少的时候表现最好。最下面那个
作者还提到了这个方法的另一个优势:
- 由于确定性的增加,相同的初始噪声映射到基本相同的结果。可以方便做图片的修改。
我的思考
- 虽然证明和数学过程很复杂,但结论却是惊人的简单:同样的 DDPM,换一个采样方法,就能加速 50 倍
- 这个感觉是对上面论文 ODE 的一种实现?作者在论文里也用一小节说了这事。
- 有个后文 DPM-Solver,10 步就能媲美 DDPM-1000 步,过两天笔记整上
v1.5.2