Diffusion Models: 方法和应用的综合调查 【01】Diffusion Models基础
原文链接:Diffusion Models: 方法和应用的综合调查 【01】Diffusion Models基础
GitHub: https://github.com/YangLing0818/Diffusion-Models-Papers-Survey-Taxonomy.
Paper: https://arxiv.org/abs/2209.00796
目录
文章目录
- Diffusion Models: 方法和应用的综合调查 【01】Diffusion Models基础
- 01 概述
- 02 Diffusion Models基础
- 去噪扩散概率模型(DDPMs)
- 基于分数的生成模型(SGMs)
- 随机微分方程(Score SDEs)
- 02 高效采样的Diffusion Models
(更多内容后续会陆续发表)
01 概述
在本调查中,我们概述了扩散模型快速发展的工作主体,并将研究分为三个关键领域:
- efficient sampling ,
- improved likelihood estimation ,
- methods for handling data with special structures.
我们还讨论了将扩散模型与其他生成模型相结合的可能性,以增强结果。具体包括:
- variational autoencoders (VAEs) [135, 225],
- generative adversarial networks (GANs) [77],
- normalizing flows [53, 55, 199, 227],
- autoregressive models [271],
- energy-based models (EBMs)
我们进一步回顾了扩散模型在计算机视觉、自然语言处理、时间数据建模以及其他科学学科的跨学科应用等领域的广泛应用。 对于每个任务,我们提供了一个定义,描述了如何使用扩散模型来解决它,并总结了相关的先前工作。
本调查旨在为扩散模型的状态提供一个情境化的、深入的观察,确定重点领域,并指出进一步探索的潜在领域。
02 Diffusion Models基础
扩散模型(Diffusion Models)是一组概率生成模型,它通过注入噪声逐步破坏数据,然后学习反转这个过程来生成样本。
目前关于扩散模型的研究主要基于三个主要公式:
- 去噪扩散概率模型(DDPMs)[90, 166, 215],
- 基于分数的生成模型(SGMs)[220, 221]
- 随机微分方程(Score SDEs)[219, 225]。
下面将分别介绍这三部分内容。
去噪扩散概率模型(DDPMs)
去噪扩散概率模型(denoising diffusion probabilistic model, DDPM)[90,215]利用了两条马尔可夫链:将数据扰动为噪声的正向链和将噪声转换回数据的反向链。前者通常是手工设计的,目的是将任何数据分布转换为简单的先验分布(例如,标准高斯分布),而后者的马尔可夫链通过学习由深度神经网络参数化的转移核来逆转前者。通过首先从先验分布中抽样一个随机向量,然后通过反向马尔可夫链进行祖先抽样,从而生成新的数据点[125]。
以 x 0 x_0 x0为条件的联合分布 x 1 , x 2 , . . . , x T x_1,x_2,...,x_T x1,x2,...,xT,即 q ( x 1 , x 2 , . . . , x T ∣ x 0 ) q(x_1,x_2,...,x_T | x_0) q(x1,x2,...,xT∣x0) 可以表示为:
在DDPM中,我们手工制作转换内核 q ( x t ∣ x t − 1 ) q(x_t|x_{t−1}) q(xt∣xt−1),以增量方式将数据分布 q ( x 0 ) q(x_0) q(x0)转换为可处理的先验分布。
其中
β
t
∈
(
0
,
1
)
\beta_t \in (0,1)
βt∈(0,1)是在模型训练之前选择的超参数。指定
α
t
:
=
1
−
β
t
,
α
^
t
:
=
∏
s
=
0
t
α
s
\alpha_t :=1-\beta_t, \hat{\alpha}_t:=\prod^t_{s=0} \alpha_s
αt:=1−βt,α^t:=∏s=0tαs, 则可推导出:
给定
x
0
x_0
x0,我们可以很容易地通过对高斯向量
ϵ
∼
N
(
0
,
I
)
\epsilon \sim N (0, I)
ϵ∼N(0,I)进行采样并应用变换来获得
x
t
x_t
xt的样本:
其中, α ^ T ≈ 0 \hat{\alpha}_T \approx 0 α^T≈0.
反向马尔可夫链参数化为先验分布 p ( x T ) = N ( x T ; 0 , I ) p(x_T)= N (x_T;0, I) p(xT)=N(xT;0,I)和可学习转换内核 p ( x t − 1 ∣ x t ) p(x_{t−1} | x_t) p(xt−1∣xt),具体的形式如下:
其中, θ \theta θ为模型参数,均值 u θ ( x t , t ) u_{\theta}(x_t,t) uθ(xt,t)和方差 Σ θ ( x t , t ) \Sigma_{\theta}(x_t,t) Σθ(xt,t)用深度神经网络参数化。有了这个反向马尔可夫链,我们可以通过首先对噪声向量 x T ∼ p ( x T ) x_T \sim p(x_T) xT∼p(xT)进行采样,然后从可学习的转换核 x t − 1 ∼ p ( x t − 1 ∣ x t ) x_{t−1} \sim p(x_{t−1} | x_t) xt−1∼p(xt−1∣xt)迭代采样,直到𝑡= 1,来生成数据样本 x 0 x_0 x0.
训练目标如下:
基于分数的生成模型(SGMs)
基于分数的生成模型[252,253]的核心是(Stein)分数(又称分数或分数函数)的概念[108]。给定一个概率密度函数𝑝(x),其得分函数定义为对数概率密度的梯度 ∇ x l o g p ( x ) ∇xlogp(x) ∇xlogp(x)。 基于分数的生成模型(SGMs)[220]的关键思想是用一系列增强的高斯噪声扰动数据,并通过训练一个以噪声水平为条件的深度神经网络模型(在[220]中称为噪声条件分数网络,NCSN),共同估计所有噪声数据分布的分数函数。样本是通过使用基于分数的采样方法(包括Langevin Monte Carlo[81、110、176、220、225]、随机微分方程[109、225]、常微分方程[113、146、219、225、277]以及它们的各种组合[225]),在降低噪声水平下链接分数函数来生成的。
SGMs的一个典型例子涉及将数据点
x
0
x_0
x0扰动到
x
t
x_t
xt通过高斯噪声分布
q
(
x
t
∣
x
0
=
N
(
x
t
;
x
0
,
σ
t
2
I
)
q(x_t| x_0 = \mathcal{N}(x_t;x_0,\sigma^2_t I)
q(xt∣x0=N(xt;x0,σt2I). 这就产生了一系列噪声数据密度
q
(
x
1
)
、
q
(
x
2
)
,
⋅
⋅
⋅
,
q
(
x
T
)
q(x_1)、q(x_2),···,q(x_T)
q(x1)、q(x2),⋅⋅⋅,q(xT), 其中,
q
(
x
t
)
:
=
∫
q
(
x
t
)
q
(
x
0
)
d
x
0
q(x_t):= \int q(x_t) q(x_0) d x_0
q(xt):=∫q(xt)q(x0)dx0.
训练目标如下:
很明显,DDPM和SGM的训练目标是一致的,当我们设定了
ϵ
θ
(
x
,
t
)
=
−
σ
t
s
θ
(
x
,
t
)
\epsilon_{\theta}(x,t) = −\sigma_ts_{\theta}(x,t)
ϵθ(x,t)=−σtsθ(x,t).
对于样本生成,SGMs利用迭代方法生成样本。由于SGMs中训练和推理的解耦,存在许多采样方法,其中一些将在下一节中讨论。这里我们介绍了SGMs的第一种采样方法,称为退火朗格万动力学(ALD)[220]。
随机微分方程(Score SDEs)
DDPM 和 SGM 可以进一步推广到无限时间步或噪声水平的情况,其中扰动和去噪过程是随机微分方程 (SDE) 的解。我们将此公式称为 Score SDE [225],因为它利用 SDE 进行噪声扰动和样本生成,去噪过程需要估计噪声数据分布的得分函数。
Score SDE 使用由以下随机差分方程 (SDE) [2,25] 控制的扩散过程将数据扰动为噪声:
其中
f
(
x
,
t
)
f (x, t)
f(x,t) 和
g
(
t
)
g(t)
g(t) 是 SDE 的传播和漂移函数,
w
w
w是标准Wiener过程(又名布朗运动)。DDPM 和 SGM 中的前向过程都是这个 SDE 的离散化。如Song 等人所示, 对于 DDPM,对应的 SDE 为:
对于SGMs,对应的SDE由下式给出:
至关重要的是,对于任何以等式(15)的形式扩散过程。Anderson [ 4 ] 表明可以通过求解以下reverse-time SDE 来反转它:
训练目标如下:
02 高效采样的Diffusion Models
(后续内容会陆续发表……)