神经网络与遗传算法.ppt

上传人:本田雅阁 文档编号:2194366 上传时间:2019-03-01 格式:PPT 页数:203 大小:1.32MB
返回 下载 相关 举报
神经网络与遗传算法.ppt_第1页
第1页 / 共203页
神经网络与遗传算法.ppt_第2页
第2页 / 共203页
神经网络与遗传算法.ppt_第3页
第3页 / 共203页
亲,该文档总共203页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《神经网络与遗传算法.ppt》由会员分享,可在线阅读,更多相关《神经网络与遗传算法.ppt(203页珍藏版)》请在三一文库上搜索。

1、人工神经网络与遗传算法,Artificial Neural Network and Genetic Algorithm,前言 教材 主要参考书 课程目的 课程内容 知识基础 课时安排 成绩评定,教 材 书 名:人工神经网络导论 出版社:高等教育出版社 作 者:蒋宗礼 定 价:12.4元,主要参考书 1、沈世镒,神经网络理论与应用,科学出版社。 2、郝红伟,Matlab 6.0 入门,中国电力出版社。 3、闻新、周露等,Matlab神经网络应用设计,科学出版社。 4、周明,孙树栋,遗传算法原理及应用,国防工业出版社,1999。,课程目的 1、引导学生了解人工神经网络及遗传算法的基本思想。 2、重

2、点介绍感知器及BP网络模型,让学生掌握其结构、数学描述及学习算法。 3、通过实验进一步体会BP神经网络模型的应用及性能。 4、了解人工神经网络与遗传算法的有关研究思想,培养将该方法应用与工程实践的能力。 5、查阅适当的参考文献,将所学的知识应用于将来的学习或科研中。,课程内容 第1章 概述 1. 1 人工神经网络研究与发展 1. 2 生物神经元 1. 3 人工神经网络的构成 第2章 人工神经网络基本模型 2. 1 感知器模型 2. 2 线性神经网络 2. 3 BP神经网络 2. 4 其他神经网络,第3章 BP神经网络理论 3. 1 网络结构 3. 2 数学模型 3. 3 学习算法 3. 4 网

3、络的泛化能力 3. 5 算法的改进 3. 6 网络结构参数的确定 第4章 BP神经网络应用 4. 1 MATLAB应用基础 4. 2 一个正弦波学习程序设计 4. 3 网络结构调整与算法改进 4. 4 网络计算与分析,第5章 遗传算法 5. 1 形成与发展 5. 2 基本原理 5.2.1 基本概念 5.2.2 编码 5.2.3 适应度函数 5.2.4 遗传算子 5.2.5 遗传学习算法 5. 3 研究方向 5. 4 应用实例,知识基础 1、激励函数(阶跃函数、非线性函数、 连续函数、单调函数)、函数收敛 2、偏微分、梯度、方差与均方差 3、向量与矩阵 4、最优解与解空间 5、Matlab使用

4、6、人工智能基础,课时安排 1、上课:24学时 814周二34节, 812周五12节 2、上机:20学时 1320周五12节,19 20周二34节 3、其它:8学时 1518周二34节 用于查阅资料、作业、论文写作,成绩评定 1、出勤率(到课率和上机) 2、作业一次 3、论文一篇,1. 1 人工神经网络的研究与发展,第1章 概述,1、萌芽期 40年代初,美国Mc Culloch和Pitts从信息处理的角度,研究神经细胞行为的数学模型表达提出了阈值加权和模型MP模型。 1949年,心理学家Hebb提出著名的Hebb学习规则,即由神经元之间结合强度的改变来实现神经学习的方法。Hebb学习规的基本思

5、想至今在神经网络的研究中仍发挥着重要作用。,2、第一次高潮 50年代末期,Rosenblatt提出感知机模型(Perceptron)。感知机虽然比较简单,却已具有神经网络的一些基本性质,如分布式存贮、并行处理、可学习性、连续计算等。这些神经网络的特性与当时流行串行的、离散的、符号处理的电子计算机及其相应的人工智能技术有本质上的不同,由此引起许多研究者的兴趣。 在60代掀起了神经网络研究的第一次高潮。但是,当时人们对神经网络研究过于乐观,认为只要将这种神经元互连成一个网络,就可以解决人脑思维的模拟问题,然而,后来的研究结果却又使人们走到另一个极端上。,3、反思期 60年代末,美国著名人工智能专家

