找回密码
 立即注册
搜索

机器学习的8大神经网络架构


The 8 Neural Network Architectures Machine Learning Researchers Need to Learn作者:James Le

机器学习研讨人员应该熟习的课程中的8个神经网络架构。

一、感知器

第一代神经网络出现时,感知机(perceptron)仅仅是单个神经元的计算模型,其在二十世纪六十年代初被美国计算机迷信家 Frank Rosenblatt 推行。其学习算法非常弱小,并且宣称可以学习很多事情。1969 年,Minsky 与 Papert 出版了一本名为《感知机》的书,这本书分析了这些算法可以做什么,并阐释了其局限性。许多人就将这个局限性放大到一切的 NN 模型。但是,感知机学习过程仍广泛用于具有包含数百万特征的大特征向量的义务。




在统计形式辨认的标准范例中,我们首先将原始输入向量转换为特征激活向量。然后,基于大家的共识手动编程来定义特征。接上去,我们学习如何对每个特征激活停止加权以获得单一的标量。假如这个标量超过了某个阈值,我们以为输入向量是目的集中的一个正样本。




标准的感知机架构遵照前馈模型,输入被发送到神经元中,经处理后输入。在下图中,表示为网络自下而上读取:底部输入,顶部输入。




但是,感知机的确存在局限性:假如您运用手动设置特征,并且运用了足够多的特征,那么你几乎可以做任何事情。对于二进制输入向量,我们可以为指数级多的二进制向量分别设置一个特征单元,因此我们可以对二进制输入向量停止任何能够的区分。但是,一旦确定了手动编程的特征,感知器可以学习的东西就非常有限。

这个结果对于感知机是毁灭性的,由于形式辨认是去辨认在变换状况下的形式。Minsky 和 Papert 的「组不变性定理」以为感知机的学习部分无法去学习当转换来自于一个组的状况。为了辨认上述那种状况,需求更多的特征单元去辨认那些形式中包含的子信息。所以形式辨认的技巧部分必须由手动编码的特征检测器来处理,而不是学习过程。

没有隐藏单元的网络在其可以学习建模的输入输入映射中是非常有限的。简单地添加一些线性单元杯水车薪,由于结果还是线性的。固定的输入非线性也不够,因此,我们需求多层自顺应非线性隐藏单元。成绩是怎样对这样的网络停止训练。我们需求一种顺应一切权重的有效方式,而不只仅是最后一层,所以这很难。学习进入隐藏层的权重等同于学习特征,这是非常困难的,由于没有人直接告诉我们隐藏层应该怎样做。




二、卷积神经网络

机器学习研讨曾经广泛地集中在物体检测成绩上。有各种各样的事情使辨认物体变得困难:
    图像分割:真实场景中总是掺杂着其它物体。很难判别哪些部分属于同一个对象。对象的某些部分可以隐藏在其他对象的后面。物体光照:像素的强度被光照激烈影响。图像变形:物体可以以各种非仿射方式变形。例如,手写也可以有一个大的圆圈或只是一个尖头。情形支持:物体所属类别通常由它们的运用方式来定义。例如,椅子是为了让人们坐在下面而设计的,因此它们具有各种各样的物理外形。视角:标准学习方法无法应对的视点变化导致的图像变化,得到的信息随输入维度(即像素)的变化而变化。维度跳变:想象一个医疗数据库,通常用来学习体重的神经元,如今忽然用来学习病人的年龄!要运用机器学习,我们首先要消弭这个维度腾跃。




复制特征方法是目前神经网络处理目的检测成绩的次要方法。在不同的地位运用相反的特征提取器。它也可以在尺寸和方向上复制,这很需技巧并且很贵。复制大大减少了要学习的自在参数的数量。它运用几种不同的特征类型,每种都有本人的复制检测器图像。它也允许以各种方式表示每个图像块。

那么复制特征检测器是如何完成的呢?
    激活值等变化量:复制特征的方法并不能使神经元激活值不变,但是可以使激活值改变量相反。知识不变量:假如在训练中一个特征在某些地位有效,则在测试过程中,特征检测器在各个地位有效。





