神经网络

yuzhou 2019-06-27

随着新的神经网络架构不时出现,很难跟踪这些架构。知道所有缩写(DCIGN,BiLSTM,DCGAN,任何人?)起初可能有点压倒性。

所以我决定编写一个包含许多这些体系结构的备忘单。这些大多数是神经网络,有些是完全不同的野兽。虽然所有这些体系结构都是新颖而独特的,但是当我绘制节点结构时......它们的基础关系开始变得更有意义。

神经网络

将它们绘制为节点映射时存在一个问题:它并不真正显示它们是如何使用的。例如,变分自动编码器(VAE)看起来就像自动编码器(AE),但是训练过程实际上完全不同。受过训练的网络的用例差异更大,因为VAE是生成器,您可以在其中插入噪声来获取新样本。AE,只需将他们得到的任何输入映射到他们“记得”的最接近的训练样本。我应该补充一点,这个概述并没有说明每种不同的节点类型如何在内部工作(但这是另一天的话题)。

应该指出的是,虽然大部分缩写都是普遍接受的,但并非全部都是。RNN有时指的是递归神经网络,但大多数时候他们指的是递归神经网络。尽管如此,在许多地方,你会发现RNN用作任何经常性架构的占位符,包括LSTM,GRU甚至双向变体。AE不时遇到类似问题,其中VAE和DAE等简称为AE。许多缩写在最后添加的“N”数量上也不相同,因为您可以将其称为卷积神经网络,但也仅仅是卷积网络(导致CNN或CN)。

随着新体系结构的不断发明,编写完整列表几乎是不可能的。即使发布它,即使你正在寻找它们,仍然会很难找到它们,或者有时候你会忽略一些。因此,尽管这份名单可能会让你对AI的世界有所了解,但请绝对不要把这份名单列为全面的; 特别是如果你在写这篇文章后很长时间阅读这篇文章。

对于图中描绘的每个架构,我都写了一个非常非常简短的描述。如果您对某些体系结构非常熟悉,但是您对特定体系结构不熟悉,则可能会发现其中的一些功能非常有用。

前馈神经网络(FF或FFNN)和感知器(P)非常直截了当,它们将信息从前面输入到后面(分别是输入和输出)。神经网络通常被描述为具有层,其中每个层由输入,隐藏或输出单元并行组成。一层独自从来没有连接,并且通常两个相邻的层完全连接(每个神经元形成一层到每个神经元到另一层)。最简单的实用网络有两个输入单元和一个输出单元,可用于建模逻辑门。人们通常通过反向传播来训练FFNN,给出网络配对的“进入的内容”和“我们想要出来的内容”的数据集。这就是所谓的监督学习,相对于无监督学习,我们只给它输入并让网络填充空白。反向传播的误差通常是输入和输出之间差异的一些变化(如MSE或线性差异)。鉴于网络具有足够的隐藏的神经元,它在理论上可以始终模拟输入和输出之间的关系。实际上,它们的使用受到很多限制,但它们普遍与其他网络结合形成新的网络。

径向基函数(RBF)网络是具有径向基函数作为激活函数的FFNN。没有什么更多。这并不意味着他们没有他们的用途,但是大多数具有其他激活功能的FFNN并没有得到他们自己的名字。这主要与在正确的时间发明它们有关。

甲的Hopfield网络(HN)是每个神经元都与其他神经元相连的网络; 它是一个完全纠结的意大利面板,即使所有的节点都起着一切作用。每个节点在训练之前输入,然后在训练期间隐藏并在之后输出。通过将神经元的值设置为希望的模式来训练网络,之后可以计算权重。此后重量不会改变。一旦接受过一种或多种模式的训练,网络就会始终聚合到其中一种学习模式,因为网络在这些状态中仅保持稳定。请注意,它并不总是符合所需的状态(这不是一个可悲的不可思议的黑盒子)。它的稳定部分归因于训练期间网络的总“能量”或“温度”逐渐减少。每个神经元都有一个可以调节到这个温度的激活阈值,如果超过输入的总和,神经元会采取两种状态之一(通常为-1或1,有时为0或1)。更新网络可以同步完成,也可以逐个完成。如果逐一更新,则创建一个公平的随机序列来组织哪些细胞以什么顺序更新(公平随机是所有选项(n)每n项发生一次)。这样你就可以知道网络什么时候稳定(完成收敛),一旦每个单元已经更新并且没有更改,网络就会稳定(退火)。这些网络通常被称为联想记忆,因为它收敛到与输入最相似的状态; 如果人类看到一半的桌子,我们可以对另一半进行成像,但如果有半噪音和半桌子,这个网络将会聚合到一张桌子上。

