这是我第一次写生成式模型的文章,查阅了很多资料,因为各个论文和资料的表示方法不一样,本文遵从Lil’s Log和DDPM文章中的表示方法。

这篇文章的推导很难,看了很久。 在阅读本文之前需要读者有变分推断,VAE,GAN模型等相关知识。 由于笔者水平有限,如有错误还请各位看官怒斥。 2022/4/25

参考文献与链接

知乎:
score matching推导
Denoising Diffusion Probabilistic Model(DDPM) - 知乎 (zhihu.com)
从DDPM到GLIDE:基于扩散模型的图像生成算法进展 - 知乎 (zhihu.com)
博客(强烈推荐):
Yang Song | Generative Modeling by Estimating Gradients of the Data Distribution)
What are Diffusion Models? | Lil’Log
paper:
论文Denoising Diffusion Probabilistic Model
image.png

背景

Diffusion Model是隐变量模型diffusion model系列论文解读 - 图6,其中diffusion model系列论文解读 - 图7与数据都是一样的维度,diffusion model系列论文解读 - 图8
可以定义为一个具有正反向的马氏链:

正向过程

正向过程是逐渐向图片加噪的过程,噪声满足高斯分布。
image.png
正向过程的每一步diffusion model系列论文解读 - 图10是一个高斯噪声,均值diffusion model系列论文解读 - 图11,方差为diffusion model系列论文解读 - 图12diffusion model系列论文解读 - 图13

重参数技巧

上面的马氏链可以让我们在每一个时间步diffusion model系列论文解读 - 图14采样一个diffusion model系列论文解读 - 图15。现在我们令diffusion model系列论文解读 - 图16diffusion model系列论文解读 - 图17
则有
image.png
这样我们就可以得到条件分布diffusion model系列论文解读 - 图19

diffusion model系列论文解读 - 图20diffusion model系列论文解读 - 图21表示两个高斯分布的加和,由diffusion model系列论文解读 - 图22,以此类推。

并且有diffusion model系列论文解读 - 图23,因此有diffusion model系列论文解读 - 图24

与SGLD的联系

SGLD是stochastic gradient langevin dynamics。
langevin dynamics是一个物理概念,来自于模拟分子运动,其提供了一个MCMC(markov chain monte carlo)过程,使用迭代的方式通过对数梯度diffusion model系列论文解读 - 图25从分布diffusion model系列论文解读 - 图26中采样。确切来说,从先验概率diffusion model系列论文解读 - 图27初始化链,按如下迭代式迭代:
diffusion model系列论文解读 - 图28
diffusion model系列论文解读 - 图29,当diffusion model系列论文解读 - 图30时,diffusion model系列论文解读 - 图31可以被采样出来且收敛。

Compared to standard SGD, stochastic gradient Langevin dynamics injects Gaussian noise into the parameter updates to avoid collapses into local minima.

反向过程