1998 年,Yann LeCun 和他的合作者开发了 LeNet 的手写数字辨认器。它在前馈网中运用反向传播,这个前馈网络不只仅是一个辨认器,它有许多隐藏层,每个层有许多复制单元的映射,汇集附近复制单元的输入,有一个即便堆叠也可以同时处理几个字符的宽网,以及训练一套残缺的系统的巧妙方式。后来正式命名为卷积神经网络。一个风趣的理想是:这个网络被用来读取北美地区约 10%的支票。




卷积神经网络可用于从手写数字到 3D 物体的与物体辨认有关的一切工作。但是,从网下载的彩色照片中辨仔细实物体要比辨认手写数字复杂得多。它百倍于手写数字的类别(1000:10),数百倍于手写数字的像素(256×256 色:28×28 灰度),是三维场景的二维图像,需求分割混乱场景,而且每个图片有多个对象。这样的状况下,相反类型的卷积神经网络会起作用吗?




之后在 ImageNet 2012 年的 ILSVRC 竞赛(这个比赛被誉为计算机视觉的年度奥林匹克竞赛)中,标题是一个包含大约 120 万张高分辨率训练图像的数据集。测试图像不显示初始注释(没有分割或标签),算法要产生指定图像中存在什么对象的标签。来自 Oxford、INRIA、XRCE 等机构的先进计算机视觉小组用已有的最好计算机视觉方法运用于这个数据集。通常计算机视觉系统是复杂的多级系统,往往需求在早期阶段经过手动调参来优化。




比赛获胜者 Alex Krizhevsky(NIPS 2012)开发了由 Yann LeCun 创始的深度卷积神经网络类型。其架构包括 7 个隐藏层(不包括池化层)。前五层是卷积层,后面两层是全衔接层。激活函数在每个隐藏层中被修正为线性单元。这些训练比 Logistic 单元更快,更有表现力。除此之外,当附近的单元有更强的活动时,它还运用竞争规范化来压制隐藏的活动,这有助于强度的变化。

有一些技术手腕可以分明提高神经网络的泛化才能:
    从 256×256 图像中随机挑选 224×224 块图像以获取更多数据,并运用图像的左右反射。在测试时,结合 10 个不同的图像:四个角落加上中间,再加上它们程度翻转的五个。运用「dropout」来调整全局衔接层(包含大部分参数)的权重。Dropout 指的是随机移除每个训练样本一层中的一半隐藏单元,使其不再过多地依赖其它隐藏单元。




就硬件要求而言,Alex 在 2 个英伟达的 GTX 580 GPU(超过 1000 个疾速小内核)上运用了非常高效的卷积网络完成。GPU 非常合适矩阵乘法,并且具有非常高的内存带宽。这让它在一周内训练了网络,并在测试时疾速结合了 10 个图像块的结果。假如我们可以足够快地交换形状,我们可以在很多内核上传播一个网络。随着内核越来越便宜,数据集越来越大,大型神经网络将比老式计算机视觉系统发展得更快。

三、循环神经网络




为了了解循环神经网络,我们需求对序列建模停止简要概述。当机器学习运用于序列时,我们常常希望将输入序列转换为不同域中的输入序列;例如,将一系列的声压转换成单词序列。当没有单独的目的序列时,我们可以经过尝试预测输入序列中的下一项作为网络的学习目的。目的输入序列是输入序列的下一步。比起试图根据一个图片的其他像从来预测一个像素或根据图像的其他部分来预测一个部分,这样似乎更自然。预测序列中的下一项模糊了有监督学习和无监督学习之间的区别。它运用专为监督学习而设计的方法,但它不需求单独的目的数据。




无记忆模型是这个义务的标准方法。详细而言,自回归模型可以经过运用「延迟抽头」从固定数量的前几项预测下一项,而且前馈神经网络是运用一层或多层非线性隐藏单元的广义自回归模型。但是,假如我们给生成模型一些隐藏的形状,使这个隐藏的形状外部是动态的,我们就会得到一个更风趣的模型:它可以长工夫地将信息存储在隐藏形状。假如隐形状的动态从隐形状中生成输入是有噪声的,我们将永远无法知道它确切的隐藏形状。我们所能做的是推断隐形状矢量空间的概率分布。这种推断只适用于 2 种隐藏形状模型。

