DDIM详解

DDIM详解

参考:https://www.bilibili.com/video/BV1VP411u71p/

虽然 DDIM 现在主要用于加速采样,但他的实际意义远不止于此。本文将首先回顾 DDPM 的训练和采样过程,再讨论 DDPM 与 DDIM 的关系,然后推导 DDIM 的采样公式,最后给出几个不同的理解 DDIM 的角度。

DDPM回顾

DDPM 实际是建模两个分布:diffusion 过程的分布 q ( x t ∣ x 0 ) q(x_t|x_0) q(xtx0) q ( x t ∣ x t − 1 ) q(x_t|x_{t-1}) q(xtxt1) 和 reverse 过程的分布 q ( x t − 1 ∣ x t ) q(x_{t-1}|x_t) q(xt1xt)

diffusion 过程:
q ( x t ∣ x 0 ) = N ( x t ; α ˉ t x 0 , ( 1 − α ˉ t ) I ) x t = α ˉ t x 0 + 1 − α ˉ t ϵ ,     ϵ ∼ N ( 0 , I ) q(x_t|x_0)=\mathcal{N}(x_t;\sqrt{\bar\alpha_t}x_0,(1-\bar{\alpha}_t)I)\\ x_t=\sqrt{\bar\alpha_t}x_0+\sqrt{1-\bar\alpha_t}\epsilon,\ \ \ \epsilon\sim\mathcal{N}(0,I) q(xtx0)=N(xt;αˉt x0,(1αˉt)I)xt=αˉt x0+1αˉt ϵ,   ϵN(0,I)
reverse 过程:
q ( x t − 1 ∣ x t ) = q ( x t − 1 ∣ x t , x 0 ) = q ( x t ∣ x t − 1 ) q ( x t − 1 ∣ x 0 ) q ( x t ∣ x 0 ) = N ( x t − 1 ; μ ( x t , x 0 ) , σ t 2 I ) q(x_{t-1}|x_t)=q(x_{t-1}|x_t,x_0)=\frac{q(x_t|x_{t-1})q(x_{t-1}|x_0)}{q(x_t|x_0)}=\mathcal{N}(x_{t-1};\mu(x_t,x_0),\sigma_t^2I)\\ q(xt1xt)=q(xt1xt,x0)=q(xtx0)q(xtxt1)q(xt1x0)=N(xt1;μ(xt,x0),σt2I)
其中:
μ ( x t , x 0 ) = α t ( 1 − α ˉ t − 1 ) 1 − α ˉ t x t + α ˉ t − 1 β t 1 − α ˉ t x 0 σ t 2 = 1 − α ˉ t − 1 1 − α ˉ t β t \mu(x_t,x_0)=\frac{\sqrt{\alpha_t}(1-\bar{\alpha}_{t-1})}{1-\bar\alpha_{t}}x_t+\frac{\sqrt{\bar{\alpha}_{t-1}}\beta_t}{1-\bar\alpha_t}x_0 \\ \sigma_t^2=\frac{1-\bar\alpha_{t-1}}{1-\bar\alpha_t}\beta_t μ(xt,x0)=1αˉtαt (1αˉt1)xt+1αˉtαˉt1 βtx0σt2=1αˉt1αˉt1βt
之前的文章已经详细介绍过推导过程,这里仅列出结论。

强调一个点:注意 reverse 过程中的 x 0 x_0 x0 是未知的,因此这里每一步的 x 0 x_0 x0 实际都是该步对 x 0 x_0 x0 的估计值,最终的 x 0 x_0 x0 相当于是每一步估计 x 0 x_0 x0 的加权和。DDPM 的 reverse 过程的每一步可以理解为做了两件事情:

  1. 根据 x t x_t xt 和 UNet 预测出的噪声 ϵ θ ( x t , t ) \epsilon_\theta(x_t,t) ϵθ(xt,t) 估计当前步的 x ^ 0 ∣ t \hat{x}_{0|t} x^0∣t x ^ 0 ∣ t = 1 α ˉ t ( x t − 1 − α ˉ t ϵ θ ( x t , t ) ) \hat{x}_{0|t}=\frac{1}{\sqrt{\bar{\alpha}_t}}(x_t-\sqrt{1-\bar\alpha_t}\epsilon_\theta(x_t,t)) x^0∣t=αˉt 1(xt1αˉt ϵθ(xt,t))
  2. 计算出 x t − 1 x_{t-1} xt1 x t − 1 = μ ( x t , x ^ 0 ∣ t ) + σ t ϵ ,      ϵ ∼ N ( 0 , I ) x_{t-1}=\mu(x_t,\hat{x}_{{0|t}})+\sigma_t\epsilon,\ \ \ \ \epsilon\sim\mathcal{N}(0,I) xt1=μ(xt,x^0∣t)+σtϵ,    ϵN(0,I)

