ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:376.66KB ,
资源ID:5368935      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5368935.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于MATLAB的神经网络算法研究及仿真.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于MATLAB的神经网络算法研究及仿真.docx

1、基于MATLAB的神经网络算法研究及仿真基于MATLAB的神经网络算法研究及仿真焦文明摘要:人工神经网络以其具有信息的分布存储、并行处理以及自学习能力等优点, 已经在模式识别、信号处理、智能控制及系统建模等领域得到越来越广泛的应用。MATLAB中的神经网络工具箱是以人工神经网络理论为基础, 利用MATLAB 语言构造出许多典型神经网络的传递函数、网络权值修正规则和网络训练方法,网络的设计者可根据自己的需要调用工具箱中有关神经网络的设计与训练的程序, 免去了繁琐的编程过程。采用Matlab软件编程实现BP神经网络算法,将神经网络算法应用于函数逼近和样本含量估计问题中,并分析相关参数对算法运行结果

2、的影响。关键词:神经网络;BP神经网络;函数逼近1 绪论人工神经网络(Artificial Neural Networks,NN)是由大量的、简单的处理单元(称为神经元)广泛地互相连接而形成的复杂网络系统,它反映了人脑功能的许多基本特征,是一个高度复杂的非线性动力学系统。神经网络具有大规模并行、分布式存储和处理、自组织、自适应和自学习能力,特别适合处理需要同时考虑许多因素和条件的、不精确和模糊的信息处理问题。神经网络的发展与神经科学、数理科学、认知科学、计算机科学、人工智能、信息科学、控制论、机器人学、微电子学、心理学、微电子学、心理学、光计算、分子生物学等有关,是一门新兴的边缘交叉学科。神经

3、网络具有非线性自适应的信息处理能力,克服了传统人工智能方法对于直觉的缺陷,因而在神经专家系统、模式识别、智能控制、组合优化、预测等领域得到成功应用。神经网络与其他传统方法相组合,将推动人工智能和信息处理技术不断发展。近年来,神经网络在模拟人类认知的道路上更加深入发展,并与模糊系统、遗传算法、进化机制等组合,形成计算智能,成为人工智能的一个重要方向。MATLAB是一种科学与工程计算的高级语言,广泛地运用于包括信号与图像处理,控制系统设计,系统仿真等诸多领域。为了解决神经网络问题中的研究工作量和编程计算工作量问题,目前工程领域中较为流行的软件MATLAB,提供了现成的神经网络工具箱(Neural

4、Network Toolbox,简称NNbox),为解决这个矛盾提供了便利条件。神经网络工具箱提供了很多经典的学习算法,使用它能够快速实现对实际问题的建模求解。在解决实际问题中,应用MATLAB 语言构造典型神经网络的激活传递函数,编写各种网络设计与训练的子程序,网络的设计者可以根据需要调用工具箱中有关神经网络的设计训练程序,使自己能够从烦琐的编程中解脱出来,减轻工程人员的负担,从而提高工作效率。2 神经网络结构及BP神经网络2.1 神经元与网络结构人工神经网络(artificial neural network,ANN)是模仿生物神经网络功能的一种经验模型。生物神经元受到传入的刺激,其反应又

5、从输出端传到相联的其它神经元,输入和输出之间的变换关系一般是非线性的。神经网络是由若干简单(通常是自适应的)元件及其层次组织,以大规模并行连接方式构造而成的网络,按照生物神经网络类似的方式处理输入的信息。模仿生物神经网络而建立的人工神经网络,对输入信号有功能强大的反应和处理能力。神经网络是由大量的处理单元(神经元)互相连接而成的网络。为了模拟大脑的基本特性,在神经科学研究的基础上,提出了神经网络的模型。但是,实际上神经网络并没有完全反映大脑的功能,只是对生物神经网络进行了某种抽象、简化和模拟。神经网络的信息处理通过神经元的互相作用来实现,知识与信息的存储表现为网络元件互相分布式的物理联系。神经

6、网络的学习和识别取决于各种神经元连接权系数的动态演化过程。若干神经元连接成网络,其中的一个神经元可以接受多个输入信号,按照一定的规则转换为输出信号。由于神经网络中神经元间复杂的连接关系和各神经元传递信号的非线性方式,输入和输出信号间可以构建出各种各样的关系,因此可以用来作为黑箱模型,表达那些用机理模型还无法精确描述、但输入和输出之间确实有客观的、确定性的或模糊性的规律。因此,人工神经网络作为经验模型的一种,在化工生产、研究和开发中得到了越来越多的用途。 神经网络连接的几种基本形式:1)前向网络 前向网络结构如图2.1所示,网络中的神经元是分层排列的,每个神经元只与前一层的神经元相连接。神经元分

