点击阅读原文

深度神经网络在判别模型领域的进步远比在生成模型领域进步快得多,其主要原因就在于相对于生成式模型来说,判别模型目标清晰、逻辑相对简单,实现起来容易。

用通俗的比喻来说,判别模型相当于是来料加工,即对模型喂入一系列数据,然后由模型判别出相对应的结果,典型代表就是分类器模型。而生成模型相当于是一座生产创作工厂,其需要具备一定的创造能力,尽管在现阶段,这种创造能力的获取很大程度上都是一种通过模仿式学习得到的,并不具备真正的创作力。在生成式模型的应用中,如何准确高效的评价生成式模型非常重要,有效的对生成式模型的生成过程进行指导和纠偏,是生成式模型学习创作的关键点。本文提出的生成式对抗框架就是一种采用“博弈论”思想,来实现对生成式模型的生成过程进行评价。

摘要

本文提出了一个全新的框架来评价生成式模型——即 “对抗过程”。在这个框架中,我们同时训练两个模型:1).生成模型G,该模型用于捕获数据分布;2).判别模型D,该模型用于判别输入数据样本是来源于训练数据而不是来源于生成模型G的概率。对模型G的训练就是使得判别模型D以最大的概率判错。该框架和双人博弈游戏中的极大极小算法有类似之处,其背后体现了博弈论的思想。对于任意的生成函数G和判别函数D,该博弈问题存在唯一解,即模型G能够准确的模拟训练数据的分布,而判别模型D的输出恒等于50%。如果G和D都定义为多层感知机,那么G和D构成的整个系统可以使用反向传播算法来训练。在这个框架中,无论是在训练阶段还是在样本生成阶段,都不再依赖于马尔科夫链或滚动展开的模拟推理网络。在本文的实验部分,我们从定性和定量两个方面评价模型G所生成的样本数据,来论证该框架的潜力。

1、介绍

人们寄希望于利用深度学习能够找到表达能力丰富的、拥有层次化结构的模型,并通过模型来表达在AI应用中所使用的各种数据类型的概率分布,如图片数据、包含语音的声波数据以及自然语言中的符号等。到目前为止,深度学习领域影响力较大的一些应用已经涉及到判别模型,该类模型通常都是将高维的传感器感知数据,映射成某一类别标签。这些应用背后都是依赖于误差反向传播算法和随机神经元抑制算法(Dropout Algorithm),这两种算法背后又都应用了分段线性单元来获取更佳的梯度表现。相反来说,深度生成式模型的影响力就弱很多,其原因有二:其一在于对于生成式模型来说,我们需要依赖于极大似然估计和其他一些相关策略计算,而这些数学计算又不可避免的需要进行很多概率性估算,这在实际使用上存在很大的困难;原因之二是在生成式模型中,想充分利用分段线性单元的优势,以获取更好的梯度表现也存在客观困难。在本文中,我们提出了一种全新的生成式模型估计方法,可以绕开上述这些难题。

在本文所提出的对抗网络框架中,包含两个模型:其一是生成模型;其二是与生成模型相对抗的模型(在下文中统称为判别模型),这两个模型之间存在对抗关系。判别模型需要学会判别数据样本到底是来源于模型分布还是来源于数据分布。我们可以把生成模型类比为假钞制造团伙,该团伙企图制造假币;把判别模型类比为警察,警察试着检查出假钞。两个团队不断进行博弈的结果就是两组人都不断地提高各自的能力水平,直到假币与真钞难以分辨为止。

该框架能够衍生出很多具体的训练算法,这些算法会使用各种各样的模型及优化算法。在本文中,我们只探讨一种特例:即通过多层感知机向生成模型传入随机噪音,让其生成样本数据,同时判别模型也是一个多层感知机。我们把这一特例称为对抗网络。在这个例子里,两个模型都使用非常成功的反向传播算法和随机神经元抑制算法来训练,其中生成模型生成的样本数据通过前向算法来得到,训练细节可以参考文献[16]。整个模型训练过程不再依赖于模拟推理或马尔科夫链。

2、相关研究

