Lecture 1 - Diffusion
1. 问题设定与核心直觉
图像生成系统的全貌
学习扩散模型之前,先把图像生成系统拆成几个部分:
- Generation paradigm:模型如何从初始状态逐步得到图像;
- Conditioning:如何用文本等条件引导生成;
- Model architecture:U-Net、Diffusion Transformer 等网络如何表示生成过程;
- Training and post-training:如何训练、对齐和蒸馏模型;
- Evaluation:如何评价图像质量与条件一致性。
这里先只讨论 generation paradigm。常见的三条路线是 Diffusion、Score Matching、Flow Matching。本讲聚焦 Diffusion,而且暂时不输入 prompt,只研究 unconditional generation。
我们的目标不是背诵所有推导,而是回答三个问题:公式为什么这样设计、它解决了什么困难、它怎样导向下一个模型。扩散模型文献的符号约定非常混乱,例如时间可能写成 或
,方向也可能相反;本文统一采用 DDPM 常见的离散时间记号。
把生成写成概率问题
给定来自未知数据分布的训练样本
希望训练一个生成模型,使它能够产生新的、同样来自该分布的图像。
我们希望训练一个能够从该分布产生新样本的模型。整条推理主线是:
从简单高斯噪声出发
↓
定义逐步加噪的 forward process
↓
学习逐步去噪的 reverse process
↓
用 ELBO 将最大似然转化为可训练目标
↓
得到简单的 noise prediction loss
↓
分析 DDPM 推理过慢的问题
↓
用 DDIM 去除步间随机性并进行跳步采样
今天最重要的两个模型是:
- DDPM(Denoising Diffusion Probabilistic Models):建立扩散模型的训练与随机反向采样范式;
- DDIM(Denoising Diffusion Implicit Models):在保持训练目标兼容的前提下,构造确定性的跳步采样过程。
学习目标
- 为什么扩散模型从 Gaussian noise 开始?
- Forward process 为什么采用这种均值和方差?
- 为什么训练时可以一步得到任意
?
- Maximum likelihood 为什么会导向 ELBO?
- ELBO 为什么最终能简化成 noise prediction MSE?
- 为什么 DDPM 训练方便,但 inference 很慢?
- DDIM 如何保持 marginals、改变 joint process,并实现 deterministic sampling?
- 为什么“去除 stochasticity”和“跳步”是两个先后发生的动作?
为什么从噪声开始?
不要急着看公式。先问:为什么生成模型普遍从 noise 开始,而不是从一张固定的白色画布开始?有三个原因:
- 容易采样:标准高斯分布
可以直接采样;
- 天然包含随机性:同一模型从不同初始噪声出发可以产生不同图像;
- 高斯分布性质良好:线性组合、条件分布和 KL divergence 都有易处理的闭式形式。
现在假设生成过程本身是 deterministic 的。如果每次都从同一张白色画布出发,模型就会反复走向同一个终点,无法产生多样样本。初始高斯噪声既容易采样,也提供了随机初值。后面我们会看到,即使 DDIM 的中间步骤完全确定,只要改变 ,仍然可以生成不同图像。
图像本身可以看成高维向量。若图像尺寸为 ,包含 RGB 三个通道,则
扩散模型通常使用各向同性高斯(isotropic Gaussian):
即每个方向具有相同方差,噪声维度之间相互独立。请注意:独立性假设针对人工采样的 noise,不是说真实图像像素彼此独立;真实图像显然包含很强的空间相关性。
可以把生成想象成雕塑:从没有清晰结构的材料出发,经过一系列 refinement 逐步形成目标。这个类比强调“逐步形成结构”,并不是说图像真的预先存在于噪声里。
怎样把去噪变成一个可学习问题?
DDPM 包含两个方向相反的过程:
- Forward process:人为定义,从数据逐步加入高斯噪声;
- Reverse process:由模型学习,从噪声逐步恢复数据。
Forward: x_0 -> x_1 -> ... -> x_T ≈ Gaussian noise
Reverse: x_T -> x_{T-1} -> ... -> x_0
Forward process 完全由我们规定,不需要训练;训练的目标是学习 reverse transition。
请牢牢记住这组分工:forward process 中的 是“我们知道并定义的”,reverse process 中的
是“我们想学习的”。DDPM 的核心设计,是把一个困难的 noise-to-image 直接映射拆成大量局部、较容易学习的去噪问题。
2. DDPM:前向与反向过程