反向过程从先验diffusion model系列论文解读 - 图32开始,逐渐从先验中去噪(denoise),diffusion model系列论文解读 - 图33
image.png
将每次去噪过程diffusion model系列论文解读 - 图35定义为一个高斯分布,那么实际上正反向过程分别是加和减高斯噪声。
image.png
值得注意的是,当反向过程以diffusion model系列论文解读 - 图37为条件时,diffusion model系列论文解读 - 图38是tractable的。
image.png
image.pngdiffusion model系列论文解读 - 图41
因此可以写出diffusion model系列论文解读 - 图42%22%20aria-hidden%3D%22true%22%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMATHI-3BC%22%20x%3D%220%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJSZ1-2DC%22%20x%3D%2251%22%20y%3D%22-46%22%3E%3C%2Fuse%3E%0A%3C%2Fg%3E%0A%3C%2Fsvg%3E#card=math&code=%5Ctilde%20%5Cmu&id=xLG1Z)和diffusion model系列论文解读 - 图43
image.png
将等式diffusion model系列论文解读 - 图45带入diffusion model系列论文解读 - 图46得到
image.png
diffusion model系列论文解读 - 图48%22%20aria-hidden%3D%22true%22%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMAIN-3D%22%20x%3D%220%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%3Cg%20fill%3D%22%236495ed%22%20stroke%3D%22%236495ed%22%20transform%3D%22translate(1056%2C0)%22%3E%0A%3Cg%20fill%3D%22%236495ed%22%20stroke%3D%22%236495ed%22%3E%0A%3Cg%20fill%3D%22%236495ed%22%20stroke%3D%22%236495ed%22%3E%0A%3Cg%20transform%3D%22translate(120%2C0)%22%3E%0A%3Crect%20stroke%3D%22none%22%20width%3D%221949%22%20height%3D%2260%22%20x%3D%220%22%20y%3D%22220%22%3E%3C%2Frect%3E%0A%3Cg%20fill%3D%22%236495ed%22%20stroke%3D%22%236495ed%22%20transform%3D%22translate(724%2C676)%22%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMAIN-31%22%3E%3C%2Fuse%3E%0A%3C%2Fg%3E%0A%3Cg%20fill%3D%22%236495ed%22%20stroke%3D%22%236495ed%22%20transform%3D%22translate(60%2C-729)%22%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMAIN-221A%22%20x%3D%220%22%20y%3D%22-152%22%3E%3C%2Fuse%3E%0A%3Crect%20stroke%3D%22none%22%20width%3D%22996%22%20height%3D%2260%22%20x%3D%22833%22%20y%3D%22589%22%3E%3C%2Frect%3E%0A%3Cg%20fill%3D%22%236495ed%22%20stroke%3D%22%236495ed%22%20transform%3D%22translate(833%2C0)%22%3E%0A%3Cg%20fill%3D%22%236495ed%22%20stroke%3D%22%236495ed%22%3E%0A%3Cg%20fill%3D%22%236495ed%22%20stroke%3D%22%236495ed%22%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMATHI-3B1%22%3E%3C%2Fuse%3E%0A%3C%2Fg%3E%0A%3Cg%20fill%3D%22%236495ed%22%20stroke%3D%22%236495ed%22%20transform%3D%22translate(640%2C-150)%22%3E%0A%20%3Cuse%20transform%3D%22scale(0.707)%22%20xlink%3Ahref%3D%22%23E1-MJMATHI-74%22%3E%3C%2Fuse%3E%0A%3C%2Fg%3E%0A%3C%2Fg%3E%0A%3C%2Fg%3E%0A%3C%2Fg%3E%0A%3C%2Fg%3E%0A%3C%2Fg%3E%0A%3Cg%20fill%3D%22%236495ed%22%20stroke%3D%22%236495ed%22%20transform%3D%22translate(2189%2C0)%22%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMAIN-28%22%3E%3C%2Fuse%3E%0A%3C%2Fg%3E%0A%3Cg%20fill%3D%22%236495ed%22%20stroke%3D%22%236495ed%22%20transform%3D%22translate(2579%2C0)%22%3E%0A%3Cg%20fill%3D%22%236495ed%22%20stroke%3D%22%236495ed%22%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMAINB-78%22%3E%3C%2Fuse%3E%0A%3C%2Fg%3E%0A%3Cg%20fill%3D%22%236495ed%22%20stroke%3D%22%236495ed%22%20transform%3D%22translate(607%2C-150)%22%3E%0A%20%3Cuse%20transform%3D%22scale(0.707)%22%20xlink%3Ahref%3D%22%23E1-MJMATHI-74%22%3E%3C%2Fuse%3E%0A%3C%2Fg%3E%0A%3C%2Fg%3E%0A%3Cg%20fill%3D%22%236495ed%22%20stroke%3D%22%236495ed%22%20transform%3D%22translate(3764%2C0)%22%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMAIN-2212%22%3E%3C%2Fuse%3E%0A%3C%2Fg%3E%0A%3Cg%20fill%3D%22%236495ed%22%20stroke%3D%22%236495ed%22%20transform%3D%22translate(4542%2C0)%22%3E%0A%3Cg%20transform%3D%22translate(342%2C0)%22%3E%0A%3Crect%20stroke%3D%22none%22%20width%3D%223770%22%20height%3D%2260%22%20x%3D%220%22%20y%3D%22220%22%3E%3C%2Frect%3E%0A%3Cg%20fill%3D%22%236495ed%22%20stroke%3D%22%236495ed%22%20transform%3D%22translate(1424%2C714)%22%3E%0A%3Cg%20fill%3D%22%236495ed%22%20stroke%3D%22%236495ed%22%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMATHI-3B2%22%3E%3C%2Fuse%3E%0A%3C%2Fg%3E%0A%3Cg%20fill%3D%22%236495ed%22%20stroke%3D%22%236495ed%22%20transform%3D%22translate(566%2C-150)%22%3E%0A%20%3Cuse%20transform%3D%22scale(0.707)%22%20xlink%3Ahref%3D%22%23E1-MJMATHI-74%22%3E%3C%2Fuse%3E%0A%3C%2Fg%3E%0A%3C%2Fg%3E%0A%3Cg%20fill%3D%22%236495ed%22%20stroke%3D%22%236495ed%22%20transform%3D%22translate(60%2C-841)%22%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMAIN-221A%22%20x%3D%220%22%20y%3D%22-40%22%3E%3C%2Fuse%3E%0A%3Crect%20stroke%3D%22none%22%20width%3D%222817%22%20height%3D%2260%22%20x%3D%22833%22%20y%3D%22701%22%3E%3C%2Frect%3E%0A%3Cg%20fill%3D%22%236495ed%22%20stroke%3D%22%236495ed%22%20transform%3D%22translate(833%2C0)%22%3E%0A%3Cg%20fill%3D%22%236495ed%22%20stroke%3D%22%236495ed%22%3E%0A%3Cg%20fill%3D%22%236495ed%22%20stroke%3D%22%236495ed%22%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMAIN-31%22%3E%3C%2Fuse%3E%0A%3C%2Fg%3E%0A%3Cg%20fill%3D%22%236495ed%22%20stroke%3D%22%236495ed%22%20transform%3D%22translate(722%2C0)%22%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMAIN-2212%22%3E%3C%2Fuse%3E%0A%3C%2Fg%3E%0A%3Cg%20fill%3D%22%236495ed%22%20stroke%3D%22%236495ed%22%20transform%3D%22translate(1723%2C0)%22%3E%0A%3Cg%20fill%3D%22%236495ed%22%20stroke%3D%22%236495ed%22%3E%0A%3Cg%20fill%3D%22%236495ed%22%20stroke%3D%22%236495ed%22%20transform%3D%22translate(35%2C0)%22%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMATHI-3B1%22%3E%3C%2Fuse%3E%0A%3C%2Fg%3E%0A%3Cg%20fill%3D%22%236495ed%22%20stroke%3D%22%236495ed%22%20transform%3D%22translate(27%2C7)%22%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMAIN-AF%22%20x%3D%22-70%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMAIN-AF%22%20x%3D%22210%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%3C%2Fg%3E%0A%3C%2Fg%3E%0A%3Cg%20fill%3D%22%236495ed%22%20stroke%3D%22%236495ed%22%20transform%3D%22translate(738%2C-150)%22%3E%0A%20%3Cuse%20transform%3D%22scale(0.707)%22%20xlink%3Ahref%3D%22%23E1-MJMATHI-74%22%3E%3C%2Fuse%3E%0A%3C%2Fg%3E%0A%3C%2Fg%3E%0A%3C%2Fg%3E%0A%3C%2Fg%3E%0A%3C%2Fg%3E%0A%3C%2Fg%3E%0A%3C%2Fg%3E%0A%3Cg%20fill%3D%22%236495ed%22%20stroke%3D%22%236495ed%22%20transform%3D%22translate(8776%2C0)%22%3E%0A%3Cg%20fill%3D%22%236495ed%22%20stroke%3D%22%236495ed%22%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMAINB-7A%22%3E%3C%2Fuse%3E%0A%3C%2Fg%3E%0A%3Cg%20fill%3D%22%236495ed%22%20stroke%3D%22%236495ed%22%20transform%3D%22translate(511%2C-150)%22%3E%0A%20%3Cuse%20transform%3D%22scale(0.707)%22%20xlink%3Ahref%3D%22%23E1-MJMATHI-74%22%3E%3C%2Fuse%3E%0A%3C%2Fg%3E%0A%3C%2Fg%3E%0A%3Cg%20fill%3D%22%236495ed%22%20stroke%3D%22%236495ed%22%20transform%3D%22translate(9643%2C0)%22%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMAIN-29%22%3E%3C%2Fuse%3E%0A%3C%2Fg%3E%0A%3C%2Fg%3E%0A%3C%2Fg%3E%0A%3C%2Fg%3E%0A%3C%2Fsvg%3E#card=math&code=%3D%5Cblue%7B%5Ccfrac%201%7B%5Csqrt%7B%5Calpha_t%7D%7D%28%5Cmathbf%20x_t-%5Ccfrac%7B%5Cbeta_t%7D%7B%5Csqrt%7B1-%5Coverline%20%5Calpha_t%7D%7D%5Cmathbf%20z_t%29%7D&id=WuEpo)

