Ch9人工神经网络.ppt

上传人:小飞机 文档编号:5421548 上传时间:2023-07-05 格式:PPT 页数:132 大小:692.50KB
返回 下载 相关 举报
Ch9人工神经网络.ppt_第1页
第1页 / 共132页
Ch9人工神经网络.ppt_第2页
第2页 / 共132页
Ch9人工神经网络.ppt_第3页
第3页 / 共132页
Ch9人工神经网络.ppt_第4页
第4页 / 共132页
Ch9人工神经网络.ppt_第5页
第5页 / 共132页
点击查看更多>>
资源描述

《Ch9人工神经网络.ppt》由会员分享,可在线阅读,更多相关《Ch9人工神经网络.ppt(132页珍藏版)》请在三一办公上搜索。

1、第9章 人工神经网络与遗传算法,Artificial Neural Network and Genetic Algorithms,本章内容9.1 人工神经网络概述 9.1.1 生物神经元 9.1.2 人工神经网络的构成9.2 人工神经网络基本模型 9.2.1 感知器模型 9.2.2 线性神经网络 9.2.3 BP神经网络 9.2.4 其他神经网络,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.2 字符识别,9.

2、1 人工神经网络概述,生物神经系统是一个有高度组织和相互作用的数量巨大的细胞组织群体。人类大脑的神经细胞大约在1011一1013个左右。神经细胞也称神经元,是神经系统的基本单元,它们按不同的结合方式构成了复杂的神经网络。通过神经元及其联接的可塑性,使得大脑具有学习、记忆和认知等各种智能。,9.1.1 生物神经元,1、结构,神经元由细胞体(Soma)和延伸部分组成。延伸部分按功能分有两类,一种称为树突(Dendrite),用来接受来自其他神经元的信息;另一种用来传递和输出信息,称为轴突(Axon)。神经元之间的相互连接从而让信息传递的部位披称为突触(Synapse),突触的联接是可塑的,也就是说

3、突触特性的变化是受到外界信息的影响或自身生长过程的影响。,2、特征(1)并行分布处理 大脑中单个神经元的信息处理速度是很慢的,每次约1毫秒,比通常的电子门电路要慢几个数量级。但是人脑对某一复杂过程的处理和反应却很快,一般只需几百毫秒。而在这个处理过程中,与脑神经系统的一些主要功能,如视觉、记亿、推理等有关。按照上述神经元的处理速度,如果采用串行工作模式,就必须在几百个串行步内完成,这实际上是不可能办到的。因此只能把它看成是一个由众多神经元所组成的超高密度的并行处理系统。例如在一张照片寻找一个熟人的面孔,对人脑而言,几秒钟便可完成,但如用计算机来处理,以现有的技术,是不可能在短时间内完成的。,(

4、2)神经系统的可塑性和自组织性 从生理学的角度看,它体现在突触的可塑性和联接状态的变化。例如在某一外界信息反复刺激下接受该信息的神经细胞之间的突触结合强度会增强。这种可塑性反映出大脑功能既有先天的制约因素,也有可能通过后天的训练和学习而得到加强。(3)信息处理与信息存贮合二为一 由于大脑神经元兼有信息处理和存贮功能,所以在进行回亿时,不但不存在先找存贮地址而后再调出所存内容的问题,而不像现行计算机那样存贮地址和存贮内容是彼此分开的。,(4)信息处理的系统性 大脑的各个部位是一个大系统中的许多子系统。各个子系统之间具有很强的相互联系,一些子系统可以调节另一些子系统的行为。例如,视觉系统和运动系统

5、就存在很强的系统联系,可以相互协调各种信息处理功能。(5)能接受和处理模糊的、模拟的、随机的信息,9.1.2 人工神经网络 人工神经网络(Artificial Neural Network,ANN)是对人类大脑特性的一种描述。它是一个数学模型,可以用电子线路实现,也可以用计算机程序来模拟。是人工智能研究的一种方法。,2023/7/5,12,1、定义 1)HechtNielsen(1988年)人工神经网络是一个并行、分布处理结构,它由处理单元及其称为联接的无向讯号通道互连而成。这些处理单元(PEProcessing Element)具有局部内存,并可以完成局部操作。每个处理单元有一个单一的输出联