循环神经网络是非常弱小的,由于它们结合了两个属性:1)分布式隐形状,允许其有效地存储大量有关过去的信息; 2)非线性动态,使他们可以以复杂的方式更新隐形状。有了足够的神经元和工夫,RNN 可以计算任何计算机可以计算出来的东西。那么 RNN 可以表现什么样的行为呢?它们可以振动,可以波动在点吸引子,从而表现地很混乱。还可以经过运用隐形状的不同子集执行许多不同的小程序,每个小程序捕获一块知识,而且一切的这些都能并行运转并以更复杂的方式交互。




但是,RNN 的计算才能使它们很难训练。由于梯度迸发和梯度消逝,训练一个 RNN 是相当困难的。当我们停止多层反向传播时,梯度的大小会发生什么变化?假如权重很小,则梯度将指数减少。假如权重很大,梯度将成指数增长。典型的前馈神经网络可以应付这些指数效应,由于它们只要很少的隐藏层。但是,在训练长序列的 RNN 中,梯度很容易爆炸或消逝。即便初始权重选的很好,也很难检测到依赖于多个工夫步长前的输入的当前目的输入,所以 RNN 难以处理序列中的长程依赖。

基本上有 4 种有效的方法来学习 RNN:
    长短期记忆:将 RNN 用于长期记忆值的小模块。Hessian Free 优化:经过运用酷炫的优化器来处理梯度消逝成绩,该优化器可以检测具有更小曲率的宏大梯度。回声形状网络:经过慎重地初始化层之间的衔接(输入 ->隐层、隐层 ->隐层、输入 -> 隐层),确保隐藏形状有宏大的弱耦合震荡存储,可以经过输当选择性地驱动这些振荡器。应用动量停止良好的初始化:像回声形状网络一样停止初始化,然后运用动量学习一切衔接。

四、长短期记忆网络




Hochreiter 和 Schmidhuber(1997)经过构建长短期记忆网络,处理了获取 RNN 长工夫记忆(如数以百计的工夫步长)的成绩。他们使用具有乘法互相作用的逻辑和线性单元来设计存储器单元。每当「写入」门打开时,信息就会进入单元。当「保持」门打开,信息将在单元中保持。信息可以经过打开「读取」门而从单元中读取。

手写草书辨认是一个特别合适 RNN 的义务。输入是笔尖的(x,y,p)坐标序列,其中 p 表示笔是向上还是向下。输入是一个字符序列。Graves 和 Schmidhuber(2009)表明,带有 LSTM 的 RNN 是目前草书辨认的最佳系统。简而言之,其运用一系列小图像代替笔坐标作为输入。




五、Hopfield 网络

循环网络的非线性单元通常很难分析。它们可以表现为不同的方式:波动到波动的形状,振荡,或遵照不可预测的混沌轨迹。一个 Hopfield 网络由二元门限单元组成,它们之间有延续的衔接。1982 年,John Hopfield 看法到,假如衔接是对称的,就有一个全局能量函数。整个网络的每个二进制「结构」都有能量,而二进制阈值的决策规则使网络可以得到能量函数的最小值。应用这类计算的一种简约方法是运用记忆作为神经网络的能量最小值。运用能量最小值来表示记忆从而内存可寻址。可以只知道一个项目的部分内容来访问这个项目。这对硬件损坏是极大的。




每当记忆一次配置,我们希望创造一个新的能量最小值。但是,假如在中间地位附近有两个最小值怎样办呢?这限制了 Hopfield 网络的容量。那么如何添加 Hopfield 网络的容量呢?物理学家以为他们已知的数学知识可以解释大脑的工作机制。物理学期刊上发表了许多关于 Hopfield 网络及其存储容量的论文。最终,Elizabeth Gardner 以为,有一个更好的存储规则——使出权重的「浑身解数」。这不是一次性存储向量,而是多次循环训练集,并应用感知机收敛过程来训练每个单元,使其具有正确的形状,给定该向量中一切其他单元的形状。统计学家称这种技术为「伪能够性」。




Hopfield 网络还有另一个计算功能。我们不再用网络来存储记忆,而是用它来构建感官输入的信息。用可见单元表示输入,用隐藏节点的形状来表达输入节点的信息,用能量表示信息的不好(低的能量形状来表达一个好的 interpretation)。

