在扩散模型(Diffusion Models)里,diffusion process 通常指”正向扩散过程”,也就是把真实数据逐步加噪,最终变成接近标准高斯噪声的过程。
它的核心作用是:构造一个可控的破坏过程,然后训练神经网络学会反过来去噪。
1. 基本思想
给定真实数据:x0∼q(x0)
其中 x0 可以是一张图片、一段音频、一个 latent 表示等。
扩散过程会在很多个时间步中不断加入高斯噪声:
x0→x1→x2→⋯→xT
当 T 足够大时,xT 接近一个标准高斯分布:xT∼N(0,I)
也就是说,原始图像会被逐渐”污染”成纯噪声。
2. 正向扩散过程的数学定义
在 DDPM 里,正向扩散过程通常被定义为一个马尔可夫链:
q(xt∣xt−1)=N(xt;1−βtxt−1,βtI)
q(x1:T∣x0)=∏t=1Tq(xt∣xt−1)
这里 βt 是第 t 步加入噪声的强度,通常称为 noise schedule。
可以把它理解为:xt=1−βtxt−1+βtϵ
其中 ϵ∼N(0,I),也就是每一步保留一部分原信号,再加入一部分高斯噪声。
3. 闭式采样形式
正向过程有一个很重要的性质:可以直接从 x0 得到任意时间步的 xt,不需要一步一步加噪。
定义:αt=1−βt,αˉt=∏s=1tαs
则有:q(xt∣x0)=N(xt;αˉtx0,(1−αˉt)I)
等价地:xt=αˉtx0+1−αˉtϵ
这里可以清楚看到:αˉtx0 是保留下来的原始信号部分,而 1−αˉtϵ 是加入的噪声部分。
随着 t 增大, αˉt 逐渐变小, 原始信号越来越弱, 噪声越来越强。
diffusion process 的本质是在定义数据到噪声的桥
扩散模型的目标并不是正向加噪本身, 而是学习它的逆过程:pθ(xt−1∣xt)
也就是从噪声中一步步恢复数据:xT→xT−1→⋯→x0
正向 diffusion process 是人为设计的,通常不需要学习;反向 denoising process 才是需要神经网络学习的部分。
所以从专业角度看:
diffusion process 是一个固定的随机退化过程,它把复杂的数据分布逐渐映射到简单的高斯分布;模型训练的任务是学习这个随机过程的时间反演。
4.直观解释
可以这样理解:
正向过程:
反向过程:
训练一个模型学会从噪声中逐步恢复结构,最后生成一张合理的新图像。
训练时,模型通常不是直接预测 xt−1,而是预测噪声:ϵθ(xt,t)
目标是让它接近真实加入的噪声:ϵθ(xt,t)≈ϵ
常见训练损失为:L=Ex0,ϵ,t[∥ϵ−ϵθ(xt,t)∥2]
这就是为什么 diffusion model 训练时常被描述为”噪声预测”或”去噪训练”。