6、接,这个输出可以根据需要被分枝成希望个数的许多并行联接,且这些并行联接都输出相同的信号,即相应处理单元的信号,信号的大小不因分支的多少而变化。,2023/7/5,13,(1)HechtNielsen(1988年)(续)处理单元的输出信号可以是任何需要的数学模型,每个处理单元中进行的操作必须是完全局部的。也就是说,它必须仅仅依赖于经过输入联接到达处理单元的所有输入信号的当前值和存储在处理单元局部内存中的值。,2023/7/5,14,强调:并行、分布处理结构;一个处理单元的输出可以被任意分枝,且大小不变;输出信号可以是任意的数学模型;处理单元完全的局部操作,2023/7/5,15,(2)Rumel

7、lhart,McClelland,Hinton的PDP 1)一组处理单元(PE或AN);2)处理单元的激活状态(ai);3)每个处理单元的输出函数(fi);4)处理单元之间的联接模式;5)传递规则(wijoi);6)把处理单元的输入及当前状态结合起来产生激活值的激活规则(Fi);7)通过经验修改联接强度的学习规则;8)系统运行的环境(样本集合)。,2023/7/5,16,(3)Simpson(1987年)人工神经网络是一个非线性的有向图,图中含有可以通过改变权大小来存放模式的加权边,并且可以从不完整的或未知的输入找到模式。,2023/7/5,17,2、关键特征(1)信息的分布表示(2)运算的全

8、局并行与局部操作(3)处理的非线性特征,下图是一个神经元的结构图,通过与生物神经元的比较可以知道它们的有机联系,生物神经元中的神经体与人工神经元中的结点相对应,树突(神经末梢)与输入相对应,轴突与输出相对应,突触与权值相对应。,3、ANN研究与应用的主要内容(1)人工神经网络模型的研究 神经网络原型研究,即大脑神经网络的 生理结构、思维机制。神经元的生物特性如时空特性、电化 学性质等的人工模拟。易于实现的神经网络计算模型。神经网络的学习算法与学习系统。,(2)神经网络基本理论 神经网络的非线性特性,包括自组织、自适应等作用。神经网络的基本性能,包括稳定性、收敛性、容错性、鲁棒性、动力学复杂性。

9、神经网络的计算能力与信息存贮容量。,(3)神经网络智能信息处理系统的应用 认知与人工智能,包括模式识别、计算机视觉与听觉、特征提取、语音识别语言翻译、联想记忆、逻辑推理、知识工程、专家系统、故障诊断、智能机器人等。优化与控制,包括决策与管理、系统辨识、鲁棒性控制、自适应控制、并行控制、分布控制等。信号处理,自适应滤波、时间序列预测、消噪、非线性预测、非线性编码等。,(4)神经网络的软件模拟和硬件实现(5)神经网络计算机的实现,4、ANN的信息处理能力 存贮能力和计算能力是现代计算机科学中的两个基本问题,同样,它们也构成了人工神经网络研究中的基本问题。人工神经网络的信息处理能力包括两方面的内容:

10、神经网络信息存贮能力 即要解决这样的一个问题:在一个有N个神经元的神经网络中,可存贮多少值的信息?神经网络的计算能力,(1)神经网络的存贮能力 定义:一个存贮器的信息表达能力定义为其可分辨的信息类型的对数值。在一个M1的随机存贮器RAM中,有M位地址,一位数据,它可存贮2M位信息。M1的RAM的存贮能力为:C2M(位)。,(2)神经网络的计算能力 数学的近似映射 概率密度函数的估计 从二进制数据基中提取相关的知识 形成拓扑连续及统计意义上的同构映射 最近相邻模式分类 数据聚类 最优化问题 用来求解局部甚至是全局最优解。,2023/7/5,26,9.1.3 人工神经网络发展回顾,1、产生期(20

11、世纪40年代)人工神经网络的研究最早可以追溯到人类开始研究自己的智能的时期,到1949年止。1943年,心理学家McCulloch和数学家Pitts建立起了著名的阈值加权和模型,简称为M-P模型。发表于数学生物物理学会刊Bulletin of Mathematical Biophysics1949年,心理学家D.O.Hebb提出神经元之间突触联系是可变的假说Hebb学习律。,2023/7/5,27,2 高潮时期(19501968),以Marvin Minsky,Frank Rosenblatt,Bernard Widrow等为代表人物,代表作是单级感知器(Perceptron)。可用电子线路模