7、层排列,分别组成输入层、中间层(也称为隐含层,可以由若干层组成)和输出层。每一层的神经元只接受来自前一层神经元的输入,后面的层对前面的层没有信号反馈。输入模式经过各层次的顺序传播,最后在输出层上得到输出。感知器网络和BP网络均属于前向网络。图2.1 前向网络结构2)从输出到输入有反馈的前向网络其结构如图2.2所示,输出层对输入层有信息反馈,这种网络可用于存储某种模式序列,如神经认知机和回归BP网络都属于这种类型。图2.2有反馈的前向网络结构3) 层内互连前向网络 其结构如图2.3所示,通过层内神经元的相互结合,可以实现同一层神经元之间的横向抑制或兴奋机制。这样可以限制每层内可以同时动作的神经元

8、素,或者把每层内的神经元分为若干组,让每一组作为一个整体进行运作。例如,可利用横向抑制机理把某层内的具有最大输出的神经元挑选出来,从而抑制其他神经元,使之处于无输出状态。图2.3有相互结合的前向网络结构4) 相互结合型网络相互结合型网络结构如图2.4所示,这种网络在任意两个神经元之间都可能有连接。Hopfield 网络和Boltzmann 机均属于这种类型。在无反馈的前向网络中,信号一旦通过某神经元,该神经元的处理就结束了。而在相互结合网络中,信号要在神经元之间反复传递,网络处于一种不断变化状态的动态之中。信号从某初始状态开始,经过若干次变化,才会达到某种平衡状态。根据网络的结构和神经元的特性

9、,网络的运行还有可能进入周期振荡或其他如混沌平衡状态。图2.4结合型网络结构综上,可知神经网络有分层网络、层内连接的分层网络、反馈连接的分层网络、互连网络等四种结构,其神经网络模型有感知器网络,线性神经网络,BP神经网络,径向基函数网络,反馈神经网络等,本文主要学习研究了BP神经网络,以及BP神经网络在函数逼近和样本含量估计两个实例中的应用分析。2.2 BP神经网络及其原理2.2.1 BP神经网络定义 BP (Back Propagation)神经网络是一种神经网络学习算法。其由输入层、中间层、输出层组成的阶层型神经网络,中间层可扩展为多层。相邻层之间各神经元进行全连接,而每层各神经元之间无连

10、接,网络按有教师示教的方式进行学习,当一对学习模式提供给网络后,各神经元获得网络的输入响应产生连接权值(Weight)。然后按减小希望输出与实际输出误差的方向,从输出层经各中间层逐层修正各连接权,回到输入层。此过程反复交替进行,直至网络的全局误差趋向给定的极小值,即完成学习的过程。2.2.2 BP神经网络模型及其基本原理BP神经网络是误差反向传播神经网络的简称,它由一个输入层,一个或多个隐含层和一个输出层构成,每一次由一定数量的的神经元构成。这些神经元如同人的神经细胞一样是互相关联的。其结构如图2.5所示: 图2.5 BP神经网络模型生物神经元信号的传递是通过突触进行的一个复杂的电化学等过程,

11、 在人工神经网络中是将其简化模拟成一组数字信号通过一定的学习规则而不断变动更新的过程,这组数字储存在神经元之间的连接权重。网络的输入层模拟的是神经系统中的感觉神经元,它接收输入样本信号。输入信号经输入层输入, 通过隐含层的复杂计算由输出层输出,输出信号与期望输出相比较,若有误差,再将误差信号反向由输出层通过隐含层处理后向输入层传播。在这个过程中,误差通过梯度下降算法,分摊给各层的所有单元,从而获得各单元的误差信号,以此误差信号为依据修正各单元权值,网络权值因此被重新分布。此过程完成后, 输入信号再次由输入层输入网络,重复上述过程。这种信号正向传播与误差反向传播的各层权值调整过程周而复始地进行着

12、,直到网络输出的误差减少到可以接受的程度,或进行到预先设定的学习次数为止。权值不断调整的过程就是网络的学习训练过程。BP 神经网络的信息处理方式具有如下特点: 1)信息分布存储。人脑存储信息的特点是利用突触效能的变化来调整存储内容, 即信息存储在神经元之间的连接强度的分布上, B P神经网络模拟人脑的这一特点,使信息以连接权值的形式分布于整个网络。2) 信息并行处理。人脑神经元之间传递脉冲信号的速度远低于冯诺依曼计算机的工作速度,但是在很多问题上却可以做出快速的判断、决策和处理,这是由于人脑是一个大规模并行与串行组合的处理系统。BP神经网络的基本结构模仿人脑,具有并行处理的特征,大大提高了网络