DDIM理解

在 DDPM 的采样公式 q ( x t − 1 ∣ x t , x 0 ) q(x_{t-1}|x_t,x_0) q(xt1xt,x0) 中 ,当我们已知 x 0 x_0 x0 时,当然可以通过扩散公式来计算 x t − 1 x_{t-1} xt1 。但在采样时,我们显然并不知道真实的 x 0 x_0 x0,因此,我们使用 x t x_t xt 来计算 x 0 x_0 x0 的估计值 x 0 ∣ t x_{0|t} x0∣t ,然后计算 x t − 1 x_{t-1} xt1
q ( x t − 1 ∣ x t , x 0 ) = α ˉ t − 1 x 0 + 1 − α ˉ t − 1   ϵ ,     ϵ ∼ N ( 0 , I ) = α ˉ t − 1 x ^ 0 ∣ t + 1 − α ˉ t − 1   ϵ = α ˉ t − 1 1 α ˉ t ( x t − 1 − α ˉ t ϵ θ ( x t , t ) ) + 1 − α ˉ t − 1   ϵ \begin{aligned} q(x_{t-1}|x_t,x_0)&=\sqrt{\bar{\alpha}_{t-1}}x_{0}+\sqrt{1-\bar{\alpha}_{t-1}}\ \epsilon,\ \ \ \epsilon\sim\mathcal{N}(0,I) \\ &=\sqrt{\bar\alpha_{t-1}}\hat{x}_{0|t}+\sqrt{1-\bar{\alpha}_{t-1}}\ \epsilon \\ &=\sqrt{\bar\alpha_{t-1}}\frac{1}{\sqrt{\bar{\alpha}_t}}(x_t-\sqrt{1-\bar\alpha_t}\epsilon_\theta(x_t,t))+\sqrt{1-\bar{\alpha}_{t-1}}\ \epsilon \end{aligned} q(xt1xt,x0)=αˉt1 x0+1αˉt1  ϵ,   ϵN(0,I)=αˉt1 x^0∣t+1αˉt1  ϵ=αˉt1 αˉt 1(xt1αˉt ϵθ(xt,t))+1αˉt1  ϵ
这与我们上面复习 DDPM 时的思路相同。

对于这个式子:
q ( x t − 1 ∣ x t , x 0 ) = α ˉ t − 1 x ^ 0 ∣ t + 1 − α ˉ t − 1   ϵ q(x_{t-1}|x_t,x_0)=\sqrt{\bar\alpha_{t-1}}\hat{x}_{0|t}+\sqrt{1-\bar{\alpha}_{t-1}}\ \epsilon q(xt1xt,x0)=αˉt1 x^0∣t+1αˉt1  ϵ
我们知道 ϵ \epsilon ϵ 是采样自标准高斯分布,我们可以将其替换为模型估计的噪声 ϵ θ ( x t , t ) \epsilon_\theta(x_t,t) ϵθ(xt,t)
q ( x t − 1 ∣ x t , x 0 ) = α ˉ t − 1 x ^ 0 ∣ t + 1 − α ˉ t − 1   ϵ θ ( x t , t ) q(x_{t-1}|x_t,x_0)=\sqrt{\bar\alpha_{t-1}}\hat{x}_{0|t}+\sqrt{1-\bar{\alpha}_{t-1}}\ \epsilon_\theta(x_t,t) q(xt1xt,x0)=αˉt1 x^0∣t+1αˉt1  ϵθ(xt,t)
同时考虑式 (5,6),我们可以将这两种噪声都考虑进来,则有:
q ( x t − 1 ∣ x t , x 0 ) = α ˉ t − 1 x ^ 0 ∣ t + 1 − α ˉ t − 1 − σ t 2 ϵ θ + σ t ϵ q(x_{t-1}|x_t,x_0)=\sqrt{\bar\alpha_{t-1}}\hat{x}_{0|t}+\sqrt{1-\bar{\alpha}_{t-1}-\sigma^2_t}\epsilon_\theta+\sigma_t\epsilon q(xt1xt,x0)=αˉt1 x^0∣t+1αˉt1σt2 ϵθ+σtϵ
注意这里要保证加的两个噪声的方差和之前一样,即 1 − α ˉ t − 1 − σ t 2 2 + σ t 2 = 1 − α ˉ t − 1 2 \sqrt{1-\bar{\alpha}_{t-1}-\sigma^2_t}^2+\sigma^2_t=\sqrt{1-\bar{\alpha}_{t-1}}^2 1αˉt1σt2 2+σt2=1αˉt1 2 ,明显上式中是满足的。

