神经网络与深度学习:基于MATLAB的仿真与实现
上QQ阅读APP看书,第一时间看更新

第1章 神经网络概述

在人工智能领域,神经网络方法占有很重要的位置。神经网络的研究人员将这种方法的灵感归因于生物神经学的研究。一般认为这种方法是在1943年由心理学家W. McCulloch与数理逻辑学家W. Pitts提出的,他们在对人的神经元反射进行研究后,将其移植在分析和计算领域,提出了神经元的基本数学模型,这种模型被称为M-P(McCulloch-Pitts)模型。所谓的M-P模型,是借鉴简单生物神经元的结构和工作原理而抽象出来的一个计算模型。典型的生物神经元及其简化结构如图1-1所示。

图1-1 典型的生物神经元及其简化结构

生物神经元细胞由细胞体和突起两部分组成。细胞体由细胞核、细胞质以及细胞膜构成。细胞膜主要包覆在细胞周围,与细胞外部相隔离。由于人体中有电解质,因此细胞内外有一定的电位差;细胞质是含水大约80%的半透明物质。细胞核是整个细胞最重要的部分,是细胞的控制中心。

突起部分包括树突、轴突和突触。树突是神经元延伸到外部的纤维状结构。这些纤维状结构在离神经元细胞体近的根部比较粗壮,然后逐渐分叉、变细,像树枝一样散布开来,所以称为树突。树突的作用是接收来自其他神经元的刺激(输入信号),然后将刺激传送到细胞体中。轴突是神经元伸出的一条较长的突起,甚至可长达1m左右,其粗细均匀。轴突主要用来传送神经元的刺激,也称为神经纤维。突触是神经元之间相互连接的部位,同时传递神经元的刺激。髓鞘则是包在轴突外部的膜,用来保护轴突,同时也起一定的“屏蔽”作用。

神经元对于外界刺激的响应模式呈现出阈值型非线性特性。外部的刺激是以电信号的形式作用于神经元的,如果电位的值没有超过一定的阈值(-55mV)时,细胞就处在不兴奋的状态,称为静息状态。当外部的刺激使神经元的电位超过阈值,神经元就开始兴奋。神经元兴奋后又恢复到静息状态时,会有一定时间的不响应期,也就是在一段时间内,即使神经元受到了新的刺激也不会产生兴奋了。在度过不响应期之后,当新的刺激到来并突破阈值时,神经元才会再度响应。由此可以看出,神经元的响应是非线性的过程,而且与刺激的强度和频度是有关系的。

刺激在被神经元响应后经过轴突传送到其他神经元,再经过突触与其他神经元接触后进入其他神经元的树突,相当于电子线路中的输入/输出接口。整个过程与信息传递的过程非常类似。单个神经元与成百上千个神经元的轴突相互连接,可以接收到很多树突发来的信息,在接收到这些信息后神经元就对其进行融合和加工。这种融合和加工的方式是比较复杂的,但是有一点是肯定的,就是这种融合和加工的过程是非线性的。当很多个神经元按照这样的方式连接起来后,就可以处理一些外部对神经元的刺激(输入信号)了。

图1-2 单个神经元模型

受到以上生物神经元工作方式的启发,神经网络的研究人员给出了单个神经元的模型,如图1-2所示。单个人工神经元可以理解为一个多输入单输出的结构,每个输入都有不同的权值,用w1w2,…,wn表示,这就相当于真实神经元的树突;加权后的输入被统一集中起来进行信息的融合,在单个人工神经元里用简单求和来表示各种加权后输入信息的集中和融合;在进行信息融合后与一个阈值进行比较用来模仿真实神经元的阈值相应特性;而此后在进行信息处理时,通常由一个非线性函数来进行,这个非线性函数称为活化函数,代表了神经元被激活的意义。在有些文献中,活化函数也被称为激活函数、变换函数、转移函数等。在某些文献里将活化函数称为传递函数,这是不可取的!因为容易和其他相近学科的专有名词混淆,例如控制理论里所说的传递函数和活化函数的意义就有很大区别!M-P模型可以通过一个带参数的函数fxw)来实现对一些线性分类问题的处理。虽然其参数w(权重)一般由人设定,看上去没有那么“智能”,但这种模型确实开启了神经网络学习模式的新时代。

在20世纪50年代末,F. Rosenblatt将单个的神经元网络模型发展成为多层感知机。这时候这个模型就有了非常正式的名字“神经网络”!虽然学术界的“反对派”仍然有些不屑地称其为“感知机”,但这种模型的权值参数已经能够自行调整,而且在分布式存储、并行处理以及函数拟合方面显示出强大的生命力,引起了众多学者和工程人员的极大兴趣,神经网络的研究进入了一个高潮时期。到了1960年,斯坦福大学的Bernard Widrow教授开发了线性感知机,采用线性函数作为激活函数,并使用最小二乘法的思想对网络的输出进行评价,为此后的BP(Back Propagation,前馈型)神经网络的产生奠定了基础。

进入20世纪70年代后,有3种重要的神经网络相继诞生,分别是T. Kohonen提出的自组织特征映射(Self-Organizing Feature Map,简称SOFM或SOM)神经网络、Paul Werbos提出的BP神经网络以及S. Grossberg提出的自适应共振理论(Adaptive Resonance Theory,ART)。其中,BP神经网络的出现堪称划时代的产物。虽然在当时人们没有对其予以足够的重视,但在随后的几年BP神经网络有了很大的发展,不仅解决了在传统领域中的难题,而且在很多工程领域都大显身手,名噪一时。在BP神经网络的引领下,RBF(径向基)网络也随之诞生,在非线性拟合等诸多方面都有不俗的表现。

