当前位置: 首页 > news >正文

Denoising Diffusion Implicit Models (DDIM)

因为扩散模型的正向过程可以实现跳步,其马尔科夫性并不重要,因此DDIM尝试在反向过程中也舍弃马尔科夫性的约束。在引入一个可控参数 σ t \sigma_t σt后,反向过程的迭代被整理为预测 x 0 x_0 x0后重新进行正向扩散的过程,扩散时使用的噪声为新初始化噪声与上一步预测噪声的加权,在特定 σ \sigma σ选择下,可以导出DDPM的采样过程和新的确定性的采样过程,并且使得反向过程同样支持跳步。

方法概述

舍弃马尔科夫性

在DDPM中,反向过程的损失函数是根据马尔科夫性推导得出的,而虽然正向过程也是马尔科夫链,但是因为高斯分布的可加性,其完全可以舍弃马尔科夫性,实现从第 0 步直接跳到第 t 步。
在这里插入图片描述
而DDIM的核心思想就是在反向过程时也舍弃马尔科夫性的约束,使得采样的过程也可以实现跳步。
在这里插入图片描述
注意,DDIM的 p p p q q q符号也与本文相反,在“理论推导”小节需要注意与原文对照。

采样公式

在DDPM中,我们先是使用了一种没有严格理论支撑但容易理解的方法导出了一个采样迭代公式:
x t − 1 = 1 α t ( x t − 1 − α ˉ t ϵ θ ( x t , t ) ) + 1 − α ˉ t − 1 z x_{t-1} = \frac{1}{\sqrt{\alpha_t}}\left(x_t-\sqrt{1-\bar{\alpha}_{t}} \epsilon_\theta\left( x_t, t\right)\right) + \sqrt{1-\bar{\alpha}_{t-1}} z xt1=αt 1(xt1αˉt ϵθ(xt,t))+1αˉt1 z
然后又在后续理论推导出中给出了DDPM原版的采样迭代公式:
x t − 1 = 1 α t ( x t − 1 − α t 1 − α ˉ t ϵ θ ( x t , t ) ) + β ~ t z x_{t-1}=\frac{1}{\sqrt{\alpha_{t}}}\left(x_{t}-\frac{1-\alpha_{t}}{\sqrt{1-\bar{\alpha}_{t}}}\epsilon_{\theta}(x_{t},t)\right)+\tilde{\beta}_tz xt1=αt 1(xt1αˉt 1αtϵθ(xt,t))+β~tz
而这两种都是DDIM这个工作提出的采样迭代公式的两种特殊情况:
x t − 1 = α ˉ t − 1 ( x t − 1 − α ˉ t ϵ θ ( x t , t ) α ˉ t ) + 1 − α ˉ t − 1 − σ t 2 ⋅ ϵ θ ( x t , t ) + σ t z x_{t-1}=\sqrt{\bar\alpha_{t-1}}\left(\frac{x_{t}-\sqrt{1-\bar\alpha_{t}}\epsilon_{\theta}(x_{t},t)}{\sqrt{\bar\alpha_{t}}}\right)+\sqrt{1-\bar\alpha_{t-1}-\sigma_{t}^{2}}\cdot\epsilon_{\theta}(x_{t},t)+\sigma_{t}z xt1=αˉt1 (αˉt xt1αˉt ϵθ(xt,t))+1αˉt1σt2 ϵθ(xt,t)+σtz
带入 σ t = 1 − α ˉ t − 1 \sigma_{t}=\sqrt{1-\bar\alpha_{t-1}} σt=1αˉt1 σ t = ( 1 − α ˉ t − 1 ) / ( 1 − α ˉ t ) 1 − α t \sigma_{t}=\sqrt{(1-\bar\alpha_{t-1})/(1-\bar\alpha_{t})}\sqrt{1-\alpha_{t}} σt=(1αˉt1)/(1αˉt) 1αt 可以分别得到以上两个迭代过程。为了便于分析和与DDIM原文对齐,这里将上式的 α ˉ t \bar\alpha_t αˉt表示为 α t \alpha_t αt,上式的 α t \alpha_t αt则对应 α t / α t − 1 \alpha_t/\alpha_{t-1} αt/αt1,将 t t t移到符号上标, z z z替换为 ϵ t \epsilon_t ϵt
x t − 1 = α t − 1 ( x t − 1 − α t ϵ θ ( t ) ( x t ) α t ) + 1 − α t − 1 − σ t 2 ⋅ ϵ θ ( t ) ( x t ) + σ t ϵ t x_{t-1}=\sqrt{\alpha_{t-1}}{\left(\frac{x_{t}-\sqrt{1-\alpha_{t}}\epsilon_{\theta}^{(t)}(x_{t})}{\sqrt{\alpha_{t}}}\right)}+{\sqrt{1-\alpha_{t-1}-\sigma_{t}^{2}}\cdot\epsilon_{\theta}^{(t)}(x_{t})}+{\sigma_{t}\epsilon_{t}} xt1=αt1 (αt xt1αt ϵθ(t)(xt))+1αt1σt2 ϵθ(t)(xt)+σtϵt
此时可以得到DDIM最重要的特殊情况,即设置 σ t = 0 \sigma_t=0 σt=0,此时上式等于:
x t − 1 = α t − 1 ( x t − 1 − α t ϵ θ ( t ) ( x t ) α t ) + 1 − α t − 1 ⋅ ϵ θ ( t ) ( x t ) = α t − 1 x θ ( 0 ) ( x t ) + 1 − α t − 1 ⋅ ϵ θ ( t ) ( x t ) x_{t-1}=\sqrt{\alpha_{t-1}}\left(\frac{x_{t}-\sqrt{1-\alpha_{t}}\epsilon_{\theta}^{(t)}(x_{t})}{\sqrt{\alpha_{t}}}\right)+\sqrt{1-\alpha_{t-1}}\cdot\epsilon_{\theta}^{(t)}(x_{t})=\sqrt{\alpha_{t-1}}x^{(0)}_\theta(x_t)+\sqrt{1-\alpha_{t-1}}\cdot\epsilon_{\theta}^{(t)}(x_{t}) xt1=αt1 (αt xt1αt ϵθ(t)(xt))+1αt1 ϵθ(t)(xt)=αt1 xθ(0)(xt)+1αt1 ϵθ(t)(xt)
可以发现,此时DDIM在迭代过程中没有随机性,即每一步反向过程迭代的时候并没有采样新的噪声,而是直接使用前向过程 x t = α t x 0 + 1 − α t ϵ \boldsymbol{x}_t =\sqrt{{\alpha}_t} \boldsymbol{x}_0 + \sqrt{1-{\alpha}_t} {\epsilon} xt=αt x0+1αt ϵ在估计的干净图像 x θ ( 0 ) ( x t ) x^{(0)}_\theta(x_t) xθ(0)(xt)上回加估计的噪声 ϵ θ ( t ) ( x t ) \epsilon_{\theta}^{(t)}(x_{t}) ϵθ(t)(xt),可以看作一个迭代细化的过程。当然,DDIM采样并不是完全没有随机性,因为迭代前需要采样 x T ∼ N ( 0 , I ) x_T\sim\mathcal{N}(\boldsymbol{0}, \boldsymbol{I}) xTN(0,I)

