Skip to content

第 18 章 GAN

GAN 是生成对抗网络。它由两个模型组成:生成器和判别器。

模块作用
生成器 G从随机噪声生成假样本
判别器 D判断样本是真实样本还是生成样本

GAN 的训练像一个对抗过程:生成器希望骗过判别器,判别器希望识别真假。

18.1 生成器

生成器接收随机噪声 z,输出生成样本:

x^=G(z)

其中 z 通常来自简单分布,例如标准正态分布:

zN(0,I)

生成器的目标是让 G(z) 看起来像真实数据。

18.2 判别器

判别器接收一个样本 x,输出它来自真实数据的概率:

D(x)(0,1)

如果输入是真实样本,希望 D(x) 接近 1;如果输入是生成样本,希望 D(G(z)) 接近 0。

18.3 对抗目标

GAN 的经典目标为:

minGmaxDExpdata[logD(x)]+Ezpz[log(1D(G(z)))]

判别器最大化这个目标:

  • 对真实样本输出高概率。
  • 对生成样本输出低概率。

生成器最小化这个目标:

  • D(G(z)) 尽量接近 1。
  • 让生成样本更难被判别器识别。

18.4 训练过程

GAN 通常交替训练:

  1. 固定生成器,训练判别器识别真实样本和生成样本。
  2. 固定判别器,训练生成器骗过判别器。
  3. 重复上述过程。

训练不是普通的单模型最小化,而是两个模型之间的动态博弈。

18.5 为什么 GAN 难训练

GAN 难训练的原因包括:

问题含义
训练不稳定生成器和判别器能力不断变化
梯度消失判别器太强时,生成器得到的有效梯度很弱
模式崩溃生成器只生成少数类型样本
评价困难生成质量和多样性不容易用单一指标衡量

模式崩溃是 GAN 的典型问题。例如真实数据有 10 类图像,但生成器只学会生成其中 1 类,并且这些图像能骗过判别器。

18.6 DCGAN

DCGAN 把卷积神经网络用于 GAN。

生成器通常使用转置卷积或上采样逐步放大特征图;判别器使用卷积网络判断图像真假。

DCGAN 的意义在于:它把 GAN 和 CNN 结合起来,使 GAN 在图像生成中更稳定、更有效。

18.7 条件 GAN

普通 GAN 只从噪声生成样本,无法指定生成类别。条件 GAN 会加入条件 c

G(z,c)

判别器也接收条件:

D(x,c)

这样模型可以生成指定类别或满足指定条件的样本。

18.8 GAN 和自编码器的区别

模型核心目标生成方式
自编码器重构输入编码后解码
VAE重构 + 潜空间正则从先验采样再解码
GAN让生成样本骗过判别器从噪声直接生成

GAN 通常能生成更清晰的图像,但训练稳定性差;VAE 训练更稳定,但生成结果可能偏平滑。

Powered by VitePress