6、Minsky和Papert对Rosenblatt的工作进行了深人研究,出版了有较大影响的Perceptron一书,指出感知机的功能和处理能力的局限性,同时也指出如果在感知器中引入隐含神经元,增加神经网络的层次,可以提高神经网络的处理能力,但是却无法给出相应的网络学习算法。另一方面,由于60年代以来微电子技术日新月异的发展,电子计算机的计算速度飞速提高,加上那时以功能模拟为目标、以知识信息处理为基础的知识工程等研究成果,给人工智能从实验室走向实用带来了希望,这些技术进步给人们造成这样的认识:以为串行信息处理及以它为基础的传统人工智能技术的潜力是无穷的,这就暂时掩盖了发展新型计算机和寻找新的人工智

7、能途径的必要性和迫切性。再者,当时对大脑的计算原理、对神经网络计算的优点、缺点、可能性及其局限性等还很不清楚,使对神经网络的研究进入了低潮。,4、第二次高潮 进入80年代,首先是基于“知识库”的专家系统的研究和运用,在许多方面取得了较大成功。但在一段时间以后,实际情况表明专家系统并不像人们所希望的那样高明,特别是在处理视觉、听觉、形象思维、联想记忆以及运动控制等方面,传统的计算机和人工智能技术面临着重重困难。模拟人脑的智能信息处理过程,如果仅靠串行逻辑和符号处理等传统的方法来济决复杂的问题,会产生计算量的组合爆炸。因此,具有并行分布处理模式的神经网络理论又重新受到人们的重视。对神经网络的研究又

8、开始复兴,掀起了第二次研究高潮。,1982年,美国加州理工学院物理学家JHopfield提出了一种新的神经网络循环神经网络。他引入了“能量函数”的概念,使得网络稳定性研究有了明确的判据。 1984年, JHopfield研制了后来被人们称为“Hopfield网”的电路,物理实现为神经计算机的研究奠定了基础,解决了著名的TSP问题。 1985年,UCSD的Hinton、Sejnowsky、Rumelhart等人所在的并行分布处理小组的研究者在Hopfield网中引入随机机制,提出了Boltzmann机。 1986年,Rumelhart等人在多层神经网络模型的基础上,提出了多层神经网络模型的反向传

9、播学习算法BP(Back propagation)算法,解决了多层前向神经网络的学习问题,证明了多层神经网络具有很强的学习能力,它可以完成许多学习任务,解决许多实际问题。,5、再认识和应用研究期(1991) 九十几年来,许多具备不同信息处理能力的神经网络已被提出来并应用于许多信息处理领域,如模式识别、自动控制、信号处理、决策辅助、人工智能等方面。神经计算机的研究也为神经网络的理论研究提供了许多有利条件,各种神经网络模拟软件包、神经网络芯片以及电子神经计算机的出现,体现了神经网络领域的各项研究均取得了长足进展。同时,相应的神经网络学术会议和神经网络学术刊物的大量出现,给神经网络的研究者们提供了许

10、多讨论交流的机会。,虽然人们已对神经网络在人工智能领域的研究达成了共识,对其巨大潜力也毋庸置疑,但是须知,人类对自身大脑的研究,尤其是对其中智能信息处理机制的了解,还十分肤浅。因而现有的研究成果仅仅处于起步阶段,还需许多有识之士长期的艰苦努力。 概括以上的简要介绍,可以看出,当前又处于神经网络理论的研究高潮,不仅给新一代智能计算机的研究带来巨大影响,而且将推动整个人工智能领域的发展。但另一方面,由于问题本身的复杂性,不论是神经网络原理自身,还是正在努力进行探索和研究的神经计算机,目前,都还处于起步发展阶段。,生物神经系统是一个有高度组织和相互作用的数量巨大的细胞组织群体。人类大脑的神经细胞大约

