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


在这篇文章中,分享一下机器学习研究人员应该熟悉的课程中的8个神经网络架构。

一、感知器
考虑到第一代神经网络,感知器只是单个神经元的计算模型。它们是由Frank Rosenblatt在20世纪60年代早期推广的。它们似乎有一个非常强大的学习算法,并且为它们可以学习的东西做了很多重大的宣传。1969年,Minsky和Papers发表了一本名为《感知器》的书,分析了它们可以做什么并展示了它们的局限性。许多人认为这些限制适用于所有的神经网络模型。然而,感知器学习过程在今天仍然被广泛地应用于包含数百万个特性的巨大特征向量的任务。
1.png

在统计模式识别的标准范例中,我们首先将原始输入向量转换为特征激活向量。 然后,我们使用基于常识的手写程序来定义特征。 接下来,我们将学习如何对每个特征激活进行加权以获得单个标量数量。如果这个数量高于某个阈值,我们就决定输入向量是目标类的一个正面例子。

标准的感知器体系结构遵循前馈模型,这意味着输入被发送到神经元中,被处理并产生输出。在下面的图中,这意味着网络是自下而上的:输入来自底部,输出从顶部输出。
2.png

然而,感知器确实有局限性:如果你遵循手动选择特性并使用足够的特性,那么你几乎可以做任何事情。对于二元输入向量,我们可以为每个指数多的二进制向量分别设置一个特征单元,因此我们可以对二进制输入向量进行任何可能的区分。但是,一旦确定了手工编码的特性,就会对感知器的学习有很大的限制。

这个结果对感知器来说是毁灭性的,因为整个模式识别的重点是识别模式,尽管像翻译这样的转换。Minsky和Papert的“群体不变定理”说,如果转化形成一个群体,学习感知器的部分不能学会这样做。为了处理这种转换,感知器需要使用多个特征单元来识别信息性子模式的转换。所以模式识别的棘手部分必须通过手动编码特征检测器来解决,而不是学习过程。

没有隐藏单元的网络在它们可以学习建模的输入输出映射方面非常有限。更多层次的线性单元不起作用。它仍然是线性的。固定输出非线性是不够的。 因此,我们需要多层自适应非线性隐藏单元。 但我们如何训练这样的网?我们需要一种有效的方法来适应所有的权重,而不仅仅是最后一层。这是很难的。学习进入隐藏单位的权重等同于学习功能。这很难,因为没有人直接告诉我们隐藏单位应该做什么。

二、卷积神经网络
机器学习研究一直以来都集中在对象检测问题上。有很多东西让我们很难识别物体:
分割:真实场景与其他对象混杂在一起。很难分辨哪些部分是同一个对象的一部分。对象的某些部分可以隐藏在其他对象后面。
照明:像素的强度取决于物体的照明程度。
变形:物体以各种非仿射方式变形。一个手写的也可以有一个大的圈,或者只是一个尖头。
可用性:对象类通常由它们的使用方式来定义。例如,椅子是专为坐着而设计的,因此它们具有各种各样的外形。
观点:观点的改变导致标准学习方法无法处理的图像变化。输入维度(即像素)之间的信息跳跃。
3.png

设想一个医学数据库,其中患者的年龄有时希望达到通常编码体重的输入维度! 为了应用机器学习,我们首先要消除这种维度跳跃。

复制特征方法是目前神经网络解决目标检测问题的主要方法。它使用不同位置的同一功能检测器的许多不同副本。它也可以在规模和方向上进行复制,这很棘手,也很昂贵。

复制大大减少了要学习的可用参数的数量。它使用了几种不同的特性类型,每个特征类型都有自己的复制检测器映射。它还允许每个图像块以多种方式表示。

那么复制特征探测器是如何实现的?
等效活动:复制的特性不会使神经活动不变量转换。这些活动是等变的。
不变知识:如果在训练过程中某个特性在某些位置有用,那么在测试期间,该特性的检测器将在所有位置都可用。

1998年,Yann LeCun和他的合作者开发出了一种名为LeNet的手写数字识别器。它在具有许多隐藏层的前馈网中使用反向传播,在每层中复制单元的许多映射,汇集附近复制单元的输出,即使它们重叠也能够一次处理几个字符的宽网,以及聪明的训练一个完整的系统,而不仅仅是一个识别器。后来,它被命名为卷积神经网络。 有趣的事实:这个网络用于读取北美地区约10%的支票。
4.png

卷积神经网络可以用于所有与物体识别有关的工作,从手写数字到3D对象。然而,从网上下载彩色照片中的真实物体要比识别手写数字复杂得多。有100倍的类(1000比10),100倍的像素(256 x 256色vs 28 x 28灰色),二维图像的三维场景,杂乱的场景需要分割,以及每个对象中有多个对象图片。相同类型的卷积神经网络会起作用吗?

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

大赛的获胜者Alex Krizhevsky(NIPS 2012)开发了一种非常复杂的神经网络,由Yann LeCun首创。它的体系结构包括7个隐藏层,而不包括一些混合池。早期的层是卷积的,而最后两层是全局连接的。激活函数在每个隐藏层中被纠正为线性单位。这些训练比物流单位训练速度更快,表现力更强。除此之外,当附近的单位有更强的活动时,它还使用竞争性标准化来压制隐藏的活动。这有助于强度的变化。

