是什么
生成对抗网络(generative adversarial network,简称 GAN)是一种训练生成模型的方法,核心是两个神经网络在一个零和博弈(zero-sum game)中相互竞争。[1] 第一个网络叫生成器(generator),它从潜空间(latent space)中采样一个向量作为「种子」,再把它变成假的数据;第二个网络叫判别器(discriminator),它接收一个输入,判断这个输入是真实的(来自训练集)还是生成出来的。[1] 生成器的训练目标是骗过判别器,而要做到这一点,它必须学到一个与训练集统计特性相符的分布。[1]
「零和」在这里的意思是一方的收益等于另一方的损失:判别器判得越准,生成器就越吃亏;生成器骗得越好,判别器就越失败。两者没有合作余地,只能互相逼近。
怎么训练
训练目标可以写成一个期望:判别器在真实数据上输出的对数,加上一减去它在生成数据上输出的对数,再取期望。[1] 判别器要最大化这个量——它希望在真实样本上给高分、在假样本上给低分;生成器则要最小化同一个量,于是训练成了一个极小极大博弈(min-max game)。[1] 实际操作中,两个网络用反向传播(backpropagation)交替更新。[1]
作者的分析指出,在任意函数的空间里存在唯一解:此时生成器恢复出训练数据的分布,判别器处处输出 1/2,因为它再也分不出真假。[2] 理论上,交替更新会收敛到这样的纳什均衡(Nash equilibrium),即生成分布等于真实分布、判别器输出一半。[1] 另一个实用之处是:当 G 和 D 都是多层感知机(multilayer perceptron)时,整个系统只用反向传播就能训练,不需要马尔可夫链(Markov chain),也不需要展开的近似推断网络。[2]
一个小例子
设想训练集是一批小尺寸的灰度图片。生成器一开始输出的东西接近噪声,判别器很容易把它和真实图片区分开。随着训练推进,生成器的输出逐渐向训练集的像素统计靠拢,判别器也被迫把自己的判断磨得更细。如果一切按理论发展,最后会僵持在判别器只能随机乱猜的地步。[1]
从哪来
Ian Goodfellow 和他在蒙特利尔大学(University of Montreal)的同事在 2014 年 6 月提出这个方法,并在 NIPS 2014 上发表论文《Generative Adversarial Nets》。[1] 论文描述的是同时训练一个捕捉数据分布的生成模型 G,和一个估计「某个样本来自训练数据而不是来自 G 的概率」的判别模型 D。[2] G 被训练去最大化 D 犯错误的概率,作者把这一框架称为极小极大的两人博弈。[2]
之后的架构
2015 年的 DCGAN 引入了全卷积(fully convolutional)架构。[1] Progressive GAN 逐层增大生成图像的分辨率。[1] Nvidia 的 StyleGAN-1(2018)和 StyleGAN-2(2019)基于风格迁移(style transfer)的思路,2019 年的 BigGAN 则把 ImageNet 上的生成规模推大。[1] 这些工作放在一起看,是同一种双网络结构被不断推向更大、分辨率更高的图像。
局限
模式崩塌(mode collapse)指的是生成器只产出少数几类样本,漏掉数据分布中整块的模式。[1] 训练本身也不稳定,可能无法收敛;当判别器变得太强时,生成器会拿到消失的梯度(vanishing gradient)。[1] 这些问题来自训练动力学本身,而不是某一批数据,所以后来的工作花了很大力气去设计两个网络的结构。
为什么重要
这一框架不需要马尔可夫链,也不需要展开的近似推断网络;在两个多层感知机的情形下,只用反向传播就足以训练整个系统。[2] 它在理论上的结论很干净:在任意函数空间中存在唯一解,生成器恢复数据分布,判别器处处输出一半。[2] 而后续的一系列架构说明,这个想法可以从那样的抽象设定一路走到规模不断扩大的具体图像生成。[1]
注释与来源
- Generative adversarial networkhttps://en.wikipedia.org/wiki/Generative_adversarial_network
- Generative Adversarial Networkshttps://arxiv.org/abs/1406.2661
引用本页: 生成对抗网络. TellWorld, https://www.tellworld.net/zh/learn/generative-adversarial-network. 更新于 2026-11-07