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

DDIM和DDPM之 间的区别与联系

核心关系概述

首先,要理解DDIM并不是一个全新的模型,而是DDPM的一个精巧的重新参数化和扩展。它们使用完全相同的训练目标和方法,因此你可以用一个训练好的DDPM模型直接来运行DDIM的采样算法,而无需重新训练。

DDIM的核心贡献是:发明了一种新的、非马尔可夫链的扩散过程,从而实现了更高效、更确定性的采样


详细区别对比

我们从几个维度来对比它们:

特性DDPMDDIM
扩散过程马尔可夫链 (Markov Chain)。每一步都严格依赖于前一步。非马尔可夫链 (Non-Markovian)。设计了一种更灵活的路径,当前状态可以依赖于更早的历史状态。
采样速度。必须严格地从 T 步一步步迭代到 1 步(例如1000步)。。允许跳步采样。可以用远少于训练步数(如50步或100步)的步骤生成高质量样本。
采样确定性随机 (Stochastic)。反向过程的每一步都注入了新的随机高斯噪声。确定性 (Deterministic) 或随机。可以通过一个参数(η)来控制随机性。当 η=0 时,过程完全确定。
生成过程是一个随机过程,即使输入相同的初始噪声,每次生成的结果都不同。η=0 时,是一个确定性映射,输入相同的初始噪声,输出结果完全相同。
数学基础基于变分推断 (Variational Inference),推导出一个去噪匹配目标。基于非马尔可夫假设,重新推导了逆向过程的概率分布,使其与DDPM的训练目标兼容。

核心问题解答

1. DDIM有把DDPM中的噪声设置为零吗?体现在哪里?

答案是:是的,但这是在采样(推理)阶段,而不是训练阶段。

在DDPM的反向采样过程中,每一步的关键操作是:

  1. 预测出当前步的噪声 ε_θ
  2. 用这个预测的噪声和公式计算出 x_{t-1}
  3. 这个计算公式里包含一项随机采样的高斯噪声 z(如下公式中的 σ_t z)。正是这项噪声使得DDPM的生成过程是随机的。

DDPM的反向采样公式(简化):
x_{t-1} = (1/√α_t) * (x_t - ((1-α_t)/√(1-ᾱ_t)) * ε_θ) + σ_t z
(其中 z ~ N(0, I)σ_t 是方差项)

DDIM的核心洞察是:他们发现,只要设计一个特殊的非马尔可夫扩散过程,这个逆向过程的分布就可以有多种选择。他们从中选择了一个方差更小的版本。

DDIM的反向采样公式(重新参数化后):
x_{t-1} = √(ᾱ_{t-1}) * ( (x_t - √(1-ᾱ_t) * ε_θ(x_t, t)) / √(ᾱ_t) ) + √(1-ᾱ_{t-1} - σ_t²) * ε_θ(x_t, t) + σ_t z

现在,重点来了:

  • 在这个公式中,σ_t 被定义为 η * √( (1-ᾱ_{t-1})/(1-ᾱ_t) ) * √(1 - ᾱ_t/ᾱ_{t-1}) )
  • 当我们设置 η = 0 时,σ_t 就等于 0
  • 一旦 σ_t = 0,上面公式的最后一项 σ_t z消失了

体现在哪里?
体现在反向采样算法的代码实现中。 当使用DDIM采样且设置 eta=0 时,代码中生成随机噪声 z 并将其与 sigma_t 相乘的那一行,实际上是在加一个零向量,相当于没有添加任何新的随机噪声。整个反向过程只依赖于初始的随机噪声 x_T 和神经网络确定的预测 ε_θ

所以,DDIM并没有“删除”DDPM中的噪声,而是通过数学推导提供了一个选项,允许我们将采样过程中额外添加的随机噪声项的大小设置为零

2. 反向采样的过程为什么说DDIM的是确定的?

正是因为上面一点。

当设置 η = 0 时,DDIM的反向采样过程不再注入任何随机性。整个过程的每一步计算都是确定的:

  1. 从纯噪声 x_T 开始(这是一个随机起点,但一旦固定就不变)。
  2. 神经网络 ε_θ 是一个确定的函数(模型权重固定)。
  3. 反向采样公式 x_{t-1} = f(x_t, ε_θ) 也是一个确定的计算,不含随机项 z

因此,给定一个固定的初始噪声 x_T,整个反向过程就像沿着一条确定的轨迹下滑,最终必然会到达同一个终点 x_0。这使得DDIM的采样成为一个确定性映射(Deterministic Mapping)。

这与DDPM形成鲜明对比:DDPM即使在相同的 x_T 下,每一步加入的随机噪声 z 都会不同,导致每次采样会走上不同的轨迹,从而产生不同的结果。