11、在1011一1013个左右。神经细胞也称神经元,是神经系统的基本单元,它们按不同的结合方式构成了复杂的神经网络。通过神经元及其联接的可塑性,使得大脑具有学习、记忆和认知等各种智能。,1. 2 生物神经元,1、结构,神经元由细胞体(Soma)和延伸部分组成。延伸部分按功能分有两类,一种称为树突(Dendrite),用来接受来自其他神经元的信息;另一种用来传递和输出信息,称为轴突(Axon)。神经元之间的相互连接从而让信息传递的部位披称为突触(Synapse),突触的联接是可塑的,也就是说突触特性的变化是受到外界信息的影响或自身生长过程的影响。,2、特征 (1) 并行分布处理 大脑中单个神经元的信

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

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

14、息,1. 3 人工神经网络 人工神经网络(Artificial Neural Network,ANN)是对人类大脑特性的一种描述。它是一个数学模型,可以用电子线路实现,也可以用计算机程序来模拟。是人工智能研究的一种方法。,1、ANN结构 下图是一个神经元的结构图,通过与生物神经元的比较可以知道它们的有机联系,生物神经元中的神经体与人工神经元中的结点相对应,树突(神经末梢)与输入相对应,轴突与输出相对应,突触与权值相对应。,2、ANN研究与应用的主要内容 (1) 人工神经网络模型的研究 神经网络原型研究,即大脑神经网络的 生理结构、思维机制。 神经元的生物特性如时空特性、电化 学性质等的人工模拟

15、。 易于实现的神经网络计算模型。 神经网络的学习算法与学习系统。,(2) 神经网络基本理论 神经网络的非线性特性,包括自组织、自适应等作用。 神经网络的基本性能,包括稳定性、收敛性、容错性、鲁棒性、动力学复杂性。 神经网络的计算能力与信息存贮容量。,待 (3) 神经网络智能信息处理系统的应用 认知与人工智能,包括模式识别、计算机视觉与听觉、特征提取、语音识别语言翻译、联想记忆、逻辑推理、知识工程、专家系统、故障诊断、智能机器人等。 优化与控制,包括决策与管理、系统辨识、鲁棒性控制、自适应控制、并行控制、分布控制等。 信号处理,自适应滤波、时间序列预测、消噪、非线性预测、非线性编码等。,(4)

16、神经网络的软件模拟和硬件实现 (5) 神经网络计算机的实现,3、ANN 与人工智能 对于智能的模拟和机器再现肯定可以开发拓展出一代新兴产业。由于智能本质的复杂性,现代智能研究已超越传统的学科界限,成为脑生理学、神经科学、心理学、认知科学、信息科学、计算机科学、微电子学,乃至数理科学共同关心的“焦点”学科。人工神经网络的重大研究进展有可能使包括信息科学在内的其他学科产生重大突破和变革。展望人工神经网络的成功应用,人类智能有可能产生一次新的飞跃。,4、ANN的信息处理能力 存贮能力和计算能力是现代计算机科学中的两个基本问题,同样,它们也构成了人工神经网络研究中的基本问题。人工神经网络的信息处理能力

17、包括两方面的内容: 神经网络信息存贮能力 即要解决这样的一个问题:在一个有N个神经元的神经网络中,可存贮多少值的信息? 神经网络的计算能力,(1)神经网络的存贮能力 定义:一个存贮器的信息表达能力定义为其可分辨的信息类型的对数值。 在一个M1的随机存贮器RAM中,有M位地址,一位数据,它可存贮2M位信息。M1的RAM的存贮能力为:C2M(位)。,定理1 N个神经元的神经网络的信息表达能力上限为: C (位)。 定理2 N个神经元的神经网络的信息表达能力下限为: C (位)。 其中N2指小于或等于N2的最大整数。 定理3 神经网络可以存贮2N-1个信息,也可以区分2N-1个不同的网络。,(2)神

18、经网络的计算能力 数学的近似映射 概率密度函数的估计 从二进制数据基中提取相关的知识 形成拓扑连续及统计意义上的同构映射 最近相邻模式分类 数据聚类 最优化问题 用来求解局部甚至是全局最优解。,2. 1 感知器模型 感知器是一种早期的神经网络模型,由美国学者F.Rosenblatt于1957年提出.感知器中第一次引入了学习的概念,使人脑所具备的学习功能在基于符号处理的数学到了一定程度的模拟,所以引起了广泛的关注。 感知器在形式上与MP模型差不多,它们之间的区别在于神经元间连接权的变化。感知器的连接权定义为可变的,这样感知器就被赋予了学习的特性。,第2章 人工神经网络基本模型,1、感知器的结构,