直到现在,大多数生成式模型的研究还是聚焦在一些已经给定概率分布函数参数的基础上,通过最大化对数似然率来进行模型的相关训练。在这类模型中,最为成功的当属深度玻尔兹曼机,细节可以参考文献[25]。这些模型中,通常都会涉及到非常棘手的似然函数,因此需要大量的似然梯度估计。这些困难推动了“生成机”(Generative Machine)模型不断发展。生成机模型中,不再显示的依赖于似然函数,因而能够按照我们想要的分布来生成样本数据。生成式随机网络(Generative stochastic networks)就属于生成机模型的一种,该网络可以直接使用反向传播算法来训练,不像玻尔兹曼机那样的需要大量的近似估算。本文的研究进一步扩展了生成机的思想,不再使用生成式随机网络中所使用到的马尔科夫链。

在进行本文研究时,我们并不知道Kingma和Welling(详见参考文献[18])、 Rezende et al(详见参考文献[23])已经研究出了更加通用的随机反向传播规则,该规则使得模型能够在有限方差范围内,使用高斯分布来进行梯度的反向传播。同时,这些反向传播规则使得模型能够学到生成器的条件方差,而在我们的研究中则把条件方差当做了超参数。在Kingma和Welling[18],以及Rezende et al[23]的研究中,他们还使用随机反向传播规则来训练可变自编码器(VAEs)。和生成式对抗网络类似,VAE把一个可微的生成网络和另外一个神经网络打包成网络组。不过和GAN不同的是,VAE中的第二个神经网络是一个识别模型,用于执行一些近似推理任务。GAN需要在可视单元可导,因此不能用于对离散数据建模;而VAE需要隐藏层单元可导,因此模型中不能包含有离散值的隐含变量。其他类似VAE的方法也有很多,详见[12,22],不过这些方法跟本文所研究的方法关联不大,因此不再深入讨论。

在之前的研究中已经有人使用判别准则来训练生成模型(详见参考文献[29,13]),不过这些研究中所使用的准则对于生成式模型来说很难套用。他们所使用的方法即使用深度模型来逼近也是困难重重,因为方法中涉及概率比,这个概率比不能使用可变近似值的方法来逼近,因为可变近似值方法会低估概率值。使用NCE(噪音对比估计)[13]来训练生成式模型,所得到的权值参数有助于模型判别出来源于一些固定模式的噪音分布中的数据。如果使用预先训练好的模型作为噪音分布数据源,以多级串联的方式来训练得到一个模型序列,将会有助于提高生成式模型的性能。这种方式可以视为是一种非正式的竞争机制,其思想和对抗式网络大致相同。NCE方法的真正缺陷在于它的判别器是通过噪音分布的概率密度和模型分布的概率密度之间的比率来定义的。

也有一些研究使用一般意义上的对抗概念,即构造两个神经网络来进行彼此竞争,最具代表性的研究就是可测性最小化模型(predictability minimization)[26]。在可测性最小化模型中,第一个神经网络的每一个隐藏单元经训练之后,使其与第二个神经网络的输出保持不同,而第二个神经网络的主要目标就是在给定其他隐藏层神经元输出值的情况下,预测出那个隐藏神经元的值。本文的研究跟可测性最小化模型相比,有三点显著差异:1). 在本文中,网络之间的竞争是唯一的训练准则,且该准则足以支持训练整个神经网络。可测性最小化模型仅仅是一个正则器,通过这个正则器对神经网络的隐藏层单元施加某种约束,从而使的隐藏层单元在满足其他任务的同时,又保持统计上的独立性;2). 竞争的本质不同。在可测性最小化模型中,两个网络的输出要进行博弈,其中一个网络的目标是两个网络的输出相似,而另外一个网络的目标则是使得两个网络的输出不同。网络的输出值均是标量值。在生成式对抗模型中(GAN),一个网络用于生成高维向量,并将其作为第二个网络的待输入项,然后选定一个输入送入第二个网络,而此时第二个网络对于所输入的数据并不知情;3). 学习过程不同。可测性最小化模型是一个优化问题,其目标是将目标函数优化到最小值点。GAN是基于最大最小的博弈问题,在训练过程中存在一个值函数,一个网络的目标是最大化这个值函数,而另一个网络的目标则是最小化这个值函数。博弈最终会终止在鞍点位置,在该位置对一个网络来说是最大值点,而对另一个网络来说则是最小值点。

