原文THENEURALNETWORKZOO,出自Asimov人工智能研究所。
新的神经网络结构不断涌现,我们很难一一掌握。哪怕一开始只是记住所有的简称(DCIGN,BiLSTM,DCGAN),也会让同学们吃不消。
所以我决定写篇文章归纳归纳,各种神经网络结构。它们大部分都是神经网络,也有一些是完全不同的结构。虽然所有结构说起来都是新颖而独特的,但当我画出结点的结构图时……它们之间的内在联系显得更有意思。
总表
13
反卷积网络(DN)又名逆向图网络(IGN),是卷积神经网络的逆转。举个栗子:输入“猫”这个词,通过对比网络生成的图像和猫的真实图像来训练网络,使网络产生更像猫的图像。DN可以像常规CNN那样与FFNN相结合,这样就需要给它一个新的“缩写”了。“深度反卷积网络”的称呼大概可行,但你可能会反驳说,分别把FFNN接在DN的前端或后端时,应该用两个不同的名字来指代。
在大多数应用场合,输入网络的不是文字式的类别信息而是二值向量。如0,1表示猫,1,0表示狗,1,1表示猫和狗。在DN中,CNN常见的采样层被类似的反向操作替换,主要有插值方法和带有偏置假设的外推方法等等(如果采样层使用最大值采样,可以在做逆向操作时单独制造出一些比最大值小的新数据。)
Zeiler,MatthewD.,etal.“Deconvolutionalnetworks.”ComputerVisionandPatternRecognition(CVPR),IEEEConferenceon.IEEE,.
14
深度卷积逆向图网络(DCIGN)的名称有一定的误导性,它实际上是一类变分自动编码器(VAE),只不过分别用CNN作编码器、DN作解码器了。DCIGN在编码时试图将“特征”以概率建模,这样一来就算仅仅学习了只有猫或狗一方存在的图像,它也能够学着去产生猫狗共存的图片。假如一张照片里既有猫,又有邻居家那条讨厌的狗,你可以把照片输入网络,让网络自动把那条狗扒出去,而无须额外的操作。演示程序表明,该网络还能学习对图像做复杂的变换,比如改变光源和旋转3D物体。该网络通常使用反向传播来训练。
Kulkarni,TejasD.,etal.“Deepconvolutionalinversegraphicsnetwork.”AdvancesinNeuralInformationProcessingSystems..
15
生成对抗网络(GAN)源出另一类网络,它由两个成对的网络协同运作。GAN由任意两个的网络组成(不过通常是FFNN和CNN的组合),一个用来生成,另一个用来判别。判别网络的输入是训练数据或者生成网络产生的内容,它正确区分数据来源的能力构成了生成网络错误水平的表现的一部分。这样就形成了一种竞争形式:判别器越来越擅长区分真实数据和生成数据,与此同时生成器不断学习从而让判别器更难区分。有时候,这样的机制效果还不错,因为即便是相当复杂的类噪声模式最终都是可预测的,但与输入数据特征相似的生成数据更难区分。GAN很难训练——你不仅需要训练两个网络(它们可能都有自己的问题),还要很好地平衡它们的动态情况。如果预测或者生成任意一方比另一方更强,这个GAN就不会收敛,而是直接发散掉了。
Goodfellow,Ian,etal.“Generativeadversarialnets.”AdvancesinNeuralInformationProcessingSystems..
16
循环神经网络(RNN)是带有“时间结”的FFNN。RNN不是无状态的[1],它既存在层间的联系,也存在时间上的联系。输入到神经元的信息不仅由上一层传来,还来自前次传递时神经元自身的状态。这意味着输入和训练网络的顺序很关键:先输入“牛奶”、再输入“曲奇”,与先输入“曲奇”再输入“牛奶”会得到不同的结果。RNN的一大问题是,使用不同的激励函数会各自造成梯度弥散或者爆炸,这样会让信息随时间变化而迅速流失,就像在极深FFNN中随深度增加而流失一样。乍一看好像不是什么大问题,因为这些信息只是权重而不是神经元的状态。
但是,不同时间上的权值实际存储了来自过去的信息,而如果权值变成了0或,就无所谓之前的状态了。大体上说,RNN可以用在很多领域。尽管大部分数据并不存在形如音频、视频之类的时间线,但不妨把它们表示为序列的形式。图像、文字序列可以用每次一个像素、字符的方式来输入,这样,时间相关的权值并非来自前x秒出现的状态,而是对序列早前状态的表示。通常来说,循环网络善于预测和补全信息,比如可以用来做自动的补全。
[1]“无状态的(stateless)”,意为“输出仅由本时刻的输入决定”。RNN由于部分“记忆”了之前输入的状态,所以是“有状态的(stateful)”。——译注。
Elman,JeffreyL.“Findingstructureintime.”Cognitivescience14.2():-.
17
长短时记忆(LSTM)网络试图通过引进“门”和定义明确的记忆单元来对抗梯度弥散/爆炸问题。相较生物学,它更多受到电路学的启发。每个神经元有一个记忆单元和输入、输出、遗忘三个门。门的作用是通过阻止和允许信息的流动来实现对信息的保护。输入门决定了前一层的信息有多少能够存储在当前单元内;另一端的输出门决定了后一层能够在当前单元中获取多少信息;遗忘门乍看起来有点奇怪,但“遗忘”有时候是对的——比如正在学习一本书,然后新的一章开始了,这时候网络可能得忘掉一些在上一章中学到的文字。LSTM能够学习复杂的序列,可以像莎士比亚一样写作、创作新的乐曲。由于每个门对都有对前一个神经元的权重,网络运行需要更多的资源。
Hochreiter,Sepp,andJürgenSchmidhuber.“Longshort-termmemory.”Neural