DDPM推导与理解:从数学建模到实际应用
0. 前置数学知识
在深入理解DDPM之前,我们需要掌握以下三个核心数学概念:
0.1 马尔科夫链(Markov Chain)
定义:马尔科夫链是一种随机过程,具有"无记忆性"——系统的下一个状态只依赖于当前状态,而与之前的状态无关。
数学表达:
P
(
X
t
+
1
=
x
t
+
1
∣
X
t
=
x
t
,
X
t
−
1
=
x
t
−
1
,
.
.
.
,
X
0
=
x
0
)
=
P
(
X
t
+
1
=
x
t
+
1
∣
X
t
=
x
t
)
P(X_{t+1} = x_{t+1} | X_t = x_t, X_{t-1} = x_{t-1}, ..., X_0 = x_0) = P(X_{t+1} = x_{t+1} | X_t = x_t)
P(Xt+1=xt+1∣Xt=xt,Xt−1=xt−1,...,X0=x0)=P(Xt+1=xt+1∣Xt=xt)
在DDPM中的应用:
- 前向过程: q ( x t ∣ x t − 1 , x t − 2 , . . . , x 0 ) = q ( x t ∣ x t − 1 ) q(x_t|x_{t-1}, x_{t-2}, ..., x_0) = q(x_t|x_{t-1}) q(xt∣xt−1,xt−2,...,x0)=q(xt∣xt−1)
- 反向过程: p ( x t − 1 ∣ x t , x t + 1 , . . . , x T ) = p ( x t − 1 ∣ x t ) p(x_{t-1}|x_t, x_{t+1}, ..., x_T) = p(x_{t-1}|x_t) p(xt−1∣xt,xt+1,...,xT)=p(xt−1∣xt)
直观理解:就像天气预报,明天的天气只取决于今天的天气,而不需要考虑昨天或更早的天气情况。
0.2 贝叶斯公式(Bayes’ Theorem)
定义:贝叶斯公式描述了在已知某些条件下,如何更新事件发生的概率。
数学表达:
P
(
A
∣
B
)
=
P
(
B
∣
A
)
P
(
A
)
P
(
B
)
P(A|B) = \frac{P(B|A)P(A)}{P(B)}
P(A∣B)=P(B)P(B∣A)P(A)
在DDPM中的应用:
反向过程需要计算
p
(
x
t
−
1
∣
x
t
)
p(x_{t-1}|x_t)
p(xt−1∣xt),通过贝叶斯公式可以从已知的前向过程
q
(
x
t
∣
x
t
−
1
)
q(x_t|x_{t-1})
q(xt∣xt−1)推导出来:
p
(
x
t
−
1
∣
x
t
)
=
q
(
x
t
∣
x
t
−
1
)
p
(
x
t
−
1
)
q
(
x
t
)
p(x_{t-1}|x_t) = \frac{q(x_t|x_{t-1})p(x_{t-1})}{q(x_t)}
p(xt−1∣xt)=q(xt)q(xt∣xt−1)p(xt−1)
直观理解:就像医生诊断,已知症状(结果)推断病因(原因)的概率。
0.3 正态分布(Normal Distribution)
定义:正态分布(高斯分布)是连续概率分布,由均值 μ \mu μ和方差 σ 2 \sigma^2 σ2决定。
数学表达:
X
∼
N
(
μ
,
σ
2
)
X \sim \mathcal{N}(\mu, \sigma^2)
X∼N(μ,σ2)
f
(
x
)
=
1
2
π
σ
2
e
−
(
x
−
μ
)
2
2
σ
2
f(x) = \frac{1}{\sqrt{2\pi\sigma^2}} e^{-\frac{(x-\mu)^2}{2\sigma^2}}
f(x)=2πσ21e−2σ2(x−μ)2
关键性质
1. 对称性
- 关于均值 μ \mu μ对称: f ( μ + x ) = f ( μ − x ) f(\mu + x) = f(\mu - x) f(μ+x)=f(μ−x)
- 均值 = 中位数 = 众数
2. 68-95-99.7规则
- 68.27%的数据落在 μ ± σ \mu \pm \sigma μ±σ范围内
- 95.45%的数据落在 μ ± 2 σ \mu \pm 2\sigma μ±2σ范围内
- 99.73%的数据落在 μ ± 3 σ \mu \pm 3\sigma μ±3σ范围内
3. 线性变换性质
若
X
∼
N
(
μ
,
σ
2
)
X \sim \mathcal{N}(\mu, \sigma^2)
X∼N(μ,σ2),则:
- a X + b ∼ N ( a μ + b , a 2 σ 2 ) aX + b \sim \mathcal{N}(a\mu + b, a^2\sigma^2) aX+b∼N(aμ+b,a2σ2)
- 特别地: X − μ σ ∼ N ( 0 , 1 ) \frac{X-\mu}{\sigma} \sim \mathcal{N}(0, 1) σX−μ∼N(0,1)(标准化)
4. 独立正态变量的线性组合
一般情况:若
X
i
∼
N
(
μ
i
,
σ
i
2
)
X_i \sim \mathcal{N}(\mu_i, \sigma_i^2)
Xi∼N(μi,σi2)且相互独立,则:
∑
i
=
1
n
a
i
X
i
∼
N
(
∑
i
=
1
n
a
i
μ
i
,
∑
i
=
1
n
a
i
2
σ
i
2
)
\sum_{i=1}^n a_iX_i \sim \mathcal{N}(\sum_{i=1}^n a_i\mu_i, \sum_{i=1}^n a_i^2\sigma_i^2)
i=1∑naiXi∼N(i=1∑naiμi,i=1∑nai2σi2)
二维特殊情况:
若
X
∼
N
(
μ
1
,
σ
1
2
)
X \sim \mathcal{N}(\mu_1, \sigma_1^2)
X∼N(μ1,σ12),
Y
∼
N
(
μ
2
,
σ
2
2
)
Y \sim \mathcal{N}(\mu_2, \sigma_2^2)
Y∼N(μ2,σ22)且独立,则:
a
X
+
b
Y
∼
N
(
a
μ
1
+
b
μ
2
,
a
2
σ
1
2
+
b
2
σ
2
2
)
aX + bY \sim \mathcal{N}(a\mu_1 + b\mu_2, a^2\sigma_1^2 + b^2\sigma_2^2)
aX+bY∼N(aμ1+bμ2,a2σ12+b2σ22)
重要推论:
- 当 a = 1 , b = 1 a=1, b=1 a=1,b=1时: X + Y ∼ N ( μ 1 + μ 2 , σ 1 2 + σ 2 2 ) X + Y \sim \mathcal{N}(\mu_1 + \mu_2, \sigma_1^2 + \sigma_2^2) X+Y∼N(μ1+μ2,σ12+σ22)
- 当 a = 1 , b = − 1 a=1, b=-1 a=1,b=−1时: X − Y ∼ N ( μ 1 − μ 2 , σ 1 2 + σ 2 2 ) X - Y \sim \mathcal{N}(\mu_1 - \mu_2, \sigma_1^2 + \sigma_2^2) X−Y∼N(μ1−μ2,σ12+σ22)
- 当 b = 0 b=0 b=0时: a X ∼ N ( a μ 1 , a 2 σ 1 2 ) aX \sim \mathcal{N}(a\mu_1, a^2\sigma_1^2) aX∼N(aμ1,a2σ12)(与线性变换性质一致)
在DDPM中的应用:
重参数化技巧本质上是利用了这个性质:
x
t
=
α
ˉ
t
x
0
+
1
−
α
ˉ
t
ϵ
x_t = \sqrt{\bar{\alpha}_t}x_0 + \sqrt{1-\bar{\alpha}_t}\epsilon
xt=αˉtx0+1−αˉtϵ
可以看作是两个独立正态变量
α
ˉ
t
x
0
\sqrt{\bar{\alpha}_t}x_0
αˉtx0和
1
−
α
ˉ
t
ϵ
\sqrt{1-\bar{\alpha}_t}\epsilon
1−αˉtϵ的线性组合。
5. 条件分布性质
对于联合正态分布,条件分布仍然是正态分布。
6. 中心极限定理
大量独立随机变量的和趋近于正态分布,这解释了为什么正态分布在自然界和工程中如此普遍。
在DDPM中的应用
前向过程:
- 每个时间步的转移概率都是正态分布
q ( x t ∣ x t − 1 ) = N ( x t ; 1 − β t x t − 1 , β t I ) q(x_t|x_{t-1}) = \mathcal{N}(x_t; \sqrt{1-\beta_t}x_{t-1}, \beta_t I) q(xt∣xt−1)=N(xt;1−βtxt−1,βtI)
反向过程:
- 神经网络学习的是正态分布的参数
p θ ( x t − 1 ∣ x t ) = N ( x t − 1 ; μ θ ( x t , t ) , Σ θ ( x t , t ) ) p_\theta(x_{t-1}|x_t) = \mathcal{N}(x_{t-1}; \mu_\theta(x_t, t), \Sigma_\theta(x_t, t)) pθ(xt−1∣xt)=N(xt−1;μθ(xt,t),Σθ(xt,t))
重参数化技巧:
利用正态分布的线性变换性质:
x
t
=
α
ˉ
t
x
0
+
1
−
α
ˉ
t
ϵ
,
ϵ
∼
N
(
0
,
I
)
x_t = \sqrt{\bar{\alpha}_t}x_0 + \sqrt{1-\bar{\alpha}_t}\epsilon, \quad \epsilon \sim \mathcal{N}(0, I)
xt=αˉtx0+1−αˉtϵ,ϵ∼N(0,I)
直观理解:正态分布就像测量误差,大多数值都围绕平均值分布,极端值很少出现。在DDPM中,噪声的添加和去除都遵循这种"温和"的变化模式,避免了剧烈的状态跳跃。
1. 概述
去噪扩散概率模型(DDPM, Denoising Diffusion Probabilistic Models)是一种基于概率论的生成模型,其核心思想是通过学习逆转一个逐步加噪的过程来生成数据。DDPM的发展遵循"理论指导实践"的经典路径:先建立数学框架,再设计训练算法,最终实现工程应用。
2. 数学建模:前向与反向过程
2.1 前向扩散过程(Forward Process)
前向过程是一个马尔可夫链,逐步将数据分布转换为标准高斯分布:
联合概率分布:
q
(
x
1
:
T
∣
x
0
)
=
∏
t
=
1
T
q
(
x
t
∣
x
t
−
1
)
q(x_{1:T}|x_0) = \prod_{t=1}^T q(x_t|x_{t-1})
q(x1:T∣x0)=t=1∏Tq(xt∣xt−1)
单步转移概率:
q
(
x
t
∣
x
t
−
1
)
=
N
(
x
t
;
1
−
β
t
x
t
−
1
,
β
t
I
)
q(x_t|x_{t-1}) = \mathcal{N}(x_t; \sqrt{1-\beta_t}x_{t-1}, \beta_t I)
q(xt∣xt−1)=N(xt;1−βtxt−1,βtI)
其中 β t \beta_t βt是预定义的噪声调度参数。
重参数化技巧:
x
t
=
α
ˉ
t
x
0
+
1
−
α
ˉ
t
ϵ
,
ϵ
∼
N
(
0
,
I
)
x_t = \sqrt{\bar{\alpha}_t}x_0 + \sqrt{1-\bar{\alpha}_t}\epsilon, \quad \epsilon \sim \mathcal{N}(0, I)
xt=αˉtx0+1−αˉtϵ,ϵ∼N(0,I)
2.2 反向去噪过程(Reverse Process)
反向过程同样是一个马尔可夫链,从噪声逐步恢复原始数据:
联合概率分布:
p
θ
(
x
0
:
T
)
=
p
(
x
T
)
∏
t
=
1
T
p
θ
(
x
t
−
1
∣
x
t
)
p_\theta(x_{0:T}) = p(x_T) \prod_{t=1}^T p_\theta(x_{t-1}|x_t)
pθ(x0:T)=p(xT)t=1∏Tpθ(xt−1∣xt)
单步转移概率:
p
θ
(
x
t
−
1
∣
x
t
)
=
N
(
x
t
−
1
;
μ
θ
(
x
t
,
t
)
,
Σ
θ
(
x
t
,
t
)
)
p_\theta(x_{t-1}|x_t) = \mathcal{N}(x_{t-1}; \mu_\theta(x_t, t), \Sigma_\theta(x_t, t))
pθ(xt−1∣xt)=N(xt−1;μθ(xt,t),Σθ(xt,t))
3. 训练目标:变分下界
3.1 证据下界(ELBO)推导
由于直接最大化似然函数 log p θ ( x 0 ) \log p_\theta(x_0) logpθ(x0)不可计算,我们转而最大化证据下界:
log p θ ( x 0 ) ≥ E q [ log p θ ( x 0 ∣ x 1 ) ] − D K L ( q ( x T ∣ x 0 ) ∣ ∣ p ( x T ) ) − ∑ t = 2 T D K L ( q ( x t − 1 ∣ x t , x 0 ) ∣ ∣ p θ ( x t − 1 ∣ x t ) ) \log p_\theta(x_0) \geq \mathbb{E}_q[\log p_\theta(x_0|x_1)] - D_{KL}(q(x_T|x_0) || p(x_T)) - \sum_{t=2}^T D_{KL}(q(x_{t-1}|x_t, x_0) || p_\theta(x_{t-1}|x_t)) logpθ(x0)≥Eq[logpθ(x0∣x1)]−DKL(q(xT∣x0)∣∣p(xT))−t=2∑TDKL(q(xt−1∣xt,x0)∣∣pθ(xt−1∣xt))
3.2 简化损失函数
通过数学推导,可以将ELBO简化为预测噪声的均方误差:
L s i m p l e = E x 0 , ϵ , t [ ∣ ∣ ϵ − ϵ θ ( x t , t ) ∣ ∣ 2 ] L_{simple} = \mathbb{E}_{x_0, \epsilon, t}[||\epsilon - \epsilon_\theta(x_t, t)||^2] Lsimple=Ex0,ϵ,t[∣∣ϵ−ϵθ(xt,t)∣∣2]
4. ε_θ(x_t, t)的含义与理解
4.1 基本定义
ϵ θ ( x t , t ) \epsilon_\theta(x_t, t) ϵθ(xt,t)是一个噪声预测网络,其输入为:
- 带噪声的图像 x t x_t xt:当前时间步的观测数据
- 时间步 t t t:当前处于扩散过程的哪个阶段
输出为:
- 预测的噪声 ϵ ^ \hat{\epsilon} ϵ^:网络认为添加到原始图像中的噪声
4.2 直观理解
想象你在看一张被雨滴模糊的窗户照片:
- 输入:模糊的照片(带噪声的图像)+ 知道模糊程度(时间步)
- 任务:判断哪些部分是雨滴造成的模糊(预测噪声)
- 目的:擦掉雨滴恢复清晰照片(去噪)
阶段 | 输入 | 输出 | 说明 |
---|---|---|---|
训练 | 干净图片x0 | 训练好的模型参数 | 让模型学会预测噪声 |
采样(生成图) | 纯高斯噪声图片xT | 生成图片x0 | 一步步去噪,还原为清晰图片 |
4.3 数学表达
网络学习的目标是:
ϵ
θ
(
x
t
,
t
)
≈
ϵ
t
r
u
e
\epsilon_\theta(x_t, t) \approx \epsilon_{true}
ϵθ(xt,t)≈ϵtrue
其中 ϵ t r u e \epsilon_{true} ϵtrue是实际添加到图像中的噪声。
5. 采样过程:从噪声到图像
5.1 生成过程
采样过程是从纯噪声生成图像的逆向过程:
- 初始化:从标准高斯分布采样 x T ∼ N ( 0 , I ) x_T \sim \mathcal{N}(0, I) xT∼N(0,I)
- 迭代去噪:对于
t
=
T
,
T
−
1
,
.
.
.
,
1
t = T, T-1, ..., 1
t=T,T−1,...,1:
- 预测噪声: ϵ ^ = ϵ θ ( x t , t ) \hat{\epsilon} = \epsilon_\theta(x_t, t) ϵ^=ϵθ(xt,t)
- 计算均值: μ θ ( x t , t ) = 1 α t ( x t − 1 − α t 1 − α ˉ t ϵ ^ ) \mu_\theta(x_t, t) = \frac{1}{\sqrt{\alpha_t}}(x_t - \frac{1-\alpha_t}{\sqrt{1-\bar{\alpha}_t}}\hat{\epsilon}) μθ(xt,t)=αt1(xt−1−αˉt1−αtϵ^)
- 采样: x t − 1 ∼ N ( μ θ ( x t , t ) , Σ θ ( x t , t ) ) x_{t-1} \sim \mathcal{N}(\mu_\theta(x_t, t), \Sigma_\theta(x_t, t)) xt−1∼N(μθ(xt,t),Σθ(xt,t))
- 输出结果:最终得到生成的图像 x 0 x_0 x0
5.2 随机性的来源
每次生成不同图像的原因:
- 初始噪声: x T x_T xT的随机采样
- 采样噪声:每步添加的随机噪声 z ∼ N ( 0 , I ) z \sim \mathcal{N}(0, I) z∼N(0,I)
- 可控性:通过设置随机种子可复现结果
6. 发展历史:理论到实践的演进
6.1 时间线
年份 | 里程碑 | 贡献者 | 核心贡献 |
---|---|---|---|
2015 | 扩散模型概念 | Sohl-Dickstein等 | 提出扩散过程思想 |
2019 | 数学框架完善 | Song等(斯坦福) | 系统化数学推导 |
2020 | DDPM模型 | Ho等(Google Brain) | 实用训练算法 |
2021+ | 改进优化 | 多个团队 | 加速采样、条件生成 |
6.2 发展逻辑
DDPM的发展遵循"数学建模→理论验证→工程实现"的路径:
第一步:数学建模与理论推导先行
- 灵感来源:最早的“扩散过程”其实是概率图模型(如score matching、SDEs等)和物理中的扩散理论,早在无监督学习领域就有类似思想。
- 理论建模:DDPM的作者参考了无监督生成建模(比如变分自编码器VAE、GAN、score-based模型等)的思想,提出了“正向扩散+逆向去噪”的概率建模框架。
- 推导公式:推导出前向过程(加噪声的马尔可夫链)、后向过程(逆向去噪)以及对应的训练目标和采样公式。
第二步:模型训练的可行性探索
- 神经网络实现:理论上,逆扩散过程的条件概率分布难以精确建模,于是提出用神经网络(如U-Net)来近似预测噪声。
- 训练实践:通过实验,发现用神经网络预测噪声(而不是直接预测像素、或重建均值)更容易训练、效果更好。
- 损失函数选择:发现MSE噪声预测损失有很好的生成质量和收敛性。
第三步:理论与实践的不断反馈
- 实验推动理论完善:实验中不断发现哪些公式、参数、网络结构效果更好,反过来优化理论推导和采样方式(比如DDIM、score-based diffusion、采样加速等)。
- 理论启发新方法:理论上对马尔可夫链、SDE、score matching的深入理解,进一步催生了很多高效或变体的扩散模型。
7. 实际应用与启示
7.1 应用模式
模式 | 特点 | 适用场景 |
---|---|---|
探索模式 | 随机种子,每次生成不同 | 创意生成、多样性测试 |
可控模式 | 固定种子,结果可复现 | 实验对比、参数调优 |
条件模式 | 文本+种子控制 | 可控内容生成 |
7.2 核心启示
DDPM的成功展示了:
- 理论指导实践的重要性
- 数学严谨性在AI研究中的价值
- 从第一性原理出发的设计思路
8. 总结
DDPM的发展历程清晰地表明:伟大的AI模型始于深刻的数学洞察,成于巧妙的工程实现。数学建模提供了理论基础,训练可行性是理论的自然延伸,而非妥协。这种"理论先行"的研究范式,为后续生成模型的发展树立了典范。
通过理解DDPM的数学本质,我们不仅能更好地应用这一技术,更能学习其背后的科学方法论——用数学语言描述世界,用工程手段实现愿景。
参考:
1、Denoising Diffusion Probabilistic Models
2、DDPM和DDIM公式推导。(精简版)
3、[纯手撕、无PPT、大白话]从零推导diffusion_2_去噪过程
4、一个视频看懂扩散模型DDPM原理推导|AI绘画底层模型
5、大白话AI | 图像生成模型DDPM | 扩散模型 | 生成模型 | 概率扩散去噪生成模型