观察上述推导过程,其实有一个 DDPM 中的条件我们是一直没有用到的。即: q ( x t ∣ x t − 1 ) q(x_t|x_{t-1}) q(xtxt1) 。 这件事情其实是 DDIM 的核心,即丢弃掉 q ( x t ∣ x t − 1 ) q(x_t|x_{t-1}) q(xtxt1) 这个条件。这样一来,我们的采样公式就不依赖于两步是相邻的,从而可以实现跳步的采样,即 q ( x s ∣ x k , x 0 ) q(x_s|x_k,x_0) q(xsxk,x0) (因此 DDIM 可以用来加速采样)。我们有更通用的 DDIM 的采样公式:
x s = q ( x s ∣ x k , x 0 ) = α ˉ s x ^ 0 ∣ s + 1 − α ˉ s − σ k 2 ϵ θ + σ k ϵ x_s=q(x_s|x_k,x_0)=\sqrt{\bar\alpha_{s}}\hat{x}_{0|s}+\sqrt{1-\bar{\alpha}_s-\sigma^2_k}\epsilon_\theta+\sigma_k\epsilon xs=q(xsxk,x0)=αˉs x^0∣s+1αˉsσk2 ϵθ+σkϵ
在这个公式中,我们丢弃了 q ( x t ∣ x t − 1 ) q(x_t|x_{t-1}) q(xtxt1) 这个约束条件,实现了从任意步 k k k 到任意步 s s s 的跳步采样。在 DDPM 采样时,必须一步一步进行,而使用 DDIM 采样,则可以自己定义任意的采样步数与步长:
DDPM Samping :      T = 1000 , 999 , 998 , . . . , 2 , 1 , 0 DDIM Samping :      T = 1000 , 888 , 666 , . . . , 123 , 0 \text{DDPM Samping}:\ \ \ \ T=1000,999,998,...,2,1,0\\ \text{DDIM Samping}:\ \ \ \ T=1000,888,666,...,123,0 DDPM Samping:    T=1000,999,998,...,2,1,0DDIM Samping:    T=1000,888,666,...,123,0

DDIM 丢掉了 DDPM 中的一个条件 q ( x t ∣ x t − 1 ) q(x_t|x_{t-1}) q(xtxt1) ,可以进行跳步采样,实际上是一种更一般的形式。也就是说 DDIM 加一个条件约束 q ( x t ∣ x t − 1 ) q(x_t|x_{t-1}) q(xtxt1) ,即可推出 DDPM,DDPM 去掉该条件,即可得到更一般的 DDIM。

在这里插入图片描述

DDIM推导

接下来我们来正式地推导一下 DDIM。

首先整理一下我们推到的目标:给定 q ( x t ∣ x 0 ) q(x_t|x_0) q(xtx0) q ( x t − 1 ∣ x 0 ) q(x_{t-1}|x_0) q(xt1x0) ,不能用 q ( x t ∣ x t − 1 ) q(x_t|x_{t-1}) q(xtxt1) ,求 q ( x t − 1 ∣ x t , x 0 ) q(x_{t-1}|x_t,x_0) q(xt1xt,x0)

