1. DDPM为何成为生成模型的里程碑
2014年诞生的GAN和2013年提出的VAE长期主导着生成模型领域,直到2020年DDPM论文的发表打破了这一格局。与需要对抗训练的GAN和受限于ELBO优化的VAE不同,DDPM从非平衡热力学中汲取灵感,构建了一个完全不同的生成范式。
我第一次复现DDPM时,最震撼的是它的训练过程出奇地稳定——不需要精心调整判别器和生成器的平衡,也不用担心后验坍塌问题。这种稳定性源于其独特的"破坏-重建"机制:通过固定规则逐步破坏图像(前向过程),再让神经网络学习如何逆向这一过程(反向过程)。
在CIFAR-10上,原始论文取得了FID 3.17的成绩,超越了当时最好的ProgressiveGAN。更关键的是,DDPM展现出了惊人的扩展性——随着计算资源的增加,其性能几乎可以线性提升,这为后来的Stable Diffusion等大型模型奠定了基础。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 前向扩散过程的数学本质
2.1 马尔可夫链的构建
DDPM的前向过程定义为一个固定的马尔可夫链,逐步向数据添加高斯噪声。具体来说,在T个时间步中,每个步骤都按照以下规则进行:
code复制q(x_t|x_{t-1}) = N(x_t; √(1-β_t)x_{t-1}, β_tI)
其中β_t是噪声调度参数。我在实验中发现,使用线性调度(β_t从0.0001到0.02线性增长)效果已经不错,但余弦调度通常能获得更平滑的过渡。
2.2 任意步长的闭式解
一个精妙的设计是,我们可以通过重参数化技巧,直接从x_0计算任意t步的x_t:
code复制x_t = √(ᾱ_t)x_0 + √(1-ᾱ_t)ε
其中ᾱ_t = ∏(1-β_s)。这个性质极大简化了训练过程,因为我们可以随机采样时间步而不需要逐步计算。在实际编码时,我通常会预计算所有ᾱ_t并存入数组,这样训练时只需做一次查表。
2.3 噪声调度的艺术
β_t的选择直接影响模型性能。太小会导致去噪过程太慢,太大则会使数据信息过早破坏。经过多次实验,我总结出几个经验:
- 起始β_0应足够小(约1e-6量级)
- 最终β_T应在0.02-0.05之间
- 中间过渡最好采用平滑曲线(如余弦)
3. 反向生成过程的核心创新
3.1 参数化的关键选择
反向过程
