生成对抗网络是一种无监督学习方法,是一种通过用对抗网络来训练生成模型的架构。它由两个网络组成:用来拟合数据分布的生成网络G,和用来判断输入是否“真实”的判别网络D。在训练过程中,生成网络G通过接受一个随机的噪声来尽量模仿训练集中的真实图片去“欺骗”D,而D则尽可能的分辨真实数据和生成网络的输出,从而形成两个网络的博弈过程。理想的情况下,博弈的结果会得到一个可以“以假乱真”的生成模型。
Figure 1. 生成对抗网络示意图
描述来源:
Generative Adversarial Nets https://arxiv.org/pdf/1406.2661.pdf
wiki https://en.wikipedia.org/wiki/Generative_adversarial_network
图片来源:
Generative Adversarial Nets https://arxiv.org/pdf/1406.2661.pdf
- GAN 变体
- 理论
- 目标函数:DCGAN
- 训练模式:WGAN
- 潜在空间(latent space)
- 分解(decomposition):CGAN
- 结合VAE:VAEGAN
- 应用:
- 图像转换:BicycleGAN, CycleGAN
- 离散模型:Adversarial Learning for Neural Dialogue Generation
- 理论
发展历史
生成模型指能随机生成观测数据的模型。正如Richard Feynman所说“What I cannot create, I do not understand(我不理解我不能创造之物)”,生成模型将生成观测变量与目标变量间的复杂关系表示成一个联合概率分布,是一种能够分析理解事物的模型。在GAN之前,主流生成模型包括FVBN, VAE等等(图2),但这些模型都存在各自的缺陷。由Ian Goodfellow等人在2014提出的生成对抗网络解决的很多这些模型的缺陷:如FVBN无法并行,生成样本速度缓慢;VAE只能生成模糊的图像;依赖马科夫链(Markov Chain)的玻尔兹曼机(Boltzmann machine)。而GAN自身难训练,不稳定等缺陷也在慢慢被后续的各式变体GAN慢慢所改进。
图2 生成模型分类 (Ian Goodfellow, NIPS tutorial, 2016)
主要事件
年份 | 事件 | 相关论文 |
2014 | Goodfellow等提出GAN | Goodfellow, I., Pouget-Abadie, J., Mirza, M., Xu, B., Warde-Farley, D., Ozair, S., Courville, A., and Bengio, Y. Generative adversarial nets. In Advances in Neural Information Processing Systems (NIPS), 2014. |
2015 | Radford等提出DCGAN | Radford, Alec, Luke Metz, and Soumith Chintala. "Unsupervised representation learning with deep convolutional generative adversarial networks." arXiv preprint arXiv:1511.06434 (2015). |
2017 | Martin等提出WGAN | Arjovsky, Martin, Soumith Chintala, and Léon Bottou. "Wasserstein gan." arXiv preprint arXiv:1701.07875 (2017). |
发展分析
瓶颈
除了神经网络普遍存在的对数据量和训练时间的高要求之外,由于没有好的训练指标,GAN普遍较难训练(DCGAN试图解决);有时候,生成图像的多样性不够好;以及由于生成网络会根据判别网络的输出梯度来改变合成数据使其能“欺骗”判别网络,GAN不能直接用于数据是离散的领域(如NLP)。
未来发展方向
GAN的瓶颈和缺陷催生出了以下几个不同的发展方向:
- 提高训练的稳定性
- 保证输出的多样性
- 将GAN思路应用到更多研究领域(NLP,RL等),使之能够在离散数据上应用。比如Li等人在最近的一篇论文(Adversarial Learning for Neural Dialogue Generation)中提出通过使用RL的方法来解决离散数据无法反向传播的问题,进而使得GAN能更好的应用在离散数据集上。
Contributor: Yulong Cao