生成式对抗网络有时候也会和“对抗样例”这个概念混淆[28]。对抗样例是在对送入分类器网络的输入样本,直接运用基于梯度的优化算法时所发现的样例。这么做的主要目的就是为了寻找与输入样本类似但是又被错误划分的样本。由此可见,“对抗样例”和本文所提出的生成式对抗网络不同,对抗样例并不是一种能够用于训练生成式模型的机制。实际上,“对抗样例”主要是作为一种分析工具,来探索神经网络本身的一些诡异行为方式。举例来说,假如我们有一个基于神经网络的图片分类器,该分类器对某一图片能够以非常高的置信度进行类别划分,但是如果对所分的图片随机加入一点人眼几乎无法分辨的噪音性干扰,此时分类器居然会以很高的置信度将该图片分到错误的类别中去。这类“对抗样例”的存在表明生成式对抗网络的训练并不充分,因为这表明了判别模型甚至能够在不需要对样例类别属性进行任何模拟的情况下,就判别出样例类别。

3、对抗网络

在下一部分,我们会给出对抗网络的理论分析,表明在判别模型D有足够判别能力的前提下(如不对D做任何参数限制),上述公式所包含的最大最小化训练准则能够让生成模型G恢复出样本数据分布(即生成模型G学习到了输入样本数据的分布函数,从G中恢复的数据能够做到以假乱真的效果)。示例性的解释,可以参见图1。在实际实现上,我们必须以迭代式的数值方法才能实现这样的博弈游戏。在训练周期的内循环中优化判别模型D,其计算成本非常高昂,且在有限的数据集上会导致模型的过拟合。一种可行的替代方案是轮流的优化D模型和G模型,具体来说就是每对判别器模型D进行k步优化之后,然后开始对生成模型G进行单步优化,并一直轮流交替下去直至收敛。这种方案的好处就在于只要生成器模型G变化的足够缓慢,判别器模型D就会一直维持在其最优解位置。这一过程的伪代码请参考算法1。

4、理论分析

4.2、算法1的收敛性

5、实证分析

我们在一系列的数据集上训练对抗网络,包括MNIST、TFD(Toronto Face Database)和CIFAR-10。生成器网络G同时使用了修正的线性激活函数和sigmoid激活函数,而判别器网络则使用了maxout激活函数。训练判别器网络时,我们还使用了Dropout技巧。尽管理论框架上支持对生成器的中间层进行dropout和其他一些噪音相关的操作,但是在实际中我们只把噪音加在网络的最低层,作为生成器网络的输入信号。

前面提到的优点主要是计算上的,对抗模型还有些统计上的优点,即生成网络G并没有直接被数据样本更新,而是仅仅使用D网络输出的梯度信号来更新G网络的相应权值参数。这意味着生成网络G的参数并不是直接来源于输入数据。对抗网络的另外一个优势就是网络能够表示出一些很尖锐,甚至是衰减类型的数据分布。

参考文献

[1] Bastien, F., Lamblin, P., Pascanu, R., Bergstra, J., Goodfellow, I. J., Bergeron, A., Bouchard, N., and Bengio, Y. (2012). Theano: new features and speed improvements. Deep Learning and Unsupervised Feature Learning NIPS 2012 Workshop.

[2] Bengio, Y. (2009). Learning deep architectures for AI. Now Publishers.

[3] Bengio, Y., Mesnil, G., Dauphin, Y., and Rifai, S. (2013). Better mixing via deep representations. In ICML’13.

[4] Bengio, Y., Thibodeau-Laufer, E., and Yosinski, J. (2014a). Deep generative stochastic networks trainable by backprop. In ICML’14.

[5] Bengio, Y., Thibodeau-Laufer, E., Alain, G., and Yosinski, J. (2014b). Deep generative stochastic networks trainable by backprop. In Proceedings of the 30th International Conference on Machine Learning (ICML’14).

[6] Bergstra, J., Breuleux, O., Bastien, F., Lamblin, P., Pascanu, R., Desjardins, G., Turian, J., Warde-Farley, D., and Bengio, Y. (2010). Theano: a CPU and GPU math expression compiler. In Proceedings of the Python for Scientific Computing Conference (SciPy). Oral Presentation.

[7] Breuleux, O., Bengio, Y., and Vincent, P. (2011). Quickly generating representative samples from an RBM-derived process. Neural Computation, 23(8), 2053–2073.

[8] Glorot, X., Bordes, A., and Bengio, Y. (2011). Deep sparse rectifier neural networks. In AISTATS’2011.

[9] Goodfellow, I. J., Warde-Farley, D., Mirza, M., Courville, A., and Bengio, Y. (2013a). Maxout networks. In ICML’2013.

