第5章深度学习模型与算法 MP神经元数学模型由沃伦·麦卡洛克(WarenMcCuloch)和沃尔特·皮茨 (WalterPits)在1943年提出。弗兰克·罗森布拉特(FrankRosenblat)在1958年基于 该数学模型提出了第一代神经网络单层感知器模型。第一代神经网络模型能够完成区分 正方形与三角形等基本形状的任务,使人类发明真正能实现感知、学习与记忆等任务的智 能机器成为可能。但是由于第一代神经网络基本原理存在的限制使得该目标长期无法取 得进展。马文·闵斯基在1969年发表了针对第一代神经网络模型的专著,他认为,神经 网络模型由人类设计固定的特征层,并证明异或(XOR)问题无法被单层感知器解决,这 与真正的智能机器相距甚远。杰弗里·辛顿等在1986年提出了第二代神经网络,使用多 个隐含层替换原始单一固定的特征层,采用Sigmoid函数作为激活函数,并利用误差的反 向传播算法对模型进行运算法。非线性分类问题能够被第二代神经网络有效解决。由于 包括1995年由科琳娜·科茨(CorinnaCortes)与弗拉基米尔·万普尼克(Vladimir Vapnik)提出的支持向量机等在内的各种浅层机器学习模型在此后十多年相继被提出, 浅层机器学习模型取得了长足的发展,神经网络的研究因此被搁置。 2006年,辛顿等在探讨大脑中的图模型的过程中,提出通过自编码器的方式实现降 低数据维度的任务,并针对梯度消失问题提出用预训练的方式快速训练深度信念网。此 后,约书亚·本吉奥等证明预训练的方式也适用于自编码器等无监督学习算法,克里斯托 弗·波尔尼特(ChristopherPoultney)等使用基于能量的模型完成稀疏表示的学习。在 深度学习的基础被这些理论奠定之后,深度学习进入快速发展的阶段。美国国防部从 2010年开始对深度学习项目进行赞助。泽维尔·格洛特(XavierGlorot)等在2011年为 有效抑制梯度消失问题提出ReLU激活函数。微软公司和谷歌公司在语音识别任务中 先后采用深度学习技术将错误率降低至20%~30%,深度学习在语音识别上最先取得重 大突破。辛顿和其学生在2012年将计算机视觉领域中的ImageNet图片分类问题的 Top5错误率由26%降低至15%,进一步标志着深度学习进入爆发期。多芬(Y.N. Dauphin)等在2014年,安娜·科罗曼斯卡(AnnaChoromanska)等在2015年通过独立的 工作分别对局部极小值问题进行了阐述,使笼罩在神经网络上的局部极值阴霾被驱散。 深度学习发展历史如图5-1所示。在图5-1中,深度学习热度上升与下降的关键转折点 使用空心圆圈表示,深度学习的突破用实心圆圈表示,深度学习热度的上升期使用斜向上 的直线表示,深度学习热度的下降期使用斜向下的直线表示。 深度学习其实是机器学习的子集,从浅层机器学习发展到深度学习的过程中,机器学 习经历了两次浪潮。浅层机器学习模型与深度学习模型之间存在着明显的差异。浅层机 器学习模型不使用分布式表示,而且模型本身只是根据人为提取的特征进行分类或回归, 整个系统的好坏在很大程度上由人工提取的特征质量所决定,同时,人工提取特征的过程 需要大量的时间以及对专业领域知识的深度掌握;与之相反,深度学习作为一种表示学习 第5章深度学习模型与算法·31· 方法,能够自动完成特征的提取与抽象,并且深度学习模型的表示能力会伴随着模型的深 度和广度增加而增强。 图5-1 深度学习发展历史 5.循环神经网络 1 循环神经网络(RecurentNeuralNetworks,RNN)于1986年由大卫·鲁梅尔哈特 (DavidRumelhart)等提出,其主要目的是完成处理序列化数据的任务。传统神经网络是 由输入层、隐含层以及输出层构成的分层结构,每层包含多个神经节点。传统神经网络在 同层的神经节点间不存在连接,而在相邻层的神经节点间则是全连接。这种传统的神经 网络结构在很多问题上束手无策,而循环神经网络则能够发挥一定的作用。以一句话为 例,因为一句话中的内容是前后相关的,所以在预测句子中被消除的内容时需要考虑前面 的内容。在循环神经网络中,当前的输出结果会受到前面的输出内容的影响,循环神经网 络通过记忆前面的计算信息并传入当前单元的计算过程,与当前输入数据共同计算输出 值。循环神经网络隐含层之间的节点在结构上存在连接,当前节点不仅接收从输入层输 入的数据,也获取前一隐含层节点的传输值。在这种信息关联机制的作用下,循环神经网 络理论上能够完成任意长度的序列数据的处理任务。但是在循环神经网络的实际使用 中,常常假设当前状态仅与邻近的几个过往状态相关。图5-2是一个典型的循环神经 网络。 循环神经网络链状结构的性质表明它与列表型和序列型数据存在密切相关性。循环 神经网络链状结构也是处理此类数据时使用的神经网络的自然结构。将前期信息与当前 ·32· 人工智能技术在太空安全中的应用 图5-2 一个典型的循环神经网络 任务相关联是循环神经网络特别强调的关键点。循环神经网络在当前任务与前期信息距 离较近时,前期信息能够得到很好的保存并通过其序列结构传输至当前任务;但是在当前 任务与前期信息距离过远时,循环神经网络对这些前期信息并不能进行有效的学习。这 就是著名的梯度消失问题(vanishinggradientproblem), 即后面的节点对于前面的节点 的感知力出现下降。 针对长期依赖关系下循环神经网络无法有效学习前期信息的问题,赛普·霍克赖特 (SeppHochreiter)等于1997 年提出了长短期记忆模型(LSTM), 它是循环神经网络模型 的特殊形式,能够有效学习长期依赖关系。LSTM 是一种针对长期依赖关系问题设计的 模型结构,它无须刻意学习就可以将前期信息保存很长时间。 所有的循环神经网络模型中都包含一连串重复的神经网络模块形式的结构。在标准 的循环神经网络中,此类重复模块通常是一种特别简单的结构,例如单个的tanh层。标 准循环神经网络重复模块如图5-3所示。 图5-3 标准循环神经网络重复模块 LSTM 和循环神经网络一样,也是链状结构,两者的不同点在于重复模块结构不同。 与传统循环神经网络的计算单元是简单的tanh层不同,LSTM 在其计算单元中包含了4 个神经网络层,这些神经网络层以特殊的方式相互作用。LSTM 重复模块如图5-4所示。 细胞状态是LSTM 的核心,它在水平方向上贯穿前行。LSTM 通过精心设计的门对 细胞状态的改变进行控制。门是使信息选择式通过的一种方法,由一个Sigmoid神经网 络层和一个Pointwise乘法操作组成。LSTM 通过3个门实现对细胞状态的保护和控 制,这3个门分别是输入门、输出门以及遗忘门。LSTM 中的前向传播计算式如下: ft=σ(Wf ·[t-1,t]+bf ) (5-1) hx 第5章深度学习模型与算法·33· 图5-4LSTM重复模块 σ(h-x]+b5 it=Wi ·[t1,ti)(-2) .. ah(hx( .. (4) Ct=tnWC ·[t-1,t]+bC ) 53) Ct=ft*Ct-1+it*Ct 5ot=σ(Woht-t)]+bo( ·[1,) 55) ht=ot*tanh(Ct)(x) (5-6) 在上面的公式中,ft 表示遗忘门, t 表示输入门,.. t 表示候选值,Ct 代表新的细胞状 态,th表示输出值,ti 表示当前输入值 C 。 表示输出门,t 基(o) 于LSTM的基本思想的多种变(x) 体陆续出现,例如2000年提出的窥视孔连接(pepholeconnections)变体以及2014年提出的GRU变体等。 5.前馈神经网络 2 在前馈神经网络中,神经元根据接收信息的先后被分成不同的组,每个组可以看作一 个神经网络层。神经网络层中的每个神经元接收来自上一层中的神经元的输出,并将处 理结果作为输入传输到下一层的神经元。前馈神经网络以输入层开始,以输出层结束,其 他的层为隐含层。前馈神经网络中的信息只存在向前传递的情况,没有反向传递,其结构 如图5-5所示。 图5-5 前馈神经网络结构 可以将前馈神经网络视作一个函数,它使用多次复合简单的非线性函数的方式完成 ·34· 人工智能技术在太空安全中的应用 从输入到输出的复杂映射的任务。前馈神经网络传递信息的公式如下: (W((-l) zl)=l)·al1)+b((5-7) (l)fl(((5-8) = l)-(a( W(代表从第l1层到第l层(a) 的权重矩l(z) ) 阵 ) ,l)代表第 l 层神经网的净输入,l)代表 b( 第 l 层的输出,l)代表第l-1层到第 l 层的偏置,f(z) l (·) 代表第 l 层神经元的激活函 数,目前主流的激活函数有tanh函数、ReLU 函数以及Sigmoid函数等。 5.卷积神经网络 3 1962 年,生物学家大卫·休伯尔(DavidHubel)和托斯登·威塞尔(TorstenWiesel) 研究了猫的视皮层,发现视皮层中有一系列结构复杂的细胞,这些细胞对视觉输入空间的 局部区域非常敏感,因此它们也被称为感受野。感受野以一定的方式覆盖了整个视觉领 域,在输入空间中起着局部的作用,可以更好地挖掘自然图像中存在的强局部空间相关 性。这些被称为感受野的细胞可以划分为两类:简单细胞和复杂细胞。根据Hubel- Wiesel层次模型,视皮层的神经网络具有以下层次结构:外侧膝状体→简单细胞→复杂 细胞→低阶超复杂细胞→高阶超复杂细胞。低阶超复杂细胞与高阶超复杂细胞之间的神 经网络结构类似于简单细胞与复杂细胞之间的神经网络结构。在这种层次结构中,处于 较高阶的细胞通常倾向于选择性地对更复杂的刺激模式特征作出反应,同时较高阶的细 胞也具有更大的感受野,对刺激模式位置的移动不太敏感。1980 年,福岛邦彦(Kunihiko Fukushima)提出了一种基于Huble-Wiesel层次模型的神经认知机(neocognitron)。神 经认知机由简单细胞层(S层)和复杂细胞层(C层)交替组成。S层对应于Huble-Wiesel 层次模型中的简单细胞层或低阶超复杂细胞层,C层对应于复杂细胞层或高阶超复杂细 胞层。S层能最大限度地对感受野中特定的边缘刺激做出反应,并提取其输入层的局部 特征;而C层对来自确切位置的刺激不敏感。 卷积神经网络适用于空间数据的处理任务,在计算机视觉领域有广泛的应用。一维 卷积神经网络也常常被称作时间延迟神经网络,能够用于一维数据的处理。卷积神经网 络的设计思想受到了视觉神经科学的启发,主要由卷积层与池化层组成。卷积层具有保 持图像空间连续性的特性,能够有效地对图像的局部特征进行提取。池化层有最大池化 与平均池化等多种方式,池化层能够使中间隐含层的维度降低,进而达到减少接下来各层 的运算量的目的。池化层还提供了旋转不变性。卷积与池化操作如图5-6所示。 图5-6 卷积与池化操作 第5章深度学习模型与算法·35· 图5-6中展示的卷积和池化操作分别是采用3×3 的卷积核和2×2 的池化核的情 况。最早的卷积神经网络模型是1998 年杨立昆等提出的LeNet-5图像分类模型,其结构 如图5-7所示。输入的MNIST 图片大小为32×32 。其处理过程如下:①通过卷积核大 小为5×5 的卷积操作,得到28×28 的特征图;②通过池化操作,得到14×14 的特征图; ③再次通过卷积操作得到10×10 的特征图;④再次通过池化操作得到5×5 的特征图; ⑤依次使用包含120 、84 、10 个神经元的全连接层对特征图进一步处理;⑥经过Softmax 函数的作用得到数字0~9的概率,将概率最大的数字作为神经网络的预测结果。随着卷 积和池化操作的进行,网络层越高,特征图尺寸越小,但图片维度越多。 图5-7LeNet-5结构 卷积神经网络对视觉数据提供了分层表示,卷积神经网络每层的权重实际上学到了 图像的某些成分,卷积神经网络模型层越高,其提取的成分越具体。卷积神经网络将原始 信号经过逐层处理,依次识别出部分和整体。在通过可视化手段对卷积神经网络进行可 视化的过程中可以发现:卷积神经网络在第二层能提取拐角、边以及颜色等特征,在第三 层能提取纹理、文字等更复杂的特征,在第四层能提取类似于狗的脸、鸟的腿等具体部位 的特征,在第五层能提取类似于键盘、狗等具体物体的特征。以人脸识别为例,卷积神经 网络首先对点、边、颜色以及拐角等特征进行提取,再将这些特征组合成眼角、嘴唇、鼻子, 最后再完成整张脸的识别。卷积神经网络具有局部连接、权值共享以及池化操作等特性, 这使得模型参数大大减少,降低了网络复杂性,并且这些特性也使卷积神经网络容易在 FPGA 等硬件上实现并获得加速。同时,卷积神经网络的这些特性也为模型提供了平移、 扭曲、旋转以及缩放不变性。