六、玻尔兹曼机网络

玻尔兹曼机是一种随机递归神经网络。它可以被看作是 Hopfield 网络随机生成的对应物。它是第一个可以学习外部表示的神经网络之一,可以表示并处理难的组合成绩。




玻尔兹曼机学习算法的学习目的是最大化玻尔兹曼机分配给训练集中二进制向量概率的乘积。这等同于最大化玻尔兹曼分配给训练向量的对数概率之和。也就是说,假如我们做了如下的事情,最大化我们得到 N 个训练案例的概率:1)让网络在没有外部输入的状况下在不同工夫波动分布; 2)每次采样一次可见向量。

2012 年,Salakhutdinov 和 Hinton 提出了玻尔兹曼机的高效小批量学习程序。
    对于正相位,首先将隐藏概率初始化为 0.5,将可见单元上的数据向量停止钳位,然后并行更新一切隐藏单元,运用平均场方法并行更新隐藏单元直到收敛。在网络收敛之后,记录每个衔接的单元对 Pi Pj,并在最小批量中对一切数据取平均。对于负相位:首先保留一组「幻想粒子」(就是一对 (Si,Sj) 构成的系统?)。每个粒子都有全局配置中的一个值。然后串行更新几次每个幻想粒子中的一切单元。对于每一个衔接的单元,对一切的幻想粒子的 SiSj 取平均。

在普通玻尔兹曼机中,单元的随机更新需求延续。有一个特殊的体系结构允许更有效的交替并行更新(层内没有衔接,没有跳层衔接)。这个小批量程序使玻尔兹曼机的更新愈加并行。这就是所说的深度玻尔兹曼机(DBM),一个缺失很多衔接的普通玻尔兹曼机。




2014 年,Salakhutdinov 和 Hinton 为他们的模型提出了一个晋级版,称之为受限玻尔兹曼机(RBM)。他们经过限制连通性使推理和学习变得更容易(隐藏单元只要一层,隐藏单元之间没有衔接)。在 RBM 中,当可见单元被钳位时只需求一步就能达到热平衡。

另一个有效的小批量 RBM 学习程序是这样的:
    对于正相位,首先将可见单元的数据矢量钳位。然后计算一切可见和隐藏单元对的<ViHj>的确切值。对于每个衔接的单元对,对小批量中的一切数据<ViHj>求平均。对于负相位,也保留一组「幻想粒子」(就是一对 (Vi,Hj) 构成的系统?)。然后交替并行更新几次每个幻想粒子中的一切单元。对于每一个衔接的单位对,一切幻想粒子 ViHj 求平均。

七、深度信心网络




反向传播被以为是人工神经网络中的标准方法,用于在处理一批数据之后计算每个神经元的误差贡献。但是,运用反向传播存在一些重要的成绩。首先,它需求有标签的训练数据;而几乎一切的数据都没有标签。其次,学习工夫不够理想,这意味着隐藏层数多的网络很慢。第三,它能够会堕入部分最小的场面,所以对于深度网络来说,它们还差得很远。

为了克制反向传播的限制,研讨人员曾经思索运用无监督的学习方法。这有助于保持运用梯度方法来调整权重的效率和简单性,还可以用它来对传感输入的结构停止建模。特别是,他们调整权重使生成模型产生感官输入的概率最大化。成绩是我们应该学习什么样的生成模型?可以是像玻尔兹曼机这样的能量模型吗?还是由理想化的神经元组成的因果模型?或是两者的混合?




信心网是由随机变量组成的有向无环图。运用信心网我们可以观察到一些变量。我们想要处理 2 个成绩:1)推理成绩:推断未观测变量的形状; 2)学习成绩:调整变量之间的交互作用,使网络更有能够产生训练数据。

早期的图形模型的图形结构和条件概率是专家定义的。那时,这些图形衔接稀疏,所以研讨人员一末尾把重点放在做正确的推论,而不是学习上。对于神经网络来说,学习是关键,手写知识并不酷,由于知识来自于学习训练数据。神经网络的目的不在于可解释性或经过稀疏衔接性使其便于推理。不过,还有神经网络版本的信心网络。

