资讯

对抗网络是什么?让两个网络在竞争中共同进步

2026-11-053 分钟阅读百科
TL;DR对抗网络(Adversarial Networks)泛指让两个神经网络以相互对抗的方式共同训练的框架,最典型的是生成对抗网络中生成器与判别器的博弈,这一思想还被用于领域自适应(梯度反转层)、对抗训练提升鲁棒性、风格迁移和超分辨率等任务。

对抗网络(Adversarial Networks)是指让两个或多个神经网络以相互对抗、相互竞争的方式共同进行训练的一类方法。其中最著名、最典型的就是 Ian Goodfellow 等人在 2014 年提出的生成对抗网络。对抗的思想也被广泛地用于其他许多机器学习任务中。

对抗的基本思想

在对抗网络中,通常有两个目标相反的网络:一个网络努力完成某个任务,另一个网络则努力阻止它、挑它的错。两者在不断的较量中相互促进:一方变强了,另一方也必须变得更强才能应对。这种思想来源于博弈论:两个参与者各自追求自己的利益,最终可能达到一种平衡的状态,在这种状态下,任何一方都无法通过单方面改变策略而获得更好的结果,这叫作纳什均衡。

一个常用的比喻是造假币的人和警察:造假币的人不断改进技术,让假币越来越逼真;警察不断提高鉴别能力,识破越来越精巧的假币。在这种你来我往的竞争中,假币变得越来越难以分辨,警察的眼力也越来越好。

生成对抗网络

生成对抗网络由生成器和判别器两个部分组成。生成器从随机的噪声出发,生成假的数据,比如假的人脸图片;判别器接收真实的图片和生成器造出的假图片,努力判断哪些是真的、哪些是假的。生成器的目标是骗过判别器,判别器的目标是不被骗。两者交替地进行训练,最终生成器能够生成非常逼真、难以与真实数据区分的样本。英伟达的 StyleGAN 生成的高清人脸照片,几乎可以以假乱真。在扩散模型兴起之前,生成对抗网络是图像生成领域最主流的技术。

对抗思想的其他应用

领域自适应:在实际应用中,常常需要把在一个领域训练的模型用到另一个领域,比如把在合成图片上训练的模型用于真实的图片。2015 年,Yaroslav Ganin 和 Victor Lempitsky 提出了领域对抗训练:让特征提取网络学习提取特征,同时训练一个领域判别器来判断特征来自哪个领域;特征提取网络的目标是让领域判别器无法分辨,从而学到在两个领域之间通用的特征。他们巧妙地使用了一个“梯度反转层”来实现这种对抗。

对抗训练:研究发现,神经网络很容易被对抗样本欺骗,也就是对输入做人眼难以察觉的微小修改,就能让模型给出完全错误的结果。对抗训练的做法是:在训练过程中,不断地针对当前的模型生成对抗样本,并把它们加入训练数据中,让模型学会抵抗这些攻击,从而提高模型的鲁棒性。这可以看作模型与一个“攻击者”之间的对抗。

图像转换和超分辨率:在图像风格转换、照片修复、超分辨率等任务中,常常在普通的损失函数之外再加上一个对抗损失,用一个判别器来判断生成的图像是否逼真,这能让生成的图像细节更丰富、更清晰,而不是模糊的。在扩散模型的加速中,也常常引入对抗训练,让模型用很少的步数就能生成清晰的图片。

对抗训练的挑战

对抗训练以不稳定著称:两个网络之间需要保持微妙的平衡,如果一方过强,另一方就学不到东西;训练过程可能来回震荡、难以收敛;生成对抗网络还常常出现“模式崩溃”,生成器只学会生成少数几种样本。研究者提出了大量的技巧来改善对抗训练的稳定性,比如改进损失函数、谱归一化、梯度惩罚等。