Skip to content

第 19 章 扩散模型

扩散模型是一类生成模型。它的基本思想是:训练时逐步给真实数据加噪声,并学习如何去噪;生成时从纯噪声开始,逐步去噪得到样本。

可以把它分成两个过程:

text
正向过程:真实图像 -> 逐步加噪 -> 纯噪声
反向过程:纯噪声 -> 逐步去噪 -> 生成图像

19.1 正向加噪过程

设真实样本为 x0。扩散模型在每个时间步加入少量高斯噪声:

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

其中 βt 控制第 t 步加入多少噪声。

随着 t 增大,xt 中原始数据结构越来越少,最后接近标准高斯噪声。

19.2 一步得到任意时间步噪声

实际训练时,不需要真的一步步加噪到 t。可以直接从 x0 得到 xt

xt=α¯tx0+1α¯tϵ

其中:

ϵN(0,I)

α¯t 表示前 t 步保留信号比例的累积。

这个公式说明:xt 是干净样本和噪声的加权组合。

19.3 训练目标

扩散模型常见训练目标是预测噪声。

训练时随机选择时间步 t,给 x0 加噪得到 xt,然后让神经网络预测加入的噪声 ϵ

ϵθ(xt,t)

损失函数为:

L=ϵϵθ(xt,t)2

也就是说,模型学的是:给定带噪图像和时间步,判断其中的噪声是什么。

19.4 反向去噪过程

生成时从随机噪声开始:

xTN(0,I)

然后从 T 到 1 逐步去噪:

text
x_T -> x_{T-1} -> ... -> x_1 -> x_0

每一步都用神经网络预测噪声,再根据预测结果还原更干净的样本。

19.5 时间步嵌入

同一张图在不同时间步噪声强度不同。模型必须知道当前输入处于哪个时间步。

因此扩散模型会把时间步 t 编码成向量,再送入网络。

常见做法包括正弦余弦位置编码或可学习时间嵌入。

19.6 U-Net

图像扩散模型常用 U-Net 作为噪声预测网络。

U-Net 有编码器和解码器结构,并通过跳跃连接保留空间细节:

text
下采样提取语义 -> 上采样恢复分辨率

跳跃连接能把浅层空间细节传给解码部分,有利于生成清晰图像。

19.7 条件扩散模型

无条件扩散模型只学习生成数据。条件扩散模型会额外输入条件 c

pθ(x|c)

条件可以是:

条件任务
类别标签生成指定类别
文本文生图
低分辨率图像超分辨率
边缘图、深度图控制结构

文生图模型会先把文本编码成向量,再作为条件引导去噪过程。

19.8 扩散模型、GAN、VAE 对比

模型优点缺点
VAE训练稳定,潜空间规整样本可能偏模糊
GAN样本清晰,生成速度快训练不稳定,可能模式崩溃
扩散模型训练稳定,生成质量高采样步骤多,速度较慢

扩散模型的核心不是“直接生成图像”,而是学习从噪声中逐步恢复数据结构。

Powered by VitePress