§4.1 引言
从深层意义上看,模式识别与人工智能所研究的是如何用计算机实现人脑的一些功能。一方面,从要实现的功能出发,我们可以将功能分解成子功能,直至设计出算法来实现这些子功能。人脑无论多么复杂,都可以看作是由大量神经元组成的巨大的神经网络。从神经元的基本功能出发,逐步从简单到复杂组成各种神经网络。
人工神经网络的研究与计算机的研究几乎是同步发展的。1943年,心理学家McCulloch和数学家Pitts合作提出了形式神经元的数学模型,称为人工神经网络研究的开端。1949年,心理学家D.O.Hebb提出了神经元之间突触联系强度可变的假设,并据此提出神经元的学习准则,为神经网络的学习算法奠定了基础。现在串行计算机的奠基人Von Neumann在20世纪50年代就已注意到计算机与人脑结构的差异,对类似于神经网络的分布系统做了许多研究。50年代末,Rosenblatt提出了感知器模型,首次把神经网络的研究付诸工程实践,引起了许多科学家的兴趣。1969年,人工智能创始人之一的Minsky和Papert以《感知器》为名出版了一本书,从数学上深入分析了感知器的原理,指出其局限性。加之当时串行计算机正处于全盛发展时期,早期的人工智能研究也取得了很大发展,从而掩盖了发展新的计算模型的迫切性,使有关神经网络的研究热潮低落下来。在此期间仍有不少科学家坚持这一领域的研究,对此后的神经网络研究提供了很好的理论基础。
1982年,Hopfield提出了神经网络的一种数学模型,引入了能量函数的概念,研究了网络的动力学性质;紧接着又设计出用电子线路实现这一网络的方案,同时开拓了神经网络用于联想记忆和优化计算的新途径,大大促进了神经网络的研究。1986年,Rumelhart及LeCun等学者提出了多层感知器的反向传播算法,克服了当初阻碍感知器模型继续发展的重要障碍。另一方面,20世纪80年代以来,传统的基于符号处理的人工智能在解决工程问题时遇到了许多困难。现代的串行计算机尽管有很好的性能,但在解决像模式识别、学习等对人来说轻而易举的问题上显得非常困难。这就促使人们怀疑当前的Von Neumann机是否能解决智能问题,也促使人们探索更接近人脑的计算模型,于是又形成了对神经网络研究的热潮。现在神经网络的应用已渗透到多个领域,如智能控制、模式识别、信号处理、计算机视觉、优化计算、知识处理、生物医学工程等。本章着重介绍神经网络中一些与模式识别关系密切的基本内容。
§4.2人工神经元
人工神经元的模型的种类繁多,限于本章内容的需要,只介绍工程上常用的最简单的模型,如图4.1(a)所示。
图4.1 人工神经元模型与两种常见的输出函数
图中的n个输入,相当于其他神经元的输出值,n个权值,相当于突触的连接强度,f是一个非线性函数,例如阈值函数或Sigmoid函数,是阈值。神经元的动作如下:
这样的表达式可以将阈值合并到权向量中处理。
选取不同的输出函数f,y的取值范围也不同,若
某些重要的学习算法要求输出函数可微,此时通常选用Sigmoid函数:
选择Sigmoid函数作为输出函数是由于它具有以下有益的特征:①非线性,单调性;②无限次可微;③当权值很大时可近似阈值函数;④当权值很小时可近似线性函数。
§4.3神经元学习算法
几乎所有神经网络学习算法都可以看作Hebb学习规则的变形。Hebb学习规则的基本思想是:
具体到前述的神经元模型,可以将Hebb规则表现为如下的算法:
4.3.1 前馈神经网络
构成前馈神经网络的各神经元接受前一级输入,并输出到下一级,无反馈,可用一有向无环图表示。图的节点分为两类,即输入节点与计算单元。每个计算单元可有任意个输入,但只有一个输出,而输出可耦合到任意多个其他节点的输入。前馈网络通常分为不同的层,第i层的输入只与第1−i层的输出相联,这里认为输入节点为第一层,因此所谓具有单层计算单元的网络实际上是一个两层网络。输入和输出节点由于可与外界相连,直接受环境影响,称为可见层,而其他的中间层则称为隐含层,如图4.2所示。
图4.2 前馈神经网络结构示意图
4.3.2 感知器
感知器(Perceptron)是一种双层神经网络模型,一层为输入层,另一层具有计算单元,可以通过监督学习建立模式判别的能力,如图4.3所示。
图4.3 感知器模型示意图
学习的目的是通过改变权值使神经网络由给定的输入得到给定的输出。作为分类器,可以用已知类型的模式向量或特征向量作为训练集,当输入为属于第j类的特征向量X时,应使对应于该类的输出yj=1,而其他神经元的输出则为0(或-1)。设理想的输出为:
感知器的学习过程与求取线性判别函数的过程是等价的,此处只指出感知器的一些特征:①两层感知器只能用于解决线性可分问题;②学习过程收敛很快,且与初始值无关。
4.3.3 三层前馈网络
利用人工神经网络的非线性特征,可以实现各种逻辑门。例如,NAND(与非门)可用图4.4所示的阈值神经元实现。
图4.4 用感知器模型实现与非逻辑
由于任何逻辑函数都可以由与非门组成,所以可以得出以下结论:①任何逻辑函数都可以用前馈网络实现;②单个阈值神经元可以实现任意多输入的与、或及与非、或非门;③由于任何逻辑函数都可以化为析取形式,所以任何逻辑函数都可以用一个三层(只有两层计算单元)的前馈网络实现。
当神经元的输出函数为Sigmoid函数时,上述结论可以推广到连续的非线性函数,在很宽松的条件下,三层前馈网络可以逼近任意的多元非线性函数,突破了二层前馈网络线性可分的限制。这种三层或三层以上的前馈网络通常又叫多层感知器(MLP, Multi-Layer Perceptron)。
4.3.4反向传播算法(BP法)
三层前馈网络的使用范围大大超过二层前馈网络,但学习算法较为复杂,主要困难是中间的隐层不直接与外界连接,无法直接计算其误差。为解决这一问题,提出了反向传播(BP,Back-Propogation)算法。其主要思想是从后向前(反向)逐层传播输出层的误差,以间接算出隐层误差。算法分为两个阶段:第一阶段(正向过程)输入信息从输入层经隐层逐层计算各单元的输出值;第二阶段(反向传播过程)内输出误差逐层向前算出隐层各单元的误差,并用此误差修正前层权值。
在反向传播算法中通常采用梯度法修正权值,为此要求输出函数可微,通常采用Sigmoid函数作为输出函数。不失其普遍性,我们研究处于某一层的第j个计算单元,脚标i代表其前层第i个单元,脚标k代表后层第k个单元,Oj代表本层输出,ωij层到本层的权值,如图4.5所示。
图4.5反向传播算法中的各参量
当输入某个样本时,从前到后每层各单元作如下计算(正向算法)
为使式子简化,定义局部梯度
权值修正应使误差最快地减小,修正量为
如果节点j不是输出单元,由图4.5可看出,Oj对后层的全部节点都有影响。因此,
在实际计算中,为了加快收敛速度,往往在权值修正量中加上前一次的权值修正量,一般称惯性项,即
综上所述,反向传播算法步骤如下:
(1)选定权系数初始值。
(2)重复下列过程,直至收敛(对各样本依次计算)。
①从前向后计算各层各单元Oj
②对输出层计算
③从后向前计算各隐层
④计算并保存各权值修正量
⑤修改权值
以上算法是对每个样本作权值修正,也可以对各样本计算jδ后求和,按总误差修正权值。
反向传播算法解决了隐层权值修正问题,但它是用梯度法求非线性函数极值,因而有可能陷入局部极小点,不能保证收敛到全局极小点。
二层前馈网络的收敛性不受初始值的影响,各权值的初始值可以全设定为零;但三层以上的前馈网络(含有一个以上的隐层)使用反向传播算法时,如果权值初始值都为零或都相同,隐层各单元不能出现差异,运算不能正常进行。因此,通常用较小的随机数作为权值初始值。初始值对收敛有影响,当计算不收敛时,可以改变初始值试算。
反向传播算法中有两个参数η和α。步长η对收敛性影响很大,而且对于不同的问题其最佳值相差也很大,通常可在0.1-3之间试探,对于较复杂的问题应用较大的值。惯性项系数α影响收敛速度,在很多应用中可在0.9-1之间选择,α≥1f时不收敛;有些情况下也可不用惯性项(即α=0)。
三层前馈网络的输出层与输入层单元数是有问题本身决定的。例如,作为模式识别时输入单元是特征维数,输出是类数。但中间隐层的单元数如何确定则缺乏有效的方法。一般来说,问题越复杂,需要的隐层单元越多;或者说同样的问题,隐层单元越多越容易收敛。但是隐层单元过多会增加计算量。
4.3.5 径向基函数网络
除了上面讲的采用Sigmoid型神经元输出函数的前馈网络外,还有一种较常用的前馈型神经网络,叫做径向基函数(RBF,Radial Basis Function)网络,其基本结构如图4.6所示。这种网络的特点是:①只有一个隐层,隐层单元采用径向基函数作为其输出特征,输入层到隐层之间的权值固定为1;②输出节点为线性求和单元,隐层到输出节点之间的权值可以调整,因此输出为隐层的加权求和。
图4.6 径向基函数网络示意图
所谓径向基函数,就是某种沿径向对称的标量函数。通常定义为空间中任一点x到某一中心xc之间欧氏距离的单调函数,可记做,作用往往是局部的,即当x远离xc时函数取值很小。最常用的径向基函数是高斯核函数,形式为
其中xc为核函数中心,σ为函数的宽度参数,控制了函数的径向作用范围。在RBF网络中,这两个参数往往是可调的。
可以从两个方面理解RBF网络的作用:
(1)把网络看成对未知函数f(x,y)的逼近器。一般任何函数都可以表示成一组基函数的加权和,这相当于用隐层单元的输出函数构成一组基函数来逼近f(x,y)。
(2)在RBF网络中,从输入层到隐层输出是一种非线性映射,而输出则是线性的。这样,RBF网络可以看成是首先将原始的非线性可分的特征空间变换到另一空间,通过合理选择这一变换使在新空间中原问题线性可分,然后用一个线性单元来解决问题。
在典型的RBF网络中有3组可调参数:隐层基函数中心、方差以及输出单元的权值。这些参数的选择有3种常见的方法:
(1)根据经验选择函数中心。比如只要训练样本的分布能代表所给问题,可根据经验选定均匀分布的M个中心,其间距为d,可选高斯核函数的方差为 。
(2)用聚类方法选择基函数。可以各聚类中心作为核函数中心,而以各类样本的方差作为各个基函数的宽度参数。
(3)用(1)和(2)的方法选定了隐层基函数的参数后,因输出单元是线性单元,它的权值可以简单地用最小二乘法直接计算出来。
(4)将三组可调参数都通过训练样本用误差纠正算法求得。做法与BP类似,分别计算误差对各组参数的偏导数(梯度),然后用迭代求取参数。
§4.4用人工神经网络进行图像识别
在模式识别方面,以特征提取为基础的方法遇到了极大的困难,如何表示和提取特征,需要多少特征,都存在很大的盲目性和低效率。识别过程经历从数据获取、特征提取到判决几个阶段,所需要的运算使得系统难以满足实时性要求。人工神经网络图像识别的兴起称为解决这类问题的有力工具。
4.4.1神经网络本身的特点使之称为图像识别的有力工具
神经网络之所以能称为图像识别的有力工具,是因为它具有以下特点:
1、神经网络具有分布式存储信息的特点。神经网络是用大量神经元之间的联结及对各联结权值来表示特定的信息,因此即使局部网络受损时,仍具有恢复原来信息的优点。
2、神经网络对信息的处理过程具有并行的特点。每个神经元都可以根据接收到的信息作独立的运算和处理,然后将结果传输出去。
3、神经网络对信息的处理具有自组织、自学习的特点。神经网络中各神经元之间的联结强度用权值大小来表示,这种权值可以事先给定,也可以为适应周围环境而不断的变化,这种过程称为神经元的学习过程。
神经网络用于图像识别的优点是:神经网络的信息分布存储于联结权值中,使网络具有很高的容错性,而图像识别中往往存在噪声干扰或输入图像的部分损失,因此神经网络可以较好的解决图像识别问题。另外,神经网络的自组织和自学习的功能,大大放松了传统图像识别方法所需的约束条件,使其对图像识别问题显示出极大的优越性。
4.4.2神经网络图像识别系统构造
图4.7所示为利用神经网络进行图像的系统框架图。
图4.7 神经网络图像分类器
其中的神经网络分类器可以我们在前面介绍的某一种神经网络结构。
<<上一节 下一节>>