有几个技术诀窍可以显著提高神经网络的泛化程度:

从256 x 256图像中随机抽取224 x 224个补丁,以获得更多的数据,并使用图像的左右反射。在测试时,结合10个不同补丁的意见:4个224 x 224角补丁加上中央224 x 224补丁加上这5个补丁的反射。

使用dropout在全局连接的层中调整权重(包含大多数参数)。中途退出意味着每一个训练实例中,有一半的隐藏单元被随机移除。这阻止了隐藏单位过多地依赖其他隐藏单位。
6.png

就硬件要求而言,Alex在2个Nvidia GTX 580 GPU(超过1000个快速小内核)上使用了非常高效的卷积网络实现。GPU非常适合矩阵矩阵乘法,并且还具有非常高的内存带宽。这使他可以在一周内训练网络,并使测试时快速结合10个补丁的结果。如果我们能够以足够快的速度交流状态,我们可以在许多核心上扩展网络。随着核心越来越便宜,数据集越来越大,大型神经网络将比老式计算机视觉系统提高得更快。

三、递归神经网络
7.png

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

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

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

然而,RNN 的计算能力使它们很难训练。由于梯度爆发和梯度消失,训练一个 RNN 是相当困难的。当我们进行多层反向传播时,梯度的大小会发生什么变化?如果权重很小,则梯度将指数缩小。如果权重很大,梯度将成指数增长。典型的前馈神经网络可以应付这些指数效应,因为它们只有很少的隐藏层。然而,在训练长序列的 RNN 中,梯度很容易爆炸或消失。即使初始权重选的很好,也很难检测到依赖于多个时间步长前的输入的当前目标输出,所以 RNN 难以处理序列中的长程依赖。

基本上有 4 种有效的方法来学习 RNN:

长短期记忆:将 RNN 用于长期记忆值的小模块。
Hessian Free 优化:通过使用酷炫的优化器来处理梯度消失问题,该优化器可以检测具有更小曲率的微小梯度。
回声状态网络:通过谨慎地初始化层之间的连接(输入 ->隐层、隐层 ->隐层、输出 -> 隐层),确保隐藏状态有巨大的弱耦合震荡存储,可以通过输入选择性地驱动这些振荡器。
利用动量进行良好的初始化:像回声状态网络一样进行初始化,然后使用动量学习所有连接。

四、长期/短期记忆网络
9.png

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

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


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

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

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

六、玻尔兹曼机网络
玻尔兹曼机是一种随机递归神经网络。它可以被看作是 Hopfield 网络随机生成的对应物。它是第一个能够学习内部表示的神经网络之一,能够表示并解决难的组合问题。
13.png

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

2012 年,Salakhutdinov 和 Hinton 提出了玻尔兹曼机的高效小批量学习程序。

对于正相位,首先将隐藏概率初始化为 0.5,将可见单元上的数据向量进行钳位,然后并行更新所有隐藏单元,使用平均场方法并行更新隐藏单元直到收敛。在网络收敛之后,记录每个连接的单元对 Pi Pj,并在最小批量中对所有数据取平均。
对于负相位:首先保留一组「幻想粒子」(就是一对 (Si,Sj) 形成的系统?)。每个粒子都有全局配置中的一个值。然后串行更新几次每个幻想粒子中的所有单元。对于每一个连接的单元,对所有的幻想粒子的 SiSj 取平均。

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

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

另一个有效的小批量 RBM 学习程序是这样的:

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

七、深度信念网络
15.png

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

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

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

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

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

八、深度自动编码器
17.png

最后,我们来讨论深度自动编码器。深度自动编码器是非线性降维的非常好的方法,原因如下:它们提供了两种灵活的映射方式。训练事例的学习时间是线性的(或更好的),最终的编码模型相当紧凑和快速。然而,使用反向传播来优化深度自动编码器很难。在初始权重较小的情况下,反向传播梯度消失。现在我们有了更好的方法来优化它们,要么使用无监督的逐层预训练,要么像回声状态网络那样谨慎地初始化权重。

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

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


最后的福利

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

如今,深度神经网络和深度学习在计算机视觉、语音识别和自然语言处理等许多重要问题上有着出色的表现。它们正在被谷歌、微软和 Facebook 等公司大规模部署。
我希望这篇文章能帮助你学习神经网络的核心概念,包括最先进的深度学习技术。 您可以从我的GitHub中获取Hinton's Coursera课程所做的所有ppt,研究论文和编程任务。 祝你好运学习!

GitHub代码:https://github.com/khanhnamle1994/neural-nets
原文链接:https://medium.com/%40james_ak ... 1aeeb

为了帮你更快实现从零到机器学习工程师的转化,七月在线特此设置《机器学习 第九期》的课程,
本课程的所有讲师均全部来自BAT + Google的一线技术大咖亲自授课,是真正工业人士授课的工业课程,且我们这么做已长达三年。
另外,网上课程很多,但由于没有个性化的内容、辅导、答疑,导致不少初学者看再多课程,课程看再多次,都是迷迷糊糊、不成体系,故本课程除了直播答疑之外,首次新增作业和考试一对一批改,且针对性的提供面试辅导、推荐就业,全力护航每一位学员的成长与成功。
机器学习第九期海报.png

0 个评论

要回复文章请先登录注册

返回顶部