DDPM 的反向过程是马尔可夫的(Markovian),即 只依赖于 。而 DDIM 将其推广为一个非马尔可夫过程,使得 同时依赖于 和我们对 的预测

DDPM 的基础

我们从 DDPM 的两个关键公式出发:

  1. 前向加噪过程 (Fixed): 我们可以从 一步到位得到

    其中

    这等价于:,其中

  2. 反向去噪过程 (Learned): DDPM 训练一个神经网络 来预测 中的噪声

    DDPM 的采样公式是通过计算后验 并用 替换 得到的:

    其中 通常设为

这个采样步骤是随机的 (Stochastic),因为每一步都加入了新的高斯噪声

DDIM 的核心思想

DDPM 必须严格遵循马尔可夫链,一步一步逆转。训练时用了 1000 步加噪,生成时就得跑 1000 步去噪。DDIM的目标则是:能不能不用 1000 步,而是 50 步甚至 10 步就生成图片。

**DDPM 的逻辑: 从 ,必须加入一个新的随机噪声 。这意味着每次生成的路径都是随机的。

DDIM 的逻辑: 只要保证边缘分布 是高斯分布(和 DDPM 一样),中间怎么走的其实无所谓。 于是,DDIM 构造了一个特殊的“非马尔可夫”前向过程,在这个过程中,如果我们把方差 设为 0,那么从 就变成了一个确定性的映射

推导 DDIM 公式

步骤 1:从 预测

根据公式 ,我们可以反解出

在采样阶段,我们不知道真实的 ,但我们有模型预测的 。我们可以用它来估计

这一步为我们提供了从 指向最终干净图像 的”方向”。

步骤 2:定义 的“数据”和“噪声”分量

根据扩散模型的定义,无论我们怎么采样,生成的 必须在统计上符合以下分布(给定 时):

翻译成代数表达式,则意味着 必须等于:

所以,我们的总方差预算

DDIM 的想法是:尽量复用 里已有的噪声 ,而不是使用一个全新的随机噪声。

所以,DDIM 把这个“总噪声项”拆成了两部分:

  1. 已知的噪声 (在 里观测到的噪声)。
  2. 未知的随机噪声 (一个全新的高斯白噪声, )。

使用待定系数法,假设“总噪声项”是这两者的线性组合。我们可以设两个系数

把这个组合代入方差公式。 因为 (近似为标准正态分布)和 (标准正态分布)是相互独立的,根据方差的可加性:

又因为总方差预算是

所以我们可以得到方程:

现在我们有两个未知数 , ,但只有一个方程。这意味着这个方程有无限种解法。

为了确定系数,DDIM 引入了一个超参数 来控制随机性。它直接定义:

这意味着我们把“随机噪声”的方差直接指定为

既然 ,代入方程 ,我们解出

将解出来的系数 拼回到原来的式子里:

  1. 均值部分
  2. 噪声部分
    • 系数
    • 系数

于是就得到了 DDIM 的公式:

步骤 3:设定

DDIM并不需要关心前向过程是怎么走的,只需要保证边缘分布对就行,所以我们设置 。此时,”随机噪声”项消失,”噪声方向分量”的系数变为

公式变为:

这个公式十分直观: 是由“预测的原始数据 ”与“预测的噪声 ”按照一定的线性比组合而成的。

步骤 4:代入

现在,我们将步骤 1 中 的表达式代入到步骤 3 的公式中:

为了便于计算,我们把 项和 项合并:

  • 的系数:
  • 的系数:

整理后,我们就得到了 DDIM 的确定性采样公式

这就是 DDIM 的核心公式。给定 的值是完全确定的。

总结

  • DDPM:

  • DDIM:

DDIM 的推导本质上是将 DDPM 的随机马尔可夫过程,泛化为了一个包含确定性非马尔可夫过程的家族。这个家族由 控制。DDIM 利用 的确定性路径,实现了更快的采样速度语义上一致的图像编辑