19、感知器处理单元对n个输入进行加权和操作: 其中, xi为第i个输入,wi为第i个输入到处理单元的连接权值,为阈值。 f是阶跃函数。 为简化表示,把阈值 当作输入-w0 ,写成向量形式:,返 回,2、梯度下降调整权值 感知器输出为: o= w0 + w1 x1+ wi xn 训练误差: td是期望输出,od是实际输出,感知器的计算值, D是训练样本集,= ( t o ) xi, 是一个正的常数,又叫学习速率。 是某一输入样本对应的期望输出与实际输出的误差。 已经证明:只要训练样本线性可分,并且使用充分小的,训练过程收敛。,令,返 回,3、感知器的学习算法 感知器引入的学习算法称之为误差学习算法。

20、该算法是神经网络学习中的一个重要算法,并已被广泛应用。算法如下: (1)选择一组初始权值wi(0)。 (2)计算某一输入样本对应的实际输出与期望输出的 误差 (3)如果小于给定值,结束,否则继续。,(4)更新权值 wi wi +wi wi +xi 式中学习率为在区间(0,1)上的一个常数,它的取值与训练速度和w收敛的稳定性有关,xi为神经元的第i个输入。 (5)返回(2),重复上述步骤,直到对所有训练样本,网络输出均能满足要求。,返 回,2. 2 线性神经网络 1、网络结构 50年代末,Widrow提出的Adaline是最早的线性神经网络,它是由一个或多个线性神经元构成,每个神经元的传递函数是

21、一个线性函数,因此,线性神经网络的输出可以是任意值。一个线性神经元的网络结构如下图:,2、传递函数 线性神经网络的传递函数是一个线性函数,如下图所示:,3、线性神经元输出 在matlab中,线性传递函数purelin是计算神经元输出的,当只有一个神经元时,输出为: a= purelin(w*p+b) 当输入是矩阵形式,神经元个数不止一个时,输出为: a= purelin(w*p,b),比较线性神经网络与感知器的区别。,2. 3 BP神经网络 1、网络学习算法提出 60年代末,Minsky和Papert指出了感知机的功能和处理能力的局限性,在感知机中引入隐含神经元,增加神经网络的层次,提高神经网

22、络的处理能力,但却无法给出相应的网络学习算法。1986年,Rumelhart等人在多层神经网络模型的基础上,提出了多层神经网络模型的反向传播学习算法BP(Back propagation)算法,实现了Minsky的多层网络设想。,2、隐层传递函数 BP网络的隐层传递函数通常是S型函数,常用logsig()和tansig()函数,也可以采用线性传递函数purelin()。函数如下图:,3、输出层函数 如果输出层是S型神经元,那么整个网络的输出被限制在一个较小的范围内,如果输出层使用线性神经元,那么输出可以取任意值。因此,一般隐层使用S型函数,输出层使用线性函数。传递函数均是可微的单调增函数。,2

23、.4 其它神经网络 1、径向基函数网络 BP网络用于函数逼近时,权值的调整采用的是梯度下降法,但存在着局部极小和收敛速度慢等缺点,而径向基函数网络在逼近能力、分类能力和学习速度等方面均优于BP网络,它的传递函数采用的是径向基函数,其输出是权值向量与输入向量P之间的距离乘以阈值b,即,a=radbas(dist(W,P)*b) 2、回归网络 Matlab神经网络工具箱包括两种回归网络:Elman网络和J. Hopfield网络。Elman网络是一个两层网络,在第一层有一个反馈环节,,本章要点: 1、感知器的输入与输出关系 2、感知器的误差计算及权值调整 3、感知器学习算法 4、感知器、线性神经网

24、络和BP神 经网络的区别,第3章 BP神经网络理论,3. 1 网络结构 下图是一个神经元的结构图,生物神经元中的神经体(Soma)与人工神经元中的结点相对应,神经末梢(Dendrites,树突)与输入相对应,轴突(Axon)与输出相对应,突触(Synapse)与权值相对应。,BP神经网络是一个多层网络,它的拓扑结构如下图所示。,在这一神经网络模型中,引入了中间隐含神经元层。标准的BP神经网络的拓扑结构由三层组成,最左层称为输入层,中间层称为隐含层,最右层称为输出层。输入层、输出层的个数可以由所求的问题决定,而中间层的神经元个数的确定需要探讨。各层次的神经元之间形成全互连连接,各层次内的神经元之