[10] Goodfellow, I. J., Mirza, M., Courville, A., and Bengio, Y. (2013b). Multi-prediction deep Boltzmann machines. In NIPS’2013.

[11] Goodfellow, I. J., Warde-Farley, D., Lamblin, P., Dumoulin, V., Mirza, M., Pascanu, R., Bergstra, J., Bastien, F., and Bengio, Y. (2013c). Pylearn2: a machine learning research library. arXiv preprint arXiv:1308.4214.

[12] Gregor, K., Danihelka, I., Mnih, A., Blundell, C., andWierstra, D. (2014). Deep autoregressive networks. In ICML’2014.

[13] Gutmann, M. and Hyvarinen, A. (2010). Noise-contrastive estimation: A new estimation principle for unnormalized statistical models. In Proceedings of The Thirteenth International Conference on Artificial Intelligence and Statistics (AISTATS’10).

[14] Hinton, G., Deng, L., Dahl, G. E., Mohamed, A., Jaitly, N., Senior, A., Vanhoucke, V., Nguyen, P., Sainath, T., and Kingsbury, B. (2012a). Deep neural networks for acoustic modeling in speech recognition. IEEE Signal Processing Magazine, 29(6), 82–97.

[15] Hinton, G. E., Dayan, P., Frey, B. J., and Neal, R. M. (1995). The wake-sleep algorithm for unsupervised neural networks. Science, 268, 1558–1161.

[16] Hinton, G. E., Srivastava, N., Krizhevsky, A., Sutskever, I., and Salakhutdinov, R. (2012b). Improving neural networks by preventing co-adaptation of feature detectors. Technical report, arXiv:1207.0580.

[17] Jarrett, K., Kavukcuoglu, K., Ranzato, M., and LeCun, Y. (2009). What is the best multi-stage architecture for object recognition? In Proc. International Conference on Computer Vision (ICCV’09), pages 2146–2153. IEEE.

[18] Kingma, D. P. and Welling, M. (2014). Auto-encoding variational bayes. In Proceedings of the International Conference on Learning Representations (ICLR).

[19] Krizhevsky, A. and Hinton, G. (2009). Learning multiple layers of features from tiny images. Technical report, University of Toronto.

[20] Krizhevsky, A., Sutskever, I., and Hinton, G. (2012). ImageNet classification with deep convolutional neural networks. In NIPS’2012.

[21] LeCun, Y., Bottou, L., Bengio, Y., and Haffner, P. (1998). Gradient-based learning applied to document recognition. Proceedings of the IEEE, 86(11), 2278–2324.

[22] Mnih, A. and Gregor, K. (2014). Neural variational inference and learning in belief networks. Technical report, arXiv preprint arXiv:1402.0030.

[23] Rezende, D. J., Mohamed, S., and Wierstra, D. (2014). Stochastic backpropagation and approximate inference in deep generative models. Technical report, arXiv:1401.4082.

[24] Rifai, S., Bengio, Y., Dauphin, Y., and Vincent, P. (2012). A generative process for sampling contractive auto-encoders. In ICML’12.

[25] Salakhutdinov, R. and Hinton, G. E. (2009). Deep Boltzmann machines. In AISTATS’2009, pages 448– 455.

[26] Schmidhuber, J. (1992). Learning factorial codes by predictability minimization. Neural Computation, 4(6), 863–879.

[27] Susskind, J., Anderson, A., and Hinton, G. E. (2010). The Toronto face dataset. Technical Report UTML TR 2010-001, U. Toronto.

[28] Szegedy, C., Zaremba, W., Sutskever, I., Bruna, J., Erhan, D., Goodfellow, I. J., and Fergus, R. (2014). Intriguing properties of neural networks. ICLR, abs/1312.6199.

[29] Tu, Z. (2007). Learning generative models via discriminative approaches. In Computer Vision and Pattern Recognition, 2007. CVPR’07. IEEE Conference on, pages 1–8. IEEE.

更多干货可以扫码关注微信公众号,或点击阅读原文抵达技术专题噢