加速采样

对于DDPM,如果要贯彻推导时使用的马尔科夫性,那么在采样时需要使用训练时设置的 T T T步进行采样,而在绝大部分扩散模型中,都设置 T = 1000 T=1000 T=1000,这导致DDPM生成图像需要执行1000次去噪网络 ϵ θ \epsilon_\theta ϵθ,而 ϵ θ \epsilon_\theta ϵθ是一个参数量和计算量都很大的UNet(甚至是DiT),导致耗时不可接受,因此减少采样步数是必不可少的。
一个简单的方法是,在训练时依旧使用1000步 t ∈ { 0 , 1 , 2 , . . . , 999 } t\in \{0, 1, 2, ..., 999\} t{0,1,2,...,999},但在采样时只使用timestep的子集,比如 t ∈ { 249 , 499 , 749 , 999 } t\in \{249, 499, 749, 999\} t{249,499,749,999},并索引训练时计算好的 α t \alpha_{t} αt列表,实验证明,这种跳步方法在50步左右依旧可以生成清晰的图像。DDIM将timestep的子序列定义为 { τ 1 , … , τ S } \{\tau_{1},\ldots,\tau_{S}\} {τ1,,τS},并一般设置为等间隔。此时生成过程为:
z = x T → x τ S → x τ S − 1 → ⋯ → x τ 1 → x 0 = x {z} = {x}_{T} \to {x}_{\tau_{S}} \to {x}_{\tau_{S-1}} \to \cdots \to {x}_{\tau_{1}} \to {x}_{0} = {x} z=xTxτSxτS1xτ1x0=x
此外,DDIM将 σ t \sigma_{t} σt定义为:
σ τ i ( η ) = η ( 1 − α τ i − 1 ) / ( 1 − α τ i ) 1 − α τ i / α τ i − 1 \sigma_{\tau_{i}}(\eta)=\eta\sqrt{(1-\alpha_{\tau_{i-1}})/(1-\alpha_{\tau_{i}})}\sqrt{1-\alpha_{\tau_{i}}/\alpha_{\tau_{i-1}}} στi(η)=η(1ατi1)/(1ατi) 1ατi/ατi1
其中 η ∈ [ 0 , 1 ] \eta\in{[0, 1]} η[0,1] η = 0 \eta=0 η=0时对应确定性的反向迭代过程, η = 1 \eta=1 η=1对应DDPM。如果不特指 η \eta η的值,DDIM默认采用确定性采样,一般采样步数在20~30步,并且一般质量比DDPM更好。

