1、第第2章章 神经网络神经网络Contents神经网络简介神经网络简介 1 1神经网络的典型结构神经网络的典型结构 2 2神经网络的学习算法神经网络的学习算法 3 3BPBP神经网络神经网络 4 4进化神经网络进化神经网络 5 5神经网络的应用神经网络的应用 6 6什么是神经网络?什么是神经网络?神经网络(神经网络(Neural Network,NN)一般也称为)一般也称为人工神经网络(人工神经网络(Artificial Neural Network,ANN),),是科学家们在对生物的神经元、神经系统等生理学的研究是科学家们在对生物的神经元、神经系统等生理学的研究取得了突破性进展以及对人脑的结构
2、、组成和基本工作单元取得了突破性进展以及对人脑的结构、组成和基本工作单元有了进一步认识的基础上,有了进一步认识的基础上,通过借助数学和物理的方法从信息处理的角度通过借助数学和物理的方法从信息处理的角度对人脑神经网络进行抽象后建立的简化模型。对人脑神经网络进行抽象后建立的简化模型。1943年McCullonch和Pritts提出了神经元的数学描述和网络的结构方法,这标志着神经网络计算时代的开始。1957年Rosenblatt定义一个称为感知器的神经网络结构,第一次把神经网络从纯理论的探讨推向了工程实现,掀起了神经网络研究的高潮。Minsky和Papert在1969年发表论著Perceptrons
3、指出感知器仅能解决一阶谓词逻辑,只能完成线性划分,对于非线性或者其他分类会遇到很多困难,就连简单的 XOR(异或)问题都解决不了。由此,神经网络的研究进入了反思期。启蒙萌芽时期启蒙萌芽时期1940s至至1960s低潮反思时期低潮反思时期1960s至至1970s20世纪90年代中后期,神经网络研究进入了一个新的发展阶段,一方面已有理论在不断地深化和得到进一步推广,另一方面,新的理论和方法也在不断出现。光学神经网络、混沌神经网络、模糊神经网络、进化神经网络等新模型陆续出现。1982年Hopfield提出的全连接网络模型才使得人们对神经网络有了重新的认识,开辟了一条新的研究道路。1986年Rumel
4、hart等人提出的反向传播算法,使Hopfield模型和多层前馈神经网络成为应用最广泛的神经网络模型之一。复兴发展时期复兴发展时期1980s至至1990s新的发展时期新的发展时期1990s中后期之后中后期之后重要学术期刊重要学术期刊lIEEE Transactions on Neural NetworkslIEEE Transactions on Systems,Man and CyberneticslJournal of Artificial Neural NetworkslJournal of Neural SystemslNeural NetworkslNeural Computatio
5、nlNetworks Computation in Neural SystemslMachine Learning重要学术会议重要学术会议lInternational Joint Conference on Neural NetworkslIEEE International Conference on Systems,Man,and CyberneticslWorld Congress on Computational Intelligence细胞体突触轴突树突图12.2 生物神经元功能模型输入输出信息处理电脉冲形成传输神经元的数学模型 图 神经元的数学模型 树突树突细胞体细胞体轴突轴突突触
6、突触生物神经元生物神经元人工神经元人工神经元类比关系类比关系输入层输入层加权和加权和阈值函数阈值函数输出层输出层模拟神经元的树突接收输入信号输入层加权和阈值函数输出层模拟神经元的细胞体加工和处理信号模拟神经元的轴突控制信号的输出模拟神经元的突触对结果进行输出其中x(x1,xm)T 输入向量,y为输出,wi是权系数;输入与输出具有如下关系:miiixwfy1)(为阈值,f(X)是激发函数;它可以是线性函数,也可以是非线性函数 例如,若记例如,若记 取激发函数为符号函数 miiixwz1.0,0,0,1)sgn(xxx则 S型激发函数:miiimiiixwxwzfy11,0,1)(,11)(xex
7、f;1)(0 xf或或 注:若将阈值看作是一个权系数,sita是一个固定的输入,另有m-1个正常的输入,则可表示为:,)(xxxxeeeexf.1)(1xfmiiixwfy1)((1)参数识别:假设函数形式已知,则可以从已有的输入输出数据确定出权系数及阈值。按网络的结构区分按网络的结构区分l前向网络前向网络l反馈网络反馈网络按学习方式区分按学习方式区分l有教师(监督)学习网络有教师(监督)学习网络l无教师(监督)学习网络无教师(监督)学习网络按网络的性能区分按网络的性能区分l连续型和离散型网络连续型和离散型网络l随机型和确定型网络随机型和确定型网络单层感知器是最早使用的,也是最简单的神经单层感
8、知器是最早使用的,也是最简单的神经网络结构,由一个或多个线性阈值单元组成网络结构,由一个或多个线性阈值单元组成l由于这种网络结构相对简单,因此能力也非常的由于这种网络结构相对简单,因此能力也非常的有限,一般比较少用有限,一般比较少用 前馈型网络的信号由输入层到输出层单向传输前馈型网络的信号由输入层到输出层单向传输每层的神经元仅与其前一层的神经元相连,仅接受前一层传输来的信息每层的神经元仅与其前一层的神经元相连,仅接受前一层传输来的信息是一种最为广泛使用的神经网络模型,因为它本身的结构也不太复杂,是一种最为广泛使用的神经网络模型,因为它本身的结构也不太复杂,学习和调整方案也比较容易操作,而且由于
9、采用了多层的网络结构,其学习和调整方案也比较容易操作,而且由于采用了多层的网络结构,其求解问题的能力也得到明显的加强,基本上可以满足使用要求求解问题的能力也得到明显的加强,基本上可以满足使用要求这种网络结构从外部看还是一个前馈型的网络,这种网络结构从外部看还是一个前馈型的网络,但是内部有一些节点在层内互连但是内部有一些节点在层内互连这种网络结构在输入输出之这种网络结构在输入输出之间还建立了另外一种关系,间还建立了另外一种关系,就是网络的输出层存在一个就是网络的输出层存在一个反馈回路到输入层作为输入反馈回路到输入层作为输入层的一个输入,而网络本身层的一个输入,而网络本身还是前馈型的还是前馈型的这
10、种神经网络的输入层不仅这种神经网络的输入层不仅接受外界的输入信号,同时接受外界的输入信号,同时接受网络自身的输出信号。接受网络自身的输出信号。输出反馈信号可以是原始输输出反馈信号可以是原始输出信号,也可以是经过转化出信号,也可以是经过转化的输出信号;可以是本时刻的输出信号;可以是本时刻的输出信号,也可以是经过的输出信号,也可以是经过一定延迟的输出信号一定延迟的输出信号此种网络经常用于系统控制、此种网络经常用于系统控制、实时信号处理等需要根据系实时信号处理等需要根据系统当前状态进行调节的场合统当前状态进行调节的场合全互联网络是网络中所有的神经元之间都有相全互联网络是网络中所有的神经元之间都有相互
11、间的连接互间的连接l如如Hopfiled和和Boltgmann网络都是这种类型网络都是这种类型竞争式学习规则概率式学习规则后向传播学习规则学习规则梯度下降学习规则学习规则学习规则学习规则再励学习无监督学习有监督学习学习方法神经网络学习算法Kohonen)(DeltaHebb有监督学习有监督学习无监督学习无监督学习再励学习再励学习在有监督的学习方式中,网络的输出和期望的输出(即教师信号)进行比较,然后根据两者之间的差异调整网络的权重,最终使差异变小。在无监督的学习方式中,输入模式进入网络后,网络按照一预先设定的规则(如竞争规则)自动调整权重,使网络最终具有模式分类等功能。再励学习(reinfor
12、cement learning RL)是介于上述两者之间的一种学习方法(奖或罚)梯度下降学习规则梯度下降学习规则梯度下降学习规则的要点梯度下降学习规则的要点为在学习过程中,保持误为在学习过程中,保持误差曲线的梯度下降差曲线的梯度下降误差曲线可能会出现局部误差曲线可能会出现局部的最小值,在网络学习时,的最小值,在网络学习时,应尽可能摆脱误差的局部应尽可能摆脱误差的局部最小值,而达到真正的误最小值,而达到真正的误差最小值差最小值 2.4 BP神经网络神经网络2.4.1 基本思想基本思想BP神经网络也称:神经网络也称:后向传播学习的前馈型神经网络后向传播学习的前馈型神经网络(Back Propaga
13、tion Feed-forward Neural Network,BPFNN/BPNN),是一种,是一种应用最为广泛应用最为广泛的神经网络的神经网络在在BPNN中,后向传播是一种学习算法,体现为中,后向传播是一种学习算法,体现为BPNN的训练过程,该过程是需要教师指导的;前馈型网络的训练过程,该过程是需要教师指导的;前馈型网络是一种结构,体现为是一种结构,体现为BPNN的网络构架的网络构架反向传播算法通过迭代处理的方式,不断地调整连接反向传播算法通过迭代处理的方式,不断地调整连接神经元的网络权重,使得最终输出结果和预期结果的神经元的网络权重,使得最终输出结果和预期结果的误差最小误差最小BPNN
14、是一种典型的神经网络,广泛应用于各种分类系是一种典型的神经网络,广泛应用于各种分类系统,它也包括了训练和使用两个阶段。由于训练阶段统,它也包括了训练和使用两个阶段。由于训练阶段是是BPNN能够投入使用的基础和前提,而使用阶段本身能够投入使用的基础和前提,而使用阶段本身是一个非常简单的过程,也就是给出输入,是一个非常简单的过程,也就是给出输入,BPNN会根会根据已经训练好的参数进行运算,得到输出结果据已经训练好的参数进行运算,得到输出结果概述概述pRumelhart,McClelland于于1985年提出了年提出了BP网络的误差网络的误差反向后传反向后传BP(Back Propagation)学
15、习算法学习算法pBP算法基本原理算法基本原理利用输出后的误差来估计输出层的直接前导层的误差,再用这个误差估计更前一层的误差,如此一层一层的反传下去,就获得了所有其他各层的误差估计。J.McClelland David Rumelhart p三层三层BP网络网络0001)(iiiNetNetNetfiliiliiiiiiNetNetfNetNetNetkNetNetNetNetfmax000)(TNetiieNetf11)(图图7-6 BP神经网络逼近神经网络逼近 图图7-11 BP7-11 BP神经网络结构神经网络结构 网络的学习算法如下:网络的学习算法如下:(1)前向传播:计算网络的输出。)
16、前向传播:计算网络的输出。隐层神经元的输入为所有输入的加权之和:隐层神经元的输入为所有输入的加权之和:隐层神经元的输出隐层神经元的输出 采用采用S函数激发函数激发 :iiijjxwxjxjxjxjjexfx11)()1(jjjjxxxx则则输出层神经元的输入:ljljjxw x 网络第 个输出与相应理想输出 的误差为:第p个样本的误差性能指标函数为:其中N为网络输出层的个数。0lxlllxxe0NllpeE1221l(2)反向传播:采用梯度下降法,调整各层间的权值。权值的学习算法如下:输出层及隐层的连接权值 学习算法为:jlwjljllljlpjlxewxewEwjljljlwkwkw)()1
17、(其中其中隐层及输入层连接权值隐层及输入层连接权值 学习算法为:学习算法为:ijwNlijllijpijwxewEw1jjllijjijjxxxxwxwxijijijwkwkw)()1(如果考虑上次权值对本次权值变化的影响如果考虑上次权值对本次权值变化的影响,需要加入动量因子,需要加入动量因子 ,此时的权值为:,此时的权值为:11kwkwwkwkwjljljljljl)1()()()1(twtwwtwtwijijijijij其中 为学习速率,为动量因子。1,01,02.4.2 算法流程算法流程4.网络权值与神经元偏置调整网络权值与神经元偏置调整3.反向误差传播反向误差传播2.向前传播输入向前传
18、播输入1.初始化网络权值初始化网络权值2.4.2 算法流程算法流程2.4.3 应用举例应用举例例2.1已知一个前馈型神经网络例子如下图所示。设学习率l为0.9,当前的训练样本为x=1,0,1,而且预期分类标号为1,同时,下表给出了当前该网络的各个连接权值和神经元偏置。求该网络在当前训练样本下的训练过程。456w14w15w24w25w34w35w46w560.2-0.30.40.1-0.50.2-0.3-0.2-0.40.20.1例例 10.3 BPNN分类系统训练过程分类系统训练过程w14w15w24w25w34w35w46w560.2-0.30.40.1-0.50.2-0.3-0.2-0.
19、40.20.14562.4.2 BP网络的标准学习算法网络的标准学习算法学习的过程:l神经网络在外界输入样本的刺激下不断改变网络的连接权值,以使网络的输出不断地接近期望的输出。学习的本质:l对各连接权值的动态调整学习规则:l权值调整规则,即在学习过程中网络中各神经元的连接权变化所依据的一定的调整规则。2.4.2 BP网络的标准学习算法网络的标准学习算法-算法思想算法思想学习的类型:有导师学习核心思想:l将输出误差以某种形式通过隐层向输入层逐层反传学习的过程:l信号的正向传播 误差的反向传播将误差分摊给各层的所有将误差分摊给各层的所有单元各层单元的误单元各层单元的误差信号差信号修正各单元权修正各
20、单元权值值2.4.2 BP网络的标准学习算法网络的标准学习算法-学习过程学习过程正向传播:l输入样本输入层各隐层输出层判断是否转入反向传播阶段:l若输出层的实际输出与期望的输出(教师信号)不符误差反传l误差以某种形式在各层表示修正各层单元的权值网络输出的误差减少到可接受的程度进行到预先设定的学习次数为止2.4.2 BP网络的标准学习算法网络的标准学习算法 网络结构l输入层有n个神经元,隐含层有p个神经元,输出层有q个神经元变量定义l输入向量;l隐含层输入向量;l隐含层输出向量;l输出层输入向量;l输出层输出向量;l期望输出向量;12,nxxxx12,phihihihi12,pho hohoho
21、12,qyiyiyiyi12,qyoyoyoyo12,qdddod2.4.3 BP神经网络学习算法的神经网络学习算法的MATLAB实现实现 MATLAB中BP神经网络的重要函数和基本功能 函函 数数 名名功功 能能newff()生成一个前馈生成一个前馈BP网络网络tansig()双曲正切双曲正切S型型(Tan-Sigmoid)传输函数传输函数logsig()对数对数S型型(Log-Sigmoid)传输函数传输函数traingd()梯度下降梯度下降BP训练函数训练函数径向基函数(RBF-Radial Basis Function)神经网络,是在借鉴生物局部调节和交叠接受区域知识的基础上,提出的一
22、种采用局部接受域来执行函数映射的人工神经网络。1G2GnGuy RBF 神经网络通常是一种三层前向网络,结构如下图 所示。第一层是输入层,由信号源节点组成;第二层为隐含层,其节点基函数是一种局部分布的、对中心径向对称衰减的非负非线性函数;第三层为输出层。4 RBF网络的逼近 采用RBF网络逼近一对象的结构如图2所示。图图2 RBF神经网络逼近神经网络逼近 RBF网络结构是由一个隐含层(径向基层)和一个线性输出层组成的前向网络,隐含层采用径向基函数作为网络的激活函数。RBF网络输出的计算:RBF网络第i个隐层节点的输出为:|)(|iicuRq式中 un维输入向量ci第i个隐节点的中心,通常为欧氏
23、范数RBF函数,具有局部感受的特性,它有多种形式,体现了RBF网络的非线性映射能力,通常取为高斯函数,其形式为|)(R22)(cxeRRBF网络结构是由一个隐含层(径向基层)和一个线性输出层组成的前向网络,隐含层采用径向基函数作为网络的激活函数。网络输出层第k个节点的输出,为隐节点输出的线性组合:ikikikqwy式中 qi到yk的联接权第k个输出节点的阈值kiwk2.5.1 RBF神经网络模型RBF网络与BP网络比较:lRBF网络的输出是隐单元输出的线性加权和网络的输出是隐单元输出的线性加权和,学习速度加快,学习速度加快 lBP网络使用网络使用sigmoid()函数作为激活函数,函数作为激活
24、函数,这样使得神经元有很大的输入可见区域这样使得神经元有很大的输入可见区域 l径向基神经网络使用径向基函数(一般使用径向基神经网络使用径向基函数(一般使用高斯函数)作为激活函数,神经元输入空间高斯函数)作为激活函数,神经元输入空间区域很小,因此需要更多的径向基神经元区域很小,因此需要更多的径向基神经元 TnxxxX,.,21Th.,h,hm21jhHmjbXjj,2,1),2C-exp(-h22jTn21jcc,c Cjijjjc T21,Bmbbbjb,W21mjwwww h+w+h+whw=whkymmm2211)(2m(k)-(k)(21yykE)()2()1(kwkwhyywwjjjm
25、jj(k)-(k)(1)-(k(k)2)-(k-1)-(k(1)-(k(k)jjjjjbbbbb2)-(k-1)-(k(1)-(k(k)ijijijijijccccc Jacobianmjjjjjmbxchwkukykuky1211)()()()(k)ux 1RBF网络的优缺点(1)RBF与BP网络主要不同点是,在非线性映射上采用了不同的作用函数,分别为径向基与S型函数,前者的作用函数是局部的,后者的作用函数是全局的。(2)已证明RBF网络具有惟一最佳逼近的特性,且无局部极小。(3)求RBF网络隐节点的中心、标准化参数,是一困难问题。(4)径向基函数,即径向对称函数,有多种。对于一组样本,如何选择合适的径向基函数、如何确定隐节点数,以使网络学习达到要求的精度,这是尚未解决的问题。当前,用计算机选择、设计、再检验是一种通用的手段。(5)RBFNN用于非线性系统辨识与控制中,虽具有惟一最佳逼近的特性,且无局部极小问题,但是隐节点的中心难求,是该网络难以广泛应用的原因。