生成对抗网络 GAN 是什么?让“造假者”和“鉴定者”互相较量
生成对抗网络(Generative Adversarial Networks,GAN)是一种生成模型,由蒙特利尔大学的 Ian Goodfellow 等人在 2014 年提出。它通过让两个神经网络相互对抗、相互较量来进行学习,最终能够生成与真实数据非常相似的新数据,比如逼真的人脸照片。杨立昆曾称赞它是“过去十年机器学习领域最有趣的想法”。
核心思想:一场猫鼠游戏
生成对抗网络由两个部分组成。生成器:它的任务是“造假”,输入一串随机的数字,输出一张图片,目标是让生成的图片尽可能地像真的,骗过判别器。判别器:它的任务是“鉴定”,输入一张图片,判断它是来自真实数据的真图片,还是生成器造出来的假图片。
可以用伪钞制造者和警察来打比方:造假者不断改进技术,努力造出更逼真的假钞;警察不断提高鉴别的能力,努力识破假钞。在这种不断的较量中,双方的水平都在提高。训练生成对抗网络时,两个网络交替地进行训练:判别器根据真图片和假图片学习如何区分它们;生成器则根据判别器的反馈,调整自己,让生成的图片更难被识破。理想的情况下,最终生成器造出的图片和真图片无法区分,判别器只能随机猜测,判断的准确率为一半。从数学上看,这是一个两方之间的极小极大博弈。
发展历程和代表模型
生成对抗网络提出之后迅速成为研究的热点,出现了大量的改进模型。DCGAN(2015 年):把卷积神经网络引入生成对抗网络,大大提高了生成图像的质量和训练的稳定性。条件生成对抗网络:在生成时加入条件信息,比如指定要生成哪个数字、哪一类物体。pix2pix 和 CycleGAN(2017 年):用于图像之间的转换,比如把素描变成照片、把白天变成夜晚、把马变成斑马,CycleGAN 甚至不需要成对的训练图片。WGAN(2017 年):用另一种衡量真假分布差距的方式,改善了训练不稳定的问题。BigGAN(2018 年):在大规模的数据和模型上训练,生成了高质量的多类别图像。英伟达的 StyleGAN 系列(2018 年起):能够生成极其逼真的高清人脸图像,并且可以精细地控制发型、年龄、表情等风格,“这个人不存在”网站展示的就是它生成的人脸。
难点
生成对抗网络以训练困难著称:两个网络之间需要保持微妙的平衡,如果一方太强,另一方就学不到东西,训练常常不稳定、不收敛;还经常出现“模式崩溃”的问题,生成器只学会生成少数几种看起来不错的样本,缺乏多样性,比如只会生成某几种特定的人脸。此外,它也缺乏一个能直接反映生成质量的训练指标。
今天的地位
2021 年前后,扩散模型在图像生成的质量和多样性上超过了生成对抗网络,而且训练更加稳定,于是成为了文生图、视频生成的主流技术。但生成对抗网络的思想仍然在发挥作用:它生成速度快,只需要一次计算就能得到结果,仍被用于图像超分辨率、实时的图像处理等任务;对抗训练的思想也被用来加速扩散模型、提高生成图像的清晰度。需要注意的是,这类技术也可能被滥用于制造虚假的图像和视频,使用时需要遵守法律法规,对生成的内容进行标识。