理论推导

反向过程的非马尔可夫推断

回顾DDPM的简化训练目标:
L = E t , x 0 , ϵ [ ∥ ϵ − ϵ θ ( t ) ( α t x 0 + 1 − α t ϵ ) ∥ 2 ] L=\mathbb{E}_{t, {x}_0, {\epsilon}}\left[\left\|{\epsilon}-{\epsilon}_\theta^{(t)}\left(\sqrt{{\alpha}_t} {x}_0 + \sqrt{1-{\alpha}_t} {\epsilon}\right)\right\|^2\right] L=Et,x0,ϵ[ ϵϵθ(t)(αt x0+1αt ϵ) 2]
该损失函数关于 t t t的每一项,都只与 x 0 x_0 x0以及 x t x_t xt相关,而且根据 x 0 = 1 α t ( x t − 1 − α t ϵ ) {x}_0=\frac{1}{\sqrt{{\alpha}_t}}\left({x}_t-\sqrt{1-{\alpha}_t} {\epsilon}\right) x0=αt 1(xt1αt ϵ),上式等价于每一步都估计干净图像 x 0 x_0 x0,只是在 t t t越大时估计越不准确。因此,只需要在采样到达 t t t步时 x t x_t xt包含的噪声的方差与训练时正向过程添加的噪声方差一致,那么训练和推理就不会有明显的gap。对于正向过程,正向过程扩散到 x t − 1 x_{t-1} xt1 p ( x t − 1 ∣ x 0 ) = N ( x t − 1 ; α t − 1 x 0 , ( 1 − α t − 1 ) I ) p({x}_{t-1}|{x}_{0})=\mathcal{N}({x}_{t-1};\sqrt{{\alpha}_{t-1}} {x}_{0}, (1-{\alpha}_{t-1})\boldsymbol{I}) p(xt1x0)=N(xt1;αt1 x0,(1αt1)I),即方差为 1 − α t − 1 1-{\alpha}_{t-1} 1αt1。因为我们在 t t t步估计出 x ^ 0 ( t ) = 1 α t ( x t − 1 − α t ϵ θ ( t ) ( x ^ t ) ) \hat{x}_0^{(t)}=\frac{1}{\sqrt{{\alpha}_t}}\left({x}_t-\sqrt{1-{\alpha}_t} {\epsilon}_\theta^{(t)}(\hat{x}_t)\right) x^0(t)=αt 1(xt1αt ϵθ(t)(x^t)),迭代采样过程中会替代正向过程的 x 0 x_0 x0,因此我们只需要在 x ^ 0 ( t ) \hat{x}_0^{(t)} x^0(t)上添加方差为 1 − α t − 1 1-{\alpha}_{t-1} 1αt1即可满足反向过程的状态转移,而无需考虑状态转移是否满足马尔科夫性。因此可以引入一个可调的辅助变量 σ t \sigma_t σt
ϵ ( t ) = 1 − α t − 1 − σ t 2 ⋅ ϵ θ ( t ) ( x t ) + σ t ϵ t \epsilon^{(t)}=\sqrt{1-\alpha_{t-1}-\sigma_{t}^{2}}\cdot\epsilon_{\theta}^{(t)}(x_{t})+\sigma_{t}\epsilon_{t} ϵ(t)=1αt1σt2 ϵθ(t)(xt)+σtϵt
很明显, ( 1 − α t − 1 − σ t 2 ) 2 + σ t 2 = 1 − α t − 1 \left(\sqrt{1-\alpha_{t-1}-\sigma_{t}^{2}}\right)^2+\sigma_{t}^2=1-{\alpha}_{t-1} (1αt1σt2 )2+σt2=1αt1,满足训练时噪声方差的设定。

