系列文章目录
【论文精读】DDPM:Denoising Diffusion Probabilistic Models 去噪扩散概率模型
一、DDIM思想的来源
(一)现有工作存在的问题
- GAN模型的采样质量是比较高的,但是GAN需要在优化策略上以及结构设计方面做出非常具体的选择,并且容易陷入到一种模式中去,产出的多样性较差。
- DDPM和NCSN(噪声条件评分网络)具有产生与GAN相当的样本的能力,而无需进行对抗性训练。他们首先会对样本加噪,然后通过马尔科夫链对其逆过程进行建模,该链从白噪声开始,逐渐将其降噪为图像。这种生成马尔可夫链过程要么基于郎之万动力学,要么通过反转逐渐将图像转化为噪声的前向扩散过程获得。这些模型的缺点在于需要多次迭代才能生成高质量的样本。
(二)DDPM原理回顾
DDIM论文中的 α t \alpha_t αt其实是DDPM论文中的 α ‾ t \overline{\alpha}_t αt,所以DDPM论文中的前向过程 β t \beta_t βt为: β t = 1 − α t α t − 1 \beta_t=1-\frac{\alpha_t}{\alpha_{t-1}} βt=1−αt−1αt
-
在DDPM中,扩散过程(前向过程)定义为一个马尔卡夫链:
扩散过程的一个重要特性是可以直接用 x 0 x_0 x0来对任意的 x t x_t xt进行采样:
-
DDPM的反向过程也定义为一个马尔卡夫链:
反向过程使用神经网络 p θ ( x t − 1 ∣ x t ) p_{\theta}(x_{t-1}|x_t) pθ(xt−1∣xt)拟合真实的分布 q ( x t − 1 ∣ x t ) q(x_{t-1}|x_t) q(xt−1∣xt)。 -
DDPM的目标函数:最大化变分下界来学习参数 θ \theta θ以拟合数据分布
通过一系列的推导可以得到目标函数的简化版:
其中 γ t \gamma_t γt是系数,当 γ t = 1 \gamma_t=1 γt=1时,这个目标函数其实也是分数匹配模型(score matching)的目标函数。
-
x
t
x_t
xt可以表示为
x
0
x_0
x0和噪声变量
ε
\varepsilon
ε的线性组合
(三)DDPM损失函数的特点
DDPM的损失函数 L s i m p l e L_{simple} Lsimple只依赖于边缘分布 q ( x t ∣ x 0 ) q(x_t|x_0) q(xt∣x0),而不是直接作用在联合分布 q ( x 1 : T ∣ x 0 ) q(x_{1:T}|x_0) q(x1:T∣x0)。
DDPM的生成过程实际上是模拟加噪过程的逆过程。由于DDPM的加噪过程是以高斯分布的形式进行多步加噪,因此生成过程就是把每一步都看作高斯分布的形式,所以采样过程和前向加噪过程的链条长度是一致的。DDIM就是在思考能不能够加速这个采样过程。
在推导出DDPM的 L s i m p l e L_{simple} Lsimple的过程中,没有用到 q ( x 1 : T ∣ x 0 ) q(x_{1:T}|x_0) q(x1:T∣x0)的具体形式,只是基于贝叶斯公式和 q ( x t ∣ x t − 1 , x 0 ) q(x_t|x_{t-1},x_0) q(xt∣xt−1,x0)、 q ( x t ∣ x 0 ) q(x_t|x_0) q(xt∣x0)表达式。在训练DDPM所用到的 L s i m p l e L_{simple} Lsimple中,甚至没有采用跟 q ( x t ∣ x t − 1 , x 0 ) q(x_t|x_{t-1},x_0) q(xt∣xt−1,x0)有关的系数,而是直接将预测噪音的权重设置为1。并且由于噪音项是来自 q ( x t ∣ x 0 ) q(x_t|x_0) q(xt∣x0)的采样,因此DDPM的目标函数其实只由 q ( x t ∣ x 0 ) q(x_t|x_0) q(xt∣x0)决定。因此,只要 q ( x t ∣ x 0 ) q(x_t|x_0) q(xt∣x0)已知,并且是高斯分布的形式,就可以用DDPM预测噪音的目标函数 L s i m p l e L_{simple} Lsimple来训练模型。
二、非马尔科夫链的扩散过程
(一)设计非马尔科夫链的前向扩散过程
设计的一个新的前向扩散过程:(不是马尔科夫链形式)
一个新的推理分布族 Q, σ ∈ R ≥ 0 T σ ∈ R^T_{≥0} σ∈R≥0T 是超参数
其中,
q
σ
(
x
T
∣
x
0
)
q_{\sigma}(x_T|x_0)
qσ(xT∣x0)的分布形式与DDPM中的保持一致:
上述三个公式都是作者自行定义的,由于要使用DDPM预测噪音的目标函数
L
s
i
m
p
l
e
L_{simple}
Lsimple来训练模型需要保证
q
(
x
t
∣
x
0
)
q(x_t|x_0)
q(xt∣x0)的形式不变,而作者在此处只定义了
q
(
x
T
∣
x
0
)
q(x_T|x_0)
q(xT∣x0),因此需要对任意时刻的
q
(
x
t
∣
x
0
)
q(x_t|x_0)
q(xt∣x0)进行证明。
1、证明任意时刻的 q ( x t ∣ x 0 ) q(x_t|x_0) q(xt∣x0)的形式与ddpm中一致
先验知识:边缘高斯分布和条件高斯分布的关系
-
给定x的一个边缘高斯分布和一个以x为条件的y的条件高斯分布:
p ( x ) = N ( x ∣ μ , Λ − 1 ) p ( y ∣ x ) = N ( y ∣ A x + b , L − 1 ) p(x)=N(x|\mu,\Lambda^{-1})\\ p(y|x)=N(y|Ax+b,L^{-1}) p(x)=N(x∣μ,Λ−1)p(y∣x)=N(y∣Ax+b,L−1) -
就可以得到y的边缘分布以及以y为条件的x的条件分布:
p ( y ) = N ( y ∣ A μ + b , L − 1 + A Λ − 1 A T ) p ( x ∣ y ) = N ( x ∣ Σ { A T L ( y − b ) + Λ μ } , Σ ) p(y)=N(y|A\mu+b,L^{-1}+A\Lambda^{-1}A^T)\\ p(x|y)=N(x|\Sigma \{A^TL(y-b)+\Lambda \mu\},\Sigma) p(y)=N(y∣Aμ+b,L−1+AΛ−1AT)p(x∣y)=N(x∣Σ{ATL(y−b)+Λμ},Σ)
其中, Σ = ( Λ + A T L A ) − 1 \Sigma=(\Lambda+A^TLA)^{-1} Σ=(Λ+ATLA)−1
数学归纳法的证明思路
- 证明初始化条件成立
- 假设任意一步成立
- 证明可以由任意一步成立的条件推导到该步的下一步也成立
证明:
已知条件:
q
σ
(
x
1
:
T
∣
x
0
)
q_{\sigma}(x_{1:T}|x_0)
qσ(x1:T∣x0),
q
σ
(
x
T
∣
x
0
)
q_{\sigma}(x_T|x_0)
qσ(xT∣x0),
q
σ
(
x
t
−
1
∣
x
t
,
x
0
)
q_{\sigma}(x_{t-1}|x_t,x_0)
qσ(xt−1∣xt,x0)的分布(作者在前向扩散过程中定义的三个公式)
要证明任意时刻都有
q
(
x
t
∣
x
0
)
=
N
(
α
t
x
0
,
(
1
−
α
t
)
I
)
q(x_t|x_0)=N(\sqrt{\alpha_t}x_0,(1-\alpha_t)I)
q(xt∣x0)=N(αtx0,(1−αt)I)
用数学归纳法的思路进行证明:
- 初始条件已经成立: q σ ( x T ∣ x 0 ) = N ( α T x 0 , ( 1 − α T ) I ) q_{\sigma}(x_T|x_0)=N(\sqrt{\alpha_T}x_0,(1-\alpha_T)I) qσ(xT∣x0)=N(αTx0,(1−αT)I)
- 假设对于任意 t < T t<T t<T,满足 q ( x t ∣ x 0 ) = N ( α t x 0 , ( 1 − α t ) I ) q(x_t|x_0)=N(\sqrt{\alpha_t}x_0,(1-\alpha_t)I) q(xt∣x0)=N(αtx0,(1−αt)I),如果 t − 1 t-1 t−1时刻也满足 q ( x t − 1 ∣ x 0 ) = N ( α t − 1 x 0 , ( 1 − α t − 1 ) I ) q(x_{t-1}|x_0)=N(\sqrt{\alpha_{t-1}}x_0,(1-\alpha_{t-1})I) q(xt−1∣x0)=N(αt−1x0,(1−αt−1)I),即可证明。
具体证明过程:
根据先前的定义以及假设,我们现在的已知条件为:
也就是说我们已经有了
x
t
x_t
xt的一个边缘分布,还有
x
t
x_t
xt条件下
x
t
−
1
x_{t-1}
xt−1的条件分布,根据先验知识一,我们可以得到
x
t
−
1
x_{t-1}
xt−1的边缘分布也为高斯分布,并且均值和方差如下:
即:
q
(
x
t
−
1
∣
x
0
)
=
N
(
α
t
−
1
x
0
,
(
1
−
α
t
−
1
)
I
)
q(x_{t-1}|x_0)=N(\sqrt{\alpha_{t-1}}x_0,(1-\alpha_{t-1})I)
q(xt−1∣x0)=N(αt−1x0,(1−αt−1)I),得证。
2、对比非马尔科夫扩散后验分布与DDPM马尔科夫扩散的后验分布
DDPM马尔科夫扩散的后验分布为:
新的后验分布(DDIM的后验分布)为:
对比可知,DDIM中的后验分布相较于DDPM的后验分布多了一个超参数
σ
t
\sigma_t
σt,因此,超参数
σ
t
\sigma_t
σt就决定了扩散模型的后验分布,同时也就决定了扩散逆过程的采样。
(二)非马尔科夫扩散逆过程的采样
定义一个可训练的生成过程 p θ ( x 0 : T ) p_θ(x_{0:T}) pθ(x0:T),其中每个 p θ ( t ) ( x t − 1 ∣ x t ) p^{(t)}_θ (x_{t−1}|x_t) pθ(t)(xt−1∣xt) 利用 q σ ( x t − 1 ∣ x t , x 0 ) q_σ(x_{t−1}|x_t, x_0) qσ(xt−1∣xt,x0) 的知识。
-
直观上,给定一个有噪声的观测值 x t x_t xt,我们首先对相应的 x 0 x_0 x0进行预测,然后用它通过我们定义的反向条件分布 q σ ( x t − 1 ∣ x t , x 0 ) q_σ(x_{t−1}|x_t, x_0) qσ(xt−1∣xt,x0) 来获得样本 x t − 1 x_{t−1} xt−1
-
对于某些 x 0 x_0 x0 ∼ q ( x 0 ) q(x_0) q(x0) 和 ε t \varepsilon_t εt ∼ N ( 0 , I ) N (0, I) N(0,I), x t x_t xt 可以使用以下等式获得
-
因此可以得到给定 x t x_t xt条件下对于 x 0 x_0 x0的预测:
-
进而对生成过程做出如下定义:
(三)目标函数
DDIM最终的目标函数:
1、证明DDIM的目标函数与DDPM目标函数的关系: J σ = L γ + C J_\sigma=L_\gamma+C Jσ=Lγ+C
三、DDIM模型(一种特殊的采样)
去噪扩散隐式模型(DDIM)是一类更有效的迭代隐式概率模型,具有与DDPM相同的训练程序,但是它不再限制扩散过程必须是一个马尔卡夫链,这使得DDIM可以采用更小的采样步数来加速生成过程,DDIM的另外是一个特点是从一个随机噪音生成样本的过程是一个确定的过程(中间没有加入随机噪音)。
(一)超参数的选择
考虑一个特殊的超参数 σ t \sigma_t σt,根据之前的后验分布采用重参数的方法从 x t x_t xt样本中去生成 x t − 1 x_{t-1} xt−1:
由于不同的超参数
σ
t
\sigma_t
σt会导致不同的采样过程,作者发现当
σ
t
=
1
−
α
t
−
1
/
(
1
−
α
t
)
1
−
α
t
/
α
t
−
1
\sigma_t = \sqrt{1-\alpha_{t-1}/(1-\alpha_t)}\sqrt{1-\alpha_t/\alpha_{t-1}}
σt=1−αt−1/(1−αt)1−αt/αt−1时,对应的采样过程就是DDPM的采样过程。
另外,当 σ t = 0 \sigma_t =0 σt=0时,随机噪音的部分就为0了,也就是说这个生成过程变成了确定性的,作者将其取名为DDIM。
(二)respacing:加速采样的技巧
考虑不从完整的时间序列 x 1 : T x_{1:T} x1:T上采样,而是从它的一个子集上采样: { x τ 1 , . . . , x τ s } \{x_{\tau_1},...,x_{\tau_s}\} {xτ1,...,xτs},其中 s < t s<t s<t。进而就有: q ( x τ i ∣ x 0 ) = N ( α τ i x 0 , ( 1 − α τ i ) I ) q(x_{\tau_i}|x_0)=N(\sqrt{\alpha_{\tau_i}}x_0,(1-\alpha_{\tau_i})I) q(xτi∣x0)=N(ατix0,(1−ατi)I)。因此原始的采样需要经T步,而respacing技巧下只需要经过S步,实现加速采样。对比结果发现,在ddim模型上使用respacing技巧可以保证采样速度更快的情况下图像质量的更高。