这种确定性有什么好处?

  1. 样本可重现(Reproducibility):对于同一个“种子”(初始噪声),你总能生成完全一样的图像,这对于研究和调试非常有用。
  2. 隐空间插值(Latent Interpolation):因为反向过程是一个 deterministic mapping,你可以将初始噪声 x_T 视为图像的隐编码(Latent Code)。对两个不同的 x_T 进行插值,再通过DDIM解码,可以得到语义上平滑过渡的图像。而在DDPM中,由于过程的随机性,这种插值是不稳定、不连续的。
  3. 更快的采样:确定性只是DDIM的一个特性,它另一个巨大优势是跳步采样。因为它不依赖于马尔可夫链,我们可以设计一个子序列 {τ_1, τ_2, ..., τ_S}(其中 S << T)来进行反向过程,大步长地“跳”着生成图像,大大加速了采样速度,且质量损失很小。

总结

  • DDIMDDPM 的“灵魂伴侣”,它们共享训练过程。
  • DDIM通过改变推理(采样)过程,提供了一个方差不添加(η=0) 的选项,从而实现了确定性采样
  • 这个确定性采样过程使得生成过程可重现、可插值,并且通过与跳步采样结合,实现了质量和速度的卓越权衡

可以说,DDIM的提出极大地推动了扩散模型的应用,因为它解决了DDPM最大的痛点——采样速度过慢。


文章转载自:

http://lb5beMXX.yskrg.cn
http://kkzbRDhD.yskrg.cn
http://y8H3rhMr.yskrg.cn
http://5XE4YSDi.yskrg.cn
http://TI5D5SIC.yskrg.cn
http://YXDAvZrf.yskrg.cn
http://FqEmx3Om.yskrg.cn
http://irvQW913.yskrg.cn
http://EDGDGqMf.yskrg.cn
http://uQQJRwHG.yskrg.cn
http://zJLrvvm2.yskrg.cn
http://pElCCDES.yskrg.cn
http://Gy4tPDS9.yskrg.cn
http://LLsqPR3w.yskrg.cn
http://fz0ZNPul.yskrg.cn
http://HhuTGECy.yskrg.cn
http://B8f0Udd5.yskrg.cn
http://Q9n96Djb.yskrg.cn
http://Jcmahxao.yskrg.cn
http://vnFT3d97.yskrg.cn
http://yodZn6dc.yskrg.cn
http://EzU7T8Vq.yskrg.cn
http://e1Kf5gAy.yskrg.cn
http://xoOJDWrz.yskrg.cn
http://UQnSZvdh.yskrg.cn
http://2NpF1flH.yskrg.cn
http://4RjQOeYC.yskrg.cn
http://mVGrUmkz.yskrg.cn
http://mnv623WX.yskrg.cn
http://tTfO5LzR.yskrg.cn
http://www.dtcms.com/a/382309.html

相关文章:

  • dumpsys power 简介
  • NO.10:氖:霓虹灯
  • TA-VLA——将关节力矩感知融入VLA中:无需外部力传感器,即可完成汽车充电器插入
  • Ubuntu 系统中 Miniconda 虚拟环境(以 SGlang 为例)的备份与还原详细总结
  • Q2(门式)起重机司机实操考点有哪些?
  • leetcode58:最后一个单词的长度(尾指针逆向扫描,结合151反转字符串对比)
  • 链表运用到响应式中
  • 自动驾驶中的传感器技术46——Radar(7)
  • Windows_MediaFeaturePack_x64_1903_V1.msu
  • Class56 束搜索
  • 【Redis#10】渐进式遍历 | 数据库管理 | redis_cli | RES
  • Java面试问题记录(三)
  • 在Excel和WPS表格中批量删除数据区域的批注
  • 商品库存扣减方案
  • smartctl Current_Pending_Sector 硬盘待处理扇区
  • 并发和高并发
  • 科技信息差(9.13)
  • 文档长期不更新导致知识过时如何解决
  • Python学习-day9 字典Dictionary
  • Ubuntu22.04更换阿里镜像源,ubuntu更换源
  • 仓颉编程语言青少年基础教程:Struct(结构)类型
  • C语言数据结构实战:从零构建一个高性能的顺序栈
  • 数据链路层总结
  • Linux线程:基于环形队列的生产消费模型
  • 【Ambari监控】高版本 DataGrip 无法使用 Phoenix 驱动
  • 1.架构师——大纲
  • 粒子群算法模型深度解析与实战应用
  • JDK 新特性
  • 数据库可视化面板下载
  • 深入解析:preload与prefetch的区别及最佳实践