引言:生成式 AI 的范式转变

扩散模型(Diffusion Models)是近年来生成式 AI 最重要的技术突破之一。与 GAN 的训练不稳定和 VAE 的生成模糊相比,扩散模型通过逐步去噪的过程生成高质量的样本,已成为图像、视频、音频生成的主流范式。

1. DDPM 数学原理

前向过程(加噪):定义马尔可夫链,每一步加入高斯噪声:

q(x_t | x_{t-1}) = N(x_t; √(1-β_t) · x_{t-1}, β_t · I)

利用重参数化技巧,可以直接从 x_0 采样任意步 t 的噪声图像:

x_t = √(ᾱ_t) · x_0 + √(1-ᾱ_t) · ε,  where ε ~ N(0,I)
# ᾱ_t = ∏_{s=1}^{t} (1-β_s)

反向过程(去噪):训练一个神经网络 ε_θ 预测加入的噪声:

L_simple = E[‖ε - ε_θ(√(ᾱ_t)·x_0 + √(1-ᾱ_t)·ε, t)‖²]

这个简化目标(Ho et al. 2020)等价于变分下界的加权形式,是 DDPM 训练高效的关键。

2. 采样加速策略

原始 DDPM 需要 1000 步采样才能得到高质量图像。主流加速方法:

  • DDIM(Song et al. 2021):非马尔可夫前向过程,支持跳步采样(50-100 步即可)
  • DPM-Solver:基于 ODE 视角的高阶求解器,10-20 步高质量采样
  • Consistency Models:一步生成的学生模型蒸馏

3. Stable Diffusion:潜在空间扩散

关键创新:不在像素空间操作,而是通过预训练的 VAE 编码器将图像压缩到潜在空间(4×64×64 vs 3×512×512),扩散过程在高维语义空间完成,然后解码回像素。

条件机制:通过 cross-attention 注入文本条件:

# U-Net 中的 cross-attention
Q = W_Q · φ(z_t)          # 来自潜在特征
K = W_K · τ_θ(y)          # 来自文本编码 (CLIP)
V = W_V · τ_θ(y)
Attention(Q,K,V) = softmax(QK^T/√d) · V

Classifier-Free Guidance 实现条件缩放:

ε̂_θ(z_t, c) = ε_θ(z_t, ∅) + w · (ε_θ(z_t, c) - ε_θ(z_t, ∅))
# w 为 guidance scale,通常 7.5-15

4. ControlNet:精确控制生成

ControlNet 通过添加可训练的旁路分支(side network)来注入空间条件(深度图、边缘图、姿态、语义分割图)。核心结构:

# ControlNet 模块(每个 resolution level 两个 conv)
hint = HintBlock(conditional_image)  # 4×64×64 → 320×64×64
control = ZeroConv(hint)              # 零初始化卷积
unet_input += control                 # 加到 U-Net 输入
unet_feat += ZeroConv(control)        # 加到 U-Net 中间特征

5. 训练工程要点

噪声调度:Linear 调度简单高效,Cosine 调度(Nichol & Dhariwal 2021)在低步数采样时更优。

混合精度:U-Net 前向用 float16,loss scaling 防下溢。

梯度累积:由于 batch size 受显存限制(U-Net ~3GB),常采用梯度累积模拟大 batch。

EMA:对训练参数应用指数移动平均(decay 0.9999),提升采样质量。

6. 应用生态

基于 Stable Diffusion 的开源生态已相当成熟:

  • SD WebUI (AUTOMATIC1111):功能最全的推理界面
  • ComfyUI:节点式工作流编辑器
  • Diffusers (Hugging Face):标准化 Python 推理库
  • LoRA:低秩适配器实现高效微调(可训练参数 <1%)

总结

扩散模型的成功源于其训练目标的简洁性(去噪得分匹配的等价形式)和 Scaling 的可靠性。从 DDPM 到 Stable Diffusion,研究者们通过潜在空间压缩、条件引导和采样加速的三重优化,将扩散模型从学术实验室推到了大规模工程应用的前沿。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部