早期生成模型回顾(GANs, VAEs, Autoregressive Models)
1. 生成对抗网络(GANs)
核心思想
- 对抗训练框架:由生成器(Generator)和判别器(Discriminator)组成,通过极小极大博弈优化。
- 目标函数:
[ \min_G \max_D \mathbb{E}{x \sim p{\text{data}}}[\log D(x)] + \mathbb{E}_{z \sim p_z}[\log(1 - D(G(z)))] ] - 优势:生成样本质量高,尤其擅长图像合成。
经典变体
| 模型 | 改进点 | 应用场景 |
|---|---|---|
| DCGAN | 使用卷积层稳定训练 | 图像生成 |
| WGAN | Wasserstein 距离解决模式崩溃 | 高分辨率生成 |
| StyleGAN | 分层风格控制 | 人脸生成 |
局限性
- 训练不稳定(如模式崩溃)
- 难以处理离散数据(如文本)
2. 变分自编码器(VAEs)
概率框架
- 编码器-解码器结构:
- 编码器学习潜在变量分布 ( q_\phi(z|x) )
- 解码器重建数据 ( p_\theta(x|z) )
- 优化目标(ELBO):
[ \log p(x) \geq \mathbb{E}{z \sim q\phi}[\log p_\theta(x|z)] - D_{\text{KL}}(q_\phi(z|x) | p(z)) ]
特点
- 显式概率模型:支持似然计算和潜在空间插值。
- 缺点:生成样本可能模糊(因优化下界而非真实似然)。
案例研究
- 图像生成:VAE在MNIST上生成手写数字,潜在空间可视化展示连续变化特性。
3. 自回归模型(Autoregressive Models)
基本原理
- 序列建模:将数据生成视为序列决策问题,每一步依赖前序步骤:
[ p(x) = \prod_{i=1}^n p(x_i | x_{<i}) ] - 典型架构:
- PixelCNN(图像):局部卷积掩码保留自回归性质
- Transformer(文本):注意力机制建模长程依赖
优势与挑战
| 优势 | 挑战 |
|---|---|
| 精确似然计算 | 生成速度慢(需逐步采样) |
| 适合离散数据(如文本、音频) | 长序列建模复杂度高 |
代码示例(PyTorch伪代码)
class PixelCNN(nn.Module):
def __init__(self):
super().__init__()
self.masked_conv = MaskedConv2d( # 掩码卷积层
in_channels=3, out_channels=64, kernel_size=5, padding=2)
def forward(self, x):
return self.masked_conv(x)
4. 扩散模型的独特优势
对比总结
| 特性 | GANs | VAEs | Autoregressive | 扩散模型 |
|---|---|---|---|---|
| 生成质量 | ★★★★★ | ★★★☆☆ | ★★★★☆ | ★★★★★ |
| 训练稳定性 | ★★☆☆☆ | ★★★★☆ | ★★★★★ | ★★★★☆ |
| 计算效率 | ★★★★☆ | ★★★★☆ | ★★☆☆☆ | ★★★☆☆ |
| 显式概率建模 | ✗ | ✓ | ✓ | ✓ |
关键突破
- 渐进式生成:通过马尔可夫链逐步去噪,平衡质量与稳定性。
- 理论严谨性:基于随机微分方程和分数匹配的数学框架。
图表辅助
图:三类生成模型与扩散模型在生成质量、训练稳定性等方面的对比
(注:实际书籍中需替换为真实示意图)
---
### 设计说明
1. **理论推导**:包含GANs的目标函数、VAEs的ELBO推导等数学内容。
2. **案例与代码**:插入实际研究案例和简化代码示例。
3. **可视化**:通过表格和示意图对比模型特性。
4. **扩展性**:为后续介绍扩散模型优势埋下伏笔(如对比表格最后一列)。