生成式对抗网络简介
生成对抗网络(Generative Adversarial Network, GAN)是一种由两个神经网络组成的机器学习模型,用于生成新的、类似于训练数据的样本。GAN由Ian Goodfellow及其同事在2014年提出,它在生成图像、声音和文本等数据方面取得了显著的成功。特点就是区别于一般用于回归和分类的神经网络模型。
GAN基本结构
GAN包括两个主要部分:
生成器(Generator):负责生成假数据。
判别器(Discriminator):负责区分生成的数据和真实数据。
这两个网络通过对抗训练来提高各自的能力:生成器试图生成看起来像真实数据的样本,以欺骗判别器。判别器试图尽可能准确地区分真实数据和生成数据。
训练时,生成器接收一个随机噪声向量,通过一系列的层生成一个数据样本。判别器接收一个数据样本(可能是生成的也可能是真实的),并输出一个判定结果,判断该样本是真实的概率。
在接下来的训练中,生成器和判别器通过对抗训练来改进。生成器的目标是最大限度地欺骗判别器,使其无法区分生成数据和真实数据。判别器的目标是最大限度地提高区分真实数据和生成数据的能力。
GAN的学习目标本质上是一个“分布”,因为本质上“生成”一个图像是从一个分布中去取样,举例来说如果要生成一个背景是蓝天的云的相关图像,那在连成一片云的区域中,取到“白色”像素的概率就比其他颜色的要大一些,而这个概率分布是需要训练去拟合的。根据目标的不同,分布也会愈加复杂,所以GAN的训练对于一般的计算资源来说不会容易。
(下图是生成的,但是多少可以描述“学习一个分布”对生成效果的影响)
对于设计一个符合自己应用需求的GAN,需要关注目标函数和训练过程。
目标函数:
传统神经网络通常使用一个明确的损失函数,如均方误差或交叉熵来优化模型。GAN使用的是一个自定义的对抗损失函数,其中生成器和判别器有不同的目标:生成器试图最大化判别器被欺骗的概率,而判别器试图最小化被欺骗的概率。
训练过程:
传统神经网络通过单一的损失函数进行训练,优化模型参数以最小化损失。
GAN涉及两个网络的交替训练:生成器和判别器分别冻结、分别优化,以达到高性能。
原文请参考:
[1] Goodfellow I, Pouget-Abadie J, Mirza M, et al. Generative adversarial nets[J]. Advances in neural information processing systems, 2014, 27.
比较全面的综述和介绍请参考:
[2] Creswell A, White T, Dumoulin V, et al. Generative adversarial networks: An overview[J]. IEEE signal processing magazine, 2018, 35(1): 53-65.
[3] Goodfellow I, Pouget-Abadie J, Mirza M, et al. Generative adversarial networks[J]. Communications of the ACM, 2020, 63(11): 139-144.
来自文献[3]的图,更简约直观一些:
GAN的主要变种list
2014年 - Generative Adversarial Networks (GAN)
提出者:Ian Goodfellow et al.
2015年 - Deep Convolutional GAN (DCGAN),Radford et al.
2014-2015年是基础阶段,GAN引入了生成对抗的概念,奠定了基础,DCGAN结合卷积神经网络,使得GAN在图像生成任务中的表现大幅提升。
2016年 - Conditional GAN (cGAN),Mirza and Osindero
2016年 - InfoGAN,Chen et al.
2016年 - Wasserstein GAN (WGAN),Arjovsky et al.
2016年开始进入条件与信息优化阶段,cGAN引入条件生成,扩展了GAN的应用范围;InfoGAN通过最大化互信息,使得生成结果更具解释性;WGAN改进了损失函数,提高了训练稳定性。
2017年 - Least Squares GAN (LSGAN),Mao et al.
2017年 - CycleGAN,Zhu et al.
2017年 - Pix2Pix,Isola et al.
2017年 - StackGAN,Zhang et al.
2017年 - Progressive GAN,Karras et al.
2016和17算是GAN的大规模发展期,开始关注图像转换与生成的阶段,CycleGAN、Pix2Pix实现了图像到图像的转换;StackGAN和Progressive GAN逐渐可以生成高分辨率图像。
2018年 - BigGAN,Brock et al.
2018年 - StyleGAN,Karras et al.
2019年 - StyleGAN2,Karras et al.
2019年 - Self-Attention GAN (SAGAN),Zhang et al.
2018-2019年进一步的关注规模和质量的提升,BigGAN通过扩大网络规模和数据集,提升了生成图像的质量;StyleGAN、StyleGAN2改进了生成器结构,实现了更好的图像风格控制;SAGAN引入自注意力机制,提高了长距离依赖特征的生成能力。
2020年 - BigGAN-Deep,Brock et al.
2020年 - VQ-VAE-2,Razavi et al.
2020年 - Taming Transformers for High-Resolution Image Synthesis,Esser et al.
2020年往后进入融合与扩展阶段,BigGAN-Deep通过更深的网络结构进行复杂图像生成;VQ-VAE-2结合变分自编码器与GAN,生成更高分辨率的图像;Taming Transformers:将Transformer引入GAN,提高了高分辨率图像生成的能力。
GAN在图像生成方面用处比较广泛,包括新图像生成、超分辨率重建和图像修复等;图到图、图到文本的转换也会用到GAN,包括常见的风格迁移和图像翻译(冬季照片转换成夏季照片的那种翻译)、图像理解(从图像中抽取主要内容文本)等。
总之,GAN是生成式AI的基础,自问世以来凭借生成能力,革新了传统神经网络模型只能用于回归和分类任务的局限性。为采用深度学习方法解决问题、提高深度学习模型的效率和精度提供了新的方法和视角。