DDIM原理
DDPM 的反向过程是马尔可夫的(Markovian),即
DDPM 的基础
我们从 DDPM 的两个关键公式出发:
前向加噪过程 (Fixed): 我们可以从
一步到位得到 : 其中
且 。 这等价于:
,其中 。 反向去噪过程 (Learned): DDPM 训练一个神经网络
来预测 中的噪声 。 DDPM 的采样公式是通过计算后验
并用 替换 得到的: 其中
, 通常设为 或 。
这个采样步骤是随机的 (Stochastic),因为每一步都加入了新的高斯噪声
DDIM 的核心思想
DDPM 必须严格遵循马尔可夫链,一步一步逆转。训练时用了 1000 步加噪,生成时就得跑 1000 步去噪。DDIM的目标则是:能不能不用 1000 步,而是 50 步甚至 10 步就生成图片。
**DDPM 的逻辑: 从
DDIM 的逻辑: 只要保证边缘分布
推导 DDIM 公式
步骤 1:从
根据公式
在采样阶段,我们不知道真实的
这一步为我们提供了从
步骤 2:定义
根据扩散模型的定义,无论我们怎么采样,生成的
翻译成代数表达式,则意味着
所以,我们的总方差预算是
DDIM 的想法是:尽量复用
所以,DDIM 把这个“总噪声项”拆成了两部分:
- 已知的噪声:
(在 里观测到的噪声)。 - 未知的随机噪声:
(一个全新的高斯白噪声, )。
使用待定系数法,假设“总噪声项”是这两者的线性组合。我们可以设两个系数
把这个组合代入方差公式。 因为
又因为总方差预算是
所以我们可以得到方程:
现在我们有两个未知数
为了确定系数,DDIM 引入了一个超参数
这意味着我们把“随机噪声”的方差直接指定为
既然
将解出来的系数
- 均值部分:
- 噪声部分:
- 系数
: - 系数
:
- 系数
于是就得到了 DDIM 的公式:
步骤 3:设定
DDIM并不需要关心前向过程是怎么走的,只需要保证边缘分布对就行,所以我们设置
公式变为:
这个公式十分直观:
步骤 4:代入
现在,我们将步骤 1 中
为了便于计算,我们把
的系数: 的系数:
整理后,我们就得到了 DDIM 的确定性采样公式:
这就是 DDIM 的核心公式。给定
总结
DDPM:
DDIM:
DDIM 的推导本质上是将 DDPM 的随机马尔可夫过程,泛化为了一个包含确定性非马尔可夫过程的家族。这个家族由
