DDPM
DDPM(Denoising Diffusion Probabilistic Model)[1] 通过逐步添加噪声和去噪过程生成样本.DDPM 的训练过程主要分为前向扩散过程(Forward Diffusion Process) 和 反向生成过程(Reverse Diffusion Process).
1. 前向扩散过程
前向扩散是一个逐步添加噪声的过程.给定一个真实数据分布x0∼q(x0),通过一系列的马尔科夫链,将数据逐渐添加高斯噪声直到变成纯噪声.
噪声添加公式:
q(xt∣xt−1)=N(xt;1−βtxt−1,βtI),
其中βt是一个小正数,表示第t步的噪声强度.
简化公式:
通过数学推导,可以直接从x0采样任意时间步t的噪声样本:
q(xt∣x0)=N(xt;αˉtx0,(1−αˉt)I),
其中αˉt=∏i=1t(1−βi).
在实际实现中,利用这个公式直接生成xt,避免逐步迭代采样.
2. 反向生成过程
反向过程试图通过去噪还原数据,从纯噪声xT∼N(0,I)逐步生成真实样本.
反向分布:
反向过程的真实分布为:
pθ(xt−1∣xt)=N(xt−1;μθ(xt,t),Σθ(xt,t)),
其中μθ和Σθ是通过神经网络(U-Net[2])预测的参数.
通常,方差Σθ被固定为某种简单形式(如常数或依赖于βt的值),而网络主要学习去噪均值μθ.
等价形式:
利用高斯分布的性质,可以将均值预测重新表示为对噪声的直接预测:
ϵθ(xt,t)≈ϵ,
其中ϵ是前向扩散过程中加入的噪声.
3. 训练目标
DDPM 的训练目标是最小化反向过程与真实后验分布的差异.通过变分下界(Variational Lower Bound, VLB),最终的训练目标可以简化为一个均方误差(MSE)损失:
Lsimple=Ex0,ϵ,t[∥ϵ−ϵθ(xt,t)∥2],
其中:
- x0∼q(x0):从真实数据分布采样.
- ϵ∼N(0,I):采样高斯噪声.
- t∼Uniform(1,T):随机选择时间步.
4. 训练过程
-
采样数据和噪声:
- 从数据分布q(x0)中采样一个真实样本x0.
- 从高斯分布N(0,I)中采样噪声ϵ.
- 从均匀分布中采样一个时间步t.
-
生成噪声数据:根据公式xt=αˉtx0+1−αˉtϵ生成xt.
-
预测噪声:使用神经网络ϵθ(xt,t)预测噪声ϵ.
-
计算损失:
使用均方误差损失Lsimple对预测的噪声与真实噪声进行比较.
-
优化模型:
通过反向传播优化网络参数θ.
5. 生成过程
在训练完成后,使用反向扩散过程生成数据:
- 从高斯分布N(0,I)中采样初始噪声xT.
- 逐步应用反向公式xt−1∼pθ(xt−1∣xt)去噪,直到生成x0.
6. 附
DDPM可以看作SDE的离散近似,直接由神经网络预测反向时间步的噪声.
[1]https://arxiv.org/abs/2006.11239
[2]https://arxiv.org/abs/1505.04597