25、间没有连接。三层神经网络已经足以模拟输入与输出之间的复杂的非线性映射关系。更多的网络层虽然能提高神经网络学习复杂映射关系的能力,但因为随着网络层的增加,神经元及其连接权将大规模增加,所占用的计算机资源过多,网络学习收敛反而慢了。,各个神经元之间的连接并不只是一个单纯的传输信号的通道,而是在每对神经元之间的连接上有一个加权系数,这个加权系数就是权值,它起着生物神经系统中神经元的突触强度的作用,它可以加强或减弱上一个神经元的输出对下一个神经元的刺激。修改权值的规则称为学习算法,它可以根据经验或学习来改变。,3. 2 数学模型,假定:,,,BP神经网络数学描述要点: 输入和输出的样本对的关系是连续非

26、线性的,如:, 各层输入与输出的关系 由权值wki和wjk构成的两个权重矩阵、两个偏差矩阵 (列矩阵)的行列关系 网络计算目的与初始条件(输入与输出、样本对、初始 权值与偏差值),3. 3 学习算法 从本质上说,神经网络的训练问题是一个函数极小化问题,但由于它的数学基础是非线性理论,因系统的高度非线性使最初的BP算法存在效率低、收敛慢、易于陷入局部极小等缺陷,使神经网络在复杂系统中的应用受到限制。大部分新的研究都集中在算法的改进上,如共轭梯度算法、基于信息熵优化的算法、改进的BP法等。通过这些研究,使神经网络的应用得到进一步的发展。,1、计算流程图,9)调整输出层神经元的偏差,10)调整隐含层

27、神经元的偏差,11)重复第3)步至第10)步的内容,直到对于k=1,2,m的误差ej(j=1,2,q)变得足够小为止。,从上面的过程可以看出,BP网络的学习和训练分成两个阶段,在第一阶段里对于给定的网络输入,通过现有连接权重将其正向传播,获得各个神经元的实际输出;在第二阶段里,首先计算出输出层各神经元的一般化误差,这些误差逐层向输入层方向逆向传播,以获得调整各连接权重所需的各神经元参考误差。学习完成后的网络在预报时使用第3)、4)步中的正向传播公式。,3. 4 网络的泛化能力 关于神经网络的泛化能力,有以下定义: 定义1 当网络中的部分结点或连接权失效时,网络仍能保持正常或稳定的输入输出关系的

28、特性称为网络的容错性(fault tolerance)。 定义2 当输入信息或连接网络的参数发生有限摄动时,网络仍能保持正常或稳定的输入输出关系的特性称为网络的鲁棒性(robustness)。 定义3 对于同一样本集里的非训练样本,网络仍能给出正确的输入输出关系的能力称为网络的泛化能力(generalization capability)。,网络的泛化能力依赖于网络结构的参数(如隐含层神经元数及其激活函数特性、隐含层数等)和训练样本的特性。由于BP网络算法的实质是非线性规划中的最速下降法,而非线性优化的任何局部搜索算法都不可避免地存在局部极小问题。为了尽量避免局部极小,提高网络泛化能力,对网络

29、结构参数及训练样本必须进行分析、研究和选择。,3. 5 算法的改进 许多实际问题都可以化成神经网络进行求解。对于连续非线性问题采用三层神经网络就足以逼近。但对更复杂的非线性问题,为提高神经网络的映射能力,一般需要增加网络的层数,这样就不可避免地增加了网络学习和计算的时间。为此,对算法进行改进,通过增加权重动量项、学习速率的自适应调整以及权值和偏差值初始化的N-W法提高学习效率和减少迭代次数。,1、权重动量项 在网络里增加权重动量项是绝大部分改进方法里必涉及的内容。具体做法是在迭代后的权重上加上某个动量因子。设wjk(n+1)表示当前的权重修正值,wjk(n)表示上一学习周期的权重修正值,即:,