12、拟。人们乐观地认为几乎已经找到了智能的关键。许多部门都开始大批地投入此项研究,希望尽快占领制高点。,2023/7/5,28,3 低潮时期(19691982),M.L.Minsky和S.Papert,Perceptron,MIT Press,1969年 异或”运算不可表示 二十世纪70年代和80年代早期的研究结果 认识规律:认识实践再认识,2023/7/5,29,4、第二高潮期(19831990),1982年,J.Hopfield提出循环网络用Lyapunov函数作为网络性能判定的能量函数,建立ANN稳定性的判别依据阐明了ANN与动力学的关系用非线性动力学的方法来研究ANN的特性指出信息被存放在

13、网络中神经元的联接上,2023/7/5,30,2)1984年,J.Hopfield设计研制了后来被人们称为Hopfield网的电路。较好地解决了著名的TSP问题,找到了最佳解的近似解,引起了较大的轰动。3)1985年,UCSD的Hinton、Sejnowsky、Rumelhart等人所在的并行分布处理(PDP)小组的研究者在Hopfield网络中引入了随机机制,提出所谓的Boltzmann机。,2023/7/5,31,4)1986年,并行分布处理小组的Rumelhart等研究者重新独立地提出多层网络的学习算法BP算法,较好地解决了多层网络的学习问题。(Paker1982和Werbos1974年

14、)国内首届神经网络大会是1990年12月在北京举行的。,2023/7/5,32,5、再认识与应用研究期(1991),问题:1)应用面还不够宽2)结果不够精确3)存在可信度的问题,2023/7/5,33,研究:1)开发现有模型的应用,并在应用中根据实际运行情况对模型、算法加以改造,以提高网络的训练速度和运行的准确度。2)充分发挥两种技术各自的优势是一个有效方法3)希望在理论上寻找新的突破,建立新的专用/通用模型和算法。4)进一步对生物神经系统进行研究,不断地丰富对人脑的认识。,9.2 人工神经网络基本模型,9.2.1 感知器模型 感知器是一种早期的神经网络模型,由美国学者F.Rosenblatt

15、于1957年提出.感知器中第一次引入了学习的概念,使人脑所具备的学习功能在基于符号处理的数学到了一定程度的模拟,所以引起了广泛的关注。感知器在形式上与MP模型差不多,它们之间的区别在于神经元间连接权的变化。感知器的连接权定义为可变的,这样感知器就被赋予了学习的特性。,1、感知器的结构,感知器处理单元对n个输入进行加权和操作:其中,xi为第i个输入,wi为第i个输入到处理单元的连接权值,为阈值。f是阶跃函数。为简化表示,把阈值 当作输入-w0,写成向量形式:,返 回,2、感知器的学习算法感知器的学习是有导师学习感知器的训练算法的基本原理来源于著名的Hebb学习律基本思想:逐步地将样本集中的样本输

16、入到网络中,根据输出结果和理想输出之间的差别来调整网络中的权矩阵,2023/7/5,39,感知器学习算法,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,2023/7/5,40,1、1962年,Rosenblatt证明:

17、Perceptron可以学会它能表示的任何东西 2、Minsky在1969年证明,有许多基本问题是感知器无法解决3、问题线性可分性可能与时间有关4、很难从样本数据集直接看出问题是否线性可分5、未能证明,一个感知器究竟需要经过多少步才能完成训练。,2023/7/5,41,3 线性不可分问题,异或(Exclusive OR)问题,2023/7/5,42,线性不可分函数,R.O.Windner 1960年,2023/7/5,43,线性不可分问题的克服,用多个单级网组合在一起,并用其中的一个去综合其它单级网的结果,我们就可以构成一个两级网络,该网络可以被用来在平面上划分出一个封闭或者开放的凸域来一个非

18、凸域可以拆分成多个凸域。按照这一思路,三级网将会更一般一些,我们可以用它去识别出一些非凸域来。解决好隐藏层的联接权的调整问题是非常关键的,9.2.2 线性神经网络 1、网络结构 50年代末,Widrow提出的Adaline是最早的线性神经网络,它是由一个或多个线性神经元构成,每个神经元的传递函数是一个线性函数,因此,线性神经网络的输出可以是任意值。一个线性神经元的网络结构如下图:,2、传递函数 线性神经网络的传递函数是一个线性函数,如下图所示:,3、线性神经元输出 在matlab中,线性传递函数purelin是计算神经元输出的,当只有一个神经元时,输出为:a=purelin(w*p+b)当输入

