第 18 章 GAN
GAN 是生成对抗网络(Generative Adversarial Network)。它由两个模型组成:生成器和判别器。
| 模块 | 作用 |
|---|---|
| 生成器 | 从随机噪声生成假样本 |
| 判别器 | 判断样本是真实样本还是生成样本 |
GAN 采用对抗训练:判别器学习区分真实样本和生成样本,生成器学习产生更难被判别器识别的样本。
18.1 生成器
生成器接收随机噪声
其中
其中
生成器的目标是让
18.2 判别器
判别器接收一个样本
如果输入是真实样本,希望
18.3 对抗目标
GAN 的经典目标为:
其中:
| 符号 | 含义 |
|---|---|
| 对随机样本取期望 | |
| 真实数据分布 | |
| 随机噪声 | |
| 生成器最小化目标,判别器最大化目标 |
判别器最大化这个目标:
- 对真实样本输出高概率。
- 对生成样本输出低概率。
生成器最小化这个目标:
- 让
尽量接近 1。 - 让生成样本更难被判别器识别。
18.4 训练过程
GAN 通常交替训练:
- 固定生成器,训练判别器识别真实样本和生成样本。
- 固定判别器,训练生成器骗过判别器。
- 重复上述过程。
GAN 优化的是一个极小极大问题,两个模型的目标相互制约,因此训练过程比单模型监督学习更不稳定。
18.5 为什么 GAN 难训练
GAN 难训练的原因包括:
| 问题 | 含义 |
|---|---|
| 训练不稳定 | 生成器和判别器能力不断变化 |
| 梯度消失 | 判别器太强时,生成器得到的有效梯度很弱 |
| 模式崩溃 | 生成器只生成少数类型样本 |
| 评价困难 | 生成质量和多样性不容易用单一指标衡量 |
模式崩溃是 GAN 的典型问题。例如真实数据有 10 类图像,但生成器只学会生成其中 1 类,并且这些图像能骗过判别器。
18.6 DCGAN
DCGAN 是 Deep Convolutional GAN,把卷积神经网络用于 GAN。
生成器通常使用转置卷积或上采样逐步放大特征图;判别器使用卷积网络判断图像真假。
DCGAN 的意义在于:它把 GAN 和 CNN 结合起来,使 GAN 在图像生成中更稳定、更有效。
18.7 条件 GAN
普通 GAN 只从噪声生成样本,无法指定生成类别。条件 GAN(Conditional GAN, CGAN)会加入条件
判别器也接收条件:
这样模型可以生成指定类别或满足指定条件的样本。
18.8 GAN 和自编码器的区别
| 模型 | 核心目标 | 生成方式 |
|---|---|---|
| 自编码器 | 重构输入 | 编码后解码 |
| VAE | 重构 + 潜空间正则 | 从先验采样再解码 |
| GAN | 让生成样本骗过判别器 | 从噪声直接生成 |
在图像生成中,GAN 往往样本锐利度较高,但训练稳定性较差;VAE 训练目标更平滑,潜空间结构更规整,但生成样本容易偏模糊。