30、式中,01。计算时,用有动量项的权重算出新的网络输出误差,如果该输出误差大于用没有动量项的权重算出的网络输出误差的话,说明加动量项没有效果,则令=0,反之,要考虑加进动量项这一项。,2、学习速率的自适应调整 前节内容曾提出过,学习速率的选取对网络训练的效果有较明显的影响。在此,我们讨论学习速率的自适应调整问题。其基本思路是根据网络输出误差的大小由算法自动调整学习速率的大小,计算原理如下: (1)先求网络输出误差。如果SSE小于指定的误差精度,则网络训练成功,否则转入下一步。以下各运算符号均表示矩阵或向量。,式中,P为输入样本矩阵,ONE为1行Nc列的全1矩阵,Nc为W1P矩阵的列数,ONE1为

31、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)学习速率自适应调整计算。首先赋值: TW1 =W1 TW2=W2 TB1=B1 TB2=B2 然后将TW1、TW2和TB1、TB2代入第(1)步计算,得到TA1、TA2、TE、TSSE。如果TS

32、SE大于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)、(3)、(4)步进行迭代计算。,4、初始权值与偏差值随机化的Nguyen-Widrow法 通常的初始权重值与偏差值随机化方法都是在区间(-1,1)之间取均匀分布的随机数

33、的函数,这样初始权重值W与偏差值B为:,式中s, r分别为隐含层神经元数和输入样本的行数,rand(s, r)为s行r列的均匀分布的随机数矩阵,I( s, r)为s行r列的全1矩阵,目的是保证权值分布在区间(-1, 1)范围内。,计算表明,它并不是很好的方法,对复杂的高非线性系统,它造成较低的计算效率。 Nguyen和Widrow提出的N-W法初始化权重值与偏差值,对计算效率的提高有较明显的效果。其计算原理为 :,式中各符号的含义同前,normr(M)为M矩阵的标准化归一矩阵 :,3. 6 网络结构参数的确定 1、学习速率的初始值的确定 在网络开始训练学习时,需要指定一个初始的学习速率。学习速

34、率对网络的收敛情况有很大的影响,若取值大,虽然一开始网络学习效率很高,但到收敛精度附近很容易产生振荡,其结果反而不容易收敛;如果取值小,虽然“振荡”问题避免了,但网络的学习效率却很低。所以,学习速率初始值的选择是很重要的。 那么,究竟选多少好呢?根据BP神经网络的计算原理,学习速率的取值范围为0Lr1,但通过有关参考文献的研究发现,这个范围给定得太大了。实际使用的取值为0.1、0.15或0.001,实例分析表明,学习速率在0.01左右是比较好的。,3、网络收敛精度的确定 网络收敛精度对神经网络的训练效率有着最直接的影响,其影响率是非线性的,也就是说,收敛精度提高10倍,训练的循环迭代次数可能增

35、加几百倍。 网络收敛精度的确定要从两个主要方面来考虑,一是所研究问题的情况,一是精度与网络计算次数之间的最佳协调。如果所研究的问题有很强的规律性,则可以把收敛精度提高,一般可以达到10-4到10-6;如果所研究的问题非线性程度高且为工程实际问题,则要牺牲一些精度,一般取在210-3左右。从另一方面来说,如果提高收敛精度并不明显增加计算次数的话,则要考虑适当提高收敛精度;如果提高收敛精度明显增加计算次数、且对训练后的网络的预报精度没有明显提高的话,则要适当降低网络的收敛精度。,第4章 BP神经网络应用,4. 1 MATLAB应用基础 4.1.1 MATLAB发展史 MATLAB是由美国的Math

36、 Works公司推出的一个为科学和工程计算而专门设计的高级交互式软件包。它是一种高性能的用于工程计算的编程软件,把科学计算、编程和结果的可视化都集中在一个非常方便的环境中。 MATLAB名字由Matrix Laboratory 两词的前三个字母组合而成。那是20世纪七十年代,时任美国新墨西哥大学计算机科学系主任的Cleve Moler出于减轻学生编程负担的动机,为学生设计了一组调用LINPACK和EISPACK矩阵软件工具包库程序的的“通俗易用”的接口,此即用FORTRAN编写的萌芽状态的MATLAB。,1984年由Little、Moler、Steve Bangert合作成立MathWorks

