diffusion model(二)—— DDIM技术小结

news2024/9/28 13:17:48

论文地址:Denoising Diffusion Implicit Models

github地址:https://github.com/ermongroup/ddim

背景

去噪扩散概率模型 (DDPM1) 在没有对抗训练的情况下实现了高质量的图像生成,但其采样过程依赖马尔可夫假设,需要较多的时间步才能得到较好的生成效果。本文提出的DDIM(denoising diffusion implicit models 2)是更有效的迭代隐式概率模型,其训练过程与 DDPM 相同,但相比DDPM,采样过程快 1050 倍。

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:Tx0):=t=1Tq(xtxt1),其中: q(xtxt1):=N(xt;αt xt1,(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(xtx0):=q(x1:tx0)dx1:(t1)=N(xt;αt x0,(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=1Tpθ(t)(xt1xt)pθ(t)(xt1xt)=N(xt1;μθ(xt,t),σtI)(3)
从式(2)可以看出,当 t t t足够大时, q ( x t ∣ x 0 ) q(x_t|x_0) q(xtx0)对所有 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)(xt1xt)的推导中,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(xtxt1,x0)=p(xtxt1)。因此重建的步长非常长,导致速度慢。

DDIM如何加速采样

下面我们来看DDIM如何解决生成速度慢这个问题。DDPM速度慢的本质原因是对马尔可夫假设的依赖,导致重建需要较多的步长。那么不用一阶马尔可夫假设,有没有另一种方法推导出 p ( x t − 1 ∣ x t , x 0 ) p(x_{t-1}|x_t, x_0) p(xt1xt,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(xtx0)=N(xt;αt x0,(1αt)I) ,因此如果DDIM也能满足这个推理分布的话,那么直接就可以复用DDPM的噪声预测模型了

归纳一下DDIM想要做的

  • DDIM希望构建一个采样分布 p ( x t − 1 ∣ x t , x 0 ) p(x_{t-1}|x_t, x_0) p(xt1xt,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(xtx0)=N(xt;αt x0,(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=1tαi

采样分布 p ( x t − 1 ∣ x t , x 0 ) p(x_{t-1}|x_{t}, x_0) p(xt1xt,x0)的求解

下面我们看DDIM是如何推导出采样分布 p ( x t − 1 ∣ x t , x 0 ) p(x_{t-1}|x_{t}, x_0) p(xt1xt,x0)

根据DDPM的结果参考,采样分布 p ( x t − 1 ∣ x t , x 0 ) p(x_{t-1}|x_{t}, x_0) p(xt1xt,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(xt1xt,x0)=N(xt1;λ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(xtx0)=N(xt;αt x0,(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(xtx0)=N(xt;αt x0,(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(x1x0)=N(x1;α1 x0,(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(xtx0)=N(xt;αt x0,(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(xt1x0)=N(xt1;αt1 x0,(1αt1)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(xtx0)=N(xt;αt x0,(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(xt1xt,x0)=N(xt1;λ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(xt1x0)=N(xt1;αt1 x0,(1αt1)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(xt1xt,x0)q(xtx0)dxt=q(xt1x0)(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(xt1xt,x0)=N(xt1;λx0+kxt,σt2I),可采样 x t − 1 x_{t-1} xt1, ϵ t − 1 ′ ∼ N ( 0 , I ) \boldsymbol{\epsilon}_{t-1}' \sim \mathcal{N}(0, \textbf{I}) ϵt1N(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} xt1=λx0+kxt+σϵt1(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(xtx0)=N(xt;αt x0,(1αt)I),可采样 x t x_t xt, ϵ t ′ ∼ N ( 0 , I ) \boldsymbol{\epsilon}'_{t} \sim \mathcal{N}(0, \textbf{I}) ϵtN(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=αt x0+(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} xt1=λx0+k(αt x0+(1αt) ϵt)+σtϵt1=(λ+kαt )x0+(k2(1αt)+σt2) ϵt1 正太分布可加性 k(1αt) ϵt+σtϵt1(8)
式中 ϵ ‾ t − 1 ∼ N ( 0 , I ) \overline{\boldsymbol{\epsilon}} _{t-1} \sim \mathcal{N}(0, \textbf{I}) ϵt1N(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(xt1x0)=N(xt1;αt1 x0,(1αt1)I),采样 x t − 1 x_{t-1} xt1, ϵ t − 1 ∼ N ( 0 , I ) \boldsymbol{\epsilon}_{t-1} \sim \mathcal{N}(0, \textbf{I}) ϵt1N(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} xt1=αt1 x0+(1αt1) ϵt1(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(xt1xt,x0)=N xt1; αt1 αt 1αt1αt1σt2 x0+ 1αt1αt1σt2 xt,σt2I =N(xt1;αt1 x0+1αt1σt2 1αt xtαt x0,σ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(xt1xt,x0)=N(xt1;λ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(xtx0)=N(xt;αt x0,(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} xt1=αt1 x0+1αt1σt2 1αt xtαt x0+σ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=αt 1(xt1αt ϵθ(xt,t))(13)
整理得
在这里插入图片描述

有两个特殊的case值得注意

  1. σ 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αt1)/(1αt) 1αt/αt1 时,此时的生成过程与DDPM一致
  2. σ t = 0 \sigma_t=0 σt=0时,此时采样过程中添加的随机噪声项为0,当给定 z = x t ∼ N ( 0 , I ) z=x_t \sim \mathcal{N}(0, \textbf{I}) z=xtN(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} xt1=αt1 预测的x0 αt xt1αt ϵθ(xt,t)+x0的方向 1αt1 ϵθ(xt,t)(15)

在这里插入图片描述

DDIM是如何加速采样的

前面我们提到DDPM在推导采样分布 p ( x t − 1 ∣ x t , x 0 ) p(x_{t-1}|x_{t}, x_0) p(xt1xt,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(xtxt1,x0)=p(xtxt1)使得在采样过程中需要从 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,T1,,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,τs1,,τ1],其长度 d i m ( τ ) = S \mathrm{dim}(\tau)=S dim(τ)=S, S ≪ T S \ll T ST。在生成过程,按照构造序列 τ \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τs1=ατs1 ατs xτs1ατs ϵθ(xτs,tτs)+1ατs1 ϵθ(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))

在这里插入图片描述

参考文献


  1. Ho J, Jain A, Abbeel P. Denoising diffusion probabilistic models[J]. Advances in Neural Information Processing Systems, 2020, 33: 6840-6851. ↩︎

  2. Song J, Meng C, Ermon S. Denoising diffusion implicit models[J]. arXiv preprint arXiv:2010.02502, 2020. ↩︎

  3. Shakir Mohamed and Balaji Lakshminarayanan. Learning in implicit generative models. arXiv preprint arXiv:1610.03483, October 2016. ↩︎

  4. 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. ↩︎

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/688198.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SoapUI实践:自动化测试、压力测试、持续集成

因为项目的原因,前段时间研究并使用了 SoapUI 测试工具进行自测开发的 api。下面将研究的成果展示给大家,希望对需要的人有所帮助。 如果你想学习自动化测试,我这边给你推荐一套视频,这个视频可以说是B站播放全网第一的自动化测试…

Android View的渲染过程

原文链接 Android View的渲染过程 对于安卓开发猿来说,每天都会跟布局打交道,那么从我们写的一个布局文件,到运行后可视化的视图页面,这么长的时间内到底 发生了啥呢?今天我们就一起来探询这一旅程。 View tree的创建…

A Survey on In-context Learning

这是LLM系列相关综述文章的第二篇,针对《A Survey on In-context Learning》的翻译。 上下文学习综述 摘要1 引言2 概述3 定义和公式4 模型预热4.1 监督上下文训练4.2 半监督上下文训练 5 示例设计5.1 示例组织5.1.1 示例选择5.1.2 示例排序 5.2 示例形式化5.2.1 指…

Segment Anything Model Geospatial (SAM-Geo) 创建交互式地图

SAM-Geo是一个用于地理空间数据的Python 包,可在 PyPI 和 conda-forge 上使用。本节教程是SAM-Geo官网的一个教程,根据输入提示范围创建mask遮罩。后面还有一种基于提示词创建的方式,如只输出房屋、道路、树木等,下一期我们专门写…

IEEE Transactions的模板中,出现subfig包和fontenc包冲突的问题,怎么解决?

IEEE Transactions的模板中,出现subfig包和fontenc包冲突的问题,怎么解决? 本文章记录如何在IEEE Transactions的模板中,出现了subfig包和fontenc包冲突的问题,该怎么解决。 目录 IEEE Transactions的模板中&#xff…

ubuntu系统解压.rar文件问题与解决办法

ubuntu20.04解压rar文件 问题解决办法 问题 在ubuntu系统中,直接解压rar文件可能会报错,或者一直在提取文件中,无法结束。 例如直接右件该rar文件,将文件提取到此处 一直显示这个,无法结束 解决办法 需要安装一些软…

架构师进阶之路 - 架构优化为什么难

目录 业务迭代和技术优化难以兼顾 缺少“上帝”视角思维 系统架构腐化 缺少架构师视角 系统迭代机制 设计规范把控 最近在组织团队内的系统架构优化,总而言之就是难,至于为什么难我这边总结了以下六个方面,记录一下自己的架构师进阶之路吧。&…

css基础知识九:说说flexbox(弹性盒布局模型),以及适用场景?

一、是什么 Flexible Box 简称 flex,意为”弹性布局”,可以简便、完整、响应式地实现各种页面布局 采用Flex布局的元素,称为flex容器container 它的所有子元素自动成为容器成员,称为flex项目item 容器中默认存在两条轴&#xf…

微服务04 分布式搜索引擎 elasticsearch DSL数据聚合 自动补全 数据同步 集群

微服务03 分布式搜索引擎 elasticsearch ELK kibana RestAPI 索引库 DSL查询 RestClient 黑马旅游 分布式搜索引擎03 1.数据聚合 聚合(aggregations)可以让我们极其方便的实现对数据的统计、分析、运算。例如: 什么品牌的手机最受欢迎&#x…

【Redis】Redis cluster 集群原理

前言 介绍优点: redis cluster集群模式,既拥有哨兵模式高可用、自动主从切换、高性能的特点,又解决了其只有单主结点承载数据量小的缺点。集群模式可以有多主结点,数据分散到多个主节点上,可以动态扩容。 槽分区的特点…

Rust in Action笔记 第七章 文件和存储

serde 库提供序列化(serialize)和反序列化(deserialize)的特征,通过derive生成,可以把rust的自定义类型(struct)转换成多种常用的兼容类型例如JSON、CBOR、bincode,用于在…

Hive函数(二)

1、炸裂函数 1.1、UDTF概述 定义: UDTF(Table-Generating Functions),接收一行数据,输出一行或多行数据。 1.1.1、explode(ARRAY a) 功能: 语法: select explode(array("a","b",&q…

多商户商城系统源码-加速度jsudo

为了能顺应时代的改变,很多企业都想要搭建一个类似天猫京东类型的b2b2c商城平台,但苦于没有专业的技术,所以他们都会选择成熟的b2b2c商城系统,但市面上的商城系统如此的多,如何选择呢?下面jsudo小编就来教…

函数式编程相关概念介绍

什么是函数式编程 函数式编程(Functional Programming)也称函数程序设计是一种编程范式,它将电脑运算视为函数运算,并且避免使用程序状态以及可变物件。 在js中,函数是一等公民,函数本身既可以作为其他函数…

spark12-13-14

12. Task线程安全问题 12.1 现象和原理 在一个Executor可以同时运行多个Task,如果多个Task使用同一个共享的单例对象,如果对共享的数据同时进行读写操作,会导致线程不安全的问题,为了避免这个问题,可以加锁&#xff…

操作系统—中断和异常、磁盘调度算法、操作系统其他内容

异常 时常由CPU*执行指令的内部事件引起,比如非法操作码、地址越界、算术溢出等,还有缺页异常、除0异常。同时,他会发送给内核,要求内核处理这些异常。 外中断 狭义上的中断指的就是外中断。由CPU执行指令以外的事件引起&#…

linux高并发网络编程开发(广播-组播-本地套接字)14_tcp udp使用场景,广播通信流程,组播通信流程,本地套接字通信流程,epoll反应堆模型

01 tcp udp使用场景 1.tcp使用场景 对数据安全性要求高的时候  登录数据的传输  文件传输http协议  传输层协议-tcp 2.udp使用场景 效率高-实时性要求比较高  视频聊天  通话有实力的大公司  使用upd  在应用层自定义协议,做数据校验 02 广播通信流程 广播…

LLM 开发实战系列 | 01:API进行在线访问和部署

在本文中,我们将使用Python编程语言来展示如何调用OpenAI的GPT-3.5模型。在开始之前,请确保您已经注册了OpenAI API并获得了访问凭证。 环境准备 下载python 方法1:官网 www.python.org 从最开始的开始,先到Python官网下载一个…

零基础自学:2023年的今天,请谨慎进入网络安全行业

前言 2023年的今天,慎重进入网安行业吧,目前来说信息安全方向的就业对于学历的容忍度比软件开发要大得多,还有很多高中被挖过来的大佬。 理由很简单,目前来说,信息安全的圈子人少,985、211院校很多都才建…

Linux中安装部署docker

目录 什么是docker系统环境要求安装和使用docker 什么是docker Docker是一个开源的容器化平台,用于帮助开发者更轻松地构建、打包、分发和运行应用程序。它基于容器化技术,利用操作系统层级的虚拟化来隔离应用程序和其依赖的环境。通过使用Docker&#…