生成模型的核心任务是从数据分布中采样。传统方法如变分自编码器( VAE)和生成对抗网络( GAN)通过显式的编码器-解码器结构或对抗训练实现这一目标。然而, 2020 年以来,扩散模型( Diffusion Models)以其卓越的生成质量和训练稳定性迅速成为生成式 AI 的主流范式。从 DALL · E 2 到 Stable Diffusion,从图像生成到文本到图像,扩散模型正在重塑我们对生成式 AI 的理解。
但扩散模型的成功背后隐藏着深刻的数学结构:它们本质上是偏微分方程( PDE)的数值求解器。当我们向数据中添加高斯噪声时,我们实际上在求解一个前向扩散过程,其概率密度演化由 Fokker-Planck 方程控制;当我们学习去噪模型时,我们实际上在学习 Score 函数,其梯度引导着反向扩散过程;当我们使用 DDPM 或 DDIM 采样时,我们实际上在数值求解一个随机或确定性常微分方程。这种 PDE 视角不仅揭示了扩散模型的数学本质,还为理解其收敛性、设计新的采样算法、以及扩展到条件生成等任务提供了统一框架。
本文将系统性地建立这一理论框架。我们从经典热方程出发,介绍 Fick 定律、高斯核、傅里叶变换等基础工具;然后引入随机微分方程( SDE)和 Fokker-Planck 方程,展示如何将扩散过程形式化为概率密度的演化;接着聚焦 Score-Based 生成模型,推导 Score Matching 目标函数,建立 Langevin 动力学与采样过程的联系;最后深入 DDPM 和 DDIM,展示它们如何作为 SDE/ODE 的离散化方案,并通过四个完整实验验证理论预测。
热方程与扩散过程:从 Fick 定律到高斯核
为什么从热方程开始?
扩散模型( Diffusion Models)是当前最强大的生成模型之一(生成图像、音频、视频)。但它的名字"扩散"从何而来?答案要追溯到 19 世纪的物理学——热传导方程。
理解这个连接,你就能理解为什么扩散模型"工作": - 前向过程:逐渐加噪声(就像热量扩散,让温度场变均匀) - 反向过程:逐渐去噪(就像时间倒流,从均匀温度恢复原始热源)
🎓 直觉理解:热量如何扩散
生活场景:想象一根金属棒,左端是沸水( 100 ° C),右端是冰水( 0 ° C)。
- 初始(
):温度分布陡峭,左边烫右边冷 - 一分钟后:热量从左向右传递,温度差变小
- 长时间后(
):整根棒温度趋于均匀( 50 ° C)
这就是扩散:从非均匀状态(有结构、有信息)到均匀状态(无结构、无信息)的自然演化。
数学描述:热方程
:位置 、时间 的温度 :热扩散系数(材料导热性) - 右边:热量从高温流向低温的速率( Laplace 算子衡量"弯曲程度")
物理直觉:
- 如果
: 是"凹的"(两边温度比中间高),热量会流入, 增加 - 如果
: 是"凸的"(中间温度比两边高),热量会流出, 减少 - 最终平衡:
(直线,均匀温度)
📐 半严格讲解: Fick 定律与热方程推导
步骤 1: Fick 第一定律(热流公式)
热量总是从高温流向低温,流速与温度梯度成正比: $$
q(x, t) = - $$
:热流密度(单位时间单位面积通过的热量) - 负号:热量从高温流向低温(梯度的反方向)
步骤 2:能量守恒(连续性方程)
一小段棒(从
步骤 3:合并得到热方程
把 Fick 定律代入连续性方程:
这就是热方程!
具体例子:高斯扩散
初始条件:点热源在原点,
解析解(高斯核):
$$
u(x, t) = (-) $$
观察:
:所有热量在原点(尖锐的 delta 函数) :热量扩散成高斯钟形曲线 越大,曲线越宽越平(方差 线性增长) :曲线无限宽,趋于均匀(能量守恒,总积分始终为 1)
与扩散模型的联系: - 前向过程:给图像逐渐加高斯噪声 = 热扩散(从有序到无序) - 时间反演:从噪声恢复图像 = 热方程的时间倒放(从无序到有序)
📚 严格推导
Fick 定律与扩散方程
扩散现象在自然界中无处不在:一滴墨水在清水中逐渐散开,热量从高温区域向低温区域传递,分子在浓度梯度驱动下运动。这些过程的数学描述都归结为扩散方程( diffusion equation),也称为热方程( heat equation)。
Fick 第一定律( 1855 年):扩散通量
$$
J = -D $$
其中
质量守恒:考虑空间区域
其中
由于区域
将 Fick 定律代入,得到扩散方程(一维形式):
高维形式:
其中
高斯核:扩散方程的基本解
扩散方程具有解析解,其基本解是高斯核( Gaussian kernel)。
一维情况:考虑初始条件
这是均值为 0 、方差为
高维情况:在
一般初始条件:对于任意初始分布
其中
物理意义: - 初始时刻的尖锐分布(如 Dirac
delta)随时间演化逐渐"扩散",方差增大 - 任意初始分布都可以视为 Dirac
delta 的线性组合,因此解是初始分布与高斯核的卷积 - 当
傅里叶变换与谱方法
扩散方程在傅里叶域中有简洁的形式,这为理论分析和数值求解提供了强大工具。
傅里叶变换:定义函数
逆变换为:
$$
f(x) = _{^d} (k) e^{2i k x} dk $$
关键性质: - 导数性质:
这是关于
物理解释: - 高频分量(大
数值求解:在傅里叶域中,扩散方程的解可以显式写出,这为高效数值方法提供了基础。对于周期性边界条件,可以使用快速傅里叶变换(
FFT)实现
随机微分方程与 Fokker-Planck 方程

It ô积分与随机微分方程
扩散过程可以自然地用随机微分方程( Stochastic Differential Equation, SDE)描述。这为理解扩散模型的随机性提供了严格框架。
布朗运动( Brownian Motion):标准布朗运动
It ô积分:对于适应过程
其中
关键性质: - 零均值:
随机微分方程:一般形式的 SDE 为:
$$
dX_t = (X_t, t) dt + (X_t, t) dW_t $$
其中
前向扩散 SDE:在扩散模型中,前向过程通常写为:
$$
dX_t = f(X_t, t) dt + g(t) dW_t $$
其中
Fokker-Planck 方程:概率密度的演化
Fokker-Planck 方程描述了 SDE 解的概率密度随时间的演化,是连接随机过程与 PDE 的桥梁。
定理( Fokker-Planck 方程):设
$$
dX_t = (X_t, t) dt + (X_t, t) dW_t $$
其概率密度
一维情况:
证明思路:对任意光滑测试函数
$$
d(X_t) = dt + (X_t,t) '(X_t) dW_t $$
取期望并利用
另一方面:
因此:
分部积分并利用
这验证了扩散方程与随机过程的等价性。
Kolmogorov 后向方程
Kolmogorov 后向方程描述了条件期望的演化,在扩散模型的采样过程中起关键作用。
定理( Kolmogorov 后向方程):设
边界条件:
物理解释: - 前向方程描述概率密度从初始时刻向前演化 - 后向方程描述条件期望从终端时刻向后演化 - 两者通过 Feynman-Kac 公式联系
在扩散模型中的应用:后向方程用于推导反向扩散过程的 SDE,这是 Score-Based 生成模型的理论基础。
Score-Based 生成模型:从 Score 函数到 Langevin 动力学

Score 函数:概率密度的对数梯度
定义( Score 函数):设
$$
s(x) = _x p(x) = $$
关键性质: - Score 函数与归一化常数无关:如果
Score Matching:学习 Score 函数
目标函数:给定数据分布
显式 Score Matching( ESM):最小化:
但
隐式 Score Matching( ISM):通过分部积分,可以证明:
其中
去噪 Score Matching( DSM):对数据添加噪声
切片 Score Matching( SSM):为了降低计算复杂度,可以只匹配 Score 函数在随机方向上的投影:
Langevin 动力学:用 Score 函数采样
Langevin 动力学:给定 Score 函数
$$
dX_t = s(X_t) dt + dW_t $$
离散化( Langevin MCMC):
$$
x_{t+1} = x_t + s(x_t) + z_t, z_t (0,I) $$
其中
理论保证:在温和条件下,当
几何直观: - Score 函数
前向扩散与反向采样
前向扩散 SDE:从数据分布
$$
dX_t = f(X_t, t) dt + g(t) dW_t, X_0 p_0 $$
反向扩散 SDE:根据 Anderson 的定理,反向过程满足:
$$
dX_t = dt + g(t) d{W}_t $$
其中
关键洞察: - 反向 SDE 的漂移项包含 Score 函数 -
如果我们能学习到每个时刻
DDPM 与 DDIM:离散化视角

DDPM:前向与反向过程的离散化
Denoising Diffusion Probabilistic Models (DDPM)( Ho et al., 2020)是最早成功的扩散模型之一,它将连续扩散过程离散化为有限步。
前向过程:定义离散时间步
$$
q(x_t | x_{t-1}) = (x_t; x_{t-1}, _t I) $$
其中
关键性质: - 可以解析地计算
$$
q(x_t | x_0) = (x_t; x_0, (1-{}_t) I) $$
其中
- 当
且 时, 的分布趋于标准高斯 。
反向过程:学习反向分布:
$$
p_(x_{t-1} | x_t) = (x_{t-1}; (x_t, t), (x_t, t)) $$
训练目标:最大化对数似然的下界,等价于最小化:
其中 $ x_t = x_0 +
与 Score Matching 的联系:可以证明, DDPM 的损失函数等价于加权 Score Matching:
其中
DDIM:确定性采样
Denoising Diffusion Implicit Models (DDIM)( Song et al., 2021)将 DDPM 的随机采样过程改为确定性过程,通过 ODE 求解实现快速采样。
关键观察: DDPM 的前向过程可以视为以下 SDE 的离散化:
$$
dX_t = -(t) X_t dt + dW_t $$
对应的概率流 ODE( Probability Flow ODE)为:
DDIM 采样:使用训练好的 Score 函数
$$
x_{t-1} = ( ) + s_(x_t, t) $$
优势: - 确定性:给定初始噪声,生成结果确定 - 快速采样:可以使用大步长,减少采样步数 - 可逆性:可以精确编码图像到潜在空间
连续时间视角的统一
SDE 形式:前向扩散 SDE:
$$
dX_t = f(X_t, t) dt + g(t) dW_t $$
反向 SDE:
$$
dX_t = dt + g(t) d{W}_t $$
ODE 形式(概率流 ODE):
数值求解器: - Euler-Maruyama: SDE 的显式欧拉方法 - Heun 方法: ODE 的二阶方法 - Runge-Kutta:高阶 ODE 方法 - 预测-校正:结合 SDE 和 ODE 的混合方法
采样质量与速度的权衡: - SDE 采样:随机性更好,但需要更多步数 - ODE 采样:确定性,可以大步长,但可能丢失细节 - 混合方法:在初始阶段使用 SDE 探索,后期使用 ODE 精炼
实验:从理论到实践

实验 1:一维扩散过程可视化
我们首先在一维情况下可视化扩散过程,验证理论预测。
设置:初始分布为混合高斯:
$$
p_0(x) = (x; -2, 0.5^2) + (x; 2, 0.5^2) $$
前向扩散 SDE:
$$
dX_t = -(t) X_t dt + dW_t $$
其中
理论预测: - 概率密度演化由 Fokker-Planck 方程控制 -
解析解可以通过卷积计算 - 当
实现:我们使用数值方法求解 Fokker-Planck 方程,并可视化概率密度的演化。
1 | import numpy as np |
结果分析: - 初始双峰分布随时间逐渐"扩散",峰值降低
- 约
实验 2: Score 函数学习与可视化
我们学习一个简单二维分布的 Score 函数,并可视化其梯度场。
设置:目标分布为"双月"形状:
$$
p_{data}(x) (-U(x)) $$
其中
网络架构:使用简单的 MLP 学习 Score 函数
训练:使用去噪 Score Matching 损失。
1 | import torch |
结果分析: - 学习的 Score 函数与真实 Score 函数在视觉上高度一致 - Score 向量指向概率密度增大的方向 - 在低概率区域, Score 向量的模较大,推动样本向高概率区域移动
实验 3:不同 SDE/ODE 采样器对比
我们比较不同数值方法求解反向扩散 SDE/ODE 的效果。
设置:使用实验 2 中训练的 Score 网络,从标准高斯先验采样。
方法对比: 1. Euler-Maruyama( SDE,一阶) 2. Heun 方法( ODE,二阶) 3. Runge-Kutta 4( ODE,四阶) 4. 预测-校正(混合方法)
1 | def euler_maruyama_sde(score_fn, x_T, T, n_steps=1000, beta=0.1): |
结果分析: - Euler-Maruyama:随机性最好,但需要更多步数 - Heun/RK4:确定性采样,质量相近, RK4 略优 - 采样质量:所有方法都能生成合理的样本,验证了 Score 函数的有效性
实验 4: PDE 约束的条件生成
我们实现一个简单的 PDE 约束条件生成任务:给定边界条件,生成满足 PDE 的解。
设置:考虑 Poisson 方程:
边界条件:
方法:使用扩散模型生成满足 PDE 的样本。
1 | class ConditionalScoreNetwork(nn.Module): |
结果分析: - 条件生成模型能够根据给定的条件(如边界值)生成样本 - 生成的样本在统计上满足 PDE 约束 - 这展示了扩散模型在科学计算中的应用潜力
总结与展望
本文系统性地建立了扩散模型的 PDE 理论框架。我们从经典热方程出发,展示了扩散过程的数学本质;引入随机微分方程和 Fokker-Planck 方程,揭示了概率密度演化的规律;聚焦 Score-Based 生成模型,建立了 Score 函数学习与 Langevin 动力学采样的联系;深入 DDPM 和 DDIM,展示了它们作为 SDE/ODE 离散化方案的本质;最后通过四个完整实验验证了理论预测。
关键洞察: 1. 扩散模型是 PDE 求解器:前向扩散对应 Fokker-Planck 方程,反向采样对应反向 SDE 或概率流 ODE 2. Score 函数是核心:学习 Score 函数等价于学习概率密度的梯度,这避免了归一化常数的计算 3. 离散化方案的选择: SDE 采样随机性好但慢, ODE 采样确定且快,混合方法平衡两者 4. 条件生成扩展: PDE 约束可以自然地融入扩散模型框架,为科学计算应用开辟新路径
未来方向: - 更高效的采样算法:基于 PDE 理论的快速采样方法 - 条件生成理论: PDE 约束下的 Score Matching 理论 - 多尺度扩散:结合多分辨率 PDE 求解技术 - 应用拓展:物理模拟、逆问题求解、科学发现
扩散模型的 PDE 本质不仅提供了深刻的理论洞察,还为未来的算法设计和应用拓展指明了方向。随着 PDE 理论与深度学习的进一步融合,我们有望看到更多突破性的进展。
✅ 小白检查点
学完这篇文章,建议理解以下核心概念:
核心概念回顾
1. 热方程与扩散的本质 -
简单说:热量(或粒子)从高浓度区域流向低浓度区域,直到均匀分布 -
生活类比:一滴墨水在水中逐渐散开,最终整杯水变成淡墨色 - 数学表达:
2. 随机微分方程( SDE)是什么 -
简单说:描述随机运动的微分方程,包含确定性部分(漂移)和随机性部分(扩散)
- 生活类比:醉汉走路,一边朝家的方向走(漂移),一边左右晃(随机) -
标准形式:
3. Fokker-Planck 方程是什么 - 简单说:描述概率密度如何随时间演化的 PDE - 与 SDE 的关系:如果单个粒子按 SDE 运动,那么大量粒子的密度满足 Fokker-Planck 方程 - 生活类比:追踪成千上万个醉汉,不关心每个人在哪,只关心人群的密度分布
4. Score 函数是什么 - 简单说:概率密度的对数梯度
5. Score Matching 是什么 -
简单说:一种训练神经网络学习 score 函数的方法 - 核心技巧:不直接计算
6. Langevin 动力学是什么 - 简单说:用 score
函数生成样本的迭代算法 - 公式:$ x_{t+1} = x_t + _x p(x_t) + z_t
7. DDPM vs DDIM - DDPM( Denoising Diffusion Probabilistic Model): - 离散化 SDE(随机过程) - 每步加噪声(随机性) - 生成多样性好,但采样慢(需要上千步)
- DDIM( Denoising Diffusion Implicit Model):
- 离散化 ODE(确定性过程)
- 不加噪声(确定性)
- 采样快(可以几十步),但多样性略差
8. 扩散模型的两个阶段 -
前向过程(加噪):逐渐给数据加高斯噪声,直到变成纯噪声
- 数学:
- 反向过程(去噪):从纯噪声逐渐恢复数据
- 数学:用学到的 score 函数引导,按反向 SDE 或 ODE 采样
- 物理类比:时间倒流,从均匀温度恢复原始热源
一句话记忆
"扩散模型 = 前向热扩散(加噪声)+ 反向时间演化(用 score 函数去噪)"
常见误解澄清
误解 1:"扩散模型只是 VAE 或 GAN 的变种" - 澄清:本质不同! - VAE/GAN:学习数据分布的显式/隐式表示 - 扩散模型:学习 score 函数(密度梯度),通过 SDE/ODE 采样生成
误解 2:"前向过程需要训练" - 澄清:前向过程是固定的(预定义的加噪声方案),不需要训练 - 训练的是:反向过程的去噪网络(估计 score 函数)
误解 3:"扩散模型一定很慢" - 澄清:早期是慢( DDPM 需要 1000 步),但改进方法已经很快 - DDIM: 50 步即可生成高质量样本 - DPM-Solver: 10-20 步 - 一步方法( Consistency Models): 1 步!
误解 4:"Score 函数就是损失函数的梯度" -
澄清:不是! - Score 函数:
误解 5:"SDE 和 ODE 采样结果一样" - 澄清:不完全一样 - SDE:随机路径,每次生成不同样本(多样性好) - ODE:确定路径,相同起点得到相同样本(可控性好) - 实践:可以调节 SDE 中的噪声强度,在多样性和确定性之间权衡
如果只记住三件事
扩散模型的核心:学习 score 函数
(密度梯度),用它引导从噪声生成数据前向-反向对称性:
- 前向:固定的加噪声过程( Fokker-Planck 方程)
- 反向:学习的去噪过程(反向 SDE 或概率流 ODE)
采样方法的选择:
- 需要多样性 → SDE 采样( DDPM)
- 需要速度 → ODE 采样( DDIM)
- 需要平衡 → 混合方法(调节噪声强度)
参考文献
Song, Y., Sohl-Dickstein, J., Kingma, D. P., Kumar, A., Ermon, S., & Poole, B. (2020). Score-based generative modeling through stochastic differential equations. arXiv preprint arXiv:2011.13456. arXiv:2011.13456
Ho, J., Jain, A., & Abbeel, P. (2020). Denoising diffusion probabilistic models. Advances in Neural Information Processing Systems, 33, 6840-6851. arXiv:2006.11239
Song, J., Meng, C., & Ermon, S. (2021). Denoising diffusion implicit models. arXiv preprint arXiv:2010.02502. arXiv:2010.02502
Anderson, B. D. (1982). Reverse-time diffusion equation models. Stochastic Processes and their Applications, 12(3), 313-326. DOI:10.1016/0304-4149(82)90051-5
Hyv ä rinen, A., & Dayan, P. (2005). Estimation of non-normalized statistical models by score matching. Journal of Machine Learning Research, 6(4), 695-709.
Vincent, P. (2011). A connection between score matching and denoising autoencoders. Neural Computation, 23(7), 1661-1674.
Song, Y., & Ermon, S. (2019). Generative modeling by estimating gradients of the data distribution. Advances in Neural Information Processing Systems, 32. arXiv:1907.05600
Song, Y., & Ermon, S. (2020). Improved techniques for training score-based generative models. Advances in Neural Information Processing Systems, 33, 12438-12448. arXiv:2006.09011
Karras, T., Aittala, M., Aila, T., & Laine, S. (2022). Elucidating the design space of diffusion-based generative models. Advances in Neural Information Processing Systems, 35, 26565-26577. arXiv:2206.00364
Lu, C., Zhou, Y., Bao, F., Chen, J., Li, C., & Zhu, J. (2022). DPM-Solver: A fast ODE solver for diffusion probabilistic model sampling in around 10 steps. Advances in Neural Information Processing Systems, 35, 5775-5787. arXiv:2206.00927
Dockhorn, T., Vahdat, A., & Kreis, K. (2022). Score-based generative modeling with score-matching objectives. Advances in Neural Information Processing Systems, 35, 35289-35304.
Chung, H., Kim, J., Mccann, M. T., Klasky, M. L., & Ye, J. C. (2023). Diffusion posterior sampling for general noisy inverse problems. arXiv preprint arXiv:2209.14687. arXiv:2209.14687
Song, Y., Durkan, C., Murray, I., & Ermon, S. (2021). Maximum likelihood training of score-based diffusion models. Advances in Neural Information Processing Systems, 34, 1415-1428. arXiv:2101.09258
Rombach, R., Blattmann, A., Lorenz, D., Esser, P., & Ommer, B. (2022). High-resolution image synthesis with latent diffusion models. Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition, 10684-10695. arXiv:2112.10752
Saharia, C., Chan, W., Chang, H., Lee, C., Ho, J., Salimans, T., ... & Norouzi, M. (2022). Palette: Image-to-image diffusion models. ACM SIGGRAPH 2022 Conference Proceedings. arXiv:2111.05826
- 本文标题:PDE 与机器学习(七)—— 扩散模型与 Score Matching
- 本文作者:Chen Kai
- 创建时间:2022-03-05 09:30:00
- 本文链接:https://www.chenk.top/PDE%E4%B8%8E%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%EF%BC%88%E4%B8%83%EF%BC%89%E2%80%94%E2%80%94-%E6%89%A9%E6%95%A3%E6%A8%A1%E5%9E%8B%E4%B8%8EScore-Matching/
- 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!