课件这张图把 forward process 的方向画得很直观: 是干净图像,经过重复的
转移后,末端
接近纯噪声。反向过程则由模型学习,沿相反方向逐步恢复图像。
Forward Process:逐步加噪
单步转移
在第 步,DDPM 定义:
等价的重参数化形式为:
这里:
轻微衰减已有信号;
控制新加入的高斯噪声;
称为 noise schedule。
一种常见设计是让噪声日程逐渐增大:
为什么要关心 noise schedule?在靠近数据的低噪声阶段,模型主要恢复纹理和局部细节;在靠近纯噪声的高噪声阶段,模型更需要判断图像的整体形状和粗粒度结构。因此,noise schedule 会直接影响不同尺度学习任务的分配。
经过足够多步后,原图的信息逐渐消失:
为什么均值和方差这样设计?
如果只不断加入噪声,整体方差会持续增长。DDPM 同时缩放上一时刻的样本,使单步更新保持受控的方差。这种设计称为 Variance Preserving(VP)。
由于独立高斯变量之和仍是高斯,并且独立变量的方差可以相加:
当 时,仍有
。这正是 variance preserving 设计的核心直觉。
任意时刻的闭式采样
定义:
利用高斯分布的闭包性质,可以把多步加噪合并为:
即:
怎样理解这个结果?先展开两步更新,再把两个独立高斯噪声的加权和合并成一个高斯变量;继续递推后, 被写成
。你不必记住每行中间代数,但必须理解:多步 Gaussian transition 可以压缩为一个 marginal。
理解检查:既然可以一步采样
,为什么生成时还不能一步从
回到
?因为闭式公式属于我们已知的 forward process;反向条件分布仍然未知,必须由模型逐步近似。
这个公式是训练效率的关键:训练时不需要真的执行 次前向加噪,可以从
一步得到任意
。
Reverse Process:学习逐步去噪
生成时需要从 走回
。模型参数化反向条件分布:
为什么可以使用高斯分布近似反向转移?当 forward process 每一步加入的噪声很小,局部的反向条件分布也可以近似为高斯。因此,神经网络只需要预测反向高斯的参数,或预测可以等价转换为这些参数的量。
最终目标仍是最大化数据的 log-likelihood:
困难在于, 需要对所有中间隐变量
积分,直接计算不可行。课程由此引入 variational formulation。
直接计算 相当于把所有可能的“噪声到图像”轨迹都加总起来。每个
都是高维向量,可能轨迹数量巨大,所以这种 marginalization 是 intractable 的。
3. 从似然到噪声预测
这是本讲最重要的推导。我们不追求把每一行代数展开到底,而要看清四个逻辑台阶。
构造 Evidence Lower Bound
引入已知的前向分布 ,并利用 Jensen's inequality,可以得到:
右侧称为 ELBO(Evidence Lower Bound)。最大化 ELBO 等价于最大化一个可计算的 log-likelihood 下界。
真正关心的量难以计算时,我们寻找一个容易计算、同时尽可能贴近它的 lower bound。这里先把已知的 乘进再除掉,然后使用 log 的 concavity 和 Jensen's inequality。关键变化是:不再枚举所有可能轨迹,而是在已知如何采样的 forward process 轨迹上计算期望。
展开 ELBO
利用 Markov factorization:
ELBO 可以拆成若干 KL divergence 和端点项。其核心中间项比较:
与
前者是已知 forward process 导出的真实后验,后者是需要学习的反向模型。
KL divergence 在这里不是抽象的“分布距离”装饰项,而是把训练目标变成一个明确比较:给定训练时可见的 clean image 和 noisy image
,真实的较少噪声分布
,应当接近模型生成的
。
证明各项可计算
要证明这些项可计算,只需要两个工具:
- Bayes' rule + Markov property:推导
;
- Gaussian properties:前向过程与条件后验都具有高斯闭式形式。
Bayes' rule 给出:
由于 forward process 是 Markov process:
右侧各项都来自已知的 forward process,并且都是 Gaussian,因此真实后验可计算。请区分训练和推理:训练时我们知道 ,所以可以使用该后验作为学习目标;inference 时没有
,这正是需要
的原因。
真实后验为:
由于模型反向分布也假设为高斯,二者之间的 KL divergence 可以解析计算。
得到噪声预测目标
将 Gaussian-to-Gaussian KL 展开并重新参数化后,DDPM 论文采用的简化训练目标可以写成预测构造 时使用的噪声:
严格展开 ELBO 时,各 timestep 的回归项带有由 variance schedule 决定的权重。DDPM 作者比较了不同权重方案,发现直接令权重为 的 unweighted objective 也能很好工作,于是得到上面的
。因此它是对 variational objective 的实用简化,而不是与完整 ELBO 逐项完全相同。
这一步是整段推导的落点:
Maximum likelihood
↓ Jensen's inequality
ELBO
↓ factorization
KL divergence between reverse transitions
↓ Bayes + Gaussian identities
tractable Gaussian KL
↓ reparameterization
simple noise prediction MSE
现在解释 :
是从
直接构造
时实际采样的标准高斯噪声,
是模型根据 noisy image 和 timestep 对该噪声的估计。看起来模型只是在做 noise prediction,但这个简单目标来自对生成模型 likelihood 下界的系统推导。
理解检查:模型为什么预测噪声,而不是直接预测
?不是因为只能这样做,而是因为在这种参数化下,Gaussian KL 可以转化为稳定、简单的监督回归。预测
、score 或 velocity 也可以构成其他等价或相关参数化。
4. DDPM:训练与推理

