系列阅读
- diffusion model(一)DDPM技术小结 (denoising diffusion probabilistic)
- diffusion model(二)—— DDIM技术小结
- diffusion model(三)—— classifier guided diffusion model
- diffusion model(四)文生图diffusion model(classifier-free guided)
- diffusion model(五)stable diffusion底层原理(latent diffusion model, LDM
论文地址:Denoising Diffusion Implicit Models
github地址:https://github.com/ermongroup/ddim
目录
背景
去噪扩散概率模型 (DDPM1) 在没有对抗训练的情况下实现了高质量的图像生成,但其采样过程依赖马尔可夫假设,需要较多的时间步才能得到较好的生成效果。本文提出的DDIM(denoising diffusion implicit models 2)是更有效的迭代隐式概率模型,其训练过程与 DDPM 相同,但相比DDPM,采样过程快 10 到 50 倍。
DDPM为什么慢
从DDPM中我们知道,其扩散过程(前向过程、或加噪过程,forward process)被定义为一个马尔可夫过程
q
(
x
1
:
T
∣
x
0
)
:
=
∏
t
=
1
T
q
(
x
t
∣
x
t
−
1
)
,
其中:
q
(
x
t
∣
x
t
−
1
)
:
=
N
(
x
t
;
α
t
x
t
−
1
,
(
1
−
α
t
)
I
)
(1)
q(x_{1:T}|x_0):= \prod \limits_{t=1}^Tq(x_t|x_{t-1}) ,\\ \text{其中:} \space q(x_t|x_{t-1}):=\mathcal{N}(x_t; \sqrt{\alpha_t}x_{t-1}, (1 - \alpha_t) \textbf{I}) \tag{1}
q(x1:T∣x0):=t=1∏Tq(xt∣xt−1),其中: q(xt∣xt−1):=N(xt;αtxt−1,(1−αt)I)(1)
通过这样设置,前向过程有一个很好的性质,可以通过
x
0
x_0
x0得到任意时刻
x
t
x_t
xt的分布,而无需烦琐的链式计算。
q
(
x
t
∣
x
0
)
:
=
∫
q
(
x
1
:
t
∣
x
0
)
d
x
1
:
(
t
−
1
)
=
N
(
x
t
;
α
‾
t
x
0
,
(
1
−
α
‾
t
)
I
)
(2)
q(x_t|x_0) := \int q(x_{1:t}|x_0)dx_{1:(t-1)} = \mathcal{N}(x_t; \sqrt{\overline{\alpha}_{t}}x_0,(1 - \overline{\alpha}_{t})\textbf{I}) \tag{2}
q(xt∣x0):=∫q(x1:t∣x0)dx1:(t−1)=N(xt;αtx0,(1−αt)I)(2)
其去噪过程(也有叫逆向过程,reverse process)也是一个马尔可夫过程。
p
θ
(
x
0
)
=
∫
p
θ
(
x
0
:
T
)
d
x
1
:
T
其中:
p
θ
(
x
0
:
T
)
:
=
p
θ
(
x
T
)
∏
t
=
1
T
p
θ
(
t
)
(
x
t
−
1
∣
x
t
)
p
θ
(
t
)
(
x
t
−
1
∣
x
t
)
=
N
(
x
t
−
1
;
μ
θ
(
x
t
,
t
)
,
σ
t
I
)
(3)
p_\theta(x_{0})= \int p_\theta(x_{0:T})dx_{1:T} \\ \text{其中:} \space p_\theta(x_{0:T}) := p_\theta(x_T)\prod_{t=1}^{T} p_\theta ^{(t)} (x_{t-1}|x_t) \\ p_\theta ^{(t)} (x_{t-1}|x_t) = \mathcal{N}(x_{t-1}; \mu_\theta(x_t, t) , \sigma_t \textbf{I}) \tag{3}
pθ(x0)=∫pθ(x0:T)dx1:T其中: pθ(x0:T):=pθ(xT)t=1∏Tpθ(t)(xt−1∣xt)pθ(t)(xt−1∣xt)=N(xt−1;μθ(xt,t),σtI)(3)
从式(2)可以看出,当
t
t
t足够大时,
q
(
x
t
∣
x
0
)
q(x_t|x_0)
q(xt∣x0)对所有
x
0
x_0
x0都收敛于标准高斯分布。因此DDPM在去噪过程定义
p
θ
(
x
T
)
:
=
N
(
0
,
I
)
p_{\theta}(x_T):=\mathcal{N}(0, \textbf{I})
pθ(xT):=N(0,I),并且采用一个较大的采样时间步
T
T
T。
在对 p θ ( t ) ( x t − 1 ∣ x t ) p_\theta ^{(t)} (x_{t-1}|x_t) pθ(t)(xt−1∣xt)的推导中,DDPM用到了一阶马尔可夫假设,使得 p ( x t ∣ x t − 1 , x 0 ) = p ( x t ∣ x t − 1 ) p (x_{t}|x_{t-1}, x_0) = p(x_t|x_{t-1}) p(xt∣xt−1,x0)=p(xt∣xt−1)。因此重建的步长非常长,导致速度慢。
DDIM如何加速采样
下面我们来看DDIM如何解决生成速度慢这个问题。DDPM速度慢的本质原因是对马尔可夫假设的依赖,导致重建需要较多的步长。那么不用一阶马尔可夫假设,有没有另一种方法推导出 p ( x t − 1 ∣ x t , x 0 ) p(x_{t-1}|x_t, x_0) p(xt−1∣xt,x0)。前面我们提到,DDPM的前向过程主要是用于构造数据集,来训练噪声预测模型。在实际优化过程中,其实并没有用到前向过程的马尔可夫假设,只用到了推理分布 q ( x t ∣ x 0 ) = N ( x t ; α ‾ t x 0 , ( 1 − α ‾ t ) I ) q(x_t|x_0)=\mathcal{N}(x_t; \sqrt{\overline{\alpha}_{t}}x_0,(1 - \overline{\alpha}_{t})\textbf{I}) q(xt∣x0)=N(xt;αtx0,(1−αt)I) ,因此如果DDIM也能满足这个推理分布的话,那么直接就可以复用DDPM的噪声预测模型了
归纳一下DDIM想要做的
- DDIM希望构建一个采样分布 p ( x t − 1 ∣ x t , x 0 ) p(x_{t-1}|x_t, x_0) p(xt−1∣xt,x0),这个采样分布不依赖一阶马尔科夫假设
- DDIM希望维持这个前向推理分布 q ( x t ∣ x 0 ) = N ( x t ; α ‾ t x 0 , ( 1 − α ‾ t ) I ) q(x_t|x_0)=\mathcal{N}(x_t; \sqrt{\overline{\alpha}_{t}}x_0,(1 - \overline{\alpha}_{t})\textbf{I}) q(xt∣x0)=N(xt;αtx0,(1−αt)I),
⚠️文本的符号约定与论文不同,本文的 α ‾ t \overline{\alpha}_t αt是论文中的 α t \alpha_t αt。 α ‾ t = ∏ i = 1 t α i \overline{\alpha}_t=\prod \limits_{i=1}^t \alpha_i αt=i=1∏tαi
采样分布 p ( x t − 1 ∣ x t , x 0 ) p(x_{t-1}|x_{t}, x_0) p(xt−1∣xt,x0)的求解
下面我们看DDIM是如何推导出采样分布 p ( x t − 1 ∣ x t , x 0 ) p(x_{t-1}|x_{t}, x_0) p(xt−1∣xt,x0)
根据DDPM的结果参考,采样分布
p
(
x
t
−
1
∣
x
t
,
x
0
)
p(x_{t-1}|x_{t}, x_0)
p(xt−1∣xt,x0)是一个高斯分布,并且均值是
x
0
,
x
t
x_0, x_t
x0,xt的线性函数,方差是一个与时间步有关的函数,这里不妨假设DDIM的采样分布也是一个高斯分布,并且均值也是
x
0
,
x
t
x_0, x_t
x0,xt的线性函数,方差是时间步
t
t
t的函数,即
p
(
x
t
−
1
∣
x
t
,
x
0
)
=
N
(
x
t
−
1
;
λ
x
0
+
k
x
t
,
σ
t
2
I
)
(4)
p(x_{t-1}|x_{t}, x_0)=\mathcal{N}(x_{t-1}; \lambda x_0 + kx_t, \sigma^2_t\textbf{I}) \tag{4}
p(xt−1∣xt,x0)=N(xt−1;λx0+kxt,σt2I)(4)
现在我们已经有了采样分布,并且该采样分布不依赖一阶马尔可夫假设。这个采样分布有3个自由变量
λ
,
k
,
σ
t
\lambda,k, \sigma_t
λ,k,σt,理论上有无穷多个解。但DDIM想要维持与DDPM一致的推理分布
q
(
x
t
∣
x
0
)
=
N
(
x
t
;
α
‾
t
x
0
,
(
1
−
α
‾
t
)
I
)
q(x_t|x_0)=\mathcal{N}(x_t; \sqrt{\overline{\alpha}_{t}}x_0,(1 - \overline{\alpha}_{t})\textbf{I})
q(xt∣x0)=N(xt;αtx0,(1−αt)I)。这样问题就转化成,找到一组解
λ
∗
,
k
∗
,
σ
t
∗
\lambda^*,k^*, \sigma ^* _t
λ∗,k∗,σt∗,使得DDIM的推理分布满足
q
(
x
t
∣
x
0
)
=
N
(
x
t
;
α
‾
t
x
0
,
(
1
−
α
‾
t
)
I
)
q(x_t|x_0)=\mathcal{N}(x_t; \sqrt{\overline{\alpha}_{t}}x_0,(1 - \overline{\alpha}_{t})\textbf{I})
q(xt∣x0)=N(xt;αtx0,(1−αt)I)。下面我们来看DDIM要满足上述推理分布需要什么条件
当 t = 1 t=1 t=1时,DDIM可以满足 q ( x 1 ∣ x 0 ) = N ( x 1 ; α ‾ 1 x 0 , ( 1 − α ‾ 1 ) I ) q(x_1|x_0)=\mathcal{N}(x_1; \sqrt{\overline{\alpha}_{1}}x_0,(1 - \overline{\alpha}_{1})\textbf{I}) q(x1∣x0)=N(x1;α1x0,(1−α1)I)
假设当 t = t t=t t=t时,DDIM也满足 q ( x t ∣ x 0 ) = N ( x t ; α ‾ t x 0 , ( 1 − α ‾ t ) I ) q(x_t|x_0)=\mathcal{N}(x_t; \sqrt{\overline{\alpha}_{t}}x_0,(1 - \overline{\alpha}_{t})\textbf{I}) q(xt∣x0)=N(xt;αtx0,(1−αt)I)
那么根据数学归纳法,只需保证 q ( x t − 1 ∣ x 0 ) = N ( x t − 1 ; α ‾ t − 1 x 0 , ( 1 − α ‾ t − 1 ) I ) q(x_{t-1}|x_0)=\mathcal{N}(x_{t-1}; \sqrt{\overline{\alpha}_{t-1}}x_0,(1 - \overline{\alpha}_{t-1})\textbf{I}) q(xt−1∣x0)=N(xt−1;αt−1x0,(1−αt−1)I),就能对所有时间步都能满足上述推理分布。
到这里,问题进一步转化为:已知
q
(
x
t
∣
x
0
)
=
N
(
x
t
;
α
‾
t
x
0
,
(
1
−
α
‾
t
)
I
)
q(x_t|x_0)=\mathcal{N}(x_t; \sqrt{\overline{\alpha}_{t}}x_0,(1 - \overline{\alpha}_{t})\textbf{I})
q(xt∣x0)=N(xt;αtx0,(1−αt)I) , 找到
p
(
x
t
−
1
∣
x
t
,
x
0
)
=
N
(
x
t
−
1
;
λ
x
0
+
k
x
t
,
σ
t
2
I
)
p(x_{t-1}|x_{t}, x_0)=\mathcal{N}(x_{t-1}; \lambda x_0 + kx_t, \sigma^2_t\textbf{I})
p(xt−1∣xt,x0)=N(xt−1;λx0+kxt,σt2I)的一组解
λ
∗
,
k
∗
,
σ
t
∗
\lambda^*,k^*, \sigma ^*_t
λ∗,k∗,σt∗,使得
q
(
x
t
−
1
∣
x
0
)
=
N
(
x
t
−
1
;
α
‾
t
−
1
x
0
,
(
1
−
α
‾
t
−
1
)
I
)
q(x_{t-1}|x_0)=\mathcal{N}(x_{t-1}; \sqrt{\overline{\alpha}_{t-1}}x_0,(1 - \overline{\alpha}_{t-1})\textbf{I})
q(xt−1∣x0)=N(xt−1;αt−1x0,(1−αt−1)I),即求解
∫
x
t
p
(
x
t
−
1
∣
x
t
,
x
0
)
q
(
x
t
∣
x
0
)
d
x
t
=
q
(
x
t
−
1
∣
x
0
)
(5)
\int_{x_t} p(x_{t-1}|x_t, x_0) q(x_t|x_0)dx_t = q(x_{t-1}|x_0) \tag{5}
∫xtp(xt−1∣xt,x0)q(xt∣x0)dxt=q(xt−1∣x0)(5)
我们可以根据待定系数法进行求解
根据
p
(
x
t
−
1
∣
x
t
,
x
0
)
=
N
(
x
t
−
1
;
λ
x
0
+
k
x
t
,
σ
t
2
I
)
p(x_{t-1}|x_{t}, x_0)=\mathcal{N}(x_{t-1}; \lambda x_0 + kx_t, \sigma^2_t\textbf{I})
p(xt−1∣xt,x0)=N(xt−1;λx0+kxt,σt2I),可采样
x
t
−
1
x_{t-1}
xt−1,
ϵ
t
−
1
′
∼
N
(
0
,
I
)
\boldsymbol{\epsilon}_{t-1}' \sim \mathcal{N}(0, \textbf{I})
ϵt−1′∼N(0,I)
x
t
−
1
=
λ
x
0
+
k
x
t
+
σ
ϵ
t
−
1
′
(6)
x_{t-1} = \lambda x_0 + kx_t + \sigma \boldsymbol{\epsilon}_{t-1}' \tag{6}
xt−1=λx0+kxt+σϵt−1′(6)
根据
q
(
x
t
∣
x
0
)
=
N
(
x
t
;
α
‾
t
x
0
,
(
1
−
α
‾
t
)
I
)
q(x_t|x_0)=\mathcal{N}(x_t; \sqrt{\overline{\alpha}_{t}}x_0,(1 - \overline{\alpha}_{t})\textbf{I})
q(xt∣x0)=N(xt;αtx0,(1−αt)I),可采样
x
t
x_t
xt,
ϵ
t
′
∼
N
(
0
,
I
)
\boldsymbol{\epsilon}'_{t} \sim \mathcal{N}(0, \textbf{I})
ϵt′∼N(0,I)
x
t
=
α
‾
t
x
0
+
(
1
−
α
‾
t
)
ϵ
t
′
(7)
x_{t} = \sqrt{\overline{\alpha}_{t}}x_0 + \sqrt{(1 - \overline{\alpha}_{t})} \boldsymbol{\epsilon}_t' \tag{7}
xt=αtx0+(1−αt)ϵt′(7)
带入上式有
x
t
−
1
=
λ
x
0
+
k
(
α
‾
t
x
0
+
(
1
−
α
‾
t
)
ϵ
t
′
)
+
σ
t
ϵ
t
−
1
′
=
(
λ
+
k
α
‾
t
)
x
0
+
k
(
1
−
α
‾
t
)
ϵ
t
′
+
σ
t
ϵ
t
−
1
′
⏟
(
k
2
(
1
−
α
‾
t
)
+
σ
t
2
)
ϵ
‾
t
−
1
正太分布可加性
(8)
\begin{aligned} x_{t-1} &= \lambda x_0 + k(\sqrt{\overline{\alpha}_{t}}x_0 + \sqrt{(1 - \overline{\alpha}_{t})}\boldsymbol{\epsilon}_t') + \sigma_t \boldsymbol{\epsilon}_{t-1}' \\ &= (\lambda + k\sqrt{\overline{\alpha}_{t}}) x_0 + \underbrace{ k \sqrt{(1 - \overline{\alpha}_{t})} \boldsymbol{\epsilon}_t' + \sigma_t \boldsymbol{\epsilon}_{t-1}'}_{ \sqrt{(k^2(1 - \overline{\alpha}_{t}) + \sigma^2_t)} \overline{\boldsymbol{\epsilon}} _{t-1} \space \text{正太分布可加性} } \end{aligned} \tag{8}
xt−1=λx0+k(αtx0+(1−αt)ϵt′)+σtϵt−1′=(λ+kαt)x0+(k2(1−αt)+σt2)ϵt−1 正太分布可加性
k(1−αt)ϵt′+σtϵt−1′(8)
式中
ϵ
‾
t
−
1
∼
N
(
0
,
I
)
\overline{\boldsymbol{\epsilon}} _{t-1} \sim \mathcal{N}(0, \textbf{I})
ϵt−1∼N(0,I)
根据
q
(
x
t
−
1
∣
x
0
)
=
N
(
x
t
−
1
;
α
‾
t
−
1
x
0
,
(
1
−
α
‾
t
−
1
)
I
)
q(x_{t-1}|x_0)=\mathcal{N}(x_{t-1}; \sqrt{\overline{\alpha}_{t-1}}x_0,(1 - \overline{\alpha}_{t-1})\textbf{I})
q(xt−1∣x0)=N(xt−1;αt−1x0,(1−αt−1)I),采样
x
t
−
1
x_{t-1}
xt−1,
ϵ
t
−
1
∼
N
(
0
,
I
)
\boldsymbol{\epsilon}_{t-1} \sim \mathcal{N}(0, \textbf{I})
ϵt−1∼N(0,I)
x
t
−
1
=
α
‾
t
−
1
x
0
+
(
1
−
α
‾
t
−
1
)
ϵ
t
−
1
(9)
x_{t-1} = \sqrt{\overline{\alpha}_{t-1}}x_0 + \sqrt{(1 - \overline{\alpha}_{t-1})} \boldsymbol{\epsilon}_{t-1} \tag{9}
xt−1=αt−1x0+(1−αt−1)ϵt−1(9)
为了满足式5
上述方程有3个未知数,两个方程,显然有无穷组解能够满足式5,DDIM中将 σ t \sigma_t σt看作可变变量(该数值的大小可视为采样过程的随机性有多大)。
综上所得,我们得到DDIM的采样分布
p
(
x
t
−
1
∣
x
t
,
x
0
)
=
N
(
x
t
−
1
;
(
α
‾
t
−
1
−
α
‾
t
1
−
α
‾
t
−
1
−
σ
t
2
1
−
α
‾
t
)
x
0
+
(
1
−
α
‾
t
−
1
−
σ
t
2
1
−
α
‾
t
)
x
t
,
σ
t
2
I
)
=
N
(
x
t
−
1
;
α
‾
t
−
1
x
0
+
1
−
α
‾
t
−
1
−
σ
t
2
x
t
−
α
‾
t
x
0
1
−
α
‾
t
,
σ
t
2
I
)
(11)
\begin{aligned} p(x_{t-1}|x_{t}, x_0) &= \mathcal{N} \left(x_{t-1}; \left(\sqrt{\overline{\alpha}_{t-1}} - \sqrt{\overline{\alpha}_{t}} \sqrt{ \frac{1 - \overline{\alpha}_{t-1} - \sigma^2_{t} } {1 - \overline{\alpha} _t} } \right)x_0 + \left(\sqrt{ \frac{1 - \overline{\alpha}_{t-1} - \sigma^2_{t} } {1 - \overline{\alpha} _t} } \right)x_t, \sigma^2_t\textbf{I}\right) \\ &= \mathcal{N}\left(x_{t-1}; \sqrt{\overline{\alpha}_{t-1}}x_0 + \sqrt{1 - \overline{\alpha}_{t-1} - \sigma^2_{t}} \frac{x_t - \sqrt{\overline{\alpha}_{t}}x_0 }{\sqrt{1 - \overline{\alpha} _t}}, \sigma^2_t\textbf{I} \right) \end{aligned}\tag{11}
p(xt−1∣xt,x0)=N
xt−1;
αt−1−αt1−αt1−αt−1−σt2
x0+
1−αt1−αt−1−σt2
xt,σt2I
=N(xt−1;αt−1x0+1−αt−1−σt21−αtxt−αtx0,σt2I)(11)
从上式可见可以找到一簇解,使得
p
(
x
t
−
1
∣
x
t
,
x
0
)
=
N
(
x
t
−
1
;
λ
x
0
+
k
x
t
,
σ
t
2
I
)
p(x_{t-1}|x_{t}, x_0)=\mathcal{N}(x_{t-1}; \lambda x_0 + kx_t, \sigma^2_t\textbf{I})
p(xt−1∣xt,x0)=N(xt−1;λx0+kxt,σt2I),且满足推理分布
q
(
x
t
∣
x
0
)
=
N
(
x
t
;
α
‾
t
x
0
,
(
1
−
α
‾
t
)
I
)
q(x_t|x_0)=\mathcal{N}(x_t; \sqrt{\overline{\alpha}_{t}}x_0,(1 - \overline{\alpha}_{t})\textbf{I})
q(xt∣x0)=N(xt;αtx0,(1−αt)I)。不同的
σ
t
\sigma_t
σt对应不同生成过程。由于前向过程没变,故可以直接用DDPM训练的噪声预测模型。其采样过程如下:
x
t
−
1
=
α
‾
t
−
1
x
0
+
1
−
α
‾
t
−
1
−
σ
t
2
x
t
−
α
‾
t
x
0
1
−
α
‾
t
+
σ
t
ϵ
(12)
\begin{aligned} x_{t-1} &= \sqrt{\overline{\alpha}_{t-1}}x_0 + \sqrt{1 - \overline{\alpha}_{t-1} - \sigma^2_{t}} \frac{x_t - \sqrt{\overline{\alpha}_{t}}x_0 }{\sqrt{1 - \overline{\alpha} _t}} + \sigma_t \boldsymbol{\epsilon} \\ \end{aligned}\tag{12}
xt−1=αt−1x0+1−αt−1−σt21−αtxt−αtx0+σtϵ(12)
式中
x
0
=
1
α
‾
t
(
x
t
−
1
−
α
‾
t
ϵ
θ
(
x
t
,
t
)
)
(13)
x_0 = \frac{1}{\sqrt{\overline{\alpha}_{t}}}(x_t - \sqrt{1 - \overline{\alpha}_{t}}\boldsymbol{\epsilon}_\theta(x_t, t))\tag{13}
x0=αt1(xt−1−αtϵθ(xt,t))(13)
整理得
有两个特殊的case值得注意
- 当 σ t = ( 1 − α ‾ t − 1 ) / ( 1 − α ‾ t ) 1 − α ‾ t / α ‾ t − 1 \sigma_t= \sqrt{(1 - \overline{\alpha}_{t-1})/(1 - \overline{\alpha}_{t})} \sqrt{1 - \overline{\alpha}_{t}/\overline{\alpha}_{t-1}} σt=(1−αt−1)/(1−αt)1−αt/αt−1时,此时的生成过程与DDPM一致
- 当 σ t = 0 \sigma_t=0 σt=0时,此时采样过程中添加的随机噪声项为0,当给定 z = x t ∼ N ( 0 , I ) z=x_t \sim \mathcal{N}(0, \textbf{I}) z=xt∼N(0,I)时,采样过程是确定的,此时的生成模型是一个隐概率模型(implicit probabilstic model)3。作者将此时diffusion model称之为denoising diffusion implicit model(DDIM)。此时的采样递推公式
x t − 1 = α ‾ t − 1 x t − 1 − α ‾ t ϵ θ ( x t , t ) α ‾ t ⏟ 预测的 x 0 + 1 − α ‾ t − 1 ϵ θ ( x t , t ) ⏟ x 0 的方向 (15) \begin{aligned} x_{t-1} &= \sqrt{\overline{\alpha}_{t-1}} \underbrace{ \frac{x_t - \sqrt{1 - \overline{\alpha}_{t}}\boldsymbol{\epsilon}_\theta(x_t, t)} {\sqrt{\overline{\alpha}_{t}}} }_{预测的x_0} + \underbrace{ \sqrt{1 - \overline{\alpha}_{t-1} } \boldsymbol{\epsilon}_\theta(x_t, t) }_{x_0的方向} \end{aligned}\tag{15} xt−1=αt−1预测的x0 αtxt−1−αtϵθ(xt,t)+x0的方向 1−αt−1ϵθ(xt,t)(15)
DDIM是如何加速采样的
前面我们提到DDPM在推导采样分布
p
(
x
t
−
1
∣
x
t
,
x
0
)
p(x_{t-1}|x_{t}, x_0)
p(xt−1∣xt,x0)时用到了马尔可夫假设
p
(
x
t
∣
x
t
−
1
,
x
0
)
=
p
(
x
t
∣
x
t
−
1
)
p(x_t|x_{t-1}, x_0)=p(x_t|x_{t-1})
p(xt∣xt−1,x0)=p(xt∣xt−1)使得在采样过程中需要从
t
=
T
t=T
t=T依次采样到
t
=
1
t=1
t=1。在DDPM中往往需要较大的
T
T
T才能得到较好的结果(论文中
T
=
1000
T=1000
T=1000),这导致需要T次采样步长。DDIM加速采样的思路很简单,假定原本的生成序列为
L
=
[
T
,
T
−
1
,
⋯
,
1
]
L=[T, T-1, \cdots, 1]
L=[T,T−1,⋯,1],其长度为
d
i
m
(
L
)
=
T
\mathrm{dim}(L)=T
dim(L)=T,我们可以从生成序列
L
L
L中构建一个子序列
τ
=
[
τ
s
,
τ
s
−
1
,
⋯
,
τ
1
]
\tau=[\tau_s, \tau_{s-1}, \cdots, \tau_1]
τ=[τs,τs−1,⋯,τ1],其长度
d
i
m
(
τ
)
=
S
\mathrm{dim}(\tau)=S
dim(τ)=S,
S
≪
T
S \ll T
S≪T。在生成过程,按照构造序列
τ
\tau
τ进行采样。此时的采样递推序列为
x
τ
s
−
1
=
α
‾
τ
s
−
1
x
τ
s
−
1
−
α
‾
τ
s
ϵ
θ
(
x
τ
s
,
t
τ
s
)
α
‾
τ
s
+
1
−
α
‾
τ
s
−
1
ϵ
θ
(
x
τ
s
,
t
τ
s
)
(16)
\begin{aligned} x_{\tau_{s-1}} &= \sqrt{\overline{\alpha}_{\tau_{s-1}}} \frac{x_{\tau_{s}} - \sqrt{1 - \overline{\alpha}_{\tau_{s}}}\boldsymbol{\epsilon}_\theta(x_{\tau_{s}}, t_{\tau_{s}})} {\sqrt{\overline{\alpha}_{\tau_{s}}}} + \sqrt{1 - \overline{\alpha}_{\tau_{s-1}} } \boldsymbol{\epsilon}_\theta(x_{\tau_{s}}, t_{\tau_{s}}) \end{aligned}\tag{16}
xτs−1=ατs−1ατsxτs−1−ατsϵθ(xτs,tτs)+1−ατs−1ϵθ(xτs,tτs)(16)
论文给出了不同的采样步长的生成效果。可以看到DDIM在较小采样步长时就能达到较好的生成效果。如CIFAR10
S
=
50
S=50
S=50就达到了
S
=
1000
S=1000
S=1000的90%的效果,与之相对DDPM只能达到10%左右的FID效果。可见DDPM在推导采样分布中用了马尔可夫假设的确限制了它的采样间隔。但不考虑生成质量
可能有同学会有疑问,不按推理步骤按序预测噪声会不会有问题。答案是不会。
从下图可以看到,在训练时,是从时间序列
[
1
,
2
,
⋯
,
T
]
[1, 2, \cdots,T]
[1,2,⋯,T]进行采样时间步,再从高斯分布采样噪声,直接从
x
0
x_0
x0出发计算
x
t
x_t
xt,随后传入模型,根据预测噪声与实际噪声计算损失迭代模型。我们可以看到在这个训练pipeline中并没有限制时序信息。当噪声预测模型充分训练时DDIM的采样序列
τ
\tau
τ也是在训练过程中被充分训练的。(论文附录
C
.
1
C.1
C.1给出了更为详尽的解释推导,感兴趣的同学可以看论文)。
DDIM区别于DDPM两个重要的特性
采样一致性(sample consistency)
根据式16我们知道DDIM将 σ t \sigma_t σt设置为0,这让采样过程是确定的,只受 x T x_T xT影响。作者发现,当给定 x T x_T xT,不同的的采样时间序列 τ \tau τ所生成图片都很相近, x T x_T xT似乎可以视作生成图片的隐编码信息。
有个小trick,我们在实际的生成中可以先设置较小的采样步长进行生成,若生成的图片是我们想要的,则用较大的步长重新生成高质量的图片。
语义插值效应(sementic interpolation effect)
即然 x T x_T xT可能是生成图片的隐空间编码,那么它是否具备其它隐概率模型(如GAN4)所观察到的语义插值效应呢?下面来看怎么做:
首先从高斯分布采样两个随机变量
x
T
(
0
)
,
x
T
(
1
)
x_T^{(0)}, x_T^{(1)}
xT(0),xT(1),并用他们做图像生成得到下图最左侧与最右侧的结果。随后用球面线性插值方法(spherical linear interpolation,Slerp)[^4, 7]对
x
T
(
1
)
,
x
T
(
2
)
x_T^{(1)}, x_T^{(2)}
xT(1),xT(2)他们进行插值,得到一系列中间结果
x
T
(
α
)
=
sin
(
(
1
−
α
)
θ
)
sin
(
θ
)
x
T
(
0
)
+
sin
(
α
θ
)
sin
(
θ
)
x
T
(
1
)
(17)
x_T^{(\alpha)} = \frac{\sin((1 - \alpha)\theta) }{\sin(\theta)}x_T^{(0)} + \frac{\sin(\alpha \theta)}{\sin{(\theta)}}x_T^{(1)}\tag{17}
xT(α)=sin(θ)sin((1−α)θ)xT(0)+sin(θ)sin(αθ)xT(1)(17)
其中
θ
=
arccos
(
(
x
T
(
0
)
)
T
x
T
(
1
)
∥
x
T
(
0
)
∥
∥
x
T
(
1
)
∥
)
\theta = \arccos \left( \frac{ (x_T^{(0)})^T x_T^{(1)}} {\parallel x_T^{(0)} \parallel \parallel x_T^{(1)} \parallel} \right)
θ=arccos(∥xT(0)∥∥xT(1)∥(xT(0))TxT(1))
参考文献
Ho J, Jain A, Abbeel P. Denoising diffusion probabilistic models[J]. Advances in Neural Information Processing Systems, 2020, 33: 6840-6851. ↩︎
Song J, Meng C, Ermon S. Denoising diffusion implicit models[J]. arXiv preprint arXiv:2010.02502, 2020. ↩︎
Shakir Mohamed and Balaji Lakshminarayanan. Learning in implicit generative models. arXiv preprint arXiv:1610.03483, October 2016. ↩︎
Ian Goodfellow, Jean Pouget-Abadie, Mehdi Mirza, Bing Xu, David Warde-Farley, Sherjil Ozair, Aaron Courville, and Yoshua Bengio. Generative adversarial nets. In Advances in neural information processing systems, pp. 2672–2680, 2014. ↩︎