DDPM

Denoising Diffusion Probabilistic Model 去噪扩散概率模型

DDPM(Denoising Diffusion Probabilistic Models)是扩散模型领域的开山之作,由Jonathan Ho等人于2020年提出。它提供了一个简单而强大的框架,通过模拟一个逐步加噪(前向扩散)逐步去噪(反向去噪) 的过程来生成高质量的图像。DDPM的成功极大地推动了扩散模型在生成任务中的应用。

核心思想:噪声与去噪的循环

DDPM的核心思想可以概括为两个过程:

  1. 前向扩散过程 (Forward Diffusion Process): 这是一个固定的、马尔可夫链式的过程。它在每个时间步 t 向数据 xt1 中添加少量高斯噪声,直到经过 T 个时间步后,原始数据 x0 完全变为纯高斯噪声 xT
  2. 反向去噪过程 (Reverse Denoising Process): 这是一个需要学习的过程。它训练一个神经网络来预测并移除在每个时间步添加的噪声,从而能够从纯高斯噪声 xT 逐步恢复出原始数据 x0
graph TD
    subgraph DDPM 核心流程
        A[原始数据 x0] --> B{"前向扩散 (逐步加噪)"};
        B --> C[纯高斯噪声 xT];
        C --> D{"反向去噪 (逐步去噪, 神经网络学习)"};
        D --> E[生成数据 x0_hat];
    end

    style A fill:#fff,stroke:#333,stroke-width:2px
    style C fill:#fff,stroke:#333,stroke-width:2px
    style E fill:#9f9,stroke:#333,stroke-width:2px

前向扩散过程

前向扩散过程是一个固定的马尔可夫链,在每个时间步 t,根据预设的方差调度 βt 向数据中添加噪声:

q(xt|xt1)=N(xt;1βtxt1,βtI)

其中 βt 是一个小的正数,通常随 t 增大。经过 T 步后,xT 将近似于标准正态分布。

一个重要的性质是,我们可以直接从 x0 采样得到 xt

q(xt|x0)=N(xt;α¯tx0,(1α¯t)I)

其中 α¯t=s=1t(1βs)。这意味着 xt 可以表示为 xt=α¯tx0+1α¯tϵ,其中 ϵN(0,I)。这个重参数化技巧对于训练反向去噪网络至关重要。

反向去噪过程

反向去噪过程也是一个马尔可夫链,但其转移概率是需要学习的:

pθ(xt1|xt)=N(xt1;μθ(xt,t),Σθ(xt,t))

DDPM的关键洞察是,如果 βt 足够小,那么反向过程的均值 μθ 可以通过预测在 xt 中添加的噪声 ϵθ 来估计。因此,DDPM训练一个神经网络 ϵθ(xt,t) 来预测噪声。

训练目标

DDPM的训练目标是最小化预测噪声 ϵθ(xt,t) 与真实噪声 ϵ 之间的均方误差:

L(θ)=Ex0q(x0),tU(1,T),ϵN(0,I)[ϵϵθ(α¯tx0+1α¯tϵ,t)2]

这个损失函数非常简单,使得DDPM的训练非常稳定。

采样过程

训练完成后,生成新样本的过程如下:

  1. 从纯高斯噪声 xTN(0,I) 开始。
  2. 对于 t=T,T1,,1
    • 使用训练好的神经网络 ϵθ(xt,t) 预测噪声。
    • 根据预测的噪声和一些预设的方差,计算 xt1
    xt1=1αt(xt1αt1α¯tϵθ(xt,t))+σtz其中 zN(0,I)αt=1βt
  3. 最终得到去噪后的样本 x0

U-Net 架构

在DDPM中,用于预测噪声的神经网络通常采用U-Net架构。U-Net是一种卷积神经网络,其编码器-解码器结构和跳跃连接使其非常适合处理图像,并能在不同尺度上捕捉特征。

优缺点分析

优点 (Pros) 缺点 (Cons)
生成质量高:能够生成非常逼真、高质量的图像。 采样速度慢:生成一个样本需要迭代 T 次(通常是几百到几千步),计算成本高。
训练稳定:损失函数简单,训练过程比GAN更稳定。
模式覆盖好:相比GAN,更不容易出现模式崩溃,能够覆盖真实数据分布的更多模式。

扩散模型