边缘分布

DDIM原文并不是直接从噪声方差的训练-推断一致的角度进行推导的,而是从边缘分布 p σ ( x t ) p_\sigma({x}_t) pσ(xt)的一致性考虑。因为 x 0 ∼ p d a t a x_0\sim p_{data} x0pdata不受参数 σ \sigma σ影响,则只需证明参数 σ \sigma σ不影响条件分布 p σ ( x t ∣ x 0 ) p_\sigma({x}_t|{x}_0) pσ(xtx0),即:
p σ ( x t ∣ x 0 ) = N ( α t x 0 , ( 1 − α t ) I ) p_\sigma({x}_t|{x}_0)=\mathcal N(\sqrt{\alpha_t}{x}_0,(1-\alpha_t){I}) pσ(xtx0)=N(αt x0,(1αt)I)
接下来开始证明:考虑DDPM的训练过程,其最小化 p ( x t − 1 ∣ x t , x 0 ) p({x}_{t-1}|{x}_{t},{x}_{0}) p(xt1xt,x0) q θ ( x t − 1 ∣ x t ) q_\theta(x_{t-1}|x_t) qθ(xt1xt)的KL散度,训练完成后可以使用 q θ ( x t − 1 ∣ x t ) q_\theta(x_{t-1}|x_t) qθ(xt1xt)替代 p ( x t − 1 ∣ x t , x 0 ) p({x}_{t-1}|{x}_{t},{x}_{0}) p(xt1xt,x0)。当前,我们的反向过程迭代定义为:
x t − 1 = α t − 1 ( x t − 1 − α t ϵ θ ( t ) ( x t ) α t ) + 1 − α t − 1 − σ t 2 ⋅ ϵ θ ( t ) ( x t ) + σ t ϵ t x_{t-1}=\sqrt{\alpha_{t-1}}{\left(\frac{x_{t}-\sqrt{1-\alpha_{t}}\epsilon_{\theta}^{(t)}(x_{t})}{\sqrt{\alpha_{t}}}\right)}+{\sqrt{1-\alpha_{t-1}-\sigma_{t}^{2}}\cdot\epsilon_{\theta}^{(t)}(x_{t})}+{\sigma_{t}\epsilon_{t}} xt1=αt1 (αt xt1αt ϵθ(t)(xt))+1αt1σt2 ϵθ(t)(xt)+σtϵt
其中 x ^ 0 = x t − 1 − α t ϵ θ ( t ) ( x t ) α t \hat{x}_0=\frac{x_{t}-\sqrt{1-\alpha_{t}}\epsilon_{\theta}^{(t)}(x_{t})}{\sqrt{\alpha_{t}}} x^0=αt xt1αt ϵθ(t)(xt)可近似 x 0 x_0 x0,那么:
p σ ( x t − 1 ∣ x t , x 0 ) = N ( α t − 1 x 0 + 1 − α t − 1 − σ t 2 ⋅ x t − α t x 0 1 − α t , σ t 2 I ) p_{\sigma}({x}_{t-1}|{x}_{t},{x}_{0})=\mathcal{N}\left(\sqrt{\alpha_{t-1}}{x}_{0}+\sqrt{1-\alpha_{t-1}-\sigma_{t}^{2}}\cdot\frac{{x}_{t}-\sqrt{\alpha_{t}}{x}_{0}}{\sqrt{1-\alpha_{t}}},\sigma_{t}^{2}\boldsymbol{I}\right) pσ(xt1xt,x0)=N(αt1 x0+1αt1σt2 1αt xtαt x0,σt2I)
上式可表示为 x t − 1 = α t − 1 x 0 + 1 − α t − 1 − σ t 2 ⋅ x t − α t x 0 1 − α t + σ t ϵ t x_{t-1}=\sqrt{\alpha_{t-1}}x_0+{\sqrt{1-\alpha_{t-1}-\sigma_{t}^{2}}\cdot\frac{{x}_{t}-\sqrt{\alpha_{t}}{x}_{0}}{\sqrt{1-\alpha_{t}}}}+{\sigma_{t}\epsilon_{t}} xt1=αt1 x0+1αt1σt2 1αt xtαt x0+σtϵt。考虑 p σ ( x t ∣ x 0 ) = N ( α t x 0 , ( 1 − α t ) I ) = α t x 0 + 1 − α t ϵ , ϵ ∼ N ( 0 , I ) p_{\sigma}(x_{t}|x_{0})=\mathcal{N}(\sqrt{\alpha_{t}}x_{0},(1-\alpha_{t}){I})=\sqrt{\alpha_{t}}x_{0}+\sqrt{1-\alpha_{t}}\epsilon, \epsilon\sim \mathcal{N}(\boldsymbol{0},\boldsymbol{I}) pσ(xtx0)=N(αt x0,(1αt)I)=αt x0+1αt ϵ,ϵN(0,I),则 p σ ( x t − 1 ∣ x 0 ) p_\sigma({x}_{t-1}|{x}_0) pσ(xt1x0)的均值和方差:
μ t − 1 = α t − 1 x 0 + 1 − α t − 1 − σ t 2 ⋅ α t x 0 − α t x 0 1 − α t = α t − 1 x 0 σ t − 1 = σ t 2 I + 1 − α t − 1 − σ t 2 1 − α t ( 1 − α t ) I = ( 1 − α t − 1 ) I \begin{aligned} \mu_{t-1} &=\sqrt{\alpha_{t-1}}{x}_0+\sqrt{1-\alpha_{t-1}-\sigma_t^2}\cdot\frac{\sqrt{\alpha_t}{x}_0-\sqrt{\alpha_t}{x}_0}{\sqrt{1-\alpha_t}} =\sqrt{\alpha_{t-1}}x_{0} \\ \sigma_{t-1}&=\sigma_t^2\boldsymbol{I}+\frac{1-\alpha_{t-1}-\sigma_t^2}{1-\alpha_t}(1-\alpha_t)\boldsymbol{I}=(1-\alpha_{t-1})\boldsymbol{I} \end{aligned} μt1σt1=αt1 x0+1αt1σt2 1αt αt x0αt x0=αt1 x0=σt2I+1αt1αt1σt2(1αt)I=(1αt1)I
p σ ( x t − 1 ∣ x 0 ) = N ( α t − 1 x 0 , ( 1 − α t − 1 ) I ) p_\sigma({x}_{t-1}|{x}_0)=\mathcal N(\sqrt{\alpha_{t-1}}{x}_0,(1-\alpha_{t-1}){I}) pσ(xt1x0)=N(αt1 x0,(1αt1)I),与 p σ ( x t ∣ x 0 ) = N ( α t x 0 , ( 1 − α t ) I ) p_\sigma({x}_t|{x}_0)=\mathcal N(\sqrt{\alpha_t}{x}_0,(1-\alpha_t){I}) pσ(xtx0)=N(αt x0,(1αt)I)一致。
因此,只要 q θ ( x t − 1 ∣ x t ) q_\theta(x_{t-1}|x_t) qθ(xt1xt)可以很好地近似 p ( x t − 1 ∣ x t , x 0 ) p({x}_{t-1}|{x}_{t},{x}_{0}) p(xt1xt,x0),那么DDIM的转移过程与DDPM共享相同的边缘分布。DDIM原文使用与DDPM相似的变分推导来更严谨地导出了该结论,有兴趣可以阅读DDIM附录。

