人工神经网络模型及仿真
机器学习论文
题 目: 人工神经网络模型及仿真
学 院: 电子工程学院
专 业: 电路与系统
姓 名:
学 号:
摘要
人工神经网络(artificial neural network,ANN)通常被认为是基于生物学产生的很复杂的分析技术,能够拟合极其复杂的非线性函数。它是一项发展十分迅速、应用领域十分广泛的技术,已在人工智能、自动控制、模式识别等许多应用领域中取得广泛成功。ANN是一种重要的机器学习工具。
本文首先简要讲述了一些相关的生物神经网络知识,在此基础上,引出了人工神经网络。然后概述了ANN的发展历史及现状并总结了ANN的特点。在第二部分,对ANN发展过程中具有标志性的几种ANN的模型及其结构进行了讲解,如:感知器、线性神经网络、BP网络、反馈网络等,并给出了相应的简单应用事例,而且使用功能强大的仿真软件——MATLAB对它们的性能进行了仿真分析。在论文最后,给出了本文的总结以及作者的一些体会。
ABSTRACT
Artificial neural network(ANN) is commonly known as biologically inspired, highly sophisticated analytical technique, capable of capturing highly complex non-linear functions. ANN is a kind of widely applied technique developed highly,and it has been applied sucessfully in the domains, such as artificial intelligence, autocontrol, pattern recognition and so on. In addition, ANN is a significant means of machine learning.
In this paper,the author firstly show some basic biological neural networks, on which the introduction of artificial neural network is based. Then, the author dispicts simplily the history of ANN and the present condition of ANN, and concludes the characters of ANN. In the second part of the paper, the models and structures of ANNs which representive the ANN’s development are emphasized, such as perceptron,linear neural network,BP neural network,recurrent network and so on, and some examples based on those networks are illustrated. In addition, the author simulate the performance of the ANNs by a powerful software, MATLAB. At last, the author puts forward the conclutions of this paper and his thoughts.
目录
第一章 神经网络……………………………………………………………………1
1.1 生物学神经网络………………………………………………………….......1
1.2 人工神经网络……………………………………………………………...…2
1.2.1 人工神经网络的产生…………………………………………………....2
1.2.2 人工神经网络的发展………………………………………………..…..3
1.2.3 人工神经网络的现状…………………………………………………....5
1.3 人工神经网络的特点……………………………………………………...…5
第二章 人工神经网络模型及仿真……………………………………………..……6
2.1 人工神经元建模……………………………………………………….……..6
2.1.1 人工神经元的基本构成…………………………………………..……..6
2.1.2 激活函数…………………………………………………………..……..7
2.2 感知器………………………………………………………………….……..8
2.2.1 感知器模型………………………………………………………………8
2.2.2 感知器网络设计实例……………………………………………………9
2.3 线性神经网络………………………………………………………….……10
2.3.1线性神经网络模型………………………………………………...……10
2.3.2线性神经网络设计实例………………………………………...………10
2.4 BP网络………………………………………………………………………11
2.4.1 BP网络模型………………………………………………….…………11
2.4.2 BP网络设计实例…………………………………………….…………12
2.5 径向基函数网络………………………………………………….…………15
2.5.1径向基函数网络模型………………………………………...…………15
2.5.2径向基函数网络设计实例………………………………...……………16
2.6 竞争型网络………………………………………………….………………18
2.6.1竞争型网络模型………………………………………...………………18
2.6.2竞争型网络设计实例…………………………………...………………18
2.7 反馈型网络………………………………………………………………...…20
2.7.1 Elman网络………………………………………………………………20
2.7.2 Hopfield网络…………………………………………………………....23
第三章 本文总结…………………………………………………………...……….26 参考文献………………………………………………………………………..……28
第一章 神经网络
人工神经网络(artificial neural network,ANN)是通过对生物神经网络进行抽象,并综合运用信息处理技术、数学手段等建立简化模型而发展起来的一门交叉学科。
1.1 生物学神经网络
生物学神经网络的基本单位是神经元(也叫神经细胞),它是处理人体内各部分之间信息传递的基本单元。据神经生物学家研究的结果表明,人的大脑一般有1011~1011个神经元。如图1.1[1]所示,每个神经元都由一个细胞体和细胞突起构成。
细胞体由细胞核、细胞质与细胞膜等组成,它是神经元的新陈代谢中心,同时还用于接收并处理对其它神经元传递过来的信息。细胞突起是由细胞体延伸出来的细长部分,又可分为树突和轴突。每个神经元可以有一或多个树突,它们的功能是接受来自其它神经元的兴奋。每个神经元只有一个轴突,它的功能是将本神经元的输出信号(或称为兴奋)传递给别的神经元,其末端的许多神经末梢使得兴奋可以同时传送给多个神经元。神经元细胞体将接受到的所有信号进行简单地处理(如:加权求和,即根据各个信号的重要性综合考虑)后由轴突输出。神经元的树突与另外的神经元的神经末梢相连的部分称为突触。化学突触或电突触均由突触前、后膜以及两膜间的窄缝──突触间隙所构成。
图1.1 生物神经元
神经元有抑制和兴奋两种状态,每一个神经元都是在与之相连的兴奋性突触和抑制性突触的综合作用下活动的。它的兴奋和抑制状态又影响其它神经元。当大量的兴奋性突触进行活动时,神经元的膜电位升高,当超过一定的阈值后,
神经元就被激励,细胞体产生信息输出,此状态相当于计算机中的"1",当大量的抑制性突触影响超过兴奋性突触影响时,神经元膜电位降低,使神经元受到抑制而不发生冲动,从而无信息输出,此状态相当于计算机中的"0"。
由于脑神经系统按大量神经元连成网络(生物神经网络)的形式,所产生的连接主义机制呈现出下面几方面的特征:处理信息的高度并行性;信息处理和信息存储合二为一;能接受和处理模拟的、模糊的和随机的信息;求满意解而不是求精确解;具有自组织自学习能力
我们平时的一切活动都会用到这个网络,它通过人体所固有的一些生物传感器,如眼睛、耳朵等,来感知外界信号,这些信号经该网络一系列的复杂处理就得到了一些指令,指挥我们的一切思维活动和实际的肢体活动。生物神经网络可以看做是一个包含很多单元(神经元)的复杂处理和指挥系统。
1.2 人工神经网络
人工神经网络(ANN)是以计算机网络系统模拟生物神经网络的智能计算系统。网络上的每个节点相当于一个神经元,都可以存储和处理一定的信息,并与其它结点并行工作。
利用ANN处理问题就是先向ANN的某些神经元(输入层节点)输入信息,各节点处理(如:加权求和)后向其它节点输出,其它节点接受并处理后再输出,直到整个神经网工作完毕,输出最后结果。另外,每次并非所有神经元都一样地工作,与生物的神经网络类似,当有声音时,处理声音的听觉神经元就要积极工作,视觉、触觉等神经元基本不工作,主管思维的神经元部分参与工作。在人工神经网络中以加权值控制节点参与工作的程度。正权值相当于神经元突触受到刺激而兴奋,负权值相当于受到抑制而使神经元麻痹直到完全不工作。
1.2.1 人工神经网络的产生
人们对人工神经网络的研究最早可追溯到20世纪40年代人类开始研究自己的智能的时期。
1943年,心理学家W.McCulloch和数学家W.Pitts从数理逻辑的角度,提出了人工神经网络最早的数学模型,即著名的阈值加权和模型,简称为M-P模型。这标志着ANN的研究的开始。
多个MP神经元可以组成MP神经网络,可以完成一些简单的逻辑功能。
1.2.2 人工神经网络的发展
虽然MP模型功能简单,但是对后来的许多神经元模型有很大的启发作用。在此之后,ANN的发展经历了两次高潮期和一次低谷期。
1949年,心理学家D.O.Hebb从条件反射的研究中提出神经元之间突触的联系是可变的假说——Hebb学习规则,该规则至今仍对ANN理论有着重要影响。
之后的20年是ANN发展的一个关键时期。随着Frank Rosenblatt 在1958年模拟人脑感知和学习能力的感知器概念的提出,人们对ANN的研究产生了极大的兴趣。感知器由简单的阈值性神经元构成,初步具有了如学习、并行处理、分布存储等一些基本特征,确定了ANN研究的基础。1960年,B.Widrow 和M.Hoff 提出了自适应线性元件(ADAptive LINear Neuron,ADALINE)网络模型,这是第一个真正意义上的神经网络,采用了比感知器复杂的LMS学习方法,对分段线性网络的训练有一定作用,是自适应控制的理论基础。从此ANN的发展进入了第一次高潮。
当人们乐观地认为几乎已经找到了智能的关键,并且许多部门都开始大批地投入此项研究,希望尽快占领制高点时,人工智能的创始人之一M.Minsky和S.Papert 从数学上对以感知器为代表的网络系统的功能及局限性做了深入研究,于 1969 年出版了轰动一时《Perceptron》一书,指出简单的线性感知器的功能是有限的,它无法解决线性不可分的两类样本的分类问题,如简单的线性感知器不可能实现 “异或” 的逻辑关系,以及多次感知器还不能找到有效的计算方法等。另外人们在以逻辑推理为基础的人工智能和数字计算机方面取得了辉煌的成就,而且由于M.Minsky和S.Papert在学术界的地位和影响,这一论断给当时人工神经元网络的研究带来沉重打击,大大降低了人们研究ANN的热情,以致美国及前苏联的一些科研机构纷纷停止对此类项目提供资助,而使得这个领域的许多学者不得不转向其他课题的研究,由此出现了神经网络发展史上长达10年的低潮期。
尽管人们的积极性受到很大的打击,但是还有一些学者坚持ANN的研究,也取得了不小的成就。1974年,P.Werbos提出了第一个适合于多层网络的学习算法。1976年,S.Grossberg和G.A. Carpenter提出了著名的自适应共振理论 (Adaptive Resonance Theory,简称ART) ,其学习过程具有自组织和自稳定的特
征。其后的若干年中发展了ART1 、ART2和ART3 这3中ANN模型,这为ANN的发展奠定了理论基础。在20世纪80年代,对ANN的研究由复兴转入新的热潮,因为以逻辑推理为基础的人工智能理论和数字计算机在诸如听觉、视觉、形象思维、联想记忆等方面受到很大挫折,而且ANN有并行分布处理的优势。
具有标志性的ANN成就是在1982年,J. Hopfield提出循环网络,建立ANN稳定性的判别依据;阐明了ANN与动力学的关系;用非线性动力学的方法来研究ANN的特性;指出信息被存放在网络中神经元的联接上;开拓了ANN用于联想记忆和优化计算的新途径。
1983年,K.Fukushima等提出神经认知机网络理论;1985年,G.E.Hinton 、T.J.Sejnowski和D.H.Ackley提出了大规模并行网络学习机(也称为Boltzmann 机)和隐单元的概念,并把模拟退火概念移植到Boltzmann 机模型的学习中,使网络能够收敛到全局最小值;1986年,由D.Rumelhart 和J.McCkekkand等建立了并行分布处理(Parallel Distributed Processing,简称PDP)理论,主要致力于认知的微观研究,同时对具有非线性连续转移函数的多层前馈网络的误差反向传播(Error Back Propagation,简称BP)算法进行了详尽的分析,解决了长期以来没有权值调整有效算法的难题。可以求解感知机所不能解决的问题,回答了《Perceptron》中关于神经网络局限性的问题,从实践上证实了人工神经网络有很强的运算能力;1988 年,Chua 和Y ang提出了细胞神经网络(Cellular Neural Network,简称CNN)模型,它是一个细胞自动机特性的大规模非线性计算机仿真系统。
20世纪90年代中后期,神经网络研究步入了一个新的发展时期,一方面已有理论在不断深化和得到进一步推广,另一方面,新的理论和方法也从未停止过其不断开拓的步伐。Edelman提出的Darwinism模型在20世纪90年代初产生了很大的影响;1991年,Haken把协同学引入神经网络;另一些新的发展方向也非常的引人关注。以光学方法来实现神经网络,即光学神经网络,由于能充分发挥光学强大的互连能力和并行处理能力,因而受到重视。Wunsch在1990 年OSA年会上提出一种光电 ART,它的主要计算强度由光学硬件完成。1995年,Jenkins 等人研究了光学神经网络(PNN) ,建立了光学二维并行互连与电子学混合的光学神经网络系统等。
随着ANN的发展,相应的一些学术组织和学术杂志也应运而生,如:
1987年成立的国际神经网络学会及Neural Networks期刊等。我国于1990年12月在北京举行了国内首届神经网络大会。
1.2.3 人工神经网络的现状
尽管ANN已经取得了很大的进步,但是仍旧还有一些不尽人意的地方,表现在以下几个方面:存在应用面还不够宽、结果不够精确;现有ANN模型算法的训练速度不高;算法的集成度不高;希望在理论上寻找新的突破,建立新的专用或通用模型和算法;需要进一步对生物神经系统进行研究,不断地丰富对人脑的认识。
目前ANN的发展还存在着一些问题,概括起来有:
(1)应用研究多,理论、实现研究少;
(2)模型原理、学习算法突破性进展少;
(3)应用多属于验证性应用,独特型少;
(4)重视神经网络视的并行互联结构以及自适应处理能力,忽视神经网络作为智能体系结构方案的发展方向。
1.3 人工神经网络的特点
ANN与真正的生物神经网络是有差别的,不但汲取了生物神经网络的一些优点,而且还有自己的一些特性。ANN的特点主要表现在以下几个方面:
(1) 分布式存储信息,提高网络的容错性和鲁棒性;
(2) 并行协同处理信息,有很强的实时性;
(3) 信息处理与存储合二为一;
(4) 对信息的处理具有自组织、自学习的特点,便于联想、综合和推广;
(5) 在结构上与数字计算机有本质的不同;
第二章 人工神经网络模型及仿真
从对人工神经网络研究开始,到目前的短短几十年中,虽然ANN的发展经历了几次跌伏,但人们对ANN的研究始终没有中断过,而且取得了很大的成就。ANN不论从结构还是功能上,都有了质的飞跃。在此过程中,比较经典的ANN有感知器、线性神经网络、BP网络、径向基函数网络、竞争型网络、自组织网络、反馈型网络、学习矢量量化网络和关联学习算法等。本章主要概述了常用的激活函数,以及分析比较了6种基本的ANN模型的应用领域、优缺点,并用事例进行了仿真说明。这6种网络分别是感知器、线性神经网络、BP网络、径向基函数网络、竞争型网络和反馈型网络。
2.1 人工神经元建模
人工神经元是ANN的基本单元,相当于一个多输入单输出的非线性阈值器件。人工神经元模型如图2.1。
图2.1 人工神经元模型
在上图中,X1,X2,„,Xr是神经元的输入,即是来自前级r个神经元的轴突的信息;„,„,Ti是i神经元的阀值;w1,w2,wr分别是i神经元对X1,X2,
Xr
的权系数,也即突触的传递效率;Yi是i神经元的输出;f()是激活函数(也
叫传递函数),它决定i神经元受到输人X1,X2,„,Xr的共同刺激达到阀值时以何种方式输出。上述的神经元模型,其数学模型表达式:
Uif()Ui出。常用的激活函数有阀值函数、线性函数、S型函数、双曲函数、竞争函数等。
2.1.2 激活函数
激活函数,也称为传递函数,与信号处理中的传递函数类似,用于输入到输出按照一定规则进行转换,从而确定对应的输出。下面介绍常用的十种常用激活函数,分别给出了各自的输入输出关系、图形以及相应的MATLAB仿真命令[2]。
表2.1 常用的激活函数
2.2 感知器
1958年,Frank Rosenblatt模拟人脑感知和学习能力提出了感知器的概念。感知器由简单的阈值性神经元(激活函数为硬极限函数)构成,初步具有了如学习、并行处理、分布存储等一些基本特征,确定了ANN研究的基础。 2.2.1 感知器模型
感知器是基本的神经元模型,图2.2给出了一个感知器神经元模型,其中X1,X2,···,Xn为输入,w1,w2,···,wn为对应权值,b为阈值,SUM为求和运算,hardlim表示传递函数为硬极限函数,Y为神经元输出。通过该模型可
以组合成多种单层或多层感知器神经网络。
图2.2 感知器神经元模型
2.2.2 感知器网络设计实例
本节给出两个简单的单层感知器分类的事例以及仿真结果,分别用来说明单层感知器网络只对线性可分问题有效,而对线性不可分问题无能为力。 (1)使用单层感知器把4个输入矢量分为两类,输入矢量为(-0.5,-0.5)、
(-0.5,0.5)、(0.1,-0.5)、(-0.2,0.8),对应输出分别为1、1、0、0 ,并验证分类结果。仿真分类结果如图2.3。
图2.3 分类结果
图中“+”表示1,“o”表示0 。从仿真结果可以看出单层感知器对线性可分问题有效。通过simup函数进行验证,结果为
,与实际相符。
(2)使用单层感知器把4个输入矢量分为两类,输入矢量为(-0.5,-0.5)、(-0.5,0.5)、(0.1,-0.5)、(-0.2,0.8),对应输出分别为1、0、0、1 ,并验证分类结果。仿真分类结果如图2.4。
图2.4 分类结果
图中“+”表示1,“o”表示0 。从仿真结果可以看出单层感知器对线性不可分问题无效。通过simup函数进行验证,结果为
,与实际不符。
感知器的局限性主要在于:传递函数一般使用阈值函数;单层感知器只能解决线性可分问题,对线性不可分问题无效;感知器学习算法(规则)只适用于单层情况。
2.3 线性神经网络
1960年,B.Widrow 和M.Hoff 提出了自适应线性元件(ADAptive LINear Neuron,ADALINE)网络模型,这是第一个真正意义上的神经网络,是线性网络的最早代表,采用了比感知器复杂的LMS学习方法,对分段线性网络的训练有一定作用,是自适应控制的理论基础。它的传输函数与感知器不同,使用线性函数。单层线性神经网络也只能解决线性可分问题,但是其学习算法(LMS算法)比感知器的规则要强大的多,因此使用范围更广泛。 2.3.1线性神经网络模型
线性神经网络的基本单元式线性神经元模型,图2.5给出了一个线性神经元模型,其中X1,X2,···,Xn为输入,w1,w2,···,wn为对应权值,b为阈值,SUM为求和运算,line表示传递函数为线性函数,Y为神经元输出。通过该模型可以组合成多种单层或多层线性神经网络。
图2.5
LMS算法比学习算法更有效,主要由于LMS使用均方误差最小,可以使各个类远离判别边界,因而有较好的抗噪能力。LMS算法如今依旧还有很广泛的应用,尤其在随机信号处理中的滤波方面,有经典的LMS滤波算法。 2.3.2线性神经网络设计实例
下面通过两个简单事例,来说明线性神经网络比感知器的优势。依旧使用一个单神经元的网络,使用基本的纯线性激活函数。
(1)设计一个线性层,输入为P、目标输出为T,P=[1 8],T=[5 0.1],并对网络进行验证。 仿真得到的权值为:
,阈值为:
使用simulin函数进行验证,验证结果为
(2)设计一个线性层,输入为P、目标输出为T,P=[1 4 8],T=[5 3 0.1],并对网络进行验证。 仿真得到的权值为:
,阈值为:
使用simulin函数进行验证,验证结果为
从上面的事例可以看出线性神经网络不再像感知器那样输出只有0、1或-1,而是可以连续变化的,这完全是由于二者的激活函数不同导致的,另一方面,第二个事例的结果又误差,这是合理的,因为线性神经网络的学习算法是LMS算法,以整体均方误差和最小为原则。
2.4 BP网络
前面介绍了感知器网络和线性神经网络,虽然他们都有各自的学习算法,但是对于多层网络情况,二者没有较好的学习算法。另外,单层神经网络只能够解决线性可分模式问题,对线性不可分情况无能为力,也正是由于ANN这样窘迫的境地,使ANN的研究进入了第一次低潮期。但是仍旧有一些学者坚持不懈地研究,P.Werbos于1974年提出了第一个适合多层网络训练的算法,虽然当时没有收到重视,但是它为BP算法的产生奠定了坚实的基础。
迄今,BP网络已经成为应用最广泛的ANN,一个主要原因是它既可以解决线性可分问题,也可以很好地解决非线性问题。 2.4.1 BP网络模型
最初的BP网络是由信号前传和误差反传两部分组成 ,采用最速下降法 ,
即误差单调减小 ,只具有下坡而没有上坡能力。随着人们对其研究的加深,人们发现BP算法存在一些不足,也提出了一些改进算法,如动量BP算法、学习率可变的BP算法、牛顿算法等,这些改进使BP网络的应用更加广泛。
BP神经元模型与前面讲的感知器及线性神经元的类似,仅仅是激活函数不同,在此,BP神经元使用的是非线性传递函数,如:双曲正切S型函数、双曲对数S型函数等。BP神经元模型如图2.6所示。其中X1,X2,···,Xn为输入,w1,w2,···,wn为对应权值,b为阈值,SUM为求和运算,nonline表示传递函数为非线性函数,Y为神经元输出。通过该模型可以组合成多种单层或多层BP神经网络。
图2.6 BP神经元模型
BP网络的学习过程有两个阶段[3]:
第一阶段:输入已知学习样本,通过设置的网络结构和前一次迭代的权值和阈值,从网络的第一层向后计算各神经元的输出。
第二阶段:对权值和阈值进行修改,从最后一层向前一层计算各权值和阈值对总误差的影响(梯度),据此对各权值和阈值进行修改。
以上两个过程反复交替,直到达到收敛为止。由于误差逐层往回传递,以修正层与层之间的权值和阈值,所以称该算法为误差反向传播算法,这种误差反向传播算法可以推广到若干个中间层的多层网络。 2.4.2 BP网络设计实例
ANN发展的一大成就就是:理论上已近证明,在不限制隐含层节点个数的情况下,只有一个隐含层的BP网络可以实现任意非线性映射。常常使用的BP网络一般都是只含有一个隐含层的ANN。隐含层节点数的选取尚没有明确的理论,仅仅有一些经验公式,节点数过多会导致学习时间太长、误差不一定小及容错性差。下面给出了几种确定隐含层节点数的经验方法[4]:
n
(1)
i0
Cn1>k,其中k为样本数,n1为隐含层节点数,n为输入节点数,若i>n1,
i
Cn1=0 。
i
(2
)n1a,其中m为输出节点数,n为输入节点数,n1为隐含层节点数,
a为[1,10]之间的常数。
(3)n1log2n,其中n为输入节点数,n1为隐含层节点数。
(4)放入足够多的隐含层节点,通过学习剔除那些不起作用的,直到不可收缩为止。
(5)放入较少的隐含层节点,然后根据学习情况,慢慢增加节点数,直到达到比较合理的节点数为止。下面给出一个利用BP网络逼近一个函数的事例。
问题:利用BP网络对从一个函数抽取的一组离散点进行逼近,并分析MATLAB自带的几种训练方法。数据点为x=-1:.1:1;y=-0.9602 -0.577 -0.0729 0.3771 0.6405 0.66 0.4609 0.1336 -0.2013 -0.4344 -0.5 -0.393 -0.1647 0.0988 0.3072 0.396 0.3449 0.1816 -0.0312 -0.2189 -0.3201。 (1)确定网络结构。
该例中使用一个单隐层BP网络进行逼近,输入和输出层节点数均为1,根据经验公式可知较合适的隐含层节点数在2与11之间,隐含层传递函数为tansig,输出层传递函数为logsig。下面通过各种的误差大小来确定那个节点数较合适。
表2.2不同隐含层节点数误差仿真结果
从仿真结果可以看出,隐含层节点数为8时,网络误差较小,此处就选择隐含层节点数为8 。
(2)比较MATLAB自带的训练函数性能
MATLAB中BP网络训练函数有traingdx、trainlm、traingd等,traingdx使用梯度下降动量法作为学习算法,trainlm使用Levenberg-Marquadt反传算法,
traingd使用普通的梯度下降算法。下面分别用它们对已确定的网络进行训练。
(a)traingdx训练结果 (b)trainlm训练结果
(c) traingd训练结果
图2.7 三种训练方法仿真结果
可以看出Levenberg-Marquadt反传算法效果最好,度下降动量法次之,普通的梯度下降算法最差。根据仿真结果,选择使用trainlm方法。 (3)函数拟合结果
图2.8 拟合结果
图2.9 拟合误差
在进行模型仿真时,发现并不是每次的结果都一样,而多数情况是不同的,有时结果很糟糕,表现出一种不稳定性。
BP网络依旧存在一些局限性,主要表现在收敛速度慢、可能陷入局部最小值、网络层数及每层的节点数选择相关理论不足[5]以及网络记忆性和学习稳定性不好。
2.5 径向基函数网络
径向基(Radial Basis Function ,简称RBF)神经网络是近年来被广泛应用于函数近似插值、分类研究的一类ANN模型。与BP神经网络相比,RBF 神经网络不仅训练速度快,而且也不存在局部极小的问题,它的逼近能力、分类能力和学习速度等方面均优于前者;但也必须确定合理的隐含层节点数。之所以RBF网络速度快,由于它进行局部逼近,每次只需修正部分权值,而不像BP网络,它进行全局逼近,且每次修正所有的权值。目前已有理论证明,径向基网络可以以任意精度逼近任意连续函数。 2.5.1径向基函数网络模型
它是由输入层、隐含层和输出层组成的3 层前馈网络,各层有多个神经元。其隐含层激活函数使用径向基函数,输出层激活函数常用线性函数,此时组成广义回归神经网络,当输出层激活函数为竞争函数时,组成概率神经网络,均通过径向基算法来获得隐层权值。 通常用高斯函数作为径向基函数,确定最终输出值。
径向基神经元是RBF网络的基本单元,它的模型如图2.10所示,其中X1,X2,···,Xn为输入,w1,w2,···,wn为对应权值,b为阈值,||DIST||为求输入和权值之间的欧氏距离。MUL为求乘积运算,radbas表示传递函数为径向基函数,
Y为神经元输出。通过该模型可以组合成多种单层或多层RBF神经网络。
图2.10 基本径向基神经元模型
其中DIST阈值b用于调整神经元的灵敏度。
2.5.2 径向基函数网络设计实例
根据RBF定义可知RBF网络的层数是确定的,而且在某个实际问题中,输入
和输出的节点数也是确定的,所以径向基网络结构设计的关键在于隐含层节点数的确定。在这方面还没有比较成熟的理论,一般常借鉴下面的经验方法,
(1) 隐含层节点数与输入层节点数相同。
(2) 从0个神经元开始,根据输出误差来不断增加神经元数,直到达到误
差要求或最多隐含层节点数。
径向基网络具有唯一的最佳逼近特性,可以利用已知的采样数据对非线性函
数做最佳逼近。
问题:利用RBF网络对抛物线yx2进行拟合,采样数据x=-1:.1:1,y=1.0000 0.8100 0.6400 0.4900 0.3600 0.2500 0.1600 0.0900 0.0400 0.0100 0 0.0100 0.0400 0.0900 0.1600 0.2500 0.3600 0.4900 0.6400 0.8100 1.0000。并分析径向基函数的分布密度对拟合结果的影响。
使用newrbe函数创建径向基网络,则使用的RBF网络结构为1-1-1形式。为了
简单起见,此处仿真了径向基函数分布密度(spd表示)分别去1、2、3、4、5时对拟合误差的影响。图2.11给出了仿真结果 。
图2.11 径向基函数分布密度对误差的影响
从仿真结果可以看出当径向基分布密度为3时,总体拟合误差最小(对于这五个数据来说)。下面给出了使用spd=3的拟合结果,如图2.12所示。
图2.12 spd=3时,RBF网络拟合结果
通过这个简单的事例,可以看出RBF网络的拟合能力很强。它的另外一个重要特点在该事例中没有体现出,就是创建和训练网络的速度快,这点在像实时控制等应用中很广泛。本事例还有一个值得注意的地方,就是径向基分布密度对网络的影响,虽然此处只是使用了几个数据进行了简要说明,但是在实际应用中,这个值选取可能需要根据经验以及相关的辅助知识先确定一个范围,然后再比较各种不同情况下的输出结果的好坏,最终确定最优的径向基分布密度。
随着人们对ANN的研究,出现了许多在某一方面应用很有优势的网络新形
式,如特别适合于模式分类的基于概率的神经网络、适用于预测的数据处理的群方法(GMDH)以及适用于函数逼近的广义回归神经网络(GRNN)等。
2.6 竞争型网络
竞争型神经网络是一种无导师监督的神经网络,它具学习算法简单,迭代步数少等优点。在训练过程中,使用一种称为“胜者为王,败者为寇”的方法。在学习算法上,模拟了生物神经网络中神经元之间的兴奋、抑制与竞争的机制。它经常作为一种基本的网络形式,以它为基础形成了许多具有自组织能力的网络模型,如:自组织映射网络、自组织共振理论网络、学习矢量量化网络等。
2.6.1竞争型网络模型
图2.13给出了基本竞争型网络模型,其中X1,X2,···,Xn为输入,w1,w2,···,wn为对应权值,b为阈值,-||DIST||为求输入和权值之间的欧氏距离的相反数。SUM为求和运算,compet表示传递函数为竞争函数,Y为神经元输出。
图2.13 基本竞争型网络模型
竞争型神经网络按照Kohonen学习规则对获胜的神经元的权值进行调整,在学习过程中,与输入最靠近的权值(即与输入距离最短的权值)得到修正,修正之后,它与输入的距离更近,在之后的学习过程中更容易获胜,而对于那些距离较大的权值,相当来说,在学习过程中被修正的可能性更小,从而获胜的机会更小。这样,竞争型神经网络就具有了对输入向量进行分类的能力。但是,这种学习机制也会带来一些问题。也有人提出了阈值学习规则,该方法在一定程度上改善了Kohonen学习规则出现“死神经元”的现象。
2.6.2竞争型网络设计实例
竞争型神经网络在模式分类方面应用相当广泛,下面对一个简单的模式分类的事例进行MATLAB程序仿真。
问题:如图2.14,其中有两种模式分别用“”和“”表示,使用竞争型网络
对其进行分类。
图2.14 待分类模式
(1) 设定“”的特征为5,“”的特征为10 ,网络输入为三维,即输入层有
三个神经元,竞争层也作为输出层,所以网络结构为3-1型。
(2) 输入向量p=[0 -1 0 1 -1 1 -1 1 0;1 0 0 0 -1 -1 1 1 -1;10 10 10 10 10 10 5 5 5], 使用newc函数创建竞争型网络,使用函数train训练网络,使用sim函数仿真输出。 程序段为:
clear
p=[0 -1 0 1 -1 1 -1 1 0;1 0 0 0 -1 -1 1 1 -1;10 10 10 10 10 10 5 5 5];
net=newc(p,2);
net=train(net,p);
y=sim(net,p)
Y = vec2ind(y)
(3) 仿真结果为:
或者:
从结果可以看出,竞争函数可以很好地实现分类。但是,当两类的特征相差不明显时,如设定“”的特征为5,“”的特征为5.1,此时的输入向量为:p=[0 -1 0 1 -1 1 -1 1 0;1 0 0 0 -1 -1 1 1 -1;5.1 5.1 5.1 5.1 5.1 5.1 5 5 5];分别对程序运行了3
次,分类结果仿真为:
第一次:
第二次:
第三次:
可见,当不同模式的特征差别不大时,竞争型神经网络的分类结果并不理想,而且还很不稳定。
总结起来,竞争型神经网络有以下几个方面的问题:
(1) 当学习模式之间的特征差别不明显或样本本身很无序时,网络的分类结果
不准确而且呈现震荡现象。
(2) 训练过程中,学习率的选择与收敛速度和稳定性之间有冲突。
(3) 网络的分类性能与阈值和权值的初始值、学习率、训练样本的顺序、训练
时间等因素相关性大,而且目前还没有比较有效的理论对这些影响进行评价。
2.7 反馈型网络
反馈型神经网络是从输入到输入有反馈连接的人工神经网络。与前面讲到的几种没有反馈的前向网络相比,反馈型网络更复杂一些,但是计算能力和功能更加强大,反馈的加入,使网络真正有了动态的特性。反馈可以加在隐含层与输入层之间、输出层与输入层之间、输出层与隐含层之间以及隐含层与隐含层之间。因此反馈型网络有很多种类,但是比较常用的两大类是:反馈在隐含层与输入层之间和反馈在输出层与输入层之间。这两类中比较经典的是反馈在隐含层与输入层之间的Elman网络[6]和反馈在输出层与输入层之间的Hopfield网络[7]。
2.7.1 Elman网络
1990年,J.L.Elman针对语音处理问题提出来了Elman网络,它是一种典型的
动态递归神经网络。Elman网络可以看作是一个具有局部记忆单元和局部反馈连接的前向神经网络。它具有与多层前向网络相似的多层结构。由于有记忆功能,所以作为系统辫识工具在许多领域中都有广泛的应用。
由于Elman网络使用反向传播算法算法对网络学习训练,所以依旧会存在BP网络中出现的陷入局部极小值问题和收敛速度慢问题。
1. Elman网络的结构
Elman网络包括输入层、 隐含层、 输出层,其连接权可以进行学习修正;反馈连接由一组特别的单元构成,用来记忆前一时刻的输出值,其连接权值是固定的。在这种网络中,除了普通的隐含层外,还有一个特别的隐含层——关联层 (或联系单元层 );该层从隐含层接收反馈信号,每一个隐含层节点都有一个与之对应的关联层节点连接。关联层的作用是通过联接记忆将上一个时刻的隐层状态连同当前时刻的网络输入一起作为隐层的输入,相当于状态反馈。隐层的传递函数仍为某种非线性函数,一般为 Sigmoid函数,输出层为线性函数,关联层也为线性函数。常用的Elman网络分为4层,它的基本结构如图2.15所示。
图2.15 Elman网络的基本结构
2. Elman神经网络应用事例
在工程上,Elman网络常常用于峰值检波,峰值检波问题实质上就是利用空域模式对时域模式进行识别和分离。
此处为了简单起见,设定载频频率为2.8648Hz(18rad/s),为了使训练后的网络教较完整反映不同调幅度和不同波形的情况,调制信号使用频率为0.0995Hz(0.625rad/s),幅度为2的三角波。实际中载频频率要高得多,调制信号也有一定的频带宽度。下面给出仿真过程中各个结果。
(1)输入样本和目标向量波形
图2.16输入样本和目标向量波形
(2)网络的隐含层节点数为20个,最大训练次数为700,目标误差为0,训练误差性能曲线如图2.17所示。
图2.17 训练误差性能曲线
从误差性能曲线中可以看出,当训练次数大于500时,误差变化不大,综合考虑训练时间和网络误差,选择训练次数为500。
(3)网络性能测试
下面分别使用已调制的三角波、正弦波和方波对训练好的Elman网络性能进行验证。这三种已调制波对应的参数如表2.3 。
表2.3 测试已调波参数
训练后的Elman网络用于测试已调波的仿真结果如图2.18 。
图2.18 Elman网络对于不同调制信号的仿真结果
2.7.2 Hopfield网络
1982年,美国加州工学院物理学家J.J.Hopfield提出了Hopfield神经网格模型,引入了“计算能量”概念,给出了网络稳定性判断。1984年,他又提出了连续时间Hopfield神经网络模型,为神经计算机的研究做了开拓性的工作,开创了神经网络用于联想记忆和优化计算的新途径,有力地推动了神经网络的研究。1985年Hopfield和Tank利用Hopfield网络成功解决了优化组合问题中具有典型意义的旅行商问题TSP,在所有随机选择的路径中找到了十万分之一的最优路径,这是当时神经网络研究工作中具有突破性的进展。
Hopfield网络分为离散型(Discrete Hopfield Neural Network,简称DHNN)和连续型(Continues Hopfield Neural Network,简称CHNN)两种网络模型,这里主要讨论离散型Hopfield网络。Hopfield网络具有联想记忆功能,在优化计算方面也有优势,是一个动态反馈型神经网络。
1. Hopfield网络的基本结构
Hopfield网络的结构图如图2.19所示。
图2.19 Hopfield网络的结构图
Hopfield网络的学习过程就是一个调节权值的过程,学习的目的是调节权值使网络的稳定平衡状态就是所要求的状态。采用Hebb规则进行训练的Hopfield网络系统总是朝着能量减小的方向变化,最终进入稳定状态,即收敛于某个平衡点。虽然Hopfield将能量函数引入对称、反馈的网络结构,研究联想记忆和优化计算特性,以及Rumelhart,Hinton和William提出反向传播算法训练多层前传网络以逼近期望的连续函数,但是对于 Hopfield神经网络而言,都存在以下问题[8]:
(1)如何在具体神经网络实现中保证连接权矩阵是对称的;
(2)在实际的神经网络实现中,总会存在信息的传输延迟,这些延迟对神经网络的特性有何影响 ?
(3)神经网络实现中的规模问题,即集成度问题。
2. Hopfield网络设计事例
Hopfield网络的设计目标是,首先存储一组特定的稳定的平衡点,当输入一组新的初始条件,网络会根据这些初始点与平衡点之间的距离来确定向最靠近初始点的平衡点靠近,最终为了输出该平衡点对应的值。Hopfield神经网络的这种特性对于模式分类非常有益。设计时,使用MATLAB自带的newhop函数创建Hopfield网络,用它设计网络时,存在一些缺点,在得到期望的平衡点的同时,还有可能得到一些不期望的伪平衡点,newhop可以使伪平衡点的数目尽量少。Newhop的设计是基于一阶线性常差分方程的,它的状态空间为一个封闭的超立方体,差分方程的解在超立方体的边界上。下面给出一个简单的设计2神经元Hopfield设计的事例。
(1) 给定两个特定点(-1,-1)和(1,1),输入向量T=[-1 1;-1 1],然后通过
sim函数对设计好的网络和输入的特定点进行仿真,确定这两个输入点是否是稳定的。这两个特定点的位置如图2.20。是否为稳定点的输出(用Y表示)为:
,与输入向量T相同,所以这两个点是稳定点。
图2.20 平衡点位置
(2) 利用rands函数随机产生范围在横纵坐标在[-1,1]中的点,之后把该点输入
得到的网络,该点会向靠近它的平衡点收敛,仿真结果如图2.21(a)所示。然后再重复进行这样的测试15次,仿真结果如图2.21(b)。
(a) (b)
图2.21 测试结果
第三章 本文总结
人工神经网络(artificial neural network,ANN)是通过对生物神经网络进行抽象,再利用一些其他学科的知识对其处理,最终得到的一类仿生的智能计算系统。ANN是机器学习的一个重要手段。
本文总共包含三章内容,主体部分在第一、二章,第一章开篇讲述了一些关于生物神经网络(主要针对人)的的一些基本概念,为后续人工神经网络的提出做铺垫,紧接着简要概述了人工神经网络的发展史,ANN的发展有朝气也有萧条,主要结合三个阶段,即两次高潮期和一次低潮期,按照时间顺序进行了概述,在本章的结尾,总结了ANN的特点。第二章主要对ANN发展过程中形成的几种基本的但是十分重要的人工神经网络进行了讲解。本章概述了常用的激活函数,以及分析比较了6种基本的ANN模型的应用领域、优缺点,并用事例进行了仿真说明。这6种网络分别是感知器、线性神经网络、BP网络、径向基函数网络、竞争型网络和反馈型网络。
人工神经网络(artificial neural network,ANN)综合信息处理技术、数学手段等是一门交叉学科。与之相伴的大量边缘交叉学科形成的主要学科领域有脑科学和神经生理科学、计算神经科学、数理科学、思维科学和认知科学、信息论和计算机科学等。ANN是一项发展十分迅速、应用领域十分广泛的技术,已在人工智能、自动控制、模式识别等许多应用领域中取得广泛成功。也有很多学者研究了ANN再不同行业中的应用,如在农业中的应用[9]、在化学中的应用[10]、在天文学中的应用[11]等。还有许多其他的人工神经网络,而且它们都有各自较擅长的应用领域,如模糊神经网络在窑炉、 工业机器人控制等领域应用较广[12],但存在的问题有[13]。几乎任何一个系统在实际应用时,都需要专门的硬件来实现,ANN也不例外,已有学者对ANN的硬件实现做了一些研究,如神经网络的数字实现[14,15]、神经网络的模拟实现[16,17,18]等。
作为一名人工神经网络的初学者,我通过本文的写作,对人工神经网络这门学科有了进一步的学习,而且在也发现了还有很多相关的知识要去学习。本文中列举的事例都是我自己设计的,并进行了多次仿真,可能这些事例都很简单,但是也能说明一定的问题。本文中通过功能很强大的数学工具MATLAB对一些事例进行仿真,在仿真过程中,发现了一些平时仅仅从课本上看所不能达到的效果。
这些使我深刻地认识到对于我们工科学生来说,实践是十分重要的,实践是理论的源泉。
在文章的最后,请允许我表达对张莉老师一学期为我们传道解惑的衷心感谢,另外,也十分感谢帮助过我的其他老师和同学们。
参考文献
[1] http://image.baidu.com
[2]Neural Network Toolbox. MathWorks, 2004
[3]神经网络模型及其MATLAB仿真程序设计,周开利,康耀红编著,清华大学出版社
[4]神经网络理论与MATLAB7 实现,飞思科技产品研发中心 编著
[5] BP 神经网络在机械故障诊断中的应用张新海,雷勇,噪声与振动控制
[6] Elman J L. Finding Structure in Time[J ] . C ognitive Science ,1990 ,14 :1792211.
[7]Hopfield J I. Neural Networks and Physical Systems with Emergent C ollective C omputational Abilities[J ] . Proc Natl Acad Scien USA ,1982 ,79 :244522558
[8]动态反馈型神经网络的特性及其应用,陈亚军,陈元莉,四川师范学院学报
[9] 人工神经网络在农业工程中的应用,戚国强,周保平,钮志勇,肖涛,农机化研究
[10] 人工神经网络在化学中的应用进展,李波,徐泽民,李方,张新申,皮革科学与工程
[11] 人工神经网络在天文学中的应用,李丽丽,张彦霞,赵永恒,杨大卫,天文学进展
[12]模糊神经网络理论研究综述,刘普寅,模糊系统与数学
[13]神经网络系统理论,焦李成,西安科技大学出版社
[14] Takao Watanabe, Katdutaka Kimura, Masakazu Aoki, et al. A Sinngle 1.5-V Digital Chip for a 106 Synapse Neural Network. IEEE Transactions on Neural Networks. May 1993,4(3): 387-393
[15] Matthew S Melttn,Tan Phan,Douglas S Reeves,et al.The TInMANN VLSI Chip.1993,4(3): 394-340
[16] Hendrik C A M, Withagen. Neural Networks: Analog VLSI Implementation and Learning Algorithms. Ph.D thesis,Eindhoven,1997
[17]一种连续可调权值 CMOS 神经网络,高丽娜,邱关源,电子学报
[18] Bernabé Linares-Barranco et al. A Modular T-Mode Design Approach for Analog Neural Network Hardware Implementations. IEEE Journal of Solid-State Circuits,1992, 27(5): 701-712