Diffusion Model前向过程与反向过程
扩散模型通过前向扩散和反向去噪实现高质量生成。请详细解释前向过程(加噪)、反向过程(去噪)的数学原理,以及它们与VAE、GAN的关系。
回答
小字辈
扩散模型(Diffusion Model)由Sohl-Dickstein等人于2015年提出,经Ho等人(DDPM, 2020)改进后成为生成模型的主流方向。
前向过程(扩散过程):
- 逐步向真实数据x_0添加高斯噪声,经过T步后近似为标准正态分布。
- q(x_t|x_{t-1}) = N(x_t; √(1-β_t)x_{t-1}, β_tI)
- 其中β_t是预定义的噪声调度(线性、余弦等),随时间递增。
- 通过重参数化技巧,任意时刻的x_t可直接从x_0计算: x_t = √(α̅_t)x_0 + √(1-α̅_t)ε,其中α_t=1-β_t,α̅_t=Π_{s=1}^t α_s,ε~N(0,I)
- 前向过程无参数,是马尔可夫链。
反向过程(去噪过程):
- 目标是学习逆分布p_θ(x_{t-1}|x_t),从噪声逐步恢复数据。
- 参数化为高斯分布:p_θ(x_{t-1}|x_t) = N(x_{t-1}; μ_θ(x_t,t), Σ_θ(x_t,t))
- 训练网络ε_θ(x_t,t)预测添加的噪声ε: L_simple = E_{t,x_0,ε}[||ε - ε_θ(√(α̅_t)x_0 + √(1-α̅_t)ε, t)||²]
- 推理时从x_T~N(0,I)开始,逐步去噪T步得到x_0。
与VAE的关系:
- 扩散模型本质上是一个多层隐变量模型(Hierarchical VAE),隐变量为x_1,...,x_T。
- 但扩散模型的前向过程是固定的(非学习的),VAE的编码器是学习的。
与GAN的关系:
- 扩散模型通过优化似然下界(ELBO)训练,不涉及对抗训练,训练更稳定。
- 但推理需要多步采样(DDPM需1000步),速度远慢于GAN的单步生成。
- DDIM(2021)通过非马尔可夫过程将采样步数降至50步以下。
- 潜在扩散模型(LDM/Stable Diffusion)在潜空间进行扩散,大大降低计算成本。