这个结论后面会用到。

训练目标

我们的训练目标是最小化CE:
image.png
第二个等号可以写为(这里为了简化令diffusion model系列论文解读 - 图50):
diffusion model系列论文解读 - 图51
倒数第二个“diffusion model系列论文解读 - 图52”式子可以由Jensen不等式,交换diffusion model系列论文解读 - 图53diffusion model系列论文解读 - 图54得到。

VLB表示Variational Lower Bound,此部分需要变分推断的知识。

为了让每一项都能计算,需要写成KL距离或者熵的形式:
image.png
可以看出训练目标变为diffusion model系列论文解读 - 图56项,并且每一项是计算两个分布的KL距离,因此可以闭式计算,不需要高方差的蒙特卡洛法。
对于diffusion model系列论文解读 - 图57,由于diffusion model系列论文解读 - 图58没有参数,且diffusion model系列论文解读 - 图59是先验,所以diffusion model系列论文解读 - 图60是常数可以忽略。
DDPM中,将diffusion model系列论文解读 - 图61建模为单独的离散的decoder,服从分布diffusion model系列论文解读 - 图62

DDPM

我们需要一个神经网络来得到反向过程diffusion model系列论文解读 - 图63
我们前面推导出
image.png

参数化diffusion model系列论文解读 - 图65