由随机二元神经元组成的生成神经网络有两种类型:1)基于能量应用对称衔接来衔接二元随机神经元得到玻尔兹曼机; 2)我们经过因果关系在一个有向无环图中衔接二元随机神经元获得 SBN。这两种类型的描画超出了本文的范围。

八、深度自动编码器




最后,我们来讨论深度自动编码器。深度自动编码器是非线性降维的非常好的方法,缘由如下:它们提供了两种灵敏的映射方式。训练事例的学习工夫是线性的(或更好的),最终的编码模型相当紧凑和疾速。但是,运用反向传播来优化深度自动编码器很难。在初始权重较小的状况下,反向传播梯度消逝。如今我们有了更好的方法来优化它们,要么运用无监督的逐层预训练,要么像回声形状网络那样慎重地初始化权重。

对于预训练义务,实践上有三种不同类型的浅自动编码器:
    受限玻尔兹曼机作为自动编码器:当我们用一步对比散度训练受限玻尔兹曼机时,它试图使重建看起来像数据。它就像一个自动编码器,但是经过运用隐藏层中的二进制活动来强化正则化。经过最大能够性训练后,受限玻尔兹曼机不像自动编码器。我们可以用浅自动编码器堆栈来代替用于预训练的 RBM 堆栈;但是,假如浅自动编码器经过惩罚平方权重而被正轨化,那么预训练就不是有效的(对于随后的辨别)。去噪自动编码器:经过将其许多分量设置为 0(例如输入的数据丢失的状况),将噪声添加到输入向量。他们照旧需求重建这些分量,因此他们必须提取捕获输入之间相关性的特征。假如我们运用表示自动编码器的堆栈,那么预训练是非常有效的。与 RBM 预训练一样好或者更好。由于我们可以很容易地计算目的函数的值,所以评价预训练也更简单。它缺乏我们用 RBM 获得的良好的变分边界,但这只是实际上的成绩。紧缩自动编码器:使自动编码器正轨化的另一种方法是尽能够使隐藏单元的活动对输入不敏感,但是他们不能忽视这些输入,由于他们必须重建这些输入。我们经过惩罚每个隐藏活动相对于输入的平方梯度来达到这个目的。紧缩自动编码器预训练时工作得很好。代码倾向于使一小部分隐藏单元对输入变化敏感。




简而言之,如今有很多不同的方法来停止功能的逐层预训练。对于没有大量标签化的事例的数据集来说,预训练有助于后续的判别式学习。对于非常大的有标签的数据集,运用无监督预训练初始化监督学习中运用的权重停止并不必要,即便对于深度网络也是如此。预训练是初始化深度网络权重的第一个不错的方法,但如今还有其他方法。但是,假如我们让网络很大,我们将再次离不开预训练!

总结

神经网络是有史以来最美丽的编程范例之一。 在传统的编程方法中,我们告诉计算机要做什么,将大成绩分解成计算机可以轻松执行的许多小的,准确定义的义务。 相比之下,在神经网络中,我们不告诉计算机如何处理我们的成绩。 相反,它从观测数据中学习,找出处理手头成绩的办法。

明天,深度神经网络和深度学习在计算机视觉,语音辨认和自然言语处理等许多重要成绩上获得了出色的表现。 它们正在被谷歌,微软和Facebook等公司大规模部署。

我希望这篇文章能协助你学习神经网络的核心概念,包括最先进的深度学习技术。 您可以从我的GitHub中获取Hinton's Coursera课程所做的一切ppt,研讨论文和编程义务。 祝你好运学习!

原文链接:https://medium.com/@james_aka_yale/the-8-neural-network-architectures-machine-learning-researchers-need-to-learn-2f5c4e61aeeb

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

大神点评4

分享了
回复

使用道具 举报

人间无古 2019-2-20 06:46:24 显示全部楼层
分享了
回复

使用道具 举报

hometo 2019-2-20 11:55:38 显示全部楼层
为毛老子总也抢不到沙发?!!
回复

使用道具 举报

incivility1967 2019-2-20 20:02:27 显示全部楼层
这么强,支持楼主,佩服
回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies