生成对抗网络
造假者与鉴定师的较量:谁逼出了谁的极限
定义
生成对抗网络由两个网络组成:生成器 G 把随机噪声映射成样本,判别器 D 判断样本来自真实数据还是生成器。二者在博弈中共同进步——G 想让 D 误判,D 想准确分辨——理想情况下训练收敛到生成分布与真实分布重合。
直观理解
这是一场持续的双人博弈。G 是造假币的人,D 是验钞员。造假者每造出一批,验钞员就指出破绽;验钞员每升级一次,造假者就得把细节做得更真。当假币连验钞员都分辨不出,博弈达到平衡——这也是 GAN 唯一而脆弱的目标。危险在于:一方学得太快就会压垮另一方,博弈可能震荡甚至崩塌。
对抗循环:噪声经生成器变成样本,判别器给出真伪判定,其信号再回传给生成器
训练健康的 GAN 中,判别器与生成器的损失围绕 log 2 ≈ 0.69 相互追逐、持续震荡,而非单调下降;这种震荡正是收敛到均衡的常态
- 判别器 D 的损失
- 生成器 G 的损失
工作原理
- 01
采样与生成
从简单先验(如标准正态或均匀分布)里取一个噪声向量,送入生成器,得到一张合成样本。生成器不直接模仿某张训练图,而是学习如何把噪声分布「搬运」成数据分布。
- 02
判别与打分
判别器同时接收真实样本与生成样本,输出「为真」的概率。它对两者判错的惩罚,构成生成器可用的训练信号——这相当于一个随对抗过程不断升级的可学习损失函数。
- 03
极小极大博弈
目标函数是一个极小极大(minimax)问题:D 最大化区分正确的对数似然,G 最小化被识破的能力。在最优判别器下,G 的梯度等价于最小化生成分布与真实分布之间的 Jensen–Shannon 散度。
- 04
面向稳定的改进
DCGAN 用卷积架构与批归一化稳定训练;WGAN 换用 Wasserstein 距离并配权重裁剪或梯度惩罚,让梯度在分布几乎不重叠时依然有意义;条件 GAN 把标签或文本拼进两个网络的输入,实现可控生成。
关键公式
min_G max_D E_x[log D(x)] + E_z[log(1 − D(G(z)))]GAN 与扩散的训练性格对照:一步生成的代价,是极不稳定的对抗优化
应用场景
- 图像合成、超分辨率与图像到图像的翻译(如 CycleGAN)
- 风格迁移与老照片修复
- 数据增强:为稀缺类别合成样本
- 作为其他模型的组件:感知损失,以及语音与视频合成中的判别器
常见误区
- 模式崩塌:G 发现少数几种样本最能骗过 D,于是反复输出这几类,多样性骤降。
- 训练不稳定:G 与 D 的进度必须同步;一方过强即导致梯度消失或震荡,超参数极其敏感。
- 「判别器准确率 50%」不代表训练成功。D 太弱或太强都会让 G 学不到东西,平衡点极窄。
关键术语
- 生成器
- 把噪声映射为样本的网络
- 判别器
- 判断样本真伪的网络,同时充当损失
- 模式崩塌
- 生成器只覆盖少数模式,多样性丧失
- Wasserstein 距离
- 衡量两个分布的「推土机」距离,比 JS 散度更适合训练