第3章:扩散模型的数学原理
去噪分数匹配(Denoising Score Matching)
核心概念
去噪分数匹配(Denoising Score Matching, DSM)是分数匹配(Score Matching)的一种变体,专门用于处理含噪声数据。其核心思想是通过学习对噪声扰动数据的梯度(即分数函数),来逼近真实数据分布的分数函数。
数学上,给定一个被噪声污染的数据样本 (其中 ),DSM 的目标是训练一个模型 来匹配扰动数据分布的分数 。
理论推导
目标函数
DSM 的损失函数定义为:其中 是噪声扰动分布的真实分数(因为 )。
与原始分数匹配的关系
当噪声方差 趋近于 0 时,DSM 退化为原始分数匹配。DSM 的优势在于避免了直接计算 的分数,转而通过噪声扰动数据学习。扩散模型的联系
在扩散模型中,DSM 被用于训练逆向过程的分数网络。通过多尺度噪声扰动(不同时间步 的噪声水平),模型学习从任意噪声水平恢复数据。
算法实现
以下是 PyTorch 伪代码示例:
def dsm_loss(model, x, sigma):
# 1. 添加噪声
epsilon = torch.randn_like(x) * sigma
x_noisy = x + epsilon
# 2. 预测分数
predicted_score = model(x_noisy)
# 3. 计算真实分数(噪声方向)
true_score = -epsilon / (sigma ** 2)
# 4. 计算 MSE 损失
loss = torch.mean((predicted_score - true_score) ** 2)
return loss
优势与特性
- 避免 Hessian 计算
相比原始分数匹配(需计算二阶导数),DSM 仅需一阶梯度,计算更高效。 - 适用于高维数据
通过噪声扰动,DSM 在高维空间(如图像)中表现稳定。 - 扩散模型的基石
DDPM 和 SDE-based 方法均可视为 DSM 的扩展,通过时间步控制的噪声调度实现多尺度建模。
案例研究
- 图像生成:在 CIFAR-10 数据集上,DSM 训练的模型可生成清晰图像(信噪比 需合理调度)。
- 音频去噪:DSM 用于学习音频信号的分数函数,实现盲去噪(无需已知噪声分布)。
图表辅助
图:去噪分数匹配的流程(添加噪声 → 预测分数 → 匹配真实分数)
数学补充
对于高斯噪声扰动 ,其条件分布为:
因此对数梯度为:
通过最小化 DSM 损失,模型间接学习到真实数据分布的分数 。