19、是矩阵形式,神经元个数不止一个时,输出为:a=purelin(w*p,b),思考:线性神经网络与感知器的区别?,9.2.3 BP神经网络 1、网络学习算法提出 60年代末,Minsky和Papert指出了感知机的功能和处理能力的局限性,在感知机中引入隐含神经元,增加神经网络的层次,提高神经网络的处理能力,但却无法给出相应的网络学习算法。1986年,Rumelhart等人在多层神经网络模型的基础上,提出了多层神经网络模型的反向传播学习算法BP(Back propagation)算法,实现了Minsky的多层网络设想。,2、隐层传递函数 BP网络的隐层传递函数通常是S型函数,常用logsig()和

20、tansig()函数,也可以采用线性传递函数purelin()。函数如下图:,3、输出层函数 如果输出层是S型神经元,那么整个网络的输出被限制在一个较小的范围内,如果输出层使用线性神经元,那么输出可以取任意值。因此,一般隐层使用S型函数,输出层使用线性函数。传递函数均是可微的单调增函数。,9.2.4 其它神经网络 1、径向基函数网络 BP网络用于函数逼近时,权值的调整采用的是梯度下降法,但存在着局部极小和收敛速度慢等缺点,而径向基函数网络在逼近能力、分类能力和学习速度等方面均优于BP网络,它的传递函数采用的是径向基函数,其输出是权值向量与输入向量P之间的距离乘以阈值b,即,a=radbas(d

21、ist(W,P)*b)2、回归网络 Matlab神经网络工具箱包括两种回归网络:Elman网络和J.Hopfield网络。Elman网络是一个两层网络,在第一层有一个反馈环节,,9.3 BP神经网络理论,9.3.1 网络结构 下图是一个神经元的结构图,生物神经元中的神经体(Soma)与人工神经元中的结点相对应,神经末梢(Dendrites,树突)与输入相对应,轴突(Axon)与输出相对应,突触(Synapse)与权值相对应。,BP神经网络是一个多层网络,它的拓扑结构如下图所示。,在这一神经网络模型中,引入了中间隐含神经元层。标准的BP神经网络的拓扑结构由三层组成,最左层称为输入层,中间层称为隐

22、含层,最右层称为输出层。输入层、输出层的个数可以由所求的问题决定,而中间层的神经元个数的确定需要探讨。各层次的神经元之间形成全互连连接,各层次内的神经元之间没有连接。三层神经网络已经足以模拟输入与输出之间的复杂的非线性映射关系。更多的网络层虽然能提高神经网络学习复杂映射关系的能力,但因为随着网络层的增加,神经元及其连接权将大规模增加,所占用的计算机资源过多,网络学习收敛反而慢了。,各个神经元之间的连接并不只是一个单纯的传输信号的通道,而是在每对神经元之间的连接上有一个加权系数,这个加权系数就是权值,它起着生物神经系统中神经元的突触强度的作用,它可以加强或减弱上一个神经元的输出对下一个神经元的刺

23、激。修改权值的规则称为学习算法,它可以根据经验或学习来改变。,9.3.2 数学模型,假定:,,,BP神经网络数学描述要点:输入和输出的样本对的关系是连续非线性的,如:,各层输入与输出的关系 由权值wki和wjk构成的两个权重矩阵、两个偏差矩阵(列矩阵)的行列关系 网络计算目的与初始条件(输入与输出、样本对、初始 权值与偏差值),9.3.3 学习算法 从本质上说,神经网络的训练问题是一个函数极小化问题,但由于它的数学基础是非线性理论,因系统的高度非线性使最初的BP算法存在效率低、收敛慢、易于陷入局部极小等缺陷,使神经网络在复杂系统中的应用受到限制。大部分新的研究都集中在算法的改进上,如共轭梯度算

