Diffusion Models 扩散模型

核心思想是逐步的数据生成过程。
前向过程(Forward Process / Diffusion Process): 逐步向数据中添加噪声,直到数据完全变成纯高斯噪声。
反向过程(Reverse Process): 学习如何从纯噪声中一步步地去除噪声,最终恢复出原始数据。
1. 前向过程(加噪)
这是一个固定的(非学习的)、线性的过程。它被定义为一个马尔可夫链(Markov Chain),每一步都向数据 $\mathbf{x}_t$ 中添加一小步高斯噪声。

公式: $\mathbf{x}t = \sqrt{\alpha_t} \mathbf{x}{t-1} + \sqrt{1 - \alpha_t} \epsilon_t$, 其中 $\epsilon_t \sim \mathcal{N}(0, \mathbf{I})$

目的: 经过足够多的步数 $T$ 后,$\mathbf{x}_T$ 就完全变成了一个各向同性的高斯噪声(Isotropic Gaussian Noise),不再包含任何原始数据的信息。

2. 反向过程(去噪)
这是一个学习的过程,是模型的核心。我们需要训练一个神经网络来学习如何逆转前向过程。

目标: 给定第 $t$ 步的带噪图像 $\mathbf{x}t$ 和时间步 $t$,神经网络需要预测出添加到 $\mathbf{x}{t-1}$ 上的噪声 $\epsilon$,或者直接预测出去噪后的图像 $\mathbf{x}_0$。目前主流是预测噪声。
神经网络(U-Net): 通常使用 U-Net 架构,并加入注意力机制(Attention) 和时间步嵌入(Timestep Embedding)。

训练过程:

  1. 从训练集中随机取一张图片 $\mathbf{x}_0$。
  2. 随机采样一个时间步 $t$ (从 1 到 T)。
  3. 采样一个随机噪声 $\epsilon \sim \mathcal{N}(0, \mathbf{I})$。
  4. 将噪声按前向过程公式加到图片上,得到 $\mathbf{x}_t$。
  5. 将 $\mathbf{x}t$ 和 $t$ 输入神经网络,让网络预测添加的噪声 $\epsilon\theta(\mathbf{x}_t, t)$。
  6. 计算预测噪声和真实噪声之间的均方误差(MSE Loss): $L = ||\epsilon - \epsilon_\theta(\mathbf{x}_t, t)||^2$。

采样/推理过程(生成新图像):

  1. 从纯高斯噪声 $\mathbf{x}_T \sim \mathcal{N}(0, \mathbf{I})$ 开始。
  2. 从 $t = T$ 一步步循环到 $t = 1$:
    • 将当前的 $\mathbf{x}t$ 和 $t$ 输入训练好的网络,得到预测的噪声 $\epsilon\theta(\mathbf{x}_t, t)$。
    • 使用公式计算出 $\mathbf{x}_{t-1}$(这个过程会额外加入一点随机噪声,除非是最后一步)。
  3. 最终得到生成的高清图像 $\mathbf{x}_0$。

与vae/GAN区别

Diffusion Model 相对于 VAE 的最大优势在于生成质量。它牺牲了生成速度。

DDPM 与 DDIM 的区别

DDPM (Denoising Diffusion Probabilistic Models):
采样随机而且慢。反向过程的每一步都遵循马尔可夫性(当前状态只依赖于前一步),并且会加入随机噪声。
DDIM (Denoising Diffusion Implicit Models):
采样确定而且快,支持跳步采样。揭示了扩散模型的反向过程其实是一个_微分方程求解器_。它建立了扩散模型与神经ODE(Neural ODE) 的联系

Classifier Guidance 与 Classifier-Free Guidance

Classifier Guidance(分类器引导)

原理

  1. 需要训练一个额外的分类器。这个分类器接收带噪图像 x_t 和时间步 t,预测其条件 y(如类别标签)的概率。
  2. 在反向去噪过程中,不仅使用扩散模型预测的噪声 ε_θ,还计算这个分类器关于输入 x_t 的梯度 ∇_{x_t} log p(y | x_t)。
  3. 用这个梯度来“引导”下一步的生成方向,使其朝着最大化分类器置信度(即更符合条件 y)的方向移动。

公式(简化): ε_guided = ε_θ(x_t, t) - s * σ_t * ∇_{x_t} log p(y | x_t)
s 是引导尺度(guidance scale),控制引导的强度。s 越大,生成结果与条件 y 的对齐越好,但可能会降低多样性。

Classifier-Free Guidance(无分类器引

原理:

  1. 彻底省去了分类器。它通过在训练时随机地丢弃条件(例如,有 10% 的概率将文本条件置空),同时训练一个条件扩散模型 ε_θ(x_t, t, y) 和一个无条件扩散模型 ε_θ(x_t, t, ∅)。
  2. 在推理采样时,将条件预测和无条件预测进行向量组合,指向更符合条件的方向。

Latent Diffusion Model (LDM) / Stable Diffusion

原理
LDM 的架构包含三个核心组件:

  1. 自编码器 (VAE):
  1. 扩散模型 (U-Net):

3.条件机制 (Conditioning Mechanism):

工作流程:
训练:

  1. 图像 x 通过编码器 E 得到潜在表示 z = E(x)。
  2. 对 z 进行常规的DDPM扩散过程(加噪)。
  3. U-Net 学习在潜在空间中去噪,并且通过交叉注意力接受文本条件。

推理(生成)

  1. 在潜在空间中随机采样一个噪声 z_T。
  2. 用U-Net和DDIM等采样器,在文本条件的引导下,逐步去噪得到 z_0。
  3. 将去噪后的潜在表示 z_0 送入VAE解码器 D,得到高清图像 x = D(z_0)。

为什么更高效?

  1. 计算复杂度大幅降低:
  1. 语义集中:
  1. 更适合与其它模态对齐:
    文本、深度图等控制条件本身也是抽象表示。在潜在空间中进行融合(通过Cross-Attention)比在像素空间更自然、更高效。

结论:Stable Diffusion (LDM) 通过将扩散过程从像素空间迁移到计算成本低得多的潜在空间,在不显著牺牲质量的前提下,极大地降低了计算需求,使得高质量文生图模型能够在消费级GPU上运行,成为了AIGC领域的里程碑。