13、功能。3)具有容错性。生物神经系统部分不严重损伤并不影响整体功能,BP神经网络也具有这种特性,网络的高度连接意味着少量的误差可能不会产生严重的后果,部分神经元的损伤不破坏整体,它可以自动修正误差。这与现代计算机的脆弱性形成鲜明对比。4)具有自学习、自组织、自适应的能力。BP神经网络具有初步的自适应与自组织能力,在学习或训练中改变突触权值以适应环境,可以在使用过程中不断学习完善自己的功能,并且同一网络因学习方式的不同可以具有不同的功能,它甚至具有创新能力,可以发展知识,以至超过设计者原有的知识水平。3 BP神经网络在实例中的应用快速发展的Matlab软件为神经网络理论的实现提供了一种便利的仿真手

14、段。Matlab神经网络工具箱的出现,更加拓宽了神经网络的应用空间。神经网络工具箱将很多原本需要手动计算的工作交给计算机,一方面提高了工作效率,另一方面,还提高了计算的准确度和精度,减轻了工程人员的负担。神经网络工具箱是在MATLAB环境下开发出来的许多工具箱之一。它以人工神经网络理论为基础,利用MATLAB编程语言构造出许多典型神经网络的框架和相关的函数。这些工具箱函数主要为两大部分。一部分函数特别针对某一种类型的神经网络的,如感知器的创建函数、BP网络的训练函数等。而另外一部分函数则是通用的,几乎可以用于所有类型的神经网络,如神经网络仿真函数、初始化函数和训练函数等15。这些函数的MATL

15、AB实现,使得设计者对所选定网络进行计算过程,转变为对函数的调用和参数的选择,这样一来,网络设计人员可以根据自己的的需要去调用工具箱中有关的设计和训练程序,从烦琐的编程中解脱出来,集中精力解决其他问题,从而提高了工作效率。3.1 基于MATLAB的BP神经网络工具箱函数最新版本的神经网络工具箱几乎涵盖了所有的神经网络的基本常用模型,如感知器和BP网络等。对于各种不同的网络模型,神经网络工具箱集成了多种学习算法,为用户提供了极大的方便。Matlab神经网络工具箱中包含了许多用于BP网络分析与设计的函数,BP网络的常用函数如表3.1所示。表3.1 BP网络的常用函数表函数类型函数名称函数用途前向网

16、络创建函数newcf创建级联前向网络Newff创建前向BP网络传递函数logsigS型的对数函数tansigS型的正切函数purelin纯线性函数 学习函数learngd基于梯度下降法的学习函数learngdm梯度下降动量学习函数性能函数 mse均方误差函数msereg均方误差规范化函数 显示函数plotperf绘制网络的性能plotes绘制一个单独神经元的误差曲面plotep绘制权值和阈值在误差曲面上的位置errsurf计算单个神经元的误差曲面3.1.1 BP网络创建函数1) newff该函数用于创建一个BP网络。调用格式为:net=newffnet=newff(PR,S1 S2.SN1,T

17、F1 TF2.TFN1,BTF,BLF,PF)其中,net=newff;用于在对话框中创建一个BP网络。net为创建的新BP神经网络;PR为网络输入向量取值范围的矩阵;S1 S2SNl表示网络隐含层和输出层神经元的个数;TFl TF2TFN1表示网络隐含层和输出层的传输函数,默认为tansig;BTF表示网络的训练函数,默认为trainlm;BLF表示网络的权值学习函数,默认为learngdm;PF表示性能数,默认为mse。 2)newcf函数用于创建级联前向BP网络,newfftd函数用于创建一个存在输入延迟的前向网络。3.1.2 神经元上的传递函数 传递函数是BP网络的重要组成部分。传递函

18、数又称为激活函数,必须是连续可微的。BP网络经常采用S型的对数或正切函数和线性函数。1) logsig该传递函数为S型的对数函数。调用格式为:A=logsig(N)info=logsig(code)其中, N:Q个S维的输入列向量;A:函数返回值,位于区间(0,1)中;2)tansig该函数为双曲正切S型传递函数。调用格式为:A=tansig(N)info=tansig(code)其中,N:Q个S维的输入列向量;A:函数返回值,位于区间(-1,1)之间。3)purelin该函数为线性传递函数。调用格式为:A=purelin(N)info=purelin(code)其中,N:Q个S维的输入列向量

19、;A:函数返回值,A=N。3.1.3 BP网络学习函数1)learngd该函数为梯度下降权值阈值学习函数,它通过神经元的输入和误差,以及权值和阈值的学习效率,来计算权值或阈值的变化率。调用格式为:dW,ls=learngd(W,P,Z,N,A,T,E,gW,gA,D,LP,LS)db,ls=learngd(b,ones(1,Q),Z,N,A,T,E,gW,gA,D,LP,LS)info=learngd(code)2) learngdm函数为梯度下降动量学习函数,它利用神经元的输入和误差、权值或阈值的学习速率和动量常数,来计算权值或阈值的变化率。3.1.4 BP网络训练函数1)train神经网络