24、法、基于信息熵优化的算法、改进的BP法等。通过这些研究,使神经网络的应用得到进一步的发展。,1、计算流程图,9)调整输出层神经元的偏差,10)调整隐含层神经元的偏差,11)重复第3)步至第10)步的内容,直到对于k=1,2,m的误差ej(j=1,2,q)变得足够小为止。,从上面的过程可以看出,BP网络的学习和训练分成两个阶段,在第一阶段里对于给定的网络输入,通过现有连接权重将其正向传播,获得各个神经元的实际输出;在第二阶段里,首先计算出输出层各神经元的一般化误差,这些误差逐层向输入层方向逆向传播,以获得调整各连接权重所需的各神经元参考误差。学习完成后的网络在预报时使用第3)、4)步中的正向传播

25、公式。,9.3.4 网络的泛化能力 关于神经网络的泛化能力,有以下定义:定义1 当网络中的部分结点或连接权失效时,网络仍能保持正常或稳定的输入输出关系的特性称为网络的容错性(fault tolerance)。定义2 当输入信息或连接网络的参数发生有限摄动时,网络仍能保持正常或稳定的输入输出关系的特性称为网络的鲁棒性(robustness)。定义3 对于同一样本集里的非训练样本,网络仍能给出正确的输入输出关系的能力称为网络的泛化能力(generalization capability)。,网络的泛化能力依赖于网络结构的参数(如隐含层神经元数及其激活函数特性、隐含层数等)和训练样本的特性。由于BP

26、网络算法的实质是非线性规划中的最速下降法,而非线性优化的任何局部搜索算法都不可避免地存在局部极小问题。为了尽量避免局部极小,提高网络泛化能力,对网络结构参数及训练样本必须进行分析、研究和选择。,9.3.5 算法的改进 许多实际问题都可以化成神经网络进行求解。对于连续非线性问题采用三层神经网络就足以逼近。但对更复杂的非线性问题,为提高神经网络的映射能力,一般需要增加网络的层数,这样就不可避免地增加了网络学习和计算的时间。为此,对算法进行改进,通过增加权重动量项、学习速率的自适应调整以及权值和偏差值初始化的N-W法提高学习效率和减少迭代次数。,1、权重动量项 在网络里增加权重动量项是绝大部分改进方

27、法里必涉及的内容。具体做法是在迭代后的权重上加上某个动量因子。设wjk(n+1)表示当前的权重修正值,wjk(n)表示上一学习周期的权重修正值,即:,式中,01。计算时,用有动量项的权重算出新的网络输出误差,如果该输出误差大于用没有动量项的权重算出的网络输出误差的话,说明加动量项没有效果,则令=0,反之,要考虑加进动量项这一项。,网络误差曲线,2、学习速率的自适应调整 前节内容曾提出过,学习速率的选取对网络训练的效果有较明显的影响。学习速率过大,在此,我们讨论学习速率的自适应调整问题。其基本思路是根据网络输出误差的大小由算法自动调整学习速率的大小,计算原理如下:(1)先求网络输出误差。如果SS

28、E小于指定的误差精度,则网络训练成功,否则转入下一步。以下各运算符号均表示矩阵或向量。,式中,P为输入样本矩阵,ONE为1行Nc列的全1矩阵,Nc为W1P矩阵的列数,ONE1为1行Nc1列的全1矩阵,Nc1为W2A1矩阵的列数,T为输出样本矩阵,f(z)为Sigmoid函数或双曲正切S函数。,(2)进入学习阶段。设定学习循环数以进行迭代,迭代过程计算原理为:,式中I为单位矩阵;ONES1为Pc行1列的全1矩阵,Pc是P的列数;ONES2为Pc1行1列的全1矩阵,Pc1是A1的列数;Lr为学习速率,其他符号的含义同前。将新的W1、B1和W2、B2代回第(1)阶段计算。,(3)学习速率自适应调整计

29、算。首先赋值:TW1=W1 TW2=W2 TB1=B1 TB2=B2然后将TW1、TW2和TB1、TB2代入第(1)步计算,得到TA1、TA2、TE、TSSE。如果TSSE大于SSE(取1.04左右),则经自适应调整的学习速率为Lr=1Lr(1取0.7左右),如果TSSE小于SSE,则经自适应调整的学习速率为Lr=2Lr(2取1.05左右),从而实现了学习速率的自适应调整。,(4)将TW1、TW2和TB1、TB2以及TA1、TA2、TE、TSSE再赋给W1、W2和B1、B2以及A1、A2、E、SSE,然后代入第(1)步计算,如果SSE小于指定的误差精度,则网络训练成功,否则的话,转入第(2)、