这张课件图对应训练时的一次迭代:随机采样 、
和
,用闭式公式一次得到
,再让网络预测实际加入的噪声。它解释了为什么训练不需要真的执行
次加噪。
每次训练迭代包含三步。
采样训练变量
一步构造带噪样本
预测噪声并反向传播
将 输入网络,得到
,优化:
训练时随机采样 ,使同一个网络学会处理从接近干净图像到接近纯噪声的所有噪声强度。为什么网络输入中必须包含
?同一张 noisy image 本身不足以明确当前 noise level,而 timestep 告诉网络“它有多噪”,使模型能够校准应当预测和移除多少噪声。
推理配方
从纯噪声开始
从
迭代到 ![formula]()
常见的噪声预测参数化更新为:
其中:
用于注入反向采样的随机性;在最后一步通常不再加噪声。
每一步包含两类作用:
估计并移除当前噪声;
保持反向过程的 stochasticity。
得到最终图像
完成全部 次网络前向后得到
。DDPM 的训练很高效,因为可以随机抽取单个
;但推理必须顺序执行许多步骤,无法并行跨越时间维度。
5. DDIM:加速采样
原始 DDPM 使用的 约为
的数量级。相较于通常只需一次 forward pass 的 VAE/GAN,DDPM 需要将类似规模的网络串行调用约一千次,单个样本可能从百毫秒级放大到分钟级。原因不是每次网络计算特别复杂,而是:
需要大量串行 Neural Function Evaluations。
我们先尝试两个最直接的办法,并看看它们为什么失败:
- 通过递推推导跨步公式:虽然可以展开多个更新,但中间仍需要多次调用
,没有减少计算;
- 直接删掉时间步:大跨度更新与每一步的随机噪声叠加,会明显破坏生成质量。
这促使问题重新表述为:能否保持 DDPM 训练所依赖的 marginals,同时构造随机性更小、可以安全跳步的生成过程?
怎样在不重新训练的情况下加速?