37、公司,并把MATLAB正式推向市场。从这时起,MATLAB的内核采用C语言编写,而且除原有的数值计算能力外,还新增了数据图视功能。 1987年推出MATLAB 3.0版本。 1997年,MATLAB5.0版问世,紧接着是5.1、5.2,1999年推出5.3版。 2001年推出6.0版。现今的MATLAB拥有更丰富的数据类型和结构、更友善的面向对象、更加快速精良的图形可视、更广博的数学和数据分析资源的应用开发工具。,4.1.2 MATLAB语言主要特点和功能 1、主要特点 具有丰富的数学功能 包括矩阵各种运算。如:正交变换、三角分解、特征值、常见的特殊矩阵等。 具有很好的图视系统 可方便地画出两

38、维和三维图形;高级图形处理,如:色彩控制、句柄图形、动画图形;用户界面GUI制作工具,可以制作用户菜单和控件,使用者可以根据自己的需求编写出满意的图形界面。,具有若干功能强大的应用工具箱 如:信号处理、小波分析、神经网络、遗传算法、优化、通信、SIMULINK、DSP等16种工具箱。 可以直接处理声言和图形文件 使用方便,具有很好的扩张功能 使用MATLAB语言编写的程序可以直接运行,无需编译。 可以将M文件转变为独立于平台的EXE可执行文件。 MATLAB的应用接口程序API是MATLAB提供的十分重要的组件,由 一系列接口指令组成 。用户就可在FORTRAN或C中 , 把MATLAB当作计

39、算引擎使用 。,2、应用功能 MATLAB已经发展成为具有通用科技计算、图形交互系统和程序设计语言、国际公认的、最优秀的应用软件之一。典型的应用包括以下方面: 数学计算 算法推导 建模和仿真 数据分析和结果的可视化 工程图形绘制 应用程序开发,包括用户图形界面的建立 与其他高级语言相比,MATLAB提供了一个人机交互的数学环境,以矩阵为基本的数据结构,语法简单、调试方便、容易掌握。,4.1.3 MATLAB应用环境 MATLAB应用环境包括一个交互执行环境和一个M-File Editor环境。 1、执行开始/ MATLAB 6.1/ MATLAB 6.1启动执行环境 该环境由命令窗口、命令历史

40、窗口、开始面板|工作空间组成。 命令窗口是执行MATLAB命令的窗口,提示符为“” MATLAB功能操作可由开始面板开始,如设置路径、编译、进入工具箱、帮助等。 界面如下页图示。,2、执行开始/ MATLAB 6.1/ M-File Editor启动M文件编辑环境,3、在MATLAB执行环境中,执行 Help/ MATLAB Help或执行 launch Pad/ MATLAB / Help启动Help窗口。MATLAB提供了详细的帮助信息。,4.1.4 矩阵 1、介绍 MATLAB具备数组计算、矩阵计算、符号计算和高级计算等计算功能。矩阵是MATLAB中的基本数据格式,强大的矩阵运算功能是其

41、最突出的特点。 一个矩阵形如:,如果矩阵只有一行或一列时,它就是一个行向量或列向量。向量是矩阵的特例。,2、赋值 用“ ”来给矩阵赋值。如A= 相同行元素之间用空格或“,”隔开 列之间用回车或“;”分隔 没有结尾分号的命令只显示其结果,若结尾有分号,则执行计算,但计算结果并不显示 冒号用来产生向量、用作矩阵下标及选择矩阵元素 符号“”用作续行 引号表示矩阵的转置 标点符号使用可以在命令窗口中键入“help punct”得到,例1:A=1 2 3;4 5 6;7 8 9 例2:B=1 2 3;4, 5, 6;7 8 9; 例3:P=-1: 0.25: 1 产生一个以-1开始,1结束,步长为0.2

42、5的向量 P=0:4或P=0:4 表示从0到4, 步长为1的向量 A(: , j) 取矩阵A的第j列 A(i , :) 取矩阵A的第i行 A(i : j) 取矩阵A的第i行第j列元素 例4:T=-.9602 -.5770 -.0729 .3771 .6405 .6600 .4609 . .1336 -.2013 -.4344 -.5000 -.3930 -.1647 .0988 . .3072 .3960 .3449 .1816 -.0312 -.2189 -.3201 例5:若A为例1矩阵,则A=1,4,7;2,5,8;3,6,9,3、运算 设X=3 4;6 8 Y=2 3;4 5 算术运算