加速采样

当设定采样子序列为 { τ 1 , … , τ S } \{\tau_{1},\ldots,\tau_{S}\} {τ1,,τS}时,对应的前向过程为:
p τ ( x 1 : T ∣ x 0 ) = p τ ( x τ S ∣ x 0 ) ∏ i = 1 S p τ ( x τ i − 1 ∣ x τ i , x 0 ) ∏ t ∈ τ ˉ p τ ( x t ∣ x 0 ) p_{\tau}(x_{1:T}|x_{0})=p_{\tau}(x_{\tau_{S}}|x_{0})\prod_{i=1}^{S}p_{\tau}(x_{\tau_{i-1}}|x_{\tau_{i}},x_{0})\prod_{t\in\bar{\tau}}p_{\tau}(x_{t}|x_{0}) pτ(x1:Tx0)=pτ(xτSx0)i=1Spτ(xτi1xτi,x0)tτˉpτ(xtx0)
对应的反向过程为:
q θ ( x 0 : T ) : = q θ ( x T ) ∏ i = 1 S q θ ( τ i ) ( x τ i − 1 ∣ x τ i ) × ∏ t ∈ τ ˉ q θ ( t ) ( x 0 ∣ x t ) q_\theta({x}_{0:T}):=q_\theta({x}_T)\prod_{i=1}^Sq_\theta^{(\tau_i)}({x}_{\tau_{i-1}}|{x}_{\tau_i})\times\prod_{t\in\bar{\tau}}q_\theta^{(t)}({x}_0|{x}_t) qθ(x0:T):=qθ(xT)i=1Sqθ(τi)(xτi1xτi)×tτˉqθ(t)(x0xt)
上式乘号的右半部分实际对应训练时的去噪损失,它与反向过程的迭代过程本身没有关系,当在完整的timestep序列上训练后,这部分得到良好定义。左半部分的单项则是一个与 θ \theta θ无直接关联的项:
q θ ( τ i ) ( x τ i − 1 ∣ x τ i ) = p τ ( x τ i − 1 ∣ x τ i , x ^ 0 ( τ i ) ( x τ i − 1 ) ) q_{\theta}^{(\tau_{i})}(x_{\tau_{i-1}}|x_{\tau_{i}})=p_{\tau}(x_{\tau_{i-1}}|x_{\tau_{i}},\hat{x}_0^{(\tau_{i})}(x_{\tau_{i-1}})) qθ(τi)(xτi1xτi)=pτ(xτi1xτi,x^0(τi)(xτi1))
因此只要在完整timestep上训练,那么在任意子序列上推断都是受到良好约束的。