马尔可夫链(MC或离散时间马尔可夫链,DTMC)是BM和HN的前身。他们可以理解如下:从我现在的这个节点来看,我有多大的机会去我的邻居节点?它们是无记忆的(即马尔科夫属性),这意味着你最终进入的每个状态完全取决于以前的状态。虽然不是一个真正的神经网络,但它们确实与神经网络相似,并构成了BM和HN的理论基础。MC并不总是被认为是神经网络,就像BM,RBM和HN一样。马尔可夫链并不总是完全连接。

玻尔兹曼机器(BM)与HN很相似,但是:一些神经元被标记为输入神经元,而其他神经元则被“隐藏”。输入神经元在完整网络更新结束时变成输出神经元。它从随机权重开始,通过反向传播学习,或者最近通过对比发散学习(马尔可夫链被用来确定两个信息增益之间的梯度)。与HN相比,神经元大多具有二元激活模式。正如MC被训练所暗示的那样,BM是随机网络。BM的训练和运行过程与HN非常相似:将输入神经元设置为特定的钳位值,之后网络被释放(它不会获得袜子)。虽然释放细胞可以获得任何价值,我们反复在输入和隐藏的神经元之间来回。激活由全局温度值控制,如果降低则降低电池的能量。这种较低的能量导致其激活模式稳定。考虑到正确的温度,网络达到平衡。

受限玻尔兹曼机器(RBM)与BM(惊喜)非常相​​似,因此也与HN类似。管理层和管理层之间最大的区别是,管理层管理是一种更好的可用方式,因为它们更受限制。它们不会触发 - 将每个神经元连接到每个其他神经元,但只将每个不同组的神经元连接到每个其他组,因此没有输入神经元直接连接到其他输入神经元,也没有隐藏到隐藏连接。RBM可以像扭曲一样被FFNNs训练:不是向前传递数据然后向后传播,而是向前传递数据,然后向后传递数据(返回到第一层)。之后,您将训练前后传播。

自动编码器(AE)有点类似于FFNN,因为AE更像是FFNN的不同用途,而不是根本不同的架构。自动编码器的基本思想是自动编码信息(如压缩,不加密),因此名称。整个网络总是类似于沙漏形状,隐藏层比输入和输出层小。AE也总是在中间层周围是对称的(一个或两个取决于偶数层或奇数层)。最小的层几乎总是在中间,信息被压缩得最多的地方(网络的阻塞点)。到中间的所有东西都被称为编码部分,解码和中间(惊喜)代码之后的所有东西都被称为编码部分。人们可以通过反馈传播训练他们,通过喂养输入并将错误设置为输入和输出之间的差异。当涉及权重时,AE也可以对称地构建,因此编码权重与解码权重相同。

稀疏自动编码器(SAE)与AE相反。我们试图在更多的空间中对信息进行编码,而不是通过教授网络来代表一堆信息在更少的“空间”或节点中。因此,不是网络在中间收敛,而是扩大到输入大小,我们炸掉了中间。这些类型的网络可用于从数据集中提取许多小特征。如果有人像AE一样训练SAE,几乎在所有情况下,最终都会有一个非常无用的身份网络(就像出现的那样,没有任何转换或分解)。为了防止这种情况,我们不是反馈输入,而是反馈输入加稀疏驱动程序。这个稀疏驱动程序可以采用阈值过滤器的形式,其中只有特定的错误被传回并训练,另一个错误将是“无关紧要”,并设置为零。在某种程度上,这类似于峰值神经网络,并不是所有的神经元始终都在发射(并且点的生物合理性得分)。

变分自编码器(VAE)具有与AE相同的体系结构,但是“教授”了其他内容:输入样本的近似概率分布。这有点回归根源,因为它们与BM和RBM更密切相关。然而,他们确实依赖贝叶斯数学有关概率推理和独立性,以及实现这种不同表示的重新参数化技巧。推理和独立部分直观地理解,但他们依赖于有些复杂的数学。基本要归结为:考虑到影响。如果一件事发生在一个地方,而其他地方发生了其他事情,它们不一定是相关的。如果它们不相关,那么错误传播应该考虑这一点。这是一个有用的方法,因为神经网络是大图(某种程度上),

