第 19 章 扩散模型
扩散模型是一类生成模型。它的基本思想是:训练时逐步给真实数据加噪声,并学习如何去噪;生成时从纯噪声开始,逐步去噪得到样本。
可以把它分成两个过程:
text
正向过程:真实图像 -> 逐步加噪 -> 纯噪声
反向过程:纯噪声 -> 逐步去噪 -> 生成图像19.1 正向加噪过程
设真实样本为
其中
随着
19.2 一步得到任意时间步噪声
实际训练时,不需要真的一步步加噪到
其中:
这个公式说明:
19.3 训练目标
扩散模型常见训练目标是预测噪声。
训练时随机选择时间步
损失函数为:
也就是说,模型学的是:给定带噪图像和时间步,判断其中的噪声是什么。
19.4 反向去噪过程
生成时从随机噪声开始:
然后从
text
x_T -> x_{T-1} -> ... -> x_1 -> x_0每一步都用神经网络预测噪声,再根据预测结果还原更干净的样本。
19.5 时间步嵌入
同一张图在不同时间步噪声强度不同。模型必须知道当前输入处于哪个时间步。
因此扩散模型会把时间步
常见做法包括正弦余弦位置编码或可学习时间嵌入。
19.6 U-Net
图像扩散模型常用 U-Net 作为噪声预测网络。
U-Net 有编码器和解码器结构,并通过跳跃连接保留空间细节:
text
下采样提取语义 -> 上采样恢复分辨率跳跃连接能把浅层空间细节传给解码部分,有利于生成清晰图像。
19.7 条件扩散模型
无条件扩散模型只学习生成数据。条件扩散模型会额外输入条件
条件可以是:
| 条件 | 任务 |
|---|---|
| 类别标签 | 生成指定类别 |
| 文本 | 文生图 |
| 低分辨率图像 | 超分辨率 |
| 边缘图、深度图 | 控制结构 |
文生图模型会先把文本编码成向量,再作为条件引导去噪过程。
19.8 扩散模型、GAN、VAE 对比
| 模型 | 优点 | 缺点 |
|---|---|---|
| VAE | 训练稳定,潜空间规整 | 样本可能偏模糊 |
| GAN | 样本清晰,生成速度快 | 训练不稳定,可能模式崩溃 |
| 扩散模型 | 训练稳定,生成质量高 | 采样步骤多,速度较慢 |
扩散模型的核心不是“直接生成图像”,而是学习从噪声中逐步恢复数据结构。