课件中的 表示保留下来的 timestep 子序列。DDIM 的关键不是简单删掉步骤,而是为较大的时间跨度推导一致的更新,并可令随机项为零。
关键观察
DDPM 的训练 loss 依赖任意时刻的边际分布:
而不要求必须使用原始 forward Markov chain 的完整 joint distribution。
因此,可以构造另一族过程:
- 保持每个
与 DDPM 相同;
- 改变不同时间步之间的条件依赖;
- 让反向生成过程可以变成确定性。
这解释了 DDIM 中 Implicit 的含义:模型保留与 DDPM 兼容的 marginals,但不再显式绑定于原来的 Markov forward transition。
DDPM 的 Probabilistic 强调相邻生成步骤之间仍有随机采样;当 时,DDIM 的随机性只来自初始
,后续映射不再显式注入随机变量,因此称为 Implicit。这不是说模型失去了概率生成能力,而是随机性被集中到了初始条件中。
先预测干净图像
由
可得到当前时刻对干净图像的估计:
一般 DDIM 更新
对更早时刻 ,可以构造:
其中 ,
控制 inter-step stochasticity。
当
时,更新变成确定性:
确定性意味着:给定相同的初始噪声 和模型,整条采样轨迹固定,不再在每一步加入新的随机变量。
请停一下:到这一步为止,我们还没有跳步,只是先构造了一个 deterministic generation process。确定性是后续稳定扩大步长的前提,而不是跳步本身。
为什么确定性有助于跳步?
如果仍然保留较强的 inter-step stochasticity,大跨度更新会同时积累模型误差和随机扰动。DDIM 移除步间随机性后,可以直接选取子序列:
只在这些时刻调用网络,从而减少 NFE。
若子序列长度为 ,原始过程需要
步,则有效加速比为:
现在才能把 DDIM 的方法完整概括为:
- 选择与 DDPM 训练目标兼容的建模假设;
- 去除 inter-step stochasticity;
- 跳过部分时间步,实现加速采样。
速度与质量权衡
论文展示的范围可达到约 到
,实践中更常见的选择约为
到
。跳过越多步骤,生成质量越容易下降。
课程引用 DDIM 在 CIFAR-10 上的实验趋势:
| Speed-up | |||||
|---|---|---|---|---|---|
| FID 相对影响 | baseline |
这里的数字来自特定模型和实验设置,不应当视为所有扩散模型的固定规律。真正需要保留的结论是:
- 适度跳步可以显著提速,质量损失较小;
- 极端跳步会快速恶化 FID;
- timestep schedule 是重要的 inference hyperparameter;
- 在大跨度跳步时保留较强随机性,通常比确定性更新更容易损害质量。
DDPM 与 DDIM 的关系
| 维度 | DDPM | DDIM |
|---|---|---|
| 训练模型 | Noise predictor | 可复用同一个 noise predictor |
| 训练目标 | Noise prediction / variational objective | 与 DDPM 兼容,无需重新训练 |
| Forward joint process | Markov | 可为 non-Markov |
| Marginal |
指定的高斯边际 | 与 DDPM 保持相同 |
| 反向采样 | Stochastic | 可设为 deterministic |
| 时间步 | 通常逐步采样 | 支持选取时间步子序列 |
| 优点 | 概率建模清晰、生成质量高 | 推理快、相同初始噪声下可复现 |
| 代价 | NFE 高、推理慢 | 速度和质量需要权衡 |
DDIM 不是新的训练范式,而是对已有 DDPM 模型采样过程的重新设计。
6. 总结与速查
建模链
先人为定义一个容易分析的破坏过程,再学习它的逆过程。
训练链
简单的噪声预测 loss 并非经验技巧,而是 variational inference 与高斯结构共同导出的结果。
加速链
DDIM 的核心不只是“少走几步”,而是先改变过程结构,使跳步具有合理依据。
把 DDIM 的推理重新走一遍
最后,我们把 DDIM 的 thought process 从头走一遍:
- 回到 DDPM loss,找到使训练目标成立的核心对象
;
- 构造一族新的
,保持与 DDPM 相同的 marginals;
- 令
,使
对相邻生成步骤成为 deterministic mapping;
- 在此基础上选择长度为
的 timestep subsequence,把推理从
步减少为
步。
这比“DDIM 就是 DDPM 少采几步”更准确:same marginals 保证训练兼容,deterministic transition 改善大步更新,subsequence 才真正带来加速。
建议记住的公式
DDPM 单步前向过程
任意时刻直接加噪
简化训练目标
干净图像预测
确定性 DDIM 跳步
容易混淆的几点
- Forward process 不需要学习。 它是人为选择的高斯加噪过程。
- Noise prediction 是参数化方式。 模型预测噪声后,可以转换为 reverse mean、
prediction 或 score prediction。
- DDPM 训练不需要逐步加噪。 闭式 marginal 允许直接采样任意
。
- DDPM 慢主要发生在 inference。 训练可以随机抽取单一时刻,但生成需要顺序积分整条轨迹。
- DDIM 不是直接粗暴删除步骤。 它先构造与 DDPM 具有相同 marginals 的过程,再通过降低随机性实现跳步。
- Deterministic 不代表没有多样性。 多样性仍来自不同的初始噪声
;确定性只表示给定
后不再注入额外随机性。
- 更快不等于无损。 DDIM 的 timestep schedule 和采样步数决定速度与质量的权衡。
- Isotropic Gaussian 描述的是 noise。 它不意味着真实图像像素相互独立。
是模型输入,不只是训练循环编号。 它向网络提供当前 noise level。
- Simple loss 是实用简化。 完整 ELBO 会产生 timestep-dependent weighting,DDPM 常使用权重为
的简化目标。
一句话总结
DDPM 通过“人为加噪 + 学习反向去噪”把图像生成转化为多步高斯概率过程,并由 ELBO 推导出简单的噪声预测训练目标;DDIM 则利用训练仅依赖 marginals 的事实,改变时间步之间的 joint process、移除步间随机性,从而实现确定性的跳步加速采样。
浙公网安备 33010602011771号