30、(3)、(4)步进行迭代计算。,训练中的学习速率变化 训练中的误差变化,3、初始权值与偏差值随机化的Nguyen-Widrow法 通常的初始权重值与偏差值随机化方法都是在区间(-1,1)之间取均匀分布的随机数的函数,这样初始权重值W与偏差值B为:,式中s,r分别为隐含层神经元数和输入样本的行数,rand(s,r)为s行r列的均匀分布的随机数矩阵,I(s,r)为s行r列的全1矩阵,目的是保证权值分布在区间(-1,1)范围内。,计算表明,它并不是很好的方法,对复杂的高非线性系统,它造成较低的计算效率。Nguyen和Widrow提出的N-W法初始化权重值与偏差值,对计算效率的提高有较明显的效果。其计

31、算原理为:,式中各符号的含义同前,normr(M)为M矩阵的标准化归 一矩阵:,9.3.6 网络结构参数的确定1、学习速率的初始值的确定 在网络开始训练学习时,需要指定一个初始的学习速率。学习速率对网络的收敛情况有很大的影响,若取值大,虽然一开始网络学习效率很高,但到收敛精度附近很容易产生振荡,其结果反而不容易收敛;如果取值小,虽然“振荡”问题避免了,但网络的学习效率却很低。所以,学习速率初始值的选择是很重要的。那么,究竟选多少好呢?根据BP神经网络的计算原理,学习速率的取值范围为0Lr1,但通过有关参考文献的研究发现,这个范围给定得太大了。实际使用的取值为0.1、0.15或0.001,实例分

32、析表明,学习速率在0.01左右是比较好的。,3、网络收敛精度的确定 网络收敛精度对神经网络的训练效率有着最直接的影响,其影响率是非线性的,也就是说,收敛精度提高10倍,训练的循环迭代次数可能增加几百倍。网络收敛精度的确定要从两个主要方面来考虑,一是所研究问题的情况,一是精度与网络计算次数之间的最佳协调。如果所研究的问题有很强的规律性,则可以把收敛精度提高,一般可以达到10-4到10-6;如果所研究的问题非线性程度高且为工程实际问题,则要牺牲一些精度,一般取在210-3左右。从另一方面来说,如果提高收敛精度并不明显增加计算次数的话,则要考虑适当提高收敛精度;如果提高收敛精度明显增加计算次数、且对

33、训练后的网络的预报精度没有明显提高的话,则要适当降低网络的收敛精度。,9.4 BP神经网络应用,函数逼近,1989年,Robert Hecht-Nielson 证明了对于闭区间内的任一个连续函数都可以用一个隐层的BP网络来逼近,因而一个三层的BP网可以完成任意的n维到m维的映射。,例,网络设计,确定网络结构这是一个具有一个输入、一个输出和五个中间(隐层)神经元的神经网络计算程序。输入输出样本数是21个。网络结构如图:,网络设计(Cont.),初始权值;学习速率;期望误差。,程序设计,给出输入样本P和输出样本T,绘制期望曲线,一个近似正弦波形(图),P和T都是一个21个元素的行向量;初试化权值和

34、偏差值,给出一组输入样本P2,打印初始输出图形(图);网络训练阶段。根据误差不断调整权值及偏差 值进行学习,最终得到网络结构参数;打印最终结果:两个权值矩阵及两个偏差矩 阵、迭代次数和误差等信息(图)。,函数逼近代码,%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+);,R,Q=size(P);S2

35、,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);,hold onplot(P,A2)hold offdisp(按任一键继续)pause,net=newcf(minmax(P),5,1,tansig,purelin,traingd);net.trainParam.epochs=7000;net.trainParam.goal=9.5238e-004;%sse=0.02net.

36、trainParam.lr=0.15;net,tr=train(net,P,T);%训练网络Y=sim(net,P);%计算结果plot(P,Y,r-)holdplot(P,T,r+);hold off,返 回,返 回,返 回,迭代了1900次。改进?,返 回,一种改进控制初始权值,%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