在BP神经网络的基础上,研究人员将反馈机制引入神经网络,这直接导致了Hopfield(反馈型)神经网络的产生。Hopfield神经网络成功解决了旅行商问题,极大地推进了神经网络的发展。神经网络由此进入了蓬勃发展的时期。技术的发展总是相互促进的,Hopfield神经网络引入了反馈机制对于系统的精度有好处,但是又不可避免地带来了反馈结构的通病——整个系统的稳定性问题。由控制理论的基本原理可知,如果不能很好地解决稳定问题,系统将会陷入不稳定的振荡状态。Hopfield神经网络是一种反馈型的神经网络,这种问题也必然存在。这个问题促进了将神经网络作为一个系统进行理论分析和探讨方法的发展。此外,对于收敛和稳定性问题的不断研究,神经网络领域的专家们不断从其他学科获得灵感,援引其他学科的思想对神经网络进行修正和改造,使神经网络不断提升自身的性能。例如模拟退火算法和玻耳兹曼机(Boltzmann Machine,BM)的出现,将随机性的因素引入神经网络,不但解决了当时在神经网络中所存在的问题,而且孕育了深度学习神经网络的基本思想,为深度学习神经网络的产生奠定了良好的基础。

整个20世纪80年代是神经网络大发展的年代。在这个时期,各种结构形式的神经网络不断涌现,推动了多个学科的发展,可以说引领着各工程领域向智能化的方向不断迈进。在几种基本的神经网络“硬核”基础上,专家们同时又借鉴了其他学科的优势,发展出了很多复合型的神经网络,例如模糊神经网络等。

当时的神经网络是建立在样本数据的基础上的,因此神经网络运行良好与否和样本的情况密切相关,数据集样本的数量和质量直接影响到神经网络的运算质量。特别是当时的神经网络对于很多问题的泛化控制并不尽如人意,这使得很多学者对于神经网络自身的发展提出了质疑,在这些质疑声中,以统计学习理论学派最为引人注目。他们从多个侧面对神经网络的运算机制进行评论,这些评论甚至上升到了哲学方法论的层面。统计学习理论学派在其重要的文献中就指出:“在解决一个给定问题时,要设法避免把解决一个更为一般的问题作为其中间步骤”。同时还对神经网络方法做出评价:“……同理,与SVM(支持向量机,由统计学习理论直接发展而来)相比,NN(神经网络)不像一门科学,更像一门工程技巧……”,甚至对神经网络的科学性提出了质疑(《统计学习理论的本质·不可证伪性理论》)。这些可以看作是统计学习理论与神经网络为代表的智能计算方法的争鸣。在此过程中,统计学习理论有了较大发展,由统计学习理论直接发展而来的支持向量机及其衍生方法在很长一段时间里占据了智能计算领域的主要阵地。

神经网络计算学派对受到的挑战进行了反思,进入21世纪以后,神经网络计算学派调整了研究风格:不再将神经科学作为研究工作的指导思想。因为毕竟人类对于自身神经生理以及心理方面的情况也不甚了解。在吸收了统计学习理论学派卓有成效的研究成果基础上,神经网络计算学派也将自己的研究与传统严谨的数学学科相结合。在2006年,深度信念网络(Deep Belief Network,DBN)的推出标志着神经网络的又一次复兴。

在传统的神经网络中,为了能够提高网络的工作效率和精度不得不增加网络的层数,但是网络层数的增加会给寻优工作带来困难,即使用传统的梯度下降方法也很难找到最优解。此外,随着神经网络层数的增加,各种参数也会变得越来越多,在对网络进行训练时就需要大量的标签数据。这样的网络结构和算法基本不具备解决小样本问题的能力,而且其泛化性也比较差。这种多层结构的神经网络被形象地称为深度神经网络,很多学者也由此认为深度神经网络不能进行实际的应用,因为要训练这样的网络简直无从下手。Geoffrey Hinton提出的深度信念网络将统计分析与神经网络相结合,很好地解决了这个问题,为深度学习开辟了新的道路。对于多层结构的神经网络,深度信念网络采用了逐层训练的方式,称为“贪婪逐层预训练”。这种训练方式通过无监督方式对网络进行逐层训练,在训练第n层时前面的层不变,首先训练过的网络层不会在新层引入后重新训练,这样就可以为网络赋予较好的初始权值。随后网络进入了监督学习阶段,在此阶段需要对预训练的网络进行精调(微调)最终达到最优解。这种方法的一个直接结果就是产生了受限玻耳兹曼机。

有许多人在讨论深度学习神经网络与传统神经网络到底有什么区别。其实区别主要有两个方面:一是在网络结构上,深度学习神经网络的结构比传统神经网络的结构复杂;二是在深度学习中,深度学习神经网络对于统计学习的方法予以了高度的重视。凭借着这两点,深度学习神经网络将智能计算提升到了一个新的高度,也将神经网络计算引向“深度”,并将其推上了又一个高峰。回顾神经网络的发展历程,可以简单地用表1-1描述。

表1-1 神经网络发展历程简表

当前,神经网络学派“比其他机器学习领域(如核方法或贝叶斯统计)的研究人员更可能地引用大脑影响,但是大家不应该认为深度学习在尝试模拟大脑”。事实上,神经网络方法与其他机器学习方法的有效融合可能标志着各种高效算法正在相互交融,从哲学方法论角度来讲,有效融合应该会比单纯使用一种推理方法有更加强大的生命力,在实际的推理过程中会有更好的表现。在传统的神经网络算法基础上将神经网络计算不断引向“深度”,构成深度学习神经网络可能是今后神经网络和机器学习的发展方向。因此本书加入了深度学习神经网络的内容,使读者能够在一定程度上对神经网络的发展有较为全面的了解,方便以后进行系统的学习。