这里假设 x t − 1 x_{t-1} xt1 x t x_t xt x 0 x_0 x0 的线性组合,记其系数分别为 m t m_t mt n t n_t nt ,即有:
x t − 1 = m t x t + n t x 0 + σ t ϵ 1 x_{t-1}=m_tx_t+n_tx_0+\sigma_t\epsilon_1 xt1=mtxt+ntx0+σtϵ1
又知道:
x t = α ˉ t x 0 + 1 − α ˉ t ϵ 2 x t − 1 = α ˉ t − 1 x 0 + 1 − α ˉ t − 1 ϵ 3 x_t=\sqrt{\bar\alpha_t}x_0+\sqrt{1-\bar{\alpha}_t}\epsilon_2 \\ x_{t-1}=\sqrt{\bar{\alpha}_{t-1}}x_{0}+\sqrt{1-\bar\alpha_{t-1}}\epsilon_3 xt=αˉt x0+1αˉt ϵ2xt1=αˉt1 x0+1αˉt1 ϵ3
这里用 ϵ 123 \epsilon_{123} ϵ123 的下标来区分对高斯分布的不同采样。(11) 代入 (10),有:
x t − 1 = m t ( α ˉ t x t + 1 − α ˉ t ϵ 2 ) + n t x 0 + σ t ϵ 1 = ( m t α ˉ t + n t ) x 0 + m t 1 − α ˉ t ϵ 2 + σ t ϵ 1 \begin{aligned} x_{t-1}&=m_t(\sqrt{\bar\alpha_t}x_t+\sqrt{1-\bar{\alpha}_t}\epsilon_2)+n_tx_0+\sigma_t\epsilon_1 \\ &=(m_t\sqrt{\bar{\alpha}_t}+n_t)x_0+m_t\sqrt{1-\bar{\alpha}_t}\epsilon_2+\sigma_t\epsilon_1 \end{aligned} xt1=mt(αˉt xt+1αˉt ϵ2)+ntx0+σtϵ1=(mtαˉt +nt)x0+mt1αˉt ϵ2+σtϵ1
从而:
{ m t α ˉ t + n t = α ˉ t − 1 m t 2 ( 1 − α t ) + α t 2 = 1 − α ˉ t − 1 \begin{cases} m_t\sqrt{\bar{\alpha}_t}+n_t=\sqrt{\bar{\alpha}_{t-1}} \\ m_t^2(1-\alpha_t)+\alpha_t^2=1-\bar{\alpha}_{t-1} \\ \end{cases} {mtαˉt +nt=αˉt1 mt2(1αt)+αt2=1αˉt1
立即可以计算出 m t m_t mt n t n_t nt
m t = 1 − α ˉ t − 1 − σ t 2 1 − α ˉ t n t = α ˉ t − 1 − α ˉ t 1 − α ˉ t ( 1 − α ˉ t − 1 − σ t 2 ) m_t=\sqrt{\frac{1-\bar\alpha_{t-1}-\sigma^2_t}{1-\bar\alpha_t}} \\ n_t=\sqrt{\bar\alpha_{t-1}}-\sqrt{\frac{\bar\alpha_t}{1-\bar\alpha_t}(1-\bar\alpha_{t-1}-\sigma^2_t)} mt=1αˉt1αˉt1σt2 nt=αˉt1 1αˉtαˉt(1αˉt1σt2)

代回到式 (10),有:
x t − 1 = 1 − α ˉ t − 1 − σ t 2 1 − α ˉ t x t + ( α ˉ t − 1 − α ˉ t 1 − α ˉ t ( 1 − α ˉ t − 1 − σ t 2 ) ) x 0 + σ t ϵ = α ˉ t − 1 x 0 + 1 − α ˉ t − 1 − σ t 2 ( 1 1 − α ˉ t x t − α ˉ t 1 − α ˉ t x 0 ) + σ t ϵ = α ˉ t − 1 x 0 + 1 − α ˉ t − 1 − σ t 2 x t − α ˉ t x 0 1 − α ˉ t + σ t ϵ \begin{aligned} x_{t-1}&=\sqrt{\frac{1-\bar\alpha_{t-1}-\sigma^2_t}{1-\bar\alpha_t}}x_t+(\sqrt{\bar\alpha_{t-1}}-\sqrt{\frac{\bar\alpha_t}{1-\bar\alpha_t}(1-\bar\alpha_{t-1}-\sigma^2_t)})x_0+\sigma_t\epsilon \\ &=\sqrt{\bar\alpha_{t-1}}x_0+\sqrt{1-\bar\alpha_{t-1}-\sigma^2_t}(\frac{1}{\sqrt{1-\bar\alpha_t}}x_t-\frac{\sqrt{\bar\alpha_t}}{\sqrt{1-\bar\alpha_t}}x_0)+\sigma_t\epsilon \\ &=\sqrt{\bar\alpha_{t-1}}x_0+\sqrt{1-\bar\alpha_{t-1}-\sigma^2_t}\frac{x_t-\sqrt{\bar\alpha_t}x_0}{\sqrt{1-\bar\alpha_t}}+\sigma_t\epsilon \end{aligned} xt1=1αˉt1αˉt1σt2 xt+(αˉt1 1αˉtαˉt(1αˉt1σt2) )x0+σtϵ=αˉt1 x0+1αˉt1σt2 (1αˉt 1xt1αˉt αˉt x0)+σtϵ=αˉt1 x0+1αˉt1σt2 1αˉt xtαˉt x0+σtϵ
代换成模型的预测值:
x t − 1 = α ˉ t − 1 x ^ 0 ∣ t + 1 − α ˉ t − 1 − σ t 2 ϵ θ ( x t , t ) + σ t ϵ x_{t-1}=\sqrt{\bar\alpha_{t-1}}\hat{x}_{0|t}+\sqrt{1-\bar\alpha_{t-1}-\sigma^2_t}\epsilon_{\theta}(x_t,t)+\sigma_t\epsilon xt1=αˉt1 x^0∣t+1αˉt1σt2 ϵθ(xt,t)+σtϵ
至此,推导出的结果式 (16) 就与式 (8) 完全一致了。即:我们使用 q ( x t ∣ x 0 ) q(x_t|x_0) q(xtx0) q ( x t − 1 ∣ x 0 ) q(x_{t-1}|x_0) q(xt1x0) 两个条件,没有用 q ( x t ∣ x t − 1 ) q(x_t|x_{t-1}) q(xtxt1) ,求出了 q ( x t − 1 ∣ x t , x 0 ) q(x_{t-1}|x_t,x_0) q(xt1xt,x0) 。DDPM 去掉条件 q ( x t ∣ x t − 1 ) q(x_t|x_{t-1}) q(xtxt1) ,得到了更一般的 DDIM 的采样公式。而如果我们再加上该条件,就可以把方差 σ t \sigma_t σt 的值也确定下来,就得到了 DDPM 的采样公式。

理解DDIM的三个视角

训练目标的角度

DDPM 推导了那么多公式,但是在网络训练的时候是很简单的。就是先定义一系列超参数 α ˉ 1... T \bar\alpha_{1...T} αˉ1...T ,均匀采样一个时间步 t t t,从训练集中采样真实图片,按照 α ˉ \bar\alpha αˉ t t t 计算出噪声加到图片上,得到 x t x_t xt,训练一个 UNet 网络根据 x t x_t xt t t t 来预测出图中噪声。也就是说,DDPM 训练的就是一个 UNet 网络在不同的噪声步条件 t t t 下对应的去噪能力。

而 DDIM 在采样时可以跳步,也就是说 UNet 只需要具备对某几个时间步的去噪能力就行了。即:DDIM 的训练目标是 DDPM 的子集

反过来说,如果一个 DDPM 已经完整地训练完成了,UNet 具备 1... T 1...T 1...T 所有时间步的去噪能力,那么就肯定包含了 DDIM 所需要的能力。因此,一个训练好的 DDPM 网络,可以直接使用 DDIM 采样算法进行加速采样

在这里插入图片描述

图示理解的角度

x t − 1 = α ˉ t − 1 x ^ 0 ∣ t + 1 − α ˉ t − 1 − σ t 2 ϵ θ ( x t , t ) + σ t ϵ x_{t-1}=\sqrt{\bar\alpha_{t-1}}\hat{x}_{0|t}+\sqrt{1-\bar\alpha_{t-1}-\sigma^2_t}\epsilon_\theta(x_t,t)+\sigma_t\epsilon xt1=αˉt1 x^0∣t+1αˉt1σt2 ϵθ(xt,t)+σtϵ

观察 DDIM 的采样公式,其中一共有三项:

  1. 第一项 α ˉ t − 1 x ^ 0 ∣ t \sqrt{\bar\alpha_{t-1}}\hat{x}_{0|t} αˉt1 x^0∣t 的意义是当前步对 x 0 x_0 x0 的估计,乘一个系数(图中蓝色部分)
  2. 第二项 1 − α ˉ t − 1 − σ t 2 ϵ θ ( x t , t ) \sqrt{1-\bar\alpha_{t-1}-\sigma^2_t}\epsilon_\theta(x_t,t) 1αˉt1σt2 ϵθ(xt,t) 则相当于按照原来的方向又往回走了一段距离(图中绿色部分)
  3. 第三项 σ t ϵ \sigma_t\epsilon σtϵ 则表示在当前到达的位置又加了一个小扰动(图中黄色部分)

经过这样一步一步,最终逼近 x 0 x_0 x0

在这里插入图片描述

这又有两种特殊情况:

特殊情况一 σ t = 0 \sigma_t=0 σt=0 。此时相当于第三项没有了,即没有了小扰动。此时采样的过程就没有随机性了,初始点 x T x_T xT 就已经决定了最终结果 x 0 x_0 x0 。这样的好处就是 x T x_T xT 可以被看做是一个隐变量,类似 GAN Inversion 那中编辑、插值的方法就都可以搞起来了。

特殊情况二 1 − α ˉ t − 1 − σ t 2 = 0 \sqrt{1-\bar\alpha_{t-1}-\sigma_t^2}=0 1αˉt1σt2 =0 。此时相当于第二项没有了,这样采样过程会比较震荡。所以说,第二项的存在,能够使得采样的过程更加平滑。

常微分方程的角度

考虑 σ t = 0 \sigma_t=0 σt=0 的情况:
x t − 1 = α ˉ t − 1 x ^ 0 ∣ t + 1 − α ˉ t − 1 − σ t 2 ϵ θ ( x t , t ) = α ˉ t − 1 ⋅ 1 α ˉ t ( x t − 1 − α ˉ t ϵ θ ( x t , t ) ) + 1 − α ˉ t − 1 − σ t 2 ϵ θ ( x t , t ) x t − 1 α ˉ t − 1 = x t α ˉ t − 1 − α ˉ t α ˉ t ϵ θ ( x t , t ) + 1 − α ˉ t − 1 α ˉ t − 1 ϵ θ ( x t , t ) x t − 1 α ˉ t − 1 − x t α ˉ t = ( 1 − α ˉ t − 1 α ˉ t − 1 − 1 − α ˉ t α ˉ t )   ϵ θ ( x t , t ) \begin{aligned} x_{t-1}&=\sqrt{\bar\alpha_{t-1}}\hat{x}_{0|t}+\sqrt{1-\bar\alpha_{t-1}-\sigma^2_t}\epsilon_\theta(x_t,t) \\ &=\sqrt{\bar\alpha_{t-1}}\cdot \frac{1}{\sqrt{\bar\alpha_t}}(x_t-\sqrt{1-\bar\alpha_t}\epsilon_\theta(x_t,t))+\sqrt{1-\bar\alpha_{t-1}-\sigma^2_t}\epsilon_\theta(x_t,t) \\ \frac{x_{t-1}}{\sqrt{\bar\alpha_{t-1}}}&=\frac{x_t}{\sqrt{\bar\alpha_t}}-\sqrt{\frac{1-\bar\alpha_t}{\bar\alpha_t}}\epsilon_\theta(x_t,t)+\sqrt{\frac{1-\bar\alpha_{t-1}}{\bar\alpha_{t-1}}}\epsilon_\theta(x_t,t) \\ \frac{x_{t-1}}{\sqrt{\bar\alpha_{t-1}}}-\frac{x_t}{\sqrt{\bar\alpha_t}}&=(\sqrt{\frac{1-\bar\alpha_{t-1}}{\bar\alpha_{t-1}}}-\sqrt{\frac{1-\bar\alpha_t}{\bar\alpha_t}})\ \epsilon_\theta(x_t,t) \end{aligned} xt1αˉt1 xt1αˉt1 xt1αˉt xt=αˉt1 x^0∣t+1αˉt1σt2 ϵθ(xt,t)=αˉt1 αˉt 1(xt1αˉt ϵθ(xt,t))+1αˉt1σt2 ϵθ(xt,t)=αˉt xtαˉt1αˉt ϵθ(xt,t)+αˉt11αˉt1 ϵθ(xt,t)=(αˉt11αˉt1 αˉt1αˉt ) ϵθ(xt,t)
可以看到,这已经是一个差分的形式。

记 自变量为 s ∈ [ 0 , 1 ] s\in[0,1] s[0,1] a = α ˉ a=\sqrt{\bar\alpha} a=αˉ σ = 1 − α ˉ α ˉ \sigma=\sqrt{\frac{1-\bar\alpha}{\bar\alpha}} σ=αˉ1αˉ ,则有:
d d s ( x ( s ) a ( s ) ) = d d s σ ( s ) ϵ θ ( x ( s ) , t ( s ) ) \frac{d}{ds}(\frac{x(s)}{a(s)})=\frac{d}{ds}\sigma(s)\epsilon_\theta(x(s),t(s)) dsd(a(s)x(s))=dsdσ(s)ϵθ(x(s),t(s))
这就把离散的形式写成连续的形式。

那么,扩散模型采样的过程就相当于:给定 x ( 1 ) ∼ N ( 0 , I ) x(1)\sim\mathcal{N}(0,I) x(1)N(0,I),求 x ( 0 ) x(0) x(0) 。这样一来,扩散模型的采样过程就相当于求解这个常微分方程。从而,很多加速求解常微分方程的方法,都可以用来加速扩散模型的采样过程。

  • 8
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值