Py学习  »  机器学习算法

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

一个普普通通简简单单平平凡凡的神 • 5 年前 • 651 次点击  
       深度神经网络在判别模型领域的进步远比在生成模型领域进步快得多,其主要原因就在于相对于生成式模型来说,判别模型目标清晰、逻辑相对简单,实现起来容易。        用通俗的比喻来说,判别模型相当于是来料加工,即对模型喂入一系列数据,然后由模型判别出相对应的结果,典型代表就是分类器模型。而生成模型相当于是一座生产创作工厂,其需要具备一定的创造能力,尽管在现阶段,这种创造能力的获取很大程度上都是一种通过模仿式学习得到的,并不具备真正的创作力。在生成式模型的应用中,如何准确高效的评价生成式模型非常重要,有效的对生成式模型的生成过程进行指导和纠偏,是生成式模型学习创作的关键点。本文提出的生成式对抗框架就是一种采用“博弈论”思想,来实现对生成式模型的生成过程进行评价。
摘要 本文提出了一个全新的框架来评价生成式模型——即 “对抗过程”。在这个框架中,我们同时训练两个模型: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.





今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/dr4oGTLlhN
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/12445
 
651 次点击