之前介绍了DDPM的稳定扩散模型理论基础。
https://blog.csdn.net/liliang199/article/details/156280004
然而,DDPM的问题时去噪过程严格按照反向马尔可夫链,运行时间长。DDIM将扩散过程参数化为非马尔可夫过程,允许跳步生成。
这里从DDPM回顾开始,逐步深入到DDIM的核心思想与推导,探索DDIM如何缩短去噪过程。
所用案例修改和参考自网络资料。
1 DDPM回顾
DDPM (Denoising Diffusion Probabilistic Models)框架包含两个过程。
1.1 前向过程(扩散过程)
前向过程是一个固定的马尔可夫链,逐步向数据添加高斯噪声。
其特性是,我们可以直接采样任意时刻 的加噪数据:
1.2 反向过程(生成过程)
反向过程是一个参数化的马尔可夫链,从噪声开始,逐步去噪以生成数据。
训练目标是预测所加的噪声:
DDPM 的核心问题:
反向过程,本质上是马尔可夫过程,反向过程的每一步都严格依赖于上一步,无法跳跃。
这导致采样数独慢,生成一张图片需要完整运行(通常为1000)步反向马尔可夫链。每一步都需要神经网络的评估,耗时很长。
2 DDIM改进
DDIM (Denoising Diffusion Implicit Models)是针对DDPM核心问题的改进版本。
DDPM训练目标只定义了边缘分布,但并没有唯一确定前向过程
的形式。
这意味着,只要能够保证从到
的边缘分布一致,就可以设计非马尔可夫的前向过程。相应地,可以推导出一个确定性的、更高效的反向生成过程。
主要表现为
1)非马尔可夫前向过程,打破了DDPM的马尔可夫链假设,允许更灵活的数据生成路径。
2)确定性生成过程,当方差设为0时,DDIM的反向过程可以是确定的。这意味着给定相同的初始噪声,总是会生成相同的样本
,这使DDIM成为一个隐变量模型。
3)加速采样,得益于非马尔可夫的设计,可以通过跳步,在子序列上进行采样,从而大幅减少采样步数(1000步减少到50步),生成质量几乎看不出差异。
3 DDIM详细推导
3.1 构建非马尔可夫前向过程
这里想要一个前向过程,可以是非马尔可夫过程,只需要满足边际分布与DDPM相同:
所以这里考虑一个更一般的分布族:
其中,DDIM定义反向条件概率(注意,这是前向过程的"反向"):
这个定义是推导的关键。这里进一步验证其合理性:
均值构造:
我们希望从和
预测
。
已知。
那么,应该由
和一部分噪声构成。
均值的第一项是的成分,第二项是
中噪声成分的缩放。
方差:
是一个自由参数,控制着过程的随机性。
可以证明,对于任何,由上述
构建的联合分布
,其边际分布
确实等于DDPM的边际分布。
证明具体过程参考如下链接。
期望一致性参考链接
https://blog.csdn.net/liliang199/article/details/156543402
方差一致性参考链接
https://blog.csdn.net/liliang199/article/details/156544845
3.2 关注特殊选择推理
另外需要关注特殊选择
对于DDIM,后验分布为
对于DDPM,真实后验分布为:
其中:
这里进一步对比DDIM和DDPM的后验分布
当时,
此时DDIM和DDPM的方差一致,这里进一步验证均值。
为简化分析,先分析DDIM均值的子项
进一步简化分析
进一步
因此有
进一步有
开方得到系数
代入DDIM均值公式
整理的线性组合为A和B,
则
因为,简化A的表达式
因为
所以
对比DDIM均值的A项和B项,同DDPM的对应项完全一致。
故重新整理如下
当时,前向过程变为马尔可夫的,且与DDPM的前向过程一致。
当时,前向过程变为确定性(给定
和
,
唯一确定),这是DDIM关注的设定。
3.3 推导生成反向过程
在生成时不知道真实的。因此,我们像DDPM一样,使用训练好的去噪网络
来预测它。
由,可以得到对
的估计:
其中是网络预测的
时刻的噪声。
现在,将这个估计值代入之前定义的
中,就得到了生成过程的转移概率:
将表达式展开:
这就是DDIM 的通用采样更新公式。
3.4 关键参数选择与解释
噪声尺度:
-
当
时,生成过程与DDPM完全相同。
-
当
时,生成过程变成完全确定性的(除了初始噪声
)。这就是通常所说的DDIM采样器。此时的更新公式为:
这个公式几何解释:它沿着(预测的干净数据)和
当前点之间的某个方向进行插值。
并且DDIM与DDPM训练兼容,直接使用在DDPM目标下训练好的模型。
DDIM推导过程并未修改训练目标,这是DDIM最巧妙的一点,它解耦了训练和采样过程。
3.4. 加速采样-子序列采样
由于前向过程的边际分布是已知的,不需要按顺序进行采样。
选择一个长度为的单调递增子序列
,其中
。
将生成过程重新参数化到这个子序列上。核心是保证边际分布保持不变。
DDIM 加速采样算法 (确定性,)示例如下。
step1: 采样初始噪声
。
step2. For
to
:
用网络预测噪声:
预测
:
生成下一步:
step3. 得到最终样本
。
通过选择(例如50步),实现10-20倍的采样加速,且质量与DDPM的1000步采样相当。
4 总结对比
4.1 DDIM vs DDPM
| 特性 | DDPM | DDIM |
|---|---|---|
| 前向过程 | 马尔可夫链 | 非马尔可夫过程 |
| 反向过程 | 随机(马尔可夫) | 可确定性( |
| 训练目标 | 完全兼容DDPM模型,无需重新训练 | |
| 采样速度 | 慢(需满步T) | 快(可在子序列上跳跃采样) |
| 样本一致性 | 随机 | 确定性映射(相同隐变量得相同样本) |
| 理论贡献 | 奠定了扩散模型基础 | 解耦训练与采样,揭示了扩散模型非马尔可夫本质 |
4.2 DDIM核心贡献
DDIM重新审视了扩散模型的变分下界,发现并利用了对前向过程非唯一性的观察。
精心设计一个非马尔可夫但保持相同边际分布的前向过程,推导出了一个确定、可加速生成过程。
DDIM推动了扩散模型的实际应用,使其采样效率可与GANs等竞争,同时保持了训练的稳定性和样本多样性。
reference
如何通过改进采样策略来降低扩散模型的推理时间成本
https://bbs.huaweicloud.com/blogs/453051
SD稳定扩散模型理论基础的探索
https://blog.csdn.net/liliang199/article/details/156280004
DDPM后向去噪过程详细推导
https://blog.csdn.net/liliang199/article/details/156343504
全期望公式在DDIM中的应用实例
https://blog.csdn.net/liliang199/article/details/156543402
全方差公式在DDIM中的应用示例