第7章:生成模型
扩散模型简介
1. 基本概念
扩散模型(Diffusion Models)是一类基于马尔可夫链的生成模型,通过逐步添加噪声(正向过程)和逆向去噪(反向过程)学习数据分布。其核心思想源于非平衡态热力学,通过模拟数据的扩散与逆扩散过程实现高质量生成。
2. 核心原理
2.1 正向扩散过程(Forward Process)
- 定义:将数据逐步添加高斯噪声,最终转化为纯噪声。
- 数学描述:
( q(x_t|x_{t-1}) = \mathcal{N}(x_t; \sqrt{1-\beta_t}x_{t-1}, \beta_t\mathbf{I}) )
其中 ( \beta_t ) 为噪声调度参数,控制每一步的噪声强度。
2.2 反向生成过程(Reverse Process)
- 目标:学习从噪声中逐步重建原始数据。
- 关键方程:
( p_\theta(x_{t-1}|x_t) = \mathcal{N}(x_{t-1}; \mu_\theta(x_t,t), \Sigma_\theta(x_t,t)) )
通过神经网络参数化均值 ( \mu_\theta ) 和方差 ( \Sigma_\theta )。
3. 训练方法
- 损失函数:通常采用变分下界(ELBO)或简化的均方误差损失,直接预测噪声:
( \mathcal{L} = \mathbb{E}{t,x_0,\epsilon}[|\epsilon - \epsilon\theta(x_t,t)|^2] )
其中 ( \epsilon ) 为真实噪声,( \epsilon_\theta ) 为模型预测的噪声。
4. 技术优势
- 生成质量:在图像生成任务中(如DDPM、Stable Diffusion)超越GANs和VAEs。
- 训练稳定性:无需对抗训练,避免了模式崩溃问题。
- 灵活性:可与文本编码器(如CLIP)结合实现条件生成。
5. 典型模型
| 模型名称 | 核心改进 | 应用场景 |
|---|---|---|
| DDPM | 基础扩散框架 | 无条件图像生成 |
| DDIM | 加速采样过程 | 快速生成 |
| Stable Diffusion | 潜在空间扩散+文本条件控制 | 文本到图像生成 |
6. 与其他生成模型的对比
- GANs:扩散模型生成更稳定,但采样速度较慢。
- VAEs:扩散模型能生成更高保真度的样本,但训练成本更高。
7. 代码示例(PyTorch伪代码)
# 噪声预测网络(U-Net结构)
class NoisePredictor(nn.Module):
def forward(self, x, t):
# 输入含噪图像x和时间步t,输出预测噪声
return predicted_noise
# 训练循环
for x0 in dataloader:
t = randint(1, T) # 随机时间步
noise = torch.randn_like(x0) # 生成噪声
xt = sqrt_alpha_bar[t] * x0 + sqrt_one_minus_alpha_bar[t] * noise
loss = F.mse_loss(noise, model(xt, t)) # 优化噪声预测
8. 应用前景
- 图像超分辨率:如Google的SR3模型。
- 分子结构生成:用于药物发现领域。
- 音频生成:WaveGrad等扩散音频模型。
注:扩散模型的训练需大量计算资源,通常需要GPU集群支持。后续章节将介绍其具体应用(如第7章第5节“图像生成”)。