37、-0.3201;net=newcf(minmax(P),5,1,tansig,purelin,traingd);,net.initParam=;net=initnw(net,1);w0=net.iw1,1,b0=net.b1,w1=net.lw2,1,b1=net.b2,disp(按任一键继续)pausey=sim(net,P);%初始输出plot(P,T,ro)%画输入矢量图 hold onplot(P,y)%画输出矢量图hold off,net.trainParam.epochs=7000;%初始化训练次数net.trainParam.goal=9.5238e-004;%sse=0.02;

38、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);%计算结果,figure(2)plot(P,T,ro)%画输入矢量图 hold onplot(P,Y)%画输出矢量图hold off,改进结果,字母识别,图像采集与预处理,Prodat.m,%prodat.m prob1.m调用的字母产生程序functionalphabet,targets=prodat()%Returns:%ALPHABET-35x26 matrix of 5x7 bit maps for

39、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

40、 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;,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

41、 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;,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.

42、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

43、 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

44、 0 0.0 0 1 0 0.0 0 0 1 0.1 0 0 0 1.0 1 1 1 0;,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 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;letterV=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 0 1 0.0 0 1 0 0;lett

45、erW=1 0 0 0 1.1 0 0 0 1.1 0 0 0 1.1 0 0 0 1.1 0 1 0 1.1 1 0 1 1.1 0 0 0 1;,letterX=1 0 0 0 1.1 0 0 0 1.0 1 0 1 0.0 0 1 0 0.0 1 0 1 0.1 0 0 0 1.1 0 0 0 1;letterY=1 0 0 0 1.1 0 0 0 1.0 1 0 1 0.0 0 1 0 0.0 0 1 0 0.0 0 1 0 0.0 0 1 0 0;letterZ=1 1 1 1 1.0 0 0 0 1.0 0 0 1 0.0 0 1 0 0.0 1 0 0 0.1 0 0 0 0.1

46、 1 1 1 1;alphabet=letterA,letterB,letterC,letterD,letterE,letterF,letterG,letterH,.letterI,letterJ,letterK,letterL,letterM,letterN,letterO,letterP,.letterQ,letterR,letterS,letterT,letterU,letterV,letterW,letterX,.letterY,letterZ;targets=eye(26);,charecg.m,%charecg.malphabet,targets=prodat;P=alphabet

47、;%alphabet=letterA,letterB,.,letterZ;T=targets;%targets=eye(26);R,Q=size(P);S1=10;S2,Q=size(T);net=newff(minmax(alphabet),S1 S2,logsig logsig,traingdx);net.LW2,1=net.LW2,1*0.01;net.b2=net.b2*0.01;,%无噪声字母识别网络的训练net.performFcn=sse;%执行函数为误差平方和函数net.trainParam.epochs=800;%最大训练步长net.trainParam.lr=0.01;%学

48、习率net.trainParam.lr_inc=1.05;%增长的学习率net.trainParam.lr_dec=0.7;net.trainParam.goal=0.1;%执行函数目标值net.trainParam.mc=0.9;%附加动量因子net.trainParam.min_grad=1e-10;%最小执行梯度net.trainParam.show=50;P=alphabet;T=targets;net,tr=train(net,P,T);,charecg.m(cont.),pause%按任意键继续%具有噪声的输入矢量识别网络的训练netn=net;netn.trainParam.go

49、al=0.1;%目标误差.netn.trainParam.epochs=300;%最大训练步长.for pass=1:10 fprintf(Pass=%.0fn,pass);,T=targets targets targets targets;P=alphabet,alphabet,.(alphabet+randn(R,Q)*0.1),.(alphabet+randn(R,Q)*0.2);netn,tr=train(netn,P,T);end,charecg.m(cont.),pause%按任意键继续%再次用无噪声字母训练识别网络netn.trainParam.goal=0.1;%均方误差目标

50、.netn.trainParam.epochs=500;%最大训练步长net.trainParam.show=5;%训练中显示的频率P=alphabet;T=targets;,netn,tr=train(netn,P,T);pause%按任意键测试所训练的网络性能%测试所训练的网络性能%=noise_range=0:.02:0.2;max_test=100;network1=;network2=;T=targets;,charecg.m(cont.),%PERFORM THE TESTfor noiselevel=noise_range fprintf(Testing networks wit

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号