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 | 扩散模型 | 生成模型 | 概率扩散去噪生成模型