DDIM

基于DDPM[1],DDIM(Denoising Diffusion Implicit Models)[2]的采样过程是通过一个确定性的更新规则逐步去噪,将DDPM数千步的采样减少到数十步.

DDIM的采样公式

DDIM的采样公式可以表示为:

zs=αsx^θ(zt)+σsztαtx^θ(zt)σt\mathbf{z}_{s} = \alpha_{s} \hat{\mathbf{x}}_{\theta}(\mathbf{z}_{t}) + \sigma_{s} \frac{\mathbf{z}_{t} - \alpha_{t} \hat{\mathbf{x}}_{\theta}(\mathbf{z}_{t})}{\sigma_{t}}

其中:

  • zt\mathbf{z}_{t}:当前步骤的噪声数据.
  • zs\mathbf{z}_{s}:下一步的噪声数据(s<ts < t).
  • αt\alpha_{t}σt\sigma_{t}:与时间步 tt 相关的参数,控制噪声的强度.
  • x^θ(zt)\hat{\mathbf{x}}_{\theta}(\mathbf{z}_{t}):模型对去噪数据的预测.
  • αs\alpha_{s}σs\sigma_{s}:与时间步 ss 相关的参数.

接下来,我们详细解释公式中的每个部分.
注意DDIM在采样中不再引入随机噪声,且正向无累加公式,需要逐步生成对应时间步的噪声

1. zt\mathbf{z}_{t}:当前步骤的噪声数据

  • 含义zt\mathbf{z}_{t} 是在时间步 tt 时的噪声数据.它是由前向扩散过程生成的,表示在时间 tt 时数据被噪声破坏后的状态.
  • 作用zt\mathbf{z}_{t} 是当前步骤的输入,DDIM的目标是从 zt\mathbf{z}_{t} 逐步去噪,最终生成干净的样本.

2. x^θ(zt)\hat{\mathbf{x}}_{\theta}(\mathbf{z}_{t}):模型对去噪数据的预测

  • 含义x^θ(zt)\hat{\mathbf{x}}_{\theta}(\mathbf{z}_{t}) 是模型对干净数据 x\mathbf{x} 的预测.模型的目标是从噪声数据 zt\mathbf{z}_{t} 中恢复出原始数据 x\mathbf{x}.
  • 作用x^θ(zt)\hat{\mathbf{x}}_{\theta}(\mathbf{z}_{t}) 是去噪过程的核心,它提供了从噪声数据到干净数据的映射.模型通过训练学习如何从 zt\mathbf{z}_{t} 预测 x\mathbf{x}.

3. αt\alpha_{t}σt\sigma_{t}:噪声调度参数

  • 含义
    • αt\alpha_{t}σt\sigma_{t} 是与时间步 tt 相关的参数,控制噪声的强度.
    • αt\alpha_{t} 通常表示信号的强度,σt\sigma_{t} 表示噪声的强度.
    • 在扩散模型中,αt\alpha_{t}σt\sigma_{t} 通常被设计为随着时间 tt 的变化而变化,使得前向过程逐渐增加噪声.
  • 作用
    • αt\alpha_{t}σt\sigma_{t} 控制了噪声数据的生成过程.在反向采样过程中,它们用于调整噪声的去除速度.
    • 在DDIM的更新规则中,αt\alpha_{t}σt\sigma_{t} 用于加权模型预测 x^θ(zt)\hat{\mathbf{x}}_{\theta}(\mathbf{z}_{t}) 和当前噪声数据 zt\mathbf{z}_{t}.

4. αs\alpha_{s}σs\sigma_{s}:下一步的噪声调度参数

  • 含义
    • αs\alpha_{s}σs\sigma_{s} 是与下一步时间步 ss 相关的参数,控制下一步噪声的强度.
    • 通常,s<ts < t,表示下一步的噪声强度比当前步骤更低.
  • 作用
    • αs\alpha_{s}σs\sigma_{s} 用于调整下一步的噪声数据 zs\mathbf{z}_{s} 的生成.
    • 在DDIM的更新规则中,αs\alpha_{s}σs\sigma_{s} 用于加权模型预测 x^θ(zt)\hat{\mathbf{x}}_{\theta}(\mathbf{z}_{t}) 和当前噪声数据 zt\mathbf{z}_{t},以生成下一步的噪声数据 zs\mathbf{z}_{s}.

5. ztαtx^θ(zt)σt\frac{\mathbf{z}_{t} - \alpha_{t} \hat{\mathbf{x}}_{\theta}(\mathbf{z}_{t})}{\sigma_{t}}:噪声残差

  • 含义
    • 这部分表示当前噪声数据 zt\mathbf{z}_{t} 与模型预测 x^θ(zt)\hat{\mathbf{x}}_{\theta}(\mathbf{z}_{t}) 之间的残差,经过归一化处理.
    • ztαtx^θ(zt)\mathbf{z}_{t} - \alpha_{t} \hat{\mathbf{x}}_{\theta}(\mathbf{z}_{t}) 表示当前噪声数据与模型预测的干净数据之间的差异.
    • 除以 σt\sigma_{t} 是为了将残差归一化,使其与噪声强度无关.
  • 作用
    • 这部分用于调整下一步的噪声数据 zs\mathbf{z}_{s},使其逐渐接近干净数据.
    • 它反映了当前步骤的噪声残差,用于指导下一步的去噪过程.

6. 整体公式的含义

DDIM的更新规则可以理解为:

  • 第一部分αsx^θ(zt)\alpha_{s} \hat{\mathbf{x}}_{\theta}(\mathbf{z}_{t}) 是基于模型预测的干净数据,加权后用于生成下一步的噪声数据.
  • 第二部分σsztαtx^θ(zt)σt\sigma_{s} \frac{\mathbf{z}_{t} - \alpha_{t} \hat{\mathbf{x}}_{\theta}(\mathbf{z}_{t})}{\sigma_{t}} 是基于当前噪声残差,加权后用于调整下一步的噪声数据.

通过这两部分的加权组合,DDIM能够逐步从噪声数据 zt\mathbf{z}_{t} 生成下一步的噪声数据 zs\mathbf{z}_{s},最终生成干净的样本.

7.DDIM与ODE

DIM的采样过程可以被解释为对一个特定的ODE(概率流ODE)的数值积分[3].具体来说,DDIM的更新规则可以被视为对概率流ODE的一阶近似.

[1]https://arxiv.org/abs/2006.11239
[2]https://arxiv.org/abs/2010.02502
[3]https://arxiv.org/abs/2202.00512