生成对抗网络(Generative Adversarial Network,GAN)
0. 前言
生成对抗网络 (Generative Adversarial Network, GAN) 属于生成模型。与自编码器不同,生成模型能够在给定任意编码的情况下创建新的有意义的输出。本节将详细讨论 GAN 的工作原理,并通过 tf.keras 框架实现 GAN。
1. GAN 基本原理
GAN 通过训练两个相互竞争又协作的网络——生成器与判别器——来学习输入数据的分布建模。生成器的任务是持续生成能够欺骗判别器的伪造数据(例如音频和图像),而判别器则被训练来区分真假数据。随着训练推进,判别器将逐渐无法区分合成数据与真实数据。至此,可弃用判别器,单独使用生成器来创造逼真数据。
虽然 GAN 的基本原理直观明了,但其核心挑战在于如何实现生成器-判别器网络的稳定训练。两个网络必须保持良性竞争关系才能实现同步学习。由于损失函数基于判别器的输出计算,其参数更新迅速。当判别器收敛过快时,生成器就无法获得足够的梯度更新,导致收敛失败。除训练困难外,GAN 还可能遭遇局部或完全模式崩溃——即生成器对不同潜编码产生几乎相同输出的情况。
如下图所示,GAN 由生成器与判别器两个网络组成:
订阅专栏 解锁全文
2359





