去噪扩散概率模型(DDPM)的简单理解

图1 DDPM 无条件控制生成的图像。 这些不是真实的人、地方、动物或物体。

前言

扩散模型最近在图像生成领域取得了巨大的成功,类似 OpenAI 的 DALL-E 2,Google 的 Imagen,以及 Stability AI 最近发行的能够达到商业级绘画目的的 Stable Diffusion 等,都是基于扩散模型来进行图像生成的。本文对知乎上各位大佬对于扩散模型(特别是 DDPM)的讲解进行了融合,带领大家深入浅出理解扩散和逆扩散过程。

数学基础

  1. 先验概率和后验概率
  1. KL 散度

对于两个单一变量的高斯分布的
p
p
p

q
q
q
而言,它们的 KL 散度为:


K
L
(
p
,
q
)
=
l
o
g
σ
2
σ
1
+
σ
1
2
+
(
μ
1

μ
2
)
2
2
σ
2
2

1
2
KL(p, q)=log\frac{\sigma_{2}}{\sigma_{1}}+\frac{\sigma_{1}^{2}+(\mu_{1}-\mu_{2})^{2}}{2\sigma_{2}^{2}}-\frac{1}{2}
KL(p,q)=logσ1σ2+2σ22σ12+(μ1μ2)221

  1. 参数重整化

若希望从高斯分布
N
(
μ
,
σ
2
)
N(\mu, \sigma^{2})
N(μ,σ2)
中采样,可以先从标准分布
N
(
,
1
)
N(0, 1)
N(0,1)
采样出
z
z
z
,再得到
σ

z
+
μ
\sigma*z+\mu
σz+μ
,这就是我们想要的采样结果。这样做的好处是将随机性转移到了
z
z
z
这个常量上,而
σ
\sigma
σ

μ
\mu
μ
则当作仿射变换网络的一部分。

模型介绍

  1. 模型总览

去噪扩散概率模型(DDPM)的简单理解

图2 DDPM 是经过训练以逐渐去除噪声数据的参数化马尔可夫链。我们估计生成过程的参数。

DDPM 主要分为两个过程:

加噪过程是指向数据集中的真实图像逐步加入高斯噪声,而去噪过程是指对加了噪声的图片逐步去噪,从而还原出真实图像。加噪过程满足一定的数学规律,不需要学习,而去噪过程则采用神经网络模型来学习。这样一来,神经网络模型就可以从一堆杂乱无章的噪声图片中生成真实图片了。

  1. 扩散过程

给定初始数据分布
x

q
(
x
)
x_{0} \sim q(x)
x0q(x)
,我们定义一个前向扩散过程(forward diffusion process):我们向数据分布中逐步添加高斯噪声,加噪过程持续
T
T
T
次,产生一系列带噪声的图片
x
1
,
.
.
.
,
x
T
x_{1},...,x_{T}
x1,...,xT
。在由
x
t

1
x_{t-1}
xt1
加噪至
x
t
x_{t}
xt
的过程中,噪声的标准差/方差是以一个在区间
(
,
1
)
(0, 1)
(0,1)
内的固定值
β
T
\beta_{T}
βT
来确定的,均值是以固定值
β
T
\beta_{T}
βT
和当前时刻的图片数据
x
t

1
x_{t-1}
xt1
来确定的。以上描述的加噪过程可以写成公式:


q
(
x
1
:
T

x
)
:
=

t
=
1
T
q
(
x
t

x
t

1
)
,
q
(
x
t

x
t

1
)
:
=
N
(
x
t
;
1

β
t
x
t

1
,
β
t
I
)
q(x_{1:T|x_{0}}):=\prod_{t=1}^{T}q(x_{t}|x_{t-1}), \quad q(x_{t}|x_{t-1}) := \mathcal N(x_{t};\sqrt{1-\beta_{t}}x_{t-1},\beta_{t}\mathbf{I})
q(x1:Tx0):=t=1Tq(xtxt1),q(xtxt1):=N(xt;1βtxt1,βtI)

上式的意思是:由
x
t

1
x_{t-1}
xt1
得到
x
t
x_{t}
xt
的过程,满足分布
N
(
x
t
;
1

β
t
x
t

1
,
β
t
I
)
\mathcal N(x_{t};\sqrt{1-\beta_{t}}x_{t-1}, \beta_{t}\mathbf{I})
N(xt;1βtxt1,βtI)
,因此噪声只由
β
T
\beta_{T}
βT

x
t

1
x_{t-1}
xt1
来确定,是一个固定值而不是一个可学习的过程。因此,只要有了
x
x_{0}
x0
,并且提前确定每一步的固定值
β
1
,
.
.
.
,
β
T
\beta_{1},...,\beta_{T}
β1,...,βT
,我们就可以推出任意一部的加噪数据
x
1
,
.
.
.
,
x
T
x_{1},...,x_{T}
x1,...,xT
。值得注意的是,这里的加噪过程是一个马尔科夫链过程,即当前状态的概率只与上一时刻有关。

