神经网络

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

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

神经网络函数

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

应该指出的是,虽然大部分缩写都是广泛接受的,但并不是所有都是。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并不老是被认为是神经网络。

相关文章
相关标签/搜索