第十二讲 · 扩散模型 Diffusion

Views: --

GAN 通过两个网络对抗学习生成分布;Diffusion 选择一条更直接却更慢的路线:先把真实图像一步步破坏成噪声,再学习把每一步倒放回来。

一、扩散模型的位置

常见生成模型包括 VAE、GAN、Flow-based Model、Energy-based Model 和 Diffusion Model。扩散模型的典型特点是:

  • 训练目标稳定;
  • 图像质量高、模式覆盖和多样性好;
  • 生成时需要反复去噪,采样较慢。

二、前向与反向两个过程

前向过程逐步加噪,反向过程逐步恢复图像

从真实图像 x0x_0 出发:

  • 前向扩散 qq:按预先规定的噪声日程不断加入高斯噪声,最终得到近似标准高斯噪声 xTx_T
  • 反向生成 pθp_\theta:让神经网络逐步预测并去掉噪声,从 xTx_T 还原到 x0x_0

前向过程不需要学习,反向过程才包含模型参数。

三、DDPM 的单步前向过程

每一步的马尔可夫转移为

q(xtxt1)=N(xt;1βtxt1,βtI),q(x_t\mid x_{t-1}) =\mathcal{N}\left( x_t; \sqrt{1-\beta_t}x_{t-1}, \beta_t I \right),

其中 βt(0,1)\beta_t\in(0,1) 控制第 tt 步加入多少噪声。

利用重参数化,可以直接采样:

xt=1βtxt1+βtϵ,ϵN(0,I).x_t=\sqrt{1-\beta_t}x_{t-1}+\sqrt{\beta_t}\epsilon, \qquad \epsilon\sim\mathcal{N}(0,I).

第一项逐渐缩小原图信息,第二项加入随机噪声。恰当缩放可以让整个过程的方差保持可控。

四、为什么可以一步跳到任意时刻

定义

αt=1βt,αˉt=s=1tαs.\alpha_t=1-\beta_t, \qquad \bar\alpha_t=\prod_{s=1}^{t}\alpha_s.

把多个高斯转移合并后,可以直接从 x0x_0 得到任意 xtx_t

q(xtx0)=N(xt;αˉtx0,(1αˉt)I),q(x_t\mid x_0) =\mathcal{N}\left( x_t; \sqrt{\bar\alpha_t}x_0, (1-\bar\alpha_t)I \right),

xt=αˉtx0+1αˉtϵ.x_t=\sqrt{\bar\alpha_t}x_0 +\sqrt{1-\bar\alpha_t}\epsilon.

这是训练能够高效进行的关键:不用真的从第 1 步循环到第 tt 步,只需随机抽一个 tt,一次就构造出对应噪声图。

五、噪声调度要满足什么

前向过程需要兼顾:

  1. TT 足够大时,xTx_T 应接近标准高斯;
  2. 单步噪声不能太大,否则反向过程难以近似为高斯;
  3. 每个中间状态都应容易采样和计算。

课件中的 DDPM 例子采用 T=1000T=1000βt\beta_t 从约 10410^{-4} 逐渐增加到 0.020.02。初期图像信息丰富,所以每步少加噪;后期已经接近噪声,可以加得更多。

六、反向过程怎样建模

真实的 q(xt1xt)q(x_{t-1}\mid x_t) 不容易直接求,但当每一步 βt\beta_t 足够小时,反向转移也可以近似为高斯:

pθ(xt1xt)=N(xt1;μθ(xt,t),σt2I).p_\theta(x_{t-1}\mid x_t) =\mathcal{N}\left( x_{t-1}; \mu_\theta(x_t,t), \sigma_t^2I \right).

因此模型只需预测这个高斯分布的参数。DDPM 最常见的等价做法不是直接预测干净图,也不是直接预测均值,而是让网络预测加进去的噪声:

ϵθ(xt,t)ϵ.\epsilon_\theta(x_t,t)\approx\epsilon.

训练损失可简化成

Lsimple=Ex0,ϵ,t[ϵϵθ(xt,t)2].L_{simple} =\mathbb{E}_{x_0,\epsilon,t} \left[ \|\epsilon-\epsilon_\theta(x_t,t)\|^2 \right].

它就是一个清晰的均方误差目标,因此比 GAN 的对抗训练稳定得多。

七、为什么使用 UNet

去噪任务的输入和输出具有相同空间尺寸,既需要高级语义,又必须保留精细位置,因此适合使用编码器—解码器结构:

  • 编码器逐步下采样,理解全局内容;
  • 解码器逐步上采样,恢复空间细节;
  • 跳跃连接把浅层细节送到对应解码层;
  • ResNet Block 和 Self-Attention 提高表达能力;
  • 时间步 tt 编码告诉网络当前噪声强度。

条件扩散还可以通过 cross-attention 注入文本等条件,使模型按照提示生成图像。

八、训练与采样的差别

训练时可以随机选择一个时间步,一次构造 xtx_t 并预测噪声,因此高度并行。生成时却必须从 xTx_T 开始,按 T,T1,,1T,T-1,\dots,1 逐步运行网络。

这解释了扩散模型的主要权衡:训练稳定、质量高,但原始采样要执行几百到上千次网络前向。DDIM、蒸馏等方法都在尝试减少去噪步数。

九、GAN 与 Diffusion 对比

维度GANDiffusion
学习方式生成器与判别器对抗逐时刻噪声预测
训练稳定性较难平衡目标较稳定
生成速度一次前向,快多步去噪,慢
模式覆盖可能模式崩溃通常更全面
典型优势快、图像锐利高质量、高多样性

本讲速记

  • 前向过程固定加噪,反向过程由网络学习去噪,二者都是马尔可夫链。
  • 单步公式:xt=1βtxt1+βtϵx_t=\sqrt{1-\beta_t}x_{t-1}+\sqrt{\beta_t}\epsilon
  • 一步公式:xt=αˉtx0+1αˉtϵx_t=\sqrt{\bar\alpha_t}x_0+\sqrt{1-\bar\alpha_t}\epsilon
  • 训练随机抽 tt,让 UNet 预测噪声;生成必须按时间倒序迭代。
  • 扩散模型训练稳定、质量和多样性好,代价是采样慢。

评论