生成式对抗网络模型综述



关注微信公众号SIGAICN,可获取PDF全文

摘要
生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络最最直接的应用是数据的生成,而数据质量的好坏则是评判GAN成功与否的关键。本文介绍了GAN最初被提出时的基本思想,阐述了其一步步演化、改进的动机和基本思想以及原理,从基于模型改进的角度介绍了WGAN,WGAN-GP,LSGAN,f-GAN,LS-GAN以及GLS-GAN,EBGAN,BEGAN等GAN发展过程中较为重要的改进模型,以及从应用创新角度介绍了CGAN,InfoGAN,Pix2Pix,CycleGAN,StarGAN等较为常用或热门的GAN的应用方法。此外,本文还介绍了GAN的几种应用,包括图像翻译,语言翻译以及基于GAN的辅助驾驶等。最后本文还介绍了GAN的主要发展和研究方向,提出了GAN现在以及将来发展的热点与难点等,如如何提高图片的质量,避免模式崩塌等。

关键词
深度学习 生成式对抗网络 卷积神经网络 Wasserstein距离 对抗训练
deep learning, generate adversial network, convolutionalneural network, Wasserstein Distance, adversial training

引言
近年来,人工智能与深度学习已经成为耳熟能详的名词。一般而言,深度学习模型可以分为判别式模型与生成式模型。由于反向传播(Back propagation, BP)、Dropout等算法的发明,判别式模型得到了迅速发展。然而,由于生成式模型建模较为困难,因此发展缓慢,直到近年来最成功的生成模型——生成式对抗网络的发明,这一领域才焕发新的生机。
生成式对抗网络(Generative adversarial network, GAN)自Ian Goodfellow[1]等人提出后,就越来越受到学术界和工业界的重视。而随着GAN在理论与模型上的高速发展,它在计算机视觉、自然语言处理、人机交互等领域有着越来越深入的应用,并不断向着其它领域继续延伸。因此,本文将对GAN的理论与其应用做一个总结与介绍。

GAN的基本思想
GAN受博弈论中的零和博弈启发,将生成问题视作判别器和生成器这两个网络的对抗和博弈:生成器从给定噪声中(一般是指均匀分布或者正态分布)产生合成数据,判别器分辨生成器的的输出和真实数据。前者试图产生更接近真实的数据,相应地,后者试图更完美地分辨真实数据与生成数据。由此,两个网络在对抗中进步,在进步后继续对抗,由生成式网络得的数据也就越来越完美,逼近真实数据,从而可以生成想要得到的数据(图片、序列、视频等)。
如果将真实数据和生成数据服从两个分布,那么如图所示

蓝色分布为生成分布,绿色分布为真实分布,D为判别器,GAN从概率分布的角度来看,就是通过D来将生成分布推向真实分布,紧接着再优化D,直至到达图1(d)所示,到达Nash均衡点,从而生成分布与真实分布重叠,生成极为接近真实分布的数据。



GAN 的应用

GAN最直接的应用在于数据的生成,也就是通过GAN的建模能力生成图像、语音、文字、视频等等。而如今,GAN最成功的应用领域主要是计算机视觉,包括图像、视频的生成,如图像翻译、图像上色、图像修复、视频生成等。此外GAN在自然语言处理,人机交互领域也略有拓展和应用。本章节将从图像领域、视频领域以及人机交互领域分别介绍GAN的相关应用。

图像领域

例如,CycleGAN就是GAN在图像领域上的一种重要应用模型。CycleGAN以无需配对的两类图像为基础,可以通过输入一张哭脸将其转变为笑脸。StarGAN是CycleGAN的进一步扩展,一个类别与一个类别对应就要训练一次太过麻烦,我们不但需要把笑脸转化为哭脸,还需要把它转化为惊讶,沮丧等多种表情,而StarGAN实现了这种功能。

此外,很多的GAN技术也有将文字描述转换成图片,根据轮廓图像生成接近真实的照片等等功能。


视频领域

Mathieu[10]等人首先将GAN训练应用于视频预测,即生成器根据前面一系列帧生成视频最后一帧,判别器对该帧进行判断。除最后一帧外的所有帧都是真实的图片,这样的好处是判别器能有效地利用时间维度的信息,同时也有助于使生成的帧与前面的所有帧保持一致。实验结果表明,通过对抗训练生成的帧比其他算法更加清晰。

此外,Vondrick[11]等人在视频领域也取得了巨大进展,他们能生成32帧分辨率为64×64 的逼真视频,描绘的内容包括高尔夫球场、沙滩、火车站以及新生儿。经过测试,20%的标记员无法识别这些视频的真伪。


人机交互领域

Santana等人实现了利用GAN 的辅助自动驾驶。首先,生成与真实交通场景图像分布一致的图像,然后,训练一个基于循环神经网络的转移模型来预测下一个交通场景。

另外,GAN还可以用于对抗神经机器翻译,将神经机器翻译(neural machine translation, NMT)作为GAN 的生成器,采用策略梯度方法训练判别器,通过最小化人类翻译和神经机器翻译的差别生成高质量的翻译。


总结

GAN由于其强大的生成能力,正被广泛地研究与关注。目前,在学术领域,目前GAN训练指标,模式坍塌以及模型的生成能力的可解释性正受广泛的关注。最后,在拓展应用领域,由于生成的图片有较高的噪音,如何提高数据(图片或视频等)也是研究的一大热点。此外,GAN作为一种深度模型,也是解决自然语言处理(Natural Language Processing, NLP)天然的良好模型。如何将GAN应用在NLP领域也是下一步要解决的问题。


参考文献:

[1] Goodfellow I J, Pouget-Abadie J, Mirza M, et al. Generative adversarial nets[C]//: International Conference on Neural Information Processing Systems, 2014.

[2] Radford A, Metz L, Chintala S. Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks[J]. Computer Science, 2015.

[3] Arjovsky M, Bottou L. Towards Principled Methods for Training Generative Adversarial Networks[J]. 2017.

[4] Arjovsky M, Chintala S, Bottou L. Wasserstein GAN[J]. 2017.

[5] Gulrajani I, Ahmed F, Arjovsky M, et al. Improved Training of Wasserstein GANs[J]. 2017.

[6] Mao X, Li Q, Xie H, et al. Least Squares Generative Adversarial Networks[C]// IEEE International Conference on Computer Vision. IEEE Computer Society, 2017:2813-2821.

[7] Nowozin S, Cseke B, Tomioka R. f-GAN: Training Generative Neural Samplers using Variational Divergence Minimization[J]. 2016.

[8] Qi G J. Loss-Sensitive Generative Adversarial Networks on Lipschitz Densities[J]. 2017.

[9] Salimans T, Goodfellow I, Zaremba W, et al. Improved Techniques for Training GANs[J]. 2016.

[10] Mathieu M, Couprie C, Lecun Y. Deep multi-scale video prediction beyond mean square error[J]. arXiv: arXiv1511.05440, 2015.

[11] Vondrick C, Pirsiavash H, Torralba A. Generating videos with scene dynamics[C]//Conferrence on Neural Information Processing Systems. 2016: 613-621.

[12] Wu L, Xia Y, Zhao L, et al. Adversarial neural machine translation [J]. arXiv: arXiv1704.06933, 2017.

推荐文章

往期文章汇总

[1] 机器学习-波澜壮阔40年 SIGAI 2018.4.13.

[2] 学好机器学习需要哪些数学知识?SIGAI 2018.4.17.

[3] 人脸识别算法演化史 SIGAI 2018.4.20.

[4] 基于深度学习的目标检测算法综述 SIGAI 2018.4.24.

[5] 卷积神经网络为什么能够称霸计算机视觉领域? SIGAI 2018.4.26.

[6] 用一张图理解SVM的脉络 SIGAI 2018.4.28.

[7] 人脸检测算法综述 SIGAI 2018.5.3.

[8] 理解神经网络的激活函数 SIGAI 2018.5.5.

[9] 深度卷积神经网络演化历史及结构改进脉络-40页长文全面解读 SIGAI 2018.5.8.

[10] 理解梯度下降法 SIGAI 2018.5.11.

[11] 循环神经网络综述—语音识别与自然语言处理的利器 SIGAI 2018.5.15

[12] 理解凸优化 SIGAI 2018.5.18

[13]【实验】理解SVM的核函数和参数 SIGAI 2018.5.22

[14] 【SIGAI综述】行人检测算法 SIGAI 2018.5.25

[15] 机器学习在自动驾驶中的应用—以百度阿波罗平台为例(上) SIGAI 2018.5.29

[16] 理解牛顿法 SIGAI 2018.5.31

[17]【群话题精华】5月集锦—机器学习和深度学习中一些值得思考的问题 SIGAI 2018.6.1

[18] 大话Adaboost算法 SIGAI 2018.6.2

[19] FlowNet到FlowNet2.0:基于卷积神经网络的光流预测算法 SIGAI 2018.6.4

[20] 理解主成分分析(PCA) SIGAI 2018.6.6

[21] 人体骨骼关键点检测综述 SIGAI 2018.6.8

[22] 理解决策树 SIGAI 2018.6.11

[23] 用一句话总结常用的机器学习算法 SIGAI 2018.6.13

[24] 目标检测算法之YOLO SIGAI 2018.6.15

[25] 理解过拟合 SIGAI 2018.6.18

[26] 理解计算:从√2到AlphaGo ——第1季 从√2谈起 SIGAI 2018.6.20

[27] 场景文本检测——CTPN算法介绍 SIGAI 2018.6.22

[28] 卷积神经网络的压缩和加速 SIGAI 2018.6.25

[29] k近邻算法 SIGAI 2018.6.27

[30] 自然场景文本检测识别技术综述 SIGAI 2018.6.27

[31] 理解计算:从√2到AlphaGo ——第2季 神经计算的历史背景 SIGAI 2018.7.4

[32] 机器学习算法地图 SIGAI2018.7.6


猜你喜欢

转载自blog.csdn.net/SIGAI_CSDN/article/details/80984973
今日推荐