去噪自动编码器(DAE)是我们不仅仅输入输入数据的AE,但是我们为输入数据提供了噪声(如使图像更加粗糙)。我们以相同的方式计算误差,所以网络的输出与没有噪声的原始输入进行比较。这鼓励网络不去学习细节,而是学习更广泛的功能,因为学习较小的功能通常会因为噪声不断变化而变得“错误”。

深度信念网络(DBN) 是主要针对RBM或VAE的堆叠体系结构的名称。这些网络已被证明是有效的可堆叠堆栈,其中每个AE或RBM只需要学习编码以前的网络。这种技术也被称为贪婪训练,其中贪婪意味着使局部最优解得到一个体面的但可能不是最佳答案。可以通过对比分歧或反向传播来训练DBN,并学习如同常规RBM或VAE一样将数据表示为概率模型。一旦通过无监督学习训练或融合到(更多)稳定状态,模型可用于生成新数据。如果采用对比分歧进行训练,它甚至可以对现有数据进行分类,因为已经教会神经元寻找不同的特征。

卷积神经网络(CNN或深度卷积神经网络,DCNN)与大多数其他网络完全不同。它们主要用于图像处理,但也可用于其他类型的输入,如音频。一个典型的用例细胞神经网络是你养活网络图像和网络分类的数据,例如,如果你给它一个猫的图片和“狗”,当你给它一个犬的图像输出“猫”。CNN倾向于以输入“扫描仪”开始,该输入“扫描仪”不是一次性解析所有训练数据。例如,要输入200 x 200像素的图像,您不需要具有40 000个节点的图层。相反,您创建一个扫描输入图层,例如20 x 20,您输入图像的前20 x 20像素(通常从左上角开始)。一旦您通过了该输入(并可能将其用于训练),您就可以为其提供接下来的20 x 20像素:将扫描仪向右移动一个像素。请注意,您不会将输入的20像素(或任何扫描仪宽度)移动过来,您不会将图像解剖为20 x 20的块,而是您正在爬过它。然后,这个输入数据通过卷积层而不是普通层传送,其中并非所有节点都连接到所有节点。每个节点只关注紧密相邻的单元(关闭程度取决于实现,但通常不会超过几个)。这些卷积层也倾向于收缩,因为它们变得更深,主要由输入的容易整除因子(所以20可能会转到随后的5层10的层)。二的幂非常普遍这里使用,因为它们可以通过定义被干净和完全分割:32,16,8,4,2,1。除了这些卷积层,它们也常常设有汇集层。池化是过滤细节的一种方式:常见的池化技术是最大池化,在这里我们取2 x 2像素并传递最多量的红色像素。要将CNN应用于音频,您基本上需要逐段输入输入音频波形和英寸长度。现实世界的CNN实现通常会将FFNN粘贴到最后以进一步处理数据,这允许高度非线性的抽象。这些网络被称为DCNN,但这两个网络之间的名称和缩写经常互换使用。现实世界的CNN实现通常会将FFNN粘贴到最后以进一步处理数据,这允许高度非线性的抽象。这些网络被称为DCNN,但这两个网络之间的名称和缩写经常互换使用。现实世界的CNN实现通常会将FFNN粘贴到最后以进一步处理数据,这允许高度非线性的抽象。这些网络被称为DCNN,但这两个网络之间的名称和缩写经常互换使用。

解卷积网络(DN),也称为反向图形网络(IGN),是反卷积神经网络。想象一下,给网络喂“猫”这个词,并通过比较它产生的真实照片与猫一起训练它来产生类似猫的照片。DNN可以像常规的CNN一样与FFNN结合使用,但是这是关于绘制线条以提供新缩写的点。他们可能被称为深层去卷积神经网络,但你可以争辩说,当你将FFNN粘贴到DNN的后面和前面时,你就有了另一个值得一个新名字的架构。请注意,在大多数应用程序中,实际上不会向网络输入类似文本的输入,更可能是二进制分类输入向量。认为<0,1>是猫,<1,0>是狗,<1,1>是猫和狗。