43、, 关系运算 关系运算用来对矩阵与数、矩阵与矩阵进行比较,结果由0或1组成的矩阵。, 逻辑运算 逻辑运算用来判断矩阵与数、矩阵与矩阵相应元素的真或假,以1表示真,0表示假,结果由0或1组成的矩阵。 设A=1 2;2 1 B=0 2;3 0,说明: 逻辑函数all( )、any( )、exist( )、find( )等函数用来判断、查找矩阵元素状态 Inf表示无穷大数,如XY=Inf Inf;Inf Inf 字符串矩阵当作数据矩阵来处理。 如A=ab B=cd A+B=196 198,4、特定矩阵建立 MATLAB使用ones( )、zeros( )、eys( )函数建立1矩阵、0矩阵和单位矩阵

44、。,4.1.5 程序设计基础 1、程序结构与控制 MATLAB程序分为顺序、循环和分支三种结构,并且支持用户交互的命令。虽然大多数程序都包含许多子结构,但从整体上看,他们大都遵循顺序结构。 例1:disp(the begin of the program) A=1 2 hello;matlab 3 6 disp(A) 执行结果为: The begin of the program 1 2 hello matlab 3 6,MATLAB循环结构有for和while,他们都以end结束。 例2:for i=2: 0.5: 4 i end 执行结果为: i=2, i=2.5000, i=3, i=3

45、.5000, i=4 例3:s=abcd for i=s i end 执行结果为: i=a, i=b, i=c, i=d,例4:s=ab cd for i=s i end 执行结果为: i=ab, i=cd 例5:s=ab cd for i=s i end 执行结果为: i=a, i=b, i=c, i=d,例6:利用for循环求1100的整数和。 sum=0 for i=1:100 sum=sum+i end sum 执行结果为: sum=5050 例7:利用while循环求1100的整数和。 sum=0 i=1 while i=100 sum=sum+i i=i+1 end sum 执行结

46、果为: sum=5050,MATLAB分支结构有if和switch,他们都以end结束。If结构一般有三种形式:,例8:A=1 2;0 1; B=2 2;3 3; if AB disp(AB) else if AB+1 disp(AB+1) end 执行结果为: AB+1 例9:var=3 switch var case a a a, cds, 1,disp(line 1) case 3, disp(line 2) case 1, 2, 3, welcome,disp(line 3) end 执行结果为: line 2,3、M文件 什么是M文件? 除了交互式执行MATLA命令外,MATLAB提

47、供了另外一种执行方式,即M文件方式。M文件是MATLAB的代码文件,可在MATLAB M-File Editor 中或其他文本编辑器中编辑。M文件语法简单、容易调试、交互性强,用来执行复杂的数学计算。 M文件有两种形式 :命令文件或称作脚本文件(Script File)和函数文件(Function File ),这两种文件的扩展名均为“ . m” 。, 命令文件与函数文件的区别 从形式上看 ,函数文件的笫一行总是以 “function”引导的“函数申明行”,命令文件没有。 从运行上看,命令文件的所有变量都驻留在 MATLAB基本工作空间中,只要用户不使用清除指令(clear)或不关闭MATLA

48、B命令窗口,这些变量将一直保存在基本工作空间中。函数文件运行时, MATLAB就会专门为它开辟一个临时工作空间,称为函数工作空间,当执行完毕后,所有的变量就立即被清除。函数中定义的变量可以和当前工作空间中的变两同名。 函数文件一般都要有参数和返回结果,而命令文件没有. 编译只对函数文件., M文件调试 M文件运行时,由于语法和算法的错误在所难免,因此,调试是保证程序正常运行的必要手段。可以用下面方法发现某些运行错误。 在M文件中,将某些语句后面的分号去掉, 迫使M文件输出一些中间计算结果,以便发现可能的错误。 在适当的位置,添加显示某些关键变量值的语句(包括使用 disp 在内)。, 利用 echo 指令,使运行时在屏幕上逐行显示文件内容。echo on 能显示M脚本文件;echo FunName on 能显示名为FunName 的M函数文件。 在原M脚本或函数文件的适当位置,增添指令 keyboard 。 keyboard 语句可以设置程序的断点 。 通过将原M函数文件的函数申明行注释掉,可使一个

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1