20、训练函数,调用其他训练函数,对网络进行训练。该函数的调用格式为:net,tr,Y,E,Pf,Af=train(NET,P,T,Pi,Ai)net,tr,Y,E,Pf,Af=train(NET,P,T,Pi,Ai,VV,TV)2) traingd函数为梯度下降BP算法函数。traingdm函数为梯度下降动量BP算法函数。3.2 BP网络在函数逼近中的应用BP 网络是一种多层前馈神经网络,由输入层、隐层和输出层组成。BP 网络模型结构见图3.1。网络同层节点没有任何连接,隐层节点可以由一个或多个。网络的学习过程由正向和反向传播两部分组成。在正向传播中,输入信号从输入层节点经隐层节点逐层传向输出层节

21、点。每一层神经元的状态只影响到下一层神经元网络,如输出层不能得到期望的输出,那么转入误差反向传播过程,将误差信号沿原来的连接通路返回,通过修改各层神经元的权值,逐次地向输入层传播去进行计算,在经正向传播过程,这两个过程反复运用,使得误差信号最小或达到人们所期望的要求时,学习过程结束。图3.1 BP 网络模型结构利用神经网络工具箱进行设计和仿真的具体步骤:1.确定信息表达方式:将实际问题抽象成神经网络求解所能接受的数据形式;2.确定网络模型:选择网络的类型、结构等;3.选择网络参数:如神经元数,隐含层数等;4.确定训练模式:选择训练算法,确定训练步数,指定训练目标误差等;5.网络测试:选择合适的

22、训练样本进行网络测试。3.2.1第一步问题的提出设计一个简单的BP 网络,实现对非线性函数的逼近,通过改变BP 网络的隐层神经元的数目,采用不同的训练方法来观察训练时间和训练误差的变化情况。假设将要将要逼近的函数为正弦函数,其频率参数N=1,绘制此函数见图3.2 所示。N=1;p= - 1:0.05:1 ;t=sin (N*pi*p) ;%假设N=1,绘制此函数曲线plot (p,t,r*)title (要逼近的非线性函数)xlabel (时间) ;3.2.2第二步网络建立应用newff () 建立两层的BP 网络,隐层神经元数目可以改变,此时S=8 ,输出层一个神经元,隐层和输出层的传递函数

23、分别为tansig 和purelin ,学习算法采用Levenberg - Marquadt ( trainlm) 。用sim() 观察初始化网络输出如图3.3 所示。S=8;net=newff (minmax (p) , S,1 , tansig,purelin ,trainlm) ;y1=sim (net,p) ;figure;plot (p,t, r* ,p,y1,b- )title (未训练网络的输出结果)xlabel (时间) ;ylabel (仿真输出- 原函数*) ;legend (要逼近的非线性函数,未训练网络的输出结果) 图3.2要逼近的非线性函数图3.3未训练时网络的输出结

24、果3.2.3第三步网络训练将训练时间设为10,精度为0.001,用train ()进行训练,误差曲线见图3.4 所示。net.trainParam.epochs=10;net.trainParam.goal=0.001;net1 = train (net,p,t)图3.4训练过程图3.2.4第四步网络测试用sim()观察训练后的网络输出如图3.5 所示。y2 = sim (net1,p)figure;plot (p,t,r* ,p,y1,b- ,p,y2,ko)title (训练后网络的输出结果)xlabel (时间) ;ylabel (仿真输出)legend (要逼近的非线性函数,未训练网络

25、的输出结果,训练后网络的输出结果)图3.5训练后网路的输出结果从图3.5 可以看出经过很短时间的训练后BP 网络很好的逼近了非线性函数。4. 结论MATLAB 神经网络工具箱功能强大, 它提供了许多有关神经网络设计、训练和仿真的函数,我们只要根据需要调用相关函数, 就能方便进行神经网络设计与仿真, 从而免除了编写复杂而庞大的算法程序的困扰,可以很容易的调整各项参数,实现对神经网络的设计和仿真,为我们的工程应用提供很好的参考价值。参考文献1 周开利,康耀红. 神经网络模型及其MATLAB仿真程序设计M. 北京:清华大学出版社,2005:90-95.2 闵惜琳,刘国华. 用MATLAB神经网络工具箱开发BP网络应用J. 计算机应用,2001,21(8):163-164.3 刘建斌. 人工神经网络在电磁建模中的应用D. 上海交通大学,2003:10-11.4 张德丰. MATLAB神经网络应用设计M. 机械工业出版社,2009:7-12. (注:可编辑下载,若有不当之处,请指正,谢谢!)

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1