多图 | 从神经元到CNN、RNN、GAN…神经网络看本文绝对够了
神经元
解卷积神经元恰好相反:它们是通过跟下一神经细胞层的连接来解码空间信息。这两种神经元都有很多副本,它们都是独立训练的;每个副本都有自己的权重,但连接方式却完全相同。可以认为,这些副本是被放在了具备相同结构的不同的神经网络中。这两种神经元本质上都是一般意义上的神经元,但是,它们的使用方式却不同。
循环神经元(Recurrent cells )不仅仅在神经细胞层之间有连接,而且在时间轴上也有相应的连接。每一个神经元内部都会保存它先前的值。它们跟一般的神经元一样更新,但是,具有额外的权重:与当前神经元之前值之间的权重,还有大多数情况下,与同一神经细胞层各个神经元之间的权重。当前值和存储的先前值之间权重的工作机制,与非永久性存储器(比如RAM)的工作机制很相似,继承了两个性质:
第一,维持一个特定的状态;
第二:如果不对其持续进行更新(输入),这个状态就会消失。
由于先前的值是通过激活函数得到的,而在每一次的更新时,都会把这个值和其它权重一起输入到激活函数,因此,信息会不断地流失。实际上,信息的保存率非常的低,以至于仅仅四次或者五次迭代更新过后,几乎之前所有的信息都会流失掉。
长短期记忆神经元(Long short term memory cells)用于克服循环神经元中信息快速流失的问题。
LSTM是一个逻辑回路,其设计受到了计算机内存单元设计的启发。与只存储两个状态的循环神经元相比,LSTM可以存储四个状态:输出值的当前和先前值,记忆神经元状态的当前值和先前值。它们都有三个门:输入门,输出门,遗忘门,同时,它们也还有常规的输入。
这些门它们都有各自的权重,也就是说,与这种类型的神经元细胞连接需要设置四个权重(而不是一个)。这些门的工作机制与流门(flow gates)很相似,而不是栅栏门(fence gates):它们可以让所有的信息都通过,或者只是通过部分,也可以什么都不让通过,或者通过某个区间的信息。
这种运行机制的实现是通过把输入信息和一个在0到1之间的系数相乘,这个系数存储在当前门中。这样,输入门决定输入的信息有多少可以被叠加到当前门值。输出门决定有多少输出信息是可以传递到后面的神经网络中。遗忘门并不是和输出神经元的先前值相连接,而是,和前一记忆神经元相连接。它决定了保留多少记忆神经元最新的状态信息。因为没有和输出相连接,以及没有激活函数在这个循环中,因此只会有更少的信息流失。
第一:GRU神经元没有被输出门保护的隐神经元; 第二:GRU把输出门和遗忘门整合在了一起,形成了更新门。核心的思想就是如果你想要一些新的信息,那么你就可以遗忘掉一些陈旧的信息(反过来也可以)。
神经细胞层(Layers)
形成一个神经网络,最简单的连接神经元方式是——把所有的神经元与其它所有的神经元相连接。这就好像Hopfield神经网络和玻尔兹曼机(Boltzmann machines)的连接方式。当然,这也就意味着连接数量会随着神经元个数的增加呈指数级地增加,但是,对应的函数表达力也会越来越强。这就是所谓的全连接(completely (or fully) connected)。
第一,允许部分神经元进行全连接。 第二,神经元层之间只有部分连接。
下图展示了以上所介绍的神经网络及其连接方式。当我卡在哪种神经元与哪个神经细胞层该连到一起的时候,就会拿这张图出来作为参考(尤其是在处理和分析LSTM与GRU神经元时):
值得一提的是,虽说大多数的简写都已被普遍接受,但总会出现一些冲突。RNNs有时表示递归神经网络(recursive neural networks),但大多时候,它们指的是循环神经网络(recurrent neural networks)。这还没完,它们在许多地方还会泛指各种循环架构,这包括在LSTMs、GRU甚至是双向变体。AEs也经常会面临同样的问题,VAEs、DAEs及其相似结构有时都被简称为AEs。很多缩写后面的“N”也常常会有所变化,因为同一个架构你既可称之为卷积神经网络(convolutional neural network),也可简称为卷积网络(convolutional network),这样就出现了CNN和CN两种形式。
前馈神经网络(FFNN)
前馈神经感知网络与感知机(FF or FFNN:Feed forward neural networks and P:perceptrons)非常简单,信息从前往后流动(分别对应输入和输出)。
一般在描述神经网络的时候,都是从它的层说起,即相互平行的输入层、隐含层或者输出层神经结构。单独的神经细胞层内部,神经元之间互不相连;而一般相邻的两个神经细胞层则是全连接(一层的每个神经元和另一层的每一个神经元相连)。一个最简单却最具有实用性的神经网络由两个输入神经元和一个输出神经元构成,也就是一个逻辑门模型。给神经网络一对数据集(分别是“输入数据集”和“我们期望的输出数据集”),一般通过反向传播算法来训练前馈神经网络(FFNNs)。
这就是所谓的监督式学习。与此相反的是无监督学习:我们只给输入,然后让神经网络去寻找数据当中的规律。反向传播的误差往往是神经网络当前输出和给定输出之间差值的某种变体(比如MSE或者仅仅是差值的线性变化)。如果神经网络具有足够的隐层神经元,那么理论上它总是能够建立输入数据和输出数据之间的关系。在实践中,FFNN的使用具有很大的局限性,但是,它们通常和其它神经网络一起组合成新的架构。
Rosenblatt, Frank. “The perceptron: a probabilistic model for information storage and organization in the brain.” Psychological review 65.6 (1958): 386.
http://www.ling.upenn.edu/courses/cogs501/Rosenblatt1958.pdf
径向基神经网络(RBF)
径向神经网络(RBF:Radial basis function)是一种以径向基核函数作为激活函数的前馈神经网络。没有更多描述了。这不是说没有相关的应用,但大多数以其它函数作为激活函数的FFNNs都没有它们自己的名字。这或许跟它们的发明年代有关系。
Broomhead, David S., and David Lowe. Radial basis functions, multi-variable functional interpolation and adaptive networks. No. RSRE-MEMO-4148. ROYAL SIGNALS AND RADAR ESTABLISHMENT MALVERN (UNITED KINGDOM), 1988.
http://www.dtic.mil/cgi-bin/GetTRDoc?AD=ADA196234
霍普菲尔网络(HN)
可以多个神经元同步,也可以一个神经元一个神经元地对网络进行更新。一旦所有的神经元都已经被更新,并且它们再也没有改变,整个网络就算稳定(退火)了,那你就可以说这个网络已经收敛了。这种类型的网络被称为“联想记忆(associative memory)”,因为它们会收敛到和输入最相似的状态;比如,人类看到桌子的一半就可以想象出另外一半;与之相似,如果输入一半噪音+一半桌子,这个网络就能收敛到整张桌子。
Hopfield, John J. “Neural networks and physical systems with emergent collective computational abilities.” Proceedings of the national academy of sciences 79.8 (1982): 2554-2558.
https://bi.snu.ac.kr/Courses/g-ai09-2/hopfield82.pdf
马尔可夫链(MC)
马尔可夫链(MC:Markov Chain)或离散时间马尔可夫链(DTMC:MC or discrete time Markov Chain)在某种意义上是BMs和HNs的前身。可以这样来理解:从从我当前所处的节点开始,走到任意相邻节点的概率是多少呢?它们没有记忆(所谓的马尔可夫特性):你所得到的每一个状态都完全依赖于前一个状态。尽管算不上神经网络,但它却跟神经网络类似,并且奠定了BM和HN的理论基础。跟BM、RBM、HN一样,MC并不总被认为是神经网络。此外,它也并不总是全连接的。
Hayes, Brian. “First links in the Markov chain.” American Scientist 101.2 (2013): 252.
http://www.americanscientist.org/libraries/documents/201321152149545-2013-03Hayes.pdf
玻尔兹曼机(BM)
玻尔兹曼机(BM:Boltzmann machines)和霍普菲尔网络很接近,差别只是:一些神经元作为输入神经元,剩余的则是作为隐神经元。
在整个神经网络更新过后,输入神经元成为输出神经元。刚开始神经元的权重都是随机的,通过反向传播(back-propagation)算法进行学习,或是最近常用的对比散度(contrastive divergence)算法(马尔可夫链用于计算两个信息增益之间的梯度)。
相比HN,大多数BM的神经元激活模式都是二元的。BM由MC训练获得,因而是一个随机网络。BM的训练和运行过程,跟HN大同小异:为输入神经元设好钳位值,而后让神经网络自行学习。因为这些神经元可能会得到任意的值,我们反复地在输入和输出神经元之间来回地进行计算。激活函数的激活受全局温度的控制,如果全局温度降低了,那么神经元的能量也会相应地降低。这个能量上的降低导致了它们激活模式的稳定。在正确的温度下,这个网络会抵达一个平衡状态。
Hinton, Geoffrey E., and Terrence J. Sejnowski. “Learning and releaming in Boltzmann machines.” Parallel distributed processing: Explorations in the microstructure of cognition 1 (1986): 282-317.
https://www.researchgate.net/profile/Terrence_Sejnowski/publication/242509302_Learning_and_relearning_in_Boltzmann_machines/links/54a4b00f0cf256bf8bb327cc.pdf
受限玻尔兹曼机(RBM)
Smolensky, Paul. Information processing in dynamical systems: Foundations of harmony theory. No. CU-CS-321-86. COLORADO UNIV AT BOULDER DEPT OF COMPUTER SCIENCE, 1986.
http://www.dtic.mil/cgi-bin/GetTRDoc?Location=U2&doc=GetTRDoc.pdf&AD=ADA620727
自编码机(AE)
Bourlard, Hervé, and Yves Kamp. “Auto-association by multilayer perceptrons and singular value decomposition.” Biological cybernetics 59.4-5 (1988): 291-294.
https://pdfs.semanticscholar.org/f582/1548720901c89b3b7481f7500d7cd64e99bd.pdf
稀疏自编码机(SAE)
Marc’Aurelio Ranzato, Christopher Poultney, Sumit Chopra, and Yann LeCun. “Efficient learning of sparse representations with an energy-based model.” Proceedings of NIPS. 2007.
https://papers.nips.cc/paper/3112-efficient-learning-of-sparse-representations-with-an-energy-based-model.pdf
变分自编码机(VAE)
Kingma, Diederik P., and Max Welling. “Auto-encoding variational bayes.” arXiv preprint arXiv:1312.6114 (2013).
https://arxiv.org/pdf/1312.6114v10.pdf
去噪自编码机(DAE)
Vincent, Pascal, et al. “Extracting and composing robust features with denoising autoencoders.” Proceedings of the 25th international conference on Machine learning. ACM, 2008.
http://machinelearning.org/archive/icml2008/papers/592.pdf
深度信念网络(DBN)
Bengio, Yoshua, et al. “Greedy layer-wise training of deep networks.” Advances in neural information processing systems 19 (2007): 153.
https://papers.nips.cc/paper/3048-greedy-layer-wise-training-of-deep-networks.pdf
卷积神经网络(CNN)
卷积神经网络是从一个数据扫描层开始,这种形式的处理并没有尝试在一开始就解析整个训练数据。比如:对于一个大小为200X200像素的图像,你不会想构建一个40000个节点的神经元层。而是,构建一个20X20像素的输入扫描层,然后,把原始图像第一部分的20X20像素图像(通常是从图像的左上方开始)输入到这个扫描层。当这部分图像(可能是用于进行卷积神经网络的训练)处理完,你会接着处理下一部分的20X20像素图像:逐渐(通常情况下是移动一个像素,但是,移动的步长是可以设置的)移动扫描层,来处理原始数据。
注意,你不是一次性移动扫描层20个像素(或其它任何扫描层大小的尺度),也不是把原始图像切分成20X20像素的图像块,而是用扫描层在原始图像上滑过。这个输入数据(20X20像素的图像块)紧接着被输入到卷积层,而非常规的神经细胞层——卷积层的节点不是全连接。每一个输入节点只会和最近的那个神经元节点连接(至于多近要取决于具体的实现,但通常不会超过几个)。
这些卷积层会随着深度的增加而逐渐变小:大多数情况下,会按照输入层数量的某个因子缩小(比如:20个神经元的卷积层,后面是10个神经元的卷积层,再后面就是5个神经元的卷积层)。2的n次方(32, 16, 8, 4, 2, 1)也是一个非常常用的因子,因为它们在定义上可以简洁且完整地除尽。除了卷积层,池化层(pooling layers)也非常重要。
池化是一种过滤掉细节的方式:一种常用的池化方式是最大池化,比如用2X2的像素,然后取四个像素中值最大的那个传递。为了让卷积神经网络处理语音数据,需要把语音数据切分,一段一段输入。在实际应用中,通常会在卷积神经网络后面加一个前馈神经网络,以进一步处理数据,从而对数据进行更高水平的非线性抽象。
LeCun, Yann, et al. “Gradient-based learning applied to document recognition.” Proceedings of the IEEE 86.11 (1998): 2278-2324.
http://yann.lecun.com/exdb/publis/pdf/lecun-98.pdf
解卷积网络(DN)
Zeiler, Matthew D., et al. “Deconvolutional networks.” Computer Vision and Pattern Recognition (CVPR), 2010 IEEE Conference on. IEEE, 2010.
http://www.matthewzeiler.com/pubs/cvpr2010/cvpr2010.pdf
深度卷积逆向图网络(DCIGN)
Kulkarni, Tejas D., et al. “Deep convolutional inverse graphics network.” Advances in Neural Information Processing Systems. 2015.
https://arxiv.org/pdf/1503.03167v4.pdf
生成式对抗网络(GAN)
Goodfellow, Ian, et al. “Generative adversarial nets.” Advances in Neural Information Processing Systems. 2014.
https://arxiv.org/pdf/1406.2661v1.pdf
循环神经网络(RNN)
这就意味着:你的输入顺序将会影响神经网络的训练结果:相比先输入“曲奇饼”再输入“牛奶”,先输入“牛奶”再输入“曲奇饼”后,或许会产生不同的结果。RNN存在一大问题:梯度消失(或梯度爆炸,这取决于所用的激活函数),信息会随时间迅速消失,正如FFNN会随着深度的增加而失去信息一样。
直觉上,这不算什么大问题,因为这些都只是权重,而非神经元的状态,但随时间变化的权重正是来自过去信息的存储;如果权重是0或1000000,那之前的状态就不再有信息价值。
原则上,RNN可以在很多领域使用,因为大部分数据在形式上不存在时间线的变化,(不像语音或视频),它们能以某种序列的形式呈现出来。一张图片或一段文字可以一个像素或者一个文字地进行输入,因此,与时间相关的权重描述了该序列前一步发生了什么,而不是多少秒之前发生了什么。一般来说,循环神经网络是推测或补全信息很好的选择,比如自动补全。
Elman, Jeffrey L. “Finding structure in time.” Cognitive science 14.2 (1990): 179-211.
https://crl.ucsd.edu/~elman/Papers/fsit.pdf
长短期记忆(LSTM)
输入门决定了有多少前一神经细胞层的信息可留在当前记忆单元,输出层在另一端决定下一神经细胞层能从当前神经元获取多少信息。遗忘门乍看很奇怪,但有时候遗忘部分信息是很有用的:比如说它在学习一本书,并开始学一个新的章节,那遗忘前面章节的部分角色就很有必要了。
实践证明,LSTM可用来学习复杂的序列,比如像莎士比亚一样写作,或创作全新的音乐。值得注意的是,每一个门都对前一神经元的记忆单元赋有一个权重,因此会需要更多的计算资源。
Hochreiter, Sepp, and Jürgen Schmidhuber. “Long short-term memory.” Neural computation 9.8 (1997): 1735-1780.
http://deeplearning.cs.cmu.edu/pdfs/Hochreiter97_lstm.pdf
门循环单元(GRU)
Chung, Junyoung, et al. “Empirical evaluation of gated recurrent neural networks on sequence modeling.” arXiv preprint arXiv:1412.3555 (2014).
https://arxiv.org/pdf/1412.3555v1.pdf
神经图灵机(NTM)
Graves, Alex, Greg Wayne, and Ivo Danihelka. “Neural turing machines.” arXiv preprint arXiv:1410.5401 (2014).
https://arxiv.org/pdf/1410.5401v2.pdf
BiRNN、BiLSTM、BiGRU
Schuster, Mike, and Kuldip K. Paliwal. “Bidirectional recurrent neural networks.” IEEE Transactions on Signal Processing 45.11 (1997): 2673-2681.
http://www.di.ufpe.br/~fnj/RNA/bibliografia/BRNN.pdf
深度残差网络(DRN)
深度残差网络(DRN: Deep residual networks)是非常深的FFNN网络,它有一种特殊的连接,可以把信息从某一神经细胞层传至后面几层(通常是2到5层)。
该网络的目的不是要找输入数据与输出数据之间的映射,而是致力于构建输入数据与输出数据+输入数据之间的映射函数。本质上,它在结果中增加一个恒等函数,并跟前面的输入一起作为后一层的新输入。结果表明,当层数超过150后,这一网络将非常擅于学习模式,这比常规的2到5层要多得多。然而,有证据表明这些网络本质上只是没有时间结构的RNN,它们总是与没有门结构的LSTM相提并论。
He, Kaiming, et al. “Deep residual learning for image recognition.” arXiv preprint arXiv:1512.03385 (2015).
https://arxiv.org/pdf/1512.03385v1.pdf
回声状态网络(ESN)
Jaeger, Herbert, and Harald Haas. “Harnessing nonlinearity: Predicting chaotic systems and saving energy in wireless communication.” science 304.5667 (2004): 78-80.
https://pdfs.semanticscholar.org/8922/17bb82c11e6e2263178ed20ac23db6279c7a.pdf
极限学习机(ELM)
Cambria, Erik, et al. “Extreme learning machines [trends & controversies].” IEEE Intelligent Systems 28.6 (2013): 30-59.
http://www.ntu.edu.sg/home/egbhuang/pdf/ieee-is-elm.pdf
液态机(LSM)
Maass, Wolfgang, Thomas Natschläger, and Henry Markram. “Real-time computing without stable states: A new framework for neural computation based on perturbations.” Neural computation 14.11 (2002): 2531-2560.
https://web.archive.org/web/20120222154641/http://ramsesii.upf.es/seminar/Maass_et_al_2002.pdf
支持向量机(SVM)
Cortes, Corinna, and Vladimir Vapnik. “Support-vector networks.” Machine learning 20.3 (1995): 273-297.
http://image.diku.dk/imagecanon/material/cortes_vapnik95.pdf
Kohonen 网络
最后,我们来介绍一下Kohonen网络(KN,也称之为自组织(特征)映射(SOM/SOFM:self organising (feature) map))。
KN利用竞争学习来对数据进行分类,不需要监督。先给神经网络一个输入,而后它会评估哪个神经元最匹配该输入。然后这个神经元会继续调整以更好地匹配输入数据,同时带动相邻的神经元。相邻神经元移动的距离,取决于它们与最佳匹配单元之间的距离。KN有时也不被认为是神经网络。
Kohonen, Teuvo. “Self-organized formation of topologically correct feature maps.” Biological cybernetics 43.1 (1982): 59-69.
http://cioslab.vcu.edu/alg/Visualize/kohonen-82.pdf
原文链接:
http://www.asimovinstitute.org/neural-network-zoo/
http://www.asimovinstitute.org/neural-network-zoo-prequel-cells-layers/
招聘
AI100现招聘技术编辑、实习生,有意向请将简历投往:puge@ai100.ai
咨询请联系微信greta1314
课程结合实例介绍使用TensorFlow开发机器学习应用的详细方法和步骤,着重讲解了用于图像识别的卷积神经网络和用于自然语言处理的循环神经网络的理论知识及其TensorFlow实现方法,并结合实际场景和例子描述了深度学习技术的应用范围与效果。 所有案例均来自讲师团队工作中的亲身实践,所选案例均是深度学习的经典应用,非常具有代表性。
点击下方“阅读原文”查看更多内容。
关注公众号:拾黑(shiheibook)了解更多
[广告]赞助链接:
四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/
随时掌握互联网精彩
- 1 习近平寄语澳门 7987903
- 2 美军为什么会击落自己的战机? 7938610
- 3 张雨绮 为了讨大家喜欢才穿成这样 7841645
- 4 我国工业经济平稳向好 7774589
- 5 三战是否已经开始?普京回应 7640413
- 6 23岁的考场和18岁是不同的 7588679
- 7 柳岩白色蕾丝鱼尾裙 7425925
- 8 湖南卫视声明 7368277
- 9 老人花2万买保健床垫后再不愿去医院 7263806
- 10 美国开始用这种方式窃取中企商业机密 7198722