根据上一节推导出的diffusion model系列论文解读 - 图66两个高斯分布的KL距离,可以参数化为下面式子(带入上述推导的分布diffusion model系列论文解读 - 图67),以最小化与diffusion model系列论文解读 - 图68的差距:

我将要用的式子放在这里,以供读者推导 image.png image.png image.png

image.png

简化diffusion model系列论文解读 - 图73

DDPM作者发现把期望中的权重去掉可以更好的训练,因此将diffusion model系列论文解读 - 图74写为:
image.png
训练和采样过程
image.png

diffusion model系列论文解读 - 图77的选择

在DDPM中,作者选择将其线性增大,从diffusion model系列论文解读 - 图78diffusion model系列论文解读 - 图79。但是实验表示其生成图像的NLL不能和其他的生成式网络相比较。
有一些trick被用于diffusion model系列论文解读 - 图80的选择。
image.png
image.png

diffusion model系列论文解读 - 图83的取值

在DDPM中,作者选择将diffusion model系列论文解读 - 图84固定,并且将diffusion model系列论文解读 - 图85设置为diffusion model系列论文解读 - 图86,其中diffusion model系列论文解读 - 图87。因为将diffusion model系列论文解读 - 图88设置为可学习的会导致不稳定。
Nichol & Dhariwal (2021)diffusion model系列论文解读 - 图89设置为diffusion model系列论文解读 - 图90diffusion model系列论文解读 - 图91的差值:image.png
但是由于diffusion model系列论文解读 - 图93不依赖于diffusion model系列论文解读 - 图94,所以将loss加了一项,改为image.png,并且将diffusion model系列论文解读 - 图96diffusion model系列论文解读 - 图97上停止梯度,只用于优化diffusion model系列论文解读 - 图98
论文作者观察到diffusion model系列论文解读 - 图99很难优化(noisy gradient),所以将diffusion model系列论文解读 - 图100使用重要性采样进行了时间平均。

DDIM

DDPM采样过程很慢,因为要生成一个图像,需要迭代很多轮。

“For example, it takes around 20 hours to sample 50k images of size 32 × 32 from a DDPM, but less than a minute to do so from a GAN on an Nvidia 2080 Ti GPU.”

一个非常intuitive的想法就是每diffusion model系列论文解读 - 图101步采样一次,这样就可以将采样步数减少到diffusion model系列论文解读 - 图102步。
令采样过程为diffusion model系列论文解读 - 图103
DDIM(Song et al., 2020)作者将diffusion model系列论文解读 - 图104重写为:
image.png
根据image.png,得到image.png,令image.pngdiffusion model系列论文解读 - 图109控制采样的随机性。当diffusion model系列论文解读 - 图110时,采样是确定的。
DDIM与DDPM有一样的边缘噪声概率分布,但是确定性地将噪声map回原来的数据域。

生成

在生成图片的时候,只需要采样diffusion model系列论文解读 - 图111步反向过程中的一部分diffusion model系列论文解读 - 图112。于是,生成过程就变为:
image.png
diffusion model系列论文解读 - 图114很小的时候,diffusion model系列论文解读 - 图115(deterministic)可以生成最好质量的数据;diffusion model系列论文解读 - 图116生成的质量不好。
image.png