深度学习:生成式对抗网络,让机器在博弈中实现“自我成长”相关推荐

  1. python深度学习---生成式对抗网络(GAN)

    生成式对抗网络(GAN,generative adversarial network)由 Goodfellow 等人于 2014 年提出,它可以替代VAE来学习图像的潜在空间. ''' # 它能够迫使 ...

  2. 深度学习--生成式对抗网络--DCGAN/WGAN/WGAN-GP/LSGAN/BEGAN算法理论

    目录 一 生成式对抗网络基础 1 生成式对抗网络的概念 1)网络属于无监督学习 2)网络中判别器D与生成器G的相互博弈,其纳什均衡为D(G(Z))=0.5 3)网络的训练阶段分为两个阶段 2 生成式对 ...

  3. 深度学习生成对抗网络(GAN)

    一.概述 生成对抗网络(Generative Adversarial Networks)是一种无监督深度学习模型,用来通过计算机生成数据,由Ian J. Goodfellow等人于2014年提出.模型 ...

  4. 你真的了解深度学习生成对抗网络(GAN)吗?

    生成对抗网络(GANs,https://en.wikipedia.org/wiki/Generative_adversarial_network)是一类具有基于网络本身即可以生成数据能力的神经网络结构 ...

  5. [深度学习]生成对抗网络的实践例子

    系列文章目录 深度学习GAN(一)之简单介绍 深度学习GAN(二)之DCGAN基于CIFAR10数据集的例子 深度学习GAN(三)之DCGAN基于手写体Mnist数据集的例子 深度学习GAN(四)之c ...

  6. 深度学习之生成式对抗网络 GAN(Generative Adversarial Networks)

    一.GAN介绍 生成式对抗网络GAN(Generative Adversarial Networks)是一种深度学习模型,是近年来复杂分布上无监督学习最具前景的方法之一.它源于2014年发表的论文:& ...

  7. PyTorch 深度学习实战 | 基于生成式对抗网络生成动漫人物

    生成式对抗网络(Generative Adversarial Network, GAN)是近些年计算机视觉领域非常常见的一类方法,其强大的从已有数据集中生成新数据的能力令人惊叹,甚至连人眼都无法进行分 ...

  8. 深度学习之生成式对抗网络GAN

    一.GAN介绍 生成式对抗网络GAN(Generative Adversarial Networks)是一种深度学习模型,是近年来复杂分布上无监督学习最具前景的方法之一.模型通过框架中(至少)两个模块 ...

  9. 【深度学习】用变分自编码器生成图像和生成式对抗网络

    目录 问题描述: 代码展示: VAE代码段 GAN部分(仅供参考) 运行截图: 参考: 问题描述: 从图像的潜在空间中采样,并创建全新图像或编辑现有图像,这是目前最流行也是最成 功的创造性人工智能应用 ...

最新文章

  1. 求助请IT外包商如何帮用户管好网络?
  2. 小型化RDA5807调频收音模块实验板
  3. Android画图学习总结(四)——Animation(中)
  4. HDU 5001 概率DP || 记忆化搜索
  5. mysql实时读写_[DataBase] MySql 查看实时日志
  6. java htmlparser 使用教程_HTMLParser使用详解(1)
  7. Anaconda中出现No module named cv2
  8. Web页面打印及GridView导出到Excel
  9. leveldb Arena分析(转载)
  10. 一个性能较好的JVM参数配置(转)
  11. w ndows7与windows10区别,windows7和10区别
  12. 《Three.js 开发指南》源码示例说明以及在线demo(原书第二版)附第三版的代码下载
  13. 【图解算法数据结构】(九)数学
  14. css div颜色渐变效果
  15. TCPIP卷一(2):二层封装之–PPP与FR
  16. 什么是华为云服务器?它有什么优点?
  17. 项目优化:当使用redis减少数据库压力时,遇到redis写入失败,造成读取数据问题的解决方案
  18. amcrest prostream 1080p网络摄像头评论
  19. 哨兵3号—sentinel-3
  20. 李进良丁守谦论道4G:决不应三国纷争

热门文章

  1. 郭炜:就算倒在离开源成功最近的五米,也要让下一代开源人坚定前行
  2. 突然被裁!国外程序员的各种花式报复手段,非常眼熟…
  3. 网站的 计算机主机作用是什么情况,运维堡垒主机是什么有什么作用
  4. Linux赋予用户读写权限
  5. oracle16c,Oracle兵器谱上古神器之-KFED
  6. 我才22岁,我再玩一年又能怎么样?等我23岁的时候,一定给你活出个人样
  7. PL/pgSQL之入门
  8. Chart.js插件使用的笔记
  9. 自然语言期末复习笔记—Morphological Analysis
  10. ECDH and ECDSA(ECC椭圆曲线算法3)