相关文章:

  • Python PDF文件拆分-详解
  • 抖音生活服务加强探店内容治理,2024年达人违规率下降30%
  • 2025年4月1日-2日AutoCable 中国汽车线束线缆及连接技术创新峰会即将开幕
  • 大模型WebUI:Gradio全解12——LangChain原理、架构和组件(2)
  • 2025 年度福建省职业院校技能大赛中职组“网络建设与运维”赛项规程
  • MySQL优化示例 1:关联查询
  • vue3-tree-org创建组织架构图简单案例分享
  • scala基础
  • 剧本杀APP系统开发,市场发展前景
  • 计算机毕业设计SpringBoot+Vue.js基于工程教育认证的计算机课程管理平台(源码+文档+PPT+讲解)
  • 搭建一个私有NuGet服务器
  • 【AI深度学习基础】NumPy完全指南进阶篇:核心功能与工程实践(含完整代码)
  • OpenCV计算摄影学(10)将一组不同曝光的图像合并成一张高动态范围(HDR)图像的实现类cv::MergeDebevec
  • GEE学习笔记 28:基于Google Earth Engine的Landsat8缨帽变换土壤指数反演——亮度、绿度与湿度分量的提取
  • 白话React第九章React 前沿技术与企业级应用实战
  • 跨平台文件互传工具
  • python-leetcode-斐波那契数
  • FastAPI系列:如何配置跨域访问(CORS)
  • 10. 作者去换监控源了,不知道什么原因,zabbix自定义监控无法获取
  • 微服务面试题及原理
  • 中小型网站建设代理商/百度首页纯净版怎么设置
  • 做指甲的网站/天津百度推广网络科技公司
  • 有免费网站服务器吗/seo云优化如何
  • python做网站设计/企业网站的推广形式有
  • 低价郑州网站建设/网站如何推广
  • 外贸网站建设流程/企业网站seo案例