Ch人工神经网络.pptx
本章内容9.1 人工神经网络概述人工神经网络概述 9.1.1 生物神经元 9.1.2 人工神经网络的构成9.2 人工神经网络基本模型人工神经网络基本模型 9.2.1 感知器模型 9.2.2 线性神经网络 9.2.3 BP神经网络 9.2.4 其他神经网络第1页/共132页9.3 BP神经网络理论 9.3.1 网络结构 9.3.2 数学模型 9.3.3 学习算法 9.3.4 网络的泛化能力 9.3.5 算法的改进 9.3.6 网络结构参数的确定 9.4 BP神经网络应用 9.4.1 9.4.1 函数逼近函数逼近 9.4.2 9.4.2 字符识别字符识别 第2页/共132页9.1人工神经网络概述人工神经网络概述第3页/共132页 生物神经系统是一个有高度组织和相互作用的数量巨大的细胞组织群体。人类大脑的神经细胞大约在1011一1013个左右。神经细胞也称神经元,是神经系统的基本单元,它们按不同的结合方式构成了复杂的神经网络。通过神经元及其联接的可塑性,使得大脑具有学习、记忆和认知等各种智能。9.1.1 生物神经元第4页/共132页1、结构第5页/共132页神经元由细胞体(Soma)和延伸部分组成。延伸部分按功能分有两类,一种称为树突(Dendrite),用来接受来自其他神经元的信息;另一种用来传递和输出信息,称为轴突(Axon)。神经元之间的相互连接从而让信息传递的部位披称为突触(Synapse),突触的联接是可塑的,也就是说突触特性的变化是受到外界信息的影响或自身生长过程的影响。第6页/共132页 2、特征 (1)并行分布处理 大脑中单个神经元的信息处理速度是很慢的,每次约1毫秒,比通常的电子门电路要慢几个数量级。但是人脑对某一复杂过程的处理和反应却很快,一般只需几百毫秒。而在这个处理过程中,与脑神经系统的一些主要功能,如视觉、记亿、推理等有关。按照上述神经元的处理速度,如果采用串行工作模式,就必须在几百个串行步内完成,这实际上是不可能办到的。因此只能把它看成是一个由众多神经元所组成的超高密度的并行处理系统。例如在一张照片寻找一个熟人的面孔,对人脑而言,几秒钟便可完成,但如用计算机来处理,以现有的技术,是不可能在短时间内完成的。第7页/共132页 (2)神经系统的可塑性和自组织性 从生理学的角度看,它体现在突触的可塑性和联接状态的变化。例如在某一外界信息反复刺激下接受该信息的神经细胞之间的突触结合强度会增强。这种可塑性反映出大脑功能既有先天的制约因素,也有可能通过后天的训练和学习而得到加强。(3)信息处理与信息存贮合二为一 由于大脑神经元兼有信息处理和存贮功能,所以在进行回亿时,不但不存在先找存贮地址而后再调出所存内容的问题,而不像现行计算机那样存贮地址和存贮内容是彼此分开的。第8页/共132页(4)信息处理的系统性 大脑的各个部位是一个大系统中的许多子系统。各个子系统之间具有很强的相互联系,一些子系统可以调节另一些子系统的行为。例如,视觉系统和运动系统就存在很强的系统联系,可以相互协调各种信息处理功能。(5)能接受和处理模糊的、模拟的、随机的信息 第9页/共132页9.1.2 人工神经网络 人工神经网络(Artificial Neural Network,ANN)是对人类大脑特性的一种描述。它是一个数学模型,可以用电子线路实现,也可以用计算机程序来模拟。是人工智能研究的一种方法。第10页/共132页2023/2/21111、定义、定义 1)HechtNielsen(1988年)年)人工神经网络是一个并行、分布处理结构,它由处理单元及其称为联接的无向讯号通道互连而成。这些处理单元(PEProcessingElement)具有局部内存,并可以完成局部操作。每个处理单元有一个单一的输出联接,这个输出可以根据需要被分枝成希望个数的许多并行联接,且这些并行联接都输出相同的信号,即相应处理单元的信号,信号的大小不因分支的多少而变化。第11页/共132页2023/2/2112(1)HechtNielsen(1988年)(续)年)(续)处理单元的输出信号可以是任何需要的数学模型,每个处理单元中进行的操作必须是完全局部的。也就是说,它必须仅仅依赖于经过输入联接到达处理单元的所有输入信号的当前值和存储在处理单元局部内存中的值。第12页/共132页2023/2/2113强调:强调:并行、分布处理结构;一个处理单元的输出可以被任意分枝,且大小不变;输出信号可以是任意的数学模型;处理单元完全的局部操作 第13页/共132页2023/2/2114(2)Rumellhart,McClelland,Hinton的的PDP 1)一组处理单元一组处理单元(PE或AN);2)处理单元的激活状态激活状态(ai);3)每个处理单元的输出函数输出函数(fi);4)处理单元之间的联接模式联接模式;5)传递规则传递规则(wijoi);6)把处理单元的输入及当前状态结合起来产生激活值的激活规则激活规则(Fi);7)通过经验修改联接强度的学习规则学习规则;8)系统运行的环境(样本样本集合)。第14页/共132页2023/2/2115(3)Simpson(1987年)年)人工神经网络是一个非线性的有向图,图中含有可以通过改变权大小来存放模式的加权边,并且可以从不完整的或未知的输入找到模式。第15页/共132页2023/2/21162、关键特征、关键特征(1 1)信息的分布表示(2 2)运算的全局并行与局部操作(3 3)处理的非线性特征第16页/共132页 下图是一个神经元的结构图,通过与生物神经元的比较可以知道它们的有机联系,生物神经元中的神经体与人工神经元中的结点相对应,树突(神经末梢)与输入相对应,轴突与输出相对应,突触与权值相对应。第17页/共132页 3、ANN研究与应用的主要内容 (1)人工神经网络模型的研究 神经网络原型研究,即大脑神经网络的 生理结构、思维机制。神经元的生物特性如时空特性、电化 学性质等的人工模拟。易于实现的神经网络计算模型。神经网络的学习算法与学习系统。第18页/共132页(2)神经网络基本理论 神经网络的非线性特性,包括自组织、自适应等作用。神经网络的基本性能,包括稳定性、收敛性、容错性、鲁棒性、动力学复杂性。神经网络的计算能力与信息存贮容量。第19页/共132页(3)神经网络智能信息处理系统的应用 认知与人工智能,包括模式识别、计算机视觉与听觉、特征提取、语音识别语言翻译、联想记忆、逻辑推理、知识工程、专家系统、故障诊断、智能机器人等。优化与控制,包括决策与管理、系统辨识、鲁棒性控制、自适应控制、并行控制、分布控制等。信号处理,自适应滤波、时间序列预测、消噪、非线性预测、非线性编码等。第20页/共132页(4)神经网络的软件模拟和硬件实现(5)神经网络计算机的实现第21页/共132页 4、ANN的信息处理能力 存贮能力和计算能力是现代计算机科学中的两个基本问题,同样,它们也构成了人工神经网络研究中的基本问题。人工神经网络的信息处理能力包括两方面的内容:神经网络信息存贮能力 即要解决这样的一个问题:在一个有N个神经元的神经网络中,可存贮多少值的信息?神经网络的计算能力第22页/共132页(1)神经网络的存贮能力 定义:一个存贮器的信息表达能力定义为其可分辨的信息类型的对数值。在一个M1的随机存贮器RAM中,有M位地址,一位数据,它可存贮2M位信息。M1的RAM的存贮能力为:C2M(位)。第23页/共132页(2)神经网络的计算能力 数学的近似映射 概率密度函数的估计 从二进制数据基中提取相关的知识 形成拓扑连续及统计意义上的同构映射 最近相邻模式分类 数据聚类 最优化问题 用来求解局部甚至是全局最优解。第24页/共132页2023/2/21259.1.3人工神经网络发展回顾 1、产生期(20世纪40年代)人工神经网络的研究最早可以追溯到人类开始研究自己的智能的时期,到1949年止。1943年,心理学家McCulloch和数学家Pitts建立起了著名的阈值加权和模型,简称为M-P模型。发表于数学生物物理学会刊BulletinofMathematicalBiophysics1949年,心理学家D.O.Hebb提出神经元之间突触联系是可变的假说Hebb学习律。第25页/共132页2023/2/21262高潮时期(19501968)以 Marvin Minsky,Frank Rosenblatt,Bernard Widrow等 为 代 表 人 物,代 表 作 是 单 级 感 知 器(Perceptron)。可用电子线路模拟。人们乐观地认为几乎已经找到了智能的关键。许多部门都开始大批地投入此项研究,希望尽快占领制高点。第26页/共132页2023/2/21273低潮时期(19691982)M.L.Minsky和S.Papert,Perceptron,MITPress,1969年 异或”运算不可表示 二十世纪70年代和80年代早期的研究结果 认识规律:认识实践再认识 第27页/共132页2023/2/21284、第二高潮期(19831990)1982年,J.Hopfield提出循环网络用Lyapunov函数作为网络性能判定的能量函数,建立ANNANN稳定性的判别依据阐明了ANNANN与动力学的关系用非线性动力学的方法来研究ANNANN的特性指出信息被存放在网络中神经元的联接上 第28页/共132页2023/2/21292)1984年,J.Hopfield设计研制了后来被人们称为Hopfield网的电路。较好地解决了著名的TSP问题,找到了最佳解的近似解,引起了较大的轰动。3)1985年,UCSD的Hinton、Sejnowsky、Rumelhart等人所在的并行分布处理(PDP)小组的研究者在Hopfield网络中引入了随机机制,提出所谓的Boltzmann机。第29页/共132页2023/2/21304)1986年,并行分布处理小组的Rumelhart等研究者重新独立地提出多层网络的学习算法BP算法,较好地解决了多层网络的学习问题。(Paker1982和Werbos1974年)国内首届神经网络大会是1990年12月在北京举行的。第30页/共132页2023/2/21315 5、再认识与应用研究期(1991)问题:1)应用面还不够宽2)结果不够精确3 3)存在可信度的问题 第31页/共132页2023/2/2132研究:1)开发现有模型的应用,并在应用中根据实际运行情况对模型、算法加以改造,以提高网络的训练速度和运行的准确度。2)充分发挥两种技术各自的优势是一个有效方法3)希望在理论上寻找新的突破,建立新的专用/通用模型和算法。4 4)进一步对生物神经系统进行研究,不断地丰富对人脑的认识。第32页/共132页9.2 人工神经网络基本模型人工神经网络基本模型第33页/共132页 9.2.1 感知器模型 感知器是一种早期的神经网络模型,由美国学者于1957年提出.感知器中第一次引入了学习的概念,使人脑所具备的学习功能在基于符号处理的数学到了一定程度的模拟,所以引起了广泛的关注。感知器在形式上与MP模型差不多,它们之间的区别在于神经元间连接权的变化。感知器的连接权定义为可变的,这样感知器就被赋予了学习的特性。第34页/共132页1、感知器的结构 第35页/共132页感知器处理单元对n个输入进行加权和操作:其中,xi为第i个输入,wi为第i个输入到处理单元的连接权值,为阈值。f是阶跃函数。为简化表示,把阈值 当作输入-w0 ,写成向量形式:返返 回回第36页/共132页 2、感知器的学习算法感知器的学习是有导师学习感知器的训练算法的基本原理来源于著名的Hebb学习律基本思想:逐步地将样本集中的样本输入到网络中,根据输出结果和理想输出之间的差别来调整网络中的权矩阵 第37页/共132页2023/2/2138感知器学习算法 1用适当的小伪随机数初始化权矩阵W;2.初置精度控制参数,学习率,精度控制变量d=+1;3While d do 3.1 d=0;3.2 for 每个样本(X,Y)do3.2.1 输入X(=(x1,x2,xn));3.2.2 求O=F(XW);3.2.3 修改权矩阵W:for i=1 to n,j=1 to m dowij=wij+(yj-oj)xi;3.2.4 累积误差for j=1 to m dod=d+(yj-oj)2第38页/共132页2023/2/21391、1962年,Rosenblatt证明:Perceptron可以学会它能表示的任何东西 2、Minsky在1969年证明,有许多基本问题是感知器无法解决3、问题线性可分性可能与时间有关4、很难从样本数据集直接看出问题是否线性可分5、未能证明,一个感知器究竟需要经过多少步才能完成训练。第39页/共132页2023/2/21403线性不可分问题 异或(ExclusiveOR)问题 G(x,y)y01x001110第40页/共132页2023/2/2141线性不可分函数R.O.Windner 1960年年 自变量个数函数的个数线性可分函数的个数144216143256104465,536188254.3*10994,57261.8*10195,028,134第41页/共132页2023/2/2142线性不可分问题的克服 用多个单级网组合在一起,并用其中的一个去综合其它单级网的结果,我们就可以构成一个两级网络,该网络可以被用来在平面上划分出一个封闭或者开放的凸域来一个非凸域可以拆分成多个凸域。按照这一思路,三级网将会更一般一些,我们可以用它去识别出一些非凸域来。解决好隐藏层的联接权的调整问题是非常关键的 第42页/共132页 9.2.2 9.2.2 线性神经网络线性神经网络 1、网络结构 50年代末,Widrow提出的Adaline是最早的线性神经网络,它是由一个或多个线性神经元构成,每个神经元的传递函数是一个线性函数,因此,线性神经网络的输出可以是任意值。一个线性神经元的网络结构如下图:w(1,1)w(1,R)bp(1)p(2)p(R)a第43页/共132页 2、传递函数 线性神经网络的传递函数是一个线性函数,如下图所示:Pa-b/w0+b/w第44页/共132页 3、线性神经元输出 在matlab中,线性传递函数purelin是计算神经元输出的,当只有一个神经元时,输出为:a=purelin(w*p+b)当输入是矩阵形式,神经元个数不止一个时,输出为:a=purelin(w*p,b)第45页/共132页思考:线性神经网络与感知器的区别?第46页/共132页 9.2.3 BP神经网络 1、网络学习算法提出 60年代末,Minsky和Papert指出了感知机的功能和处理能力的局限性,在感知机中引入隐含神经元,增加神经网络的层次,提高神经网络的处理能力,但却无法给出相应的网络学习算法。1986年,Rumelhart等人在多层神经网络模型的基础上,提出了多层神经网络模型的反向传播学习算法BP(Back propagation)算法,实现了Minsky的多层网络设想。第47页/共132页 2、隐层传递函数 BP网络的隐层传递函数通常是S型函数,常用logsig()和tansig()函数,也可以采用线性传递函数purelin()。函数如下图:Pa-b/w0-1+1a=logsig(w*p,b)a-b/w0-1+1Pa=tansig(w*p,b)a-b/w0+b/wPa=purelin(w*p,b)第48页/共132页 3、输出层函数 如果输出层是S型神经元,那么整个网络的输出被限制在一个较小的范围内,如果输出层使用线性神经元,那么输出可以取任意值。因此,一般隐层使用S型函数,输出层使用线性函数。传递函数均是可微的单调增函数。第49页/共132页 9.2.4 其它神经网络 1、径向基函数网络 BP网络用于函数逼近时,权值的调整采用的是梯度下降法,但存在着局部极小和收敛速度慢等缺点,而径向基函数网络在逼近能力、分类能力和学习速度等方面均优于BP网络,它的传递函数采用的是径向基函数,其输出是权值向量与输入向量P之间的距离乘以阈值b,即,a=radbas(dist(W,P)*b)2、回归网络 Matlab神经网络工具箱包括两种回归网络:Elman网络和J.Hopfield网络。Elman网络是一个两层网络,在第一层有一个反馈环节,第50页/共132页9.3BP神经网络理论神经网络理论第51页/共132页9.3.1网络结构 下图是一个神经元的结构图,生物神经元中的神经体(Soma)与人工神经元中的结点相对应,神经末梢(Dendrites,树突)与输入相对应,轴突(Axon)与输出相对应,突触(Synapse)与权值相对应。第52页/共132页 BP神经网络是一个多层网络,它的拓扑结构如下图所示。输入层i隐含层k输出层jwkiwjk第53页/共132页 在这一神经网络模型中,引入了中间隐含神经元层。标准的BP神经网络的拓扑结构由三层组成,最左层称为输入层,中间层称为隐含层,最右层称为输出层。输入层、输出层的个数可以由所求的问题决定,而中间层的神经元个数的确定需要探讨。各层次的神经元之间形成全互连连接,各层次内的神经元之间没有连接。三层神经网络已经足以模拟输入与输出之间的复杂的非线性映射关系。更多的网络层虽然能提高神经网络学习复杂映射关系的能力,但因为随着网络层的增加,神经元及其连接权将大规模增加,所占用的计算机资源过多,网络学习收敛反而慢了。第54页/共132页 各个神经元之间的连接并不只是一个单纯的传输信号的通道,而是在每对神经元之间的连接上有一个加权系数,这个加权系数就是权值,它起着生物神经系统中神经元的突触强度的作用,它可以加强或减弱上一个神经元的输出对下一个神经元的刺激。修改权值的规则称为学习算法,它可以根据经验或学习来改变。第55页/共132页9.3.2 数学模型输入层与隐层间权值为:阈值为:隐层与输出层间权值为:阈值为:网络的作用函数称为S型函数:假定:第56页/共132页,输入层神经元 i:输入:输出:=隐含层神经元 k:输入:输出:=输出层神经元 j:输入:输出:=第57页/共132页那么:误差 为期望输出第58页/共132页采用梯度法对各层权值进行修正:非输出层神经元的误差 等于所有与该神经元相连的神经元的输出端误差 乘以对应的权值 并求和。第59页/共132页BP神经网络数学描述要点:输入和输出的样本对的关系是连续非线性的,如:各层输入与输出的关系 由权值wki和wjk构成的两个权重矩阵、两个偏差矩阵 (列矩阵)的行列关系 网络计算目的与初始条件(输入与输出、样本对、初始 权值与偏差值)第60页/共132页9.3.3 学习算法 从本质上说,神经网络的训练问题是一个函数极小化问题,但由于它的数学基础是非线性理论,因系统的高度非线性使最初的BP算法存在效率低、收敛慢、易于陷入局部极小等缺陷,使神经网络在复杂系统中的应用受到限制。大部分新的研究都集中在算法的改进上,如共轭梯度算法、基于信息熵优化的算法、改进的BP法等。通过这些研究,使神经网络的应用得到进一步的发展。第61页/共132页初始化神经网络训练结束吗?给定学习模式(输入/输出对)求隐含层、输出层神经元的输出计算实际输出与期望输出之差误差小于指定值?计算隐含层神经元误差计算误差梯度权值修正给出新的输 入计算神经网络输出是是否否1、计算流程图第62页/共132页2、算法步骤1)构造学习训练模式。给出输入、输出样本对P和T。P和T可以是向量,也可以是矩阵,它们不一定为同列。2)网络状态初始化。用随机化方法将两个权重矩阵Wki(行k=1,2,m,列i=1,2,n)、Wjk(行j=1,2,o)和两个偏差矩阵bi、bj置初始值。3)将P的值送到输入层神经元,通过连接权重矩阵Wki 送到隐含层神经元,产生隐含层神经元输出值第63页/共132页tj为理想输出 5)计算输出层神经元的一般化误差 6)计算隐含层神经元对于每个ej的误差8)调整输入层到隐含层的连接权重此式相当于将输出层神经元的误差反向传播到隐含层。7)调整隐含层到输出层的连接权重第64页/共132页 9)调整输出层神经元的偏差10)调整隐含层神经元的偏差11)重复第3)步至第10)步的内容,直到对于k=1,2,m的误差ej(j=1,2,q)变得足够小为止。第65页/共132页 从上面的过程可以看出,BP网络的学习和训练分成两个阶段,在第一阶段里对于给定的网络输入,通过现有连接权重将其正向传播,获得各个神经元的实际输出;在第二阶段里,首先计算出输出层各神经元的一般化误差,这些误差逐层向输入层方向逆向传播,以获得调整各连接权重所需的各神经元参考误差。学习完成后的网络在预报时使用第3)、4)步中的正向传播公式。第66页/共132页9.3.4 网络的泛化能力 关于神经网络的泛化能力,有以下定义:定义1 当网络中的部分结点或连接权失效时,网络仍能保持正常或稳定的输入输出关系的特性称为网络的容错性(fault tolerance)。定义2当输入信息或连接网络的参数发生有限摄动时,网络仍能保持正常或稳定的输入输出关系的特性称为网络的鲁棒性(robustness)。定义3对于同一样本集里的非训练样本,网络仍能给出正确的输入输出关系的能力称为网络的泛化能力(generalization capability)。第67页/共132页 网络的泛化能力依赖于网络结构的参数(如隐含层神经元数及其激活函数特性、隐含层数等)和训练样本的特性。由于BP网络算法的实质是非线性规划中的最速下降法,而非线性优化的任何局部搜索算法都不可避免地存在局部极小问题。为了尽量避免局部极小,提高网络泛化能力,对网络结构参数及训练样本必须进行分析、研究和选择。第68页/共132页9.3.5 算法的改进 许多实际问题都可以化成神经网络进行求解。对于连续非线性问题采用三层神经网络就足以逼近。但对更复杂的非线性问题,为提高神经网络的映射能力,一般需要增加网络的层数,这样就不可避免地增加了网络学习和计算的时间。为此,对算法进行改进,通过增加权重动量项增加权重动量项、学习速率的自适应学习速率的自适应调整调整以及权值和偏差值初始化的权值和偏差值初始化的N-WN-W法法提高学习效率和减少迭代次数。第69页/共132页1、权重动量项 在网络里增加权重动量项是绝大部分改进方法里必涉及的内容。具体做法是在迭代后的权重上加上某个动量因子。设wjk(n+1)表示当前的权重修正值,wjk(n)表示上一学习周期的权重修正值,即:式中,01。计算时,用有动量项的权重算出新的网络输出误差,如果该输出误差大于用没有动量项的权重算出的网络输出误差的话,说明加动量项没有效果,则令=0,反之,要考虑加进动量项这一项。第70页/共132页网络误差曲线第71页/共132页第72页/共132页2、学习速率的自适应调整 前节内容曾提出过,学习速率的选取对网络训练的效果有较明显的影响。学习速率过大第73页/共132页在此,我们讨论学习速率的自适应调整问题。其基本思路是根据网络输出误差的大小由算法自动调整学习速率的大小,计算原理如下:(1)先求网络输出误差。如果SSE小于指定的误差精度,则网络训练成功,否则转入下一步。以下各运算符号均表示矩阵或向量。第74页/共132页 式中,P为输入样本矩阵,ONE为1行Nc列的全1矩阵,Nc为W1P矩阵的列数,ONE1为1行Nc1列的全1矩阵,Nc1为W2A1矩阵的列数,T为输出样本矩阵,f(z)为Sigmoid函数或双曲正切S函数。(2)进入学习阶段。设定学习循环数以进行迭代,迭代过程计算原理为:第75页/共132页 式中I为单位矩阵;ONES1为Pc行1列的全1矩阵,Pc是P的列数;ONES2为Pc1行1列的全1矩阵,Pc1是A1的列数;Lr为学习速率,其他符号的含义同前。将新的W1、B1和W2、B2代回第(1)阶段计算。第76页/共132页 (3)学习速率自适应调整计算。首先赋值:TW1=W1 TW2=W2 TB1=B1 TB2=B2然后将TW1、TW2和TB1、TB2代入第(1)步计算,得到TA1、TA2、TE、TSSE。如果TSSE大于SSE(取左右),则经自适应调整的学习速率为Lr=1Lr(1取左右),如果TSSE小于SSE,则经自适应调整的学习速率为Lr=2Lr(2取左右),从而实现了学习速率的自适应调整。第77页/共132页 (4)将TW1、TW2和TB1、TB2以及TA1、TA2、TE、TSSE再赋给W1、W2和B1、B2以及A1、A2、E、SSE,然后代入第(1)步计算,如果SSE小于指定的误差精度,则网络训练成功,否则的话,转入第(2)、(3)、(4)步进行迭代计算。第78页/共132页训练中的学习速率变化 训练中的误差变化第79页/共132页3、初始权值与偏差值随机化的Nguyen-Widrow法 通常的初始权重值与偏差值随机化方法都是在区间(-1,1)之间取均匀分布的随机数的函数,这样初始权重值W与偏差值B为:式中s,r分别为隐含层神经元数和输入样本的行数,rand(s,r)为s行r列的均匀分布的随机数矩阵,I(s,r)为s行r列的全1矩阵,目的是保证权值分布在区间(-1,1)范围内。第80页/共132页 计算表明,它并不是很好的方法,对复杂的高非线性系统,它造成较低的计算效率。Nguyen和Widrow提出的N-W法初始化权重值与偏差值,对计算效率的提高有较明显的效果。其计算原理为:第81页/共132页 式中各符号的含义同前,normr(M)为M矩阵的标准化归 一矩阵:第82页/共132页9.3.6 网络结构参数的确定1、学习速率的初始值的确定 在网络开始训练学习时,需要指定一个初始的学习速率。学习速率对网络的收敛情况有很大的影响,若取值大,虽然一开始网络学习效率很高,但到收敛精度附近很容易产生振荡,其结果反而不容易收敛;如果取值小,虽然“振荡”问题避免了,但网络的学习效率却很低。所以,学习速率初始值的选择是很重要的。那么,究竟选多少好呢?根据BP神经网络的计算原理,学习速率的取值范围为0Lr(i+j)2 或 k=i+j 2)设m为样本数,则最小的k为:3)c为1至10之间的常数。第84页/共132页 4)5)6)设 则由下式求出可k:第85页/共132页 以上给出的算法有些并不是针对BP网络而定的,例如第1)、5)、6)中的公式就是如此。通过实例计算分析,第2)种方法求出的隐含层神经元个数较好,它对网络训练效率的提高是有明显效果的。例如:m=60,i=8,由此式计算出的最小k=6。第86页/共132页3、网络收敛精度的确定 网络收敛精度对神经网络的训练效率有着最直接的影响,其影响率是非线性的,也就是说,收敛精度提高10倍,训练的循环迭代次数可能增加几百倍。网络收敛精度的确定要从两个主要方面来考虑,一是所研究问题的情况,一是精度与网络计算次数之间的最佳协调。如果所研究的问题有很强的规律性,则可以把收敛精度提高,一般可以达到10-4到10-6;如果所研究的问题非线性程度高且为工程实际问题,则要牺牲一些精度,一般取在210-3左右。从另一方面来说,如果提高收敛精度并不明显增加计算次数的话,则要考虑适当提高收敛精度;如果提高收敛精度明显增加计算次数、且对训练后的网络的预报精度没有明显提高的话,则要适当降低网络的收敛精度。第87页/共132页9.4BP神经网络应用神经网络应用第88页/共132页函数逼近1989年,Robert Hecht-Nielson 证明了对于闭区间内的任一个连续函数都可以用一个隐层的BP网络来逼近,因而一个三层的BP网可以完成任意的n维到m维的映射。第89页/共132页例第90页/共132页网络设计确定网络结构这是一个具有一个输入、一个输出和五个中间(隐层)神经元的神经网络计算程序。输入输出样本数是21个。网络结构如图:第91页/共132页网络设计(Cont.)初始权值;学习速率;期望误差。第92页/共132页程序设计给出输入样本P和输出样本T,绘制期望曲线,一个近似正弦波形(图),P和T都是一个21个元素的行向量;初试化权值和偏差值,给出一组输入样本P2,打印初始输出图形(图);网络训练阶段。根据误差不断调整权值及偏差 值进行学习,最终得到网络结构参数;打印最终结果:两个权值矩阵及两个偏差矩 阵、迭代次数和误差等信息(图)。第93页/共132页函数逼近代码%bp1P=-1:0.1:1;P2=-1:0.1:1;T=-0.96-0.577-0.0729 0.377 0.641 0.66 0.461 0.1336.-0.201-0.434-0.5-0.393-0.1647 0.0988 0.3072.0.396 0.3449 0.1816-0.0312-0.2183-0.3201;plot(P,T,r+);第94页/共132页R,Q=size(P);S2,Q=size(T);S1=5;W1,B1=rands(S1,R);W2,B2=rands(S2,S1);b1=;b2=;b1=B1*ones(1,21);b2=B2*ones(1,21);a2=W2*tansig(W1*P2+b1)+b2;A2=purelin(a2);第95页/共132页hold onplot(P,A2)hold offdisp(按任一键继续)pause第96页/共132页net=newcf(minmax(P),5,1,tansig,purelin,traingd);net.trainParam.epochs=7000;net.trainParam.lr=0.15;net,tr=train(net,P,T);%训练网络Y=sim(net,P);%计算结果plot(P,Y,r-)holdplot(P,T,r+);hold off第97页/共132页返返 回回第98页/共132页返返 回回第99页/共132页返返 回回第100页/共132页迭代了1900次。改进?返返 回回第101页/共132页一种改进控制初始权值%bp6;%P=-1:0.1:1;%P2=-1:0.1:1;T=-0.96-0.577-0.0729 0.377 0.641 0.66 0.461 0.1336.-0.201-0.434-0.5-0.393-0.1647 0.0988 0.3072.0.396 0.3449 0.1816-0.0312-0.2183-0.3201;net=newcf(minmax(P),5,1,tansig,purelin,traingd);第102页/共132页net.initParam=;net=initnw(net,1);w0=net.iw1,1,b0=net.b1,w1=net.lw2,1,b1=net.b2,第103页/共132页disp(按任一键继续)pausey=sim(net,P);%初始输出plot(P,T,ro)%画输入矢量图 hold onplot(P,y)%画输出矢量图hold off第104页/共132页net.trainParam.epochs=7000;%初始化训练次数net.trainParam.goal=9.5238e-004;%sse=0.02;net.iw1,1=w0*0.5;net.b1=b0*0.5;net.trainParam.lr=0.15;net tr=train(net,P,T);%训练网络Y=sim(net,P);%计算结果第105页/共132页figure(2)plot(P,T,ro)%画输入矢量图 hold onplot(P,Y)%画输出矢量图hold off第106页/共132页改进结果第107页/共132页第108页/共132页第109页/共132页字母识别图像采集与预处理第110页/共132页调用的字母产生程序functionalphabet,targets=prodat()%Returns:%ALPHABET-35x26 matrix of 5x7 bit maps for each letter.%TARGETS -26x26 target vectors.letterA=0 0 1 0 0.0 1 0 1 0.0 1 0 1 0.1 0 0 0 1.1 1 1 1 1.1 0 0 0 1.1 0 0 0 1;letterB=1 1 1 1 0.1 0 0 0 1.1 0 0 0 1.1 1 1 1 0.1 0 0 0 1.1 0 0 0 1.1 1 1 1 0;letterC=0 1 1 1 0.1 0 0 0 1.1 0 0 0 0.1 0 0 0 0.1 0 0 0 0.1 0 0 0 1.0 1 1 1 0;letterD =1 1 1 1 0.1 0 0 0 1.1 0 0 0 1.1 0 0 0 1.1 0 0 0 1.1 0 0 0 1.1 1 1 1 0;第111页/共132页letterG=0 1 1 1 0.1 0 0 0 1.1 0 0 0 0.1 0 0 0 0.1 0 0 1 1.1 0 0 0 1.0 1 1 1 0;letterH=1 0 0 0 1.1 0 0 0 1.1 0 0 0 1.1 1 1 1 1.1 0 0 0 1.1 0 0 0 1.1 0 0 0 1;letterI=0 1 1 1 0.0 0 1 0 0.0 0 1 0 0.0 0 1 0 0.0 0 1 0 0.0 0 1 0 0.0 1 1 1 0;letterE =1 1 1 1 1.1 0 0 0 0.1 0 0 0 0.1 1 1 1 0.1 0 0 0 0.1 0 0 0 0.1 1 1 1 1;letterF=1 1 1 1 1.1 0 0 0 0.1 0 0 0 0.1 1 1 1 0.1 0 0 0 0.1 0 0 0 0.1 0 0 0 0;第112页/共132页Prodat.m(cont.)letterJ=1 1 1 1 1.0 0 1 0 0.0 0 1 0 0.0 0 1 0 0.0 0 1 0 0.1 0 1 0 0.0 1 0 0 0;letterK=1 0 0 0 1.1 0 0 1 0.1 0 1 0 0.1 1 0 0 0.1 0 1 0 0.1 0 0 1 0.1 0 0 0 1;letterL=1 0 0 0 0.1 0 0 0 0.1 0 0 0 0.1 0 0 0 0.1 0 0 0 0.1 0 0 0 0.1 1 1 1 1;letterM=1 0 0 0 1.1 1 0 1 1.1 0 1 0 1.1 0 0 0 1.1 0 0 0 1.1 0 0 0 1.1 0 0 0 1;letterN=1 0 0 0 1.1 1 0 0 1.1 1 0 0 1.1 0 1 0 1.1 0 0 1 1.1 0 0 1 1.1 0 0 0 1;letterO=0 1 1 1 0.1 0 0 0 1.1 0 0 0 1.1 0 0 0 1.1 0 0 0 1.1 0 0 0 1.0 1 1 1 0;letterP=1 1 1 1 0.1 0 0 0 1.1 0 0 0 1.1 1 1 1 0.1 0 0 0 0.1 0 0 0 0.1 0 0 0 0;letterQ=0 1 1 1 0.1 0 0 0 1.1 0 0 0 1.1 0 0 0 1.1 0 1 0 1.1 0 0 1 0.0 1 1 0 1;letterR=1 1 1 1 0.1 0 0 0 1.1 0 0 0 1.1 1 1 1 0.1 0 1 0 0.1 0 0 1 0.1 0 0 0 1;letterS=0 1 1 1 0.1 0 0 0 1.0 1 0 0 0.0 0 1 0 0.0 0 0 1 0.1 0 0 0 1.0 1 1 1 0;第113页/共132页Prodat.m(cont.)letterT=1 1 1 1 1.0 0 1 0 0.0 0 1 0 0.0 0 1 0 0.0 0 1 0 0.0 0 1 0 0.0 0 1 0 0;letterU=1 0 0 0 1.1 0 0 0