随着
t
t
t
的不断增大,最终原始数据
x
x_{0}
x0
会逐步失去它的特征。最终当
T


T\rightarrow\infty
T
时,
x
T
x_{T}
xT
趋近于一个各向同性的高斯分布。从视觉上看,就是将原本一张完好的照片加噪很多步后,图片几乎变成了一张完全时噪声的图片。

逐步加噪过程中,我们其实并不需要一步步地从
x
,
x
1
,
.
.
.
x_{0},x_{1},...
x0,x1,...
去迭代得到
x
t
x_{t}
xt
。事实上,我们可以直接从
x
x_{0}
x0
和固定值序列
{
β
T

(
,
1
)
}
t
=
1
T
\{ \beta_{T}∈(0, 1)\}_{t=1}^{T}
{βT(0,1)}t=1T
直接计算得到:


q
(
x
t

x
)
=
N
(
x
t
;
α
t

x
,
(
1

α
t

)
I
)
q(x_{t}|x_{0}) = \mathcal N(x_{t};\sqrt{\overline{\alpha_{t}}}x_{0}, (1-\overline{\alpha_{t}})\mathbf{I}) \\
q(xtx0)=N(xt;αtx0,(1αt)I)

上式中,
α
t
=
1

β
t
\alpha_{t}=1-\beta_{t}
αt=1βt

α
t

=

i
=
1
T
α
i
\overline{\alpha_{t}}=\prod_{i=1}^T\alpha_{i}
αt=i=1Tαi
,中间推导过程不再罗列。

  1. 逆扩散过程

如果我们能够将上述过程转换方法,即从
q
(
x
t

1

x
t
)
q(x_{t-1}|x_{t})
q(xt1xt)
中采样,那么我们就可以从一个随机的高斯分布
N
(
,
I
)
\mathcal N(0, \mathbf{I})
N(0,I)
中重建出一个真实的原始样本,也就是从一个完全杂乱无章的噪声图片中得到一张真实图片。但是,由于需要从完整数据集中找到数据分布,我们没办法简单地预测
q
(
x
t

1

x
t
)
q(x_{t-1}|x_{t})
q(xt1xt)
,因此需要学习一个模型
p
θ
p_{\theta}
pθ
来近似模拟这个条件概率,从而运行逆扩散过程。


p
θ
(
x
:
T
)
:
=
p
(
x
T
)

t
=
1
T
p
θ
(
x
t

1

x
t
)
,
p
θ
(
x
t

1

x
t
)
:
=
N
(
x
t

1
;
μ
θ
(
x
t
,
t
)
,

θ
(
x
t
,
t
)
)
p_{\theta}(x_{0:T}):=p(x_{T})\prod_{t=1}^{T}p_{\theta}(x_{t-1}|x_{t}), \quad p_{\theta}(x_{t-1}|x_{t}):=\mathcal N(x_{t-1};\mu_{\theta(x_{t},t),\sum_{\theta}(x_{t},t)})
pθ(x0:T):=p(xT)t=1Tpθ(xt1xt),pθ(xt1xt):=N(xt1;μθ(xt,t),θ(xt,t))

要点分析

正向的扩散过程

逆向的扩散过程

伪代码

去噪扩散概率模型(DDPM)的简单理解

相关论文

标题 简称 出版 评语
Denoising Diffusion Probabilistic Models DDPM NIPS 2020 开山之作
Denoising Diffusion Implicit Models DDIM ICLR 2021 采样提速
Improved denoising diffusion probabilistic models \ ICML 2021 在保证高图像质量的同时提升对数似然
Diffusion Models Beat GANs on Image Synthesis \ NIPS 2021 Diffusion Models VS. GANs(提出了带条件的扩散模型)
Classifier-Free Diffusion Guidance \ NIPS 2021 引入等价结构替换分类器引导
Hierarchical Text-Conditional Image Generation with CLIP Latents DALL-E 2 NIPS 2022 OpenAI 文本生成图像
Photorealistic Text-to-Image Diffusion Models with Deep Language Understanding Imagen NIPS 2022 Google 文本生成图像
High-Resolution Image Synthesis with Latent Diffusion Models LDM CVPR 2022 采样提速

参考

  • DDPM解读(一)| 数学基础,扩散与逆扩散过程和训练推理方法
  • diffusion model最近在图像生成领域大红大紫,如何看待它的风头开始超过GAN?
  • 基于扩散模型的文本引导图像生成算法
  • 生成扩散模型漫谈(一):DDPM = 拆楼 + 建楼
  • 生成扩散模型漫谈(二):DDPM = 自回归式VAE
  • Diffusion Model一发力,GAN就过时了?