第1章:生成模型概述与背景
1. 什么是生成模型?
1.1 基本定义
生成模型(Generative Models)是一类能够学习数据分布并生成新样本的机器学习模型。与判别模型(Discriminative Models)不同,生成模型的目标是建模联合概率分布 ( p(x) ) 或条件概率分布 ( p(x|y) ),从而能够从学到的分布中采样生成新的数据样本。
数学上,生成模型的目标是学习真实数据分布 ( p_{\text{data}}(x) ) 的近似分布 ( p_{\theta}(x) ),其中 ( \theta ) 是模型参数。
1.2 生成模型的核心能力
- 数据生成:从噪声或潜在空间中生成与训练数据相似的新样本。
- 密度估计:评估给定样本的概率密度(部分模型支持)。
- 隐变量建模:通过隐变量(latent variables)捕捉数据的高层特征。
1.3 生成模型的分类
根据建模方式,生成模型可分为以下几类:
- 显式密度模型:直接建模概率密度函数,如:
- 自回归模型(Autoregressive Models)
- 变分自编码器(VAEs)
- 隐式密度模型:不显式建模密度函数,而是通过生成过程隐式学习分布,如:
- 生成对抗网络(GANs)
- 扩散模型(Diffusion Models)
1.4 生成模型与判别模型的对比
| 特性 | 生成模型 | 判别模型 |
|---|---|---|
| 目标 | 建模 ( p(x) ) 或 ( p(x|y) ) | 建模 ( p(y|x) ) |
| 应用场景 | 数据生成、补全、增强 | 分类、回归、检测 |
| 典型算法 | GANs, VAEs, 扩散模型 | 逻辑回归、SVM、神经网络 |
1.5 扩散模型的特殊性
扩散模型是一种基于马尔可夫链的生成模型,其核心思想是通过逐步添加噪声(正向过程)和逐步去噪(逆向过程)学习数据分布。与其他生成模型相比,扩散模型具有:
- 训练稳定性:避免GANs中的模式崩溃问题。
- 理论严谨性:基于随机微分方程和概率论的数学框架。
- 高质量生成:在图像、音频等领域实现了SOTA结果。
图表辅助说明
图1.1 生成模型与判别模型的区别
graph LR
A[输入数据] --> B[生成模型: 学习数据分布]
A --> C[判别模型: 学习决策边界]
B --> D[生成新样本]
C --> E[预测标签]
图1.2 生成模型家族树
graph TD
A[生成模型] --> B[显式密度模型]
A --> C[隐式密度模型]
B --> D[自回归模型]
B --> E[变分自编码器]
C --> F[GANs]
C --> G[扩散模型]
案例研究:生成模型的实际意义
- 医学影像生成:生成合成MRI图像以扩充稀缺数据集。
- 艺术创作:Stable Diffusion生成风格化图像。
- 语音合成:WaveGAN生成逼真语音片段。
代码示例:生成模型的伪代码
# 生成模型的通用训练框架(以PyTorch为例)
def train_generative_model(data, model, epochs):
optimizer = torch.optim.Adam(model.parameters())
for epoch in range(epochs):
for batch in data:
# 1. 从数据分布中采样真实样本
x_real = batch["data"]
# 2. 生成样本(具体实现因模型而异)
x_fake = model.sample()
# 3. 计算损失函数(如负对数似然、对抗损失等)
loss = compute_loss(x_real, x_fake)
# 4. 反向传播
optimizer.zero_grad()
loss.backward()
optimizer.step()
关键公式
生成模型的核心是最小化真实分布 ( p_{\text{data}}(x) ) 和模型分布 ( p_{\theta}(x) ) 之间的差异,常用KL散度度量:
