GAN在图像中的应用——DCGAN为了方便大家更好地理解生成式对抗网络的工作过程,下面介绍一个GAN的使用场景——在图片中的生成模型DCGAN。在图像生成过程中,如何设计生成模型和判别模型呢?深度学习里,对图像分类建模,刻画图像不同层次,抽象信息表达的最有效的模型是:CNN (convolutional neural network,卷积神经网络)。CNN是深度神经网络的一种,可以通过卷积层(convolutional layer)提取不同层级的信息,如上图所示。CNN模型以图片作为输入,以图片、类别抽象表达作为输出,如:纹理、形状等等,其实这与人类对图像的认知有相似之处,即:我们对一张照片的理解也是多层次逐渐深入的。那么生成图像的模型应该是什么样子的呢?想想小时候上美术课,我们会先考虑构图,再勾画轮廓,然后再画细节,最后填充颜色,这事实上也是一个多层级的过程,就像是把图像理解的过程反过来,于是,人们为图像生成设计了一种类似反卷积的结构:Deep convolutional NN for GAN(DCGAN)DCGAN采用一个随机噪声向量作为输入,如高斯噪声。输入通过与CNN类似但是相反的结构,将输入放大成二维数据。通过采用这种结构的生成模型和CNN结构的判别模型,DCGAN在图片生成上可以达到相当可观的效果。如下是一些生成的案例照片。
GAN的未来无论是无监督学习、半监督学习,GAN给我们提供了一个处理问题的崭新思路,就是把博弈论引入到机器学习过程中来。可以预见,GAN本身的算法以及看问题的角度,必将对未来设计算法、以及解决实际问题产生深远的影响。那么,GAN当前有哪些急需解决的问题呢:首先,针对图片生成问题而言,一个至关重要的问题是GAN和其他方法比,到底好多少?GAN框架中的各种衍生算法相互比较,谁好谁坏?很可惜的是,现在没有一个客观的公认标准去衡量不同图片生成算法的差异性。其实这本身就是一个难题,因为人会从多角度判断一张图片是否真实,如图片是否清晰、图片物体线条颜色是否正确、图片里是否有一些反直觉的物体等,只有有了合理的衡量标准,才能科学系统地研究并改进GAN的算法。其次,GAN是着眼于对所有生成模型的学习,并不局限于图像生成一个应用层面。那么GAN如何运用于其他问题,如机器翻译、对话生成、语音生成等?这些都是有趣、富有挑战的事情。其实还有更有趣的事情,如GAN能不能生成真实场景作为模拟器,帮助训练自动驾驶?GAN能否生成逼真的虚拟视觉给人们提供全新的游戏体验?也许盗梦空间离我们很近,也许盗梦空间的创造者就是你。参考文献:1.Wasserstein GAN
https://arxiv.org/abs/1701.07875
2.Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networkshttps://arxiv.org/abs/1511.064343.Improved techniques for training ganshttps://arxiv.org/abs/1606.03498
4."Generative Adversarial Networks," NIPS 2016 tutorial by Ian Goodfellow