深卷积逆向图形网络(DCIGN)的名称有些误导,因为它们实际上是VAE,但是针对各自的编码器和解码器使用了CNN和DNN。这些网络试图在编码中将“特征”建模为概率,以便它可以学习与猫和狗一起制作一张图片,而且只能在两张图片中看到其中的一张。同样,你可以喂它一张猫的照片,让你的邻居的恼人的狗在上面,并要求它把狗取出,而不用做这样的操作。演示表明,这些网络还可以学习如何对图像进行复杂转换,例如更改光源或3D对象的旋转。这些网络倾向于用反向传播进行训练。

生成敌对网络(GAN)来自不同品种的网络,他们是双胞胎:两个网络一起工作。GAN由任何两个网络组成(尽管通常是FF和CNN的组合),其中一个负责生成内容,另一个负责判断内容。鉴别网络接收来自生成网络的训练数据或生成的内容。识别网络如何能够正确预测数据源然后用作生成网络的错误的一部分。这就形成了一种竞争形式,鉴别者在区分实际数据和生成数据方面越来越好,而生成者正在学习对鉴别器的预测能力降低。这部分工作的部分原因是,即使非常复杂的类噪音模式最终可预测,但生成的内容与输入数据相似的内容更难以区分。GAN可能很难训练,因为你不仅需要训练两个网络(这两个网络都会造成它自己的问题),但它们的动态也需要平衡。如果预测或生成与另一个相比变得更好,GAN将不会收敛,因为存在内在的分歧。

递归神经网络(RNN)是时间扭曲的FFNN:他们不是无国籍的; 他们之间有通过连接,通过时间连接。神经元的信息不仅来自上一层,而且来自前一层的信息。这意味着您输入饲料和训练网络的顺序很重要:与喂养“饼干”和“牛奶”相比,喂养它“牛奶”然后“饼干”可能会产生不同的结果。RNN的一个大问题是消失(或爆炸)梯度问题,根据所使用的激活函数,随着时间的推移信息会迅速丢失,就像非常深的FFNN深度丢失信息一样。直观地说,这不会成为一个问题,因为这些只是权重而不是神经元状态,但时间间隔的权重实际上是来自过去的信息的存储位置; 如果重量达到0或1 000 000的值,以前的状态将不会提供很多信息。RNN原则上可以用于很多领域,因为大多数形式的数据实际上没有时间线(即,不同于声音或视频)可以表示为序列。一张图片或一串文本可以一次输入一个像素或字符,因此时间相关的权重用于序列中之前的内容,而不是实际上与之前X秒内发生的内容相关。一般而言,经常性网络是推进或完成信息的良好选择,例如自动完成。一张图片或一串文本可以一次输入一个像素或字符,因此时间相关的权重用于序列中之前的内容,而不是实际上与之前X秒内发生的内容相关。一般而言,经常性网络是推进或完成信息的良好选择,例如自动完成。一张图片或一串文本可以一次输入一个像素或字符,因此时间相关的权重用于序列中之前的内容,而不是实际上与之前X秒内发生的内容相关。一般而言,经常性网络是推进或完成信息的良好选择,例如自动完成。

长期/短期记忆(LSTM)网络试图通过引入门和明确定义的存储器单元来对抗消失/爆炸梯度问题。这些灵感主要来自电路,而不是生物学。每个神经元都有一个存储单元和三个门:输入,输出和忘记。这些门的功能是通过停止或允许信息流来保护信息。输入门决定了来自上一层的多少信息存储在单元中。输出层在另一端获取作业,并确定下一层有多少知道该单元的状态。忘记门起初看起来像是一个奇怪的包容,但有时候忘记是很好的:如果它正在学习一本书并开始新的一章,那么网络可能需要忘记前一章中的一些字符。已经证明LSTM能够学习复杂的序列,例如像莎士比亚的写作或者创作原始音乐。请注意,这些门中的每一个都对前一个神经元中的一个单元具有权重,因此它们通常需要更多资源才能运行。

门控复发单位(GRU)在LSTMs上略有差异。他们有一个门少一些,连接方式稍有不同:他们有一个更新门,而不是输入,输出和忘记门。这个更新门决定了从最后一个状态开始保留多少信息以及从上一个层开始输入多少信息。复位门的功能与LSTM的忘记门非常相似,但位置稍有不同。他们总是发出完整的状态,他们没有输出门。在大多数情况下,它们的功能与LSTM非常相似,最大的不同之处在于GRU稍快并且更容易运行(但表现力稍差)。在实践中,这些往往会互相抵消,因为你需要一个更大的网络来重新获得一些表现力,然后消除表现的好处。

神经图灵机(NTM) 可以理解为LSTM的一种抽象,也是一种尝试使用非黑箱神经网络的方法(并且让我们了解那里正在发生的事情)。不是直接将存储器单元编码到神经元中,而是将存储器分开。它试图将常规数字存储的效率和永久性与神经网络的效率和表现力结合起来。这个想法是有一个内容寻址存储库和一个可以读写的神经网络。神经图灵机中的“图灵”来自它们的图灵完整性:根据读取的内容读取和写入并改变状态的能力意味着它可以代表通用图灵机可以表示的任何东西。

双向递归神经网络,双向长期/短期记忆网络和双向门控循环单元(分别为BiRNN,BiLSTM和BiGRU)不会显示在图表上,因为它们看起来与单向同行完全一样。不同之处在于,这些网络不仅与过去相连,而且与未来相连。举例来说,单向LSTMs可能会被训练成通过逐字地输入字母来预测单词“fish”,其中通过时间的循环连接记住最后一个值。一个BiLSTM也将被送入下一个顺序中的下一个字母,让它访问未来的信息。这训练网络来填补空白,而不是推进信息,所以不是在边缘上展开图像,而是在图像的中间填充一个洞。

深度剩余网络(DRN)是非常深的FFNN,具有额外的连接,将输入从一个层传递到后一层(通常是2到5层)以及下一层。而不是试图找到一个解决方案来将某些输入映射到某个输出,例如5层,网络就会强制学习将某些输入映射到某些输出+某些输入。基本上,它为解决方案增加了一个标识,将旧的输入传送到新的层次。已经证明,这些网络在学习深达150层的模式方面非常有效,远远超过人们可以期望训练的常规2至5层。然而,已经证明,这些网络本质上只是RNN而没有明确的基于时间的构造,并且它们通常与没有门的LSTM相比较。

回声状态网络(ESN)是另一种不同类型的(经常性)网络。这个人通过神经元之间的随机连接(即没有组织成整齐的层)来区别于他人,并且他们受到不同的训练。我们提供输入,转发它并更新神经元一段时间,然后观察随着时间的推移输出,而不是喂养输入和反向传播错误。输入层和输出层具有轻微非常规的作用,因为输入层用于启动网络,输出层充当随时间展开的激活模式的观察者。在训练期间,只有观察者和隐藏单位(的汤)之间的联系被改变。

极限学习机(ELM)基本上是FFNN,但具有随机连接。它们看起来与LSM和ESN非常相似,但它们不是经常性的,也不是尖锐的。他们也不使用反向传播。相反,他们从随机权重开始,根据最小二乘法拟合(所有函数的最小误差),在一个步骤中训练权重。这导致了一个表达性较差的网络,但它也比反向传播快得多。

液态机器(LSM)是类似的汤,看起来很像ESN。真正的区别在于LSMs是一种尖峰神经网络:乙状结肠激活被阈值函数替代,每个神经元也是一个累积的记忆细胞。所以当更新神经元时,该值不会被设置为邻居的总和,而是被添加到自身中。一旦达到阈值,它释放其能量给其他神经元。这会产生一个像图案一样的尖峰,在一段时间内没有任何事情发生,直到突然达到阈值。

支持向量机(SVM)找到分类问题的最佳解决方案。通常他们只能对线性可分数据进行分类; 说找出哪些图像是加菲猫和哪些是史努比,其他任何结果都不可能。在训练过程中,SVM可以被认为是将所有数据(Garfields和Snoopys)绘制在图形上(2D),并计算出如何在数据点之间绘制一条线。这条线将分开数据,以便所有的Snoopys都在一边,Garfields在另一边。这条线以这样的方式移动到最佳线,使得数据点和线之间的边缘在两侧最大化。对新数据进行分类可以通过绘制该图上的一个点来完成,并简单地查看该线的哪一侧(史努比侧或加菲尔德侧)。使用内核技巧,可以教他们对n维数据进行分类。这需要在三维图中绘制点,以便区分史努比,加菲猫和西蒙的猫,甚至可以区分更多的卡通角色。SVM并不总是被认为是神经网络。

相关推荐