Matlab神经网络工具箱介绍与数值试验.doc_第1页
Matlab神经网络工具箱介绍与数值试验.doc_第2页
Matlab神经网络工具箱介绍与数值试验.doc_第3页
Matlab神经网络工具箱介绍与数值试验.doc_第4页
Matlab神经网络工具箱介绍与数值试验.doc_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第四章 Matlab神经网络工具箱与数值试验17第一章 Matlab神经网络工具箱介绍与数值试验1.1 Matlab神经网络工具箱中BP网络相关函数介绍MATLAB神经网络工具箱中包含了许多用于BP网络分析和设计的函数。BP网络的常用函数如表4-1所示。10,12表4-1 BP网络的常用函数函数类型函数名称函数用途前向网络创建函数newcf创建一个多层前馈BP网络newff创建一个前向BP网络newfftd创建一个前馈输入延迟BP网络传递函数logsigS型的对数函数dlogsigLogig的导函数tansigS型的正切函数dtansigtansig的导函数purelin纯线性函数学习函数traingd基于标准BP算法的学习函数trainrp采用Rprop算法训练trainlm采用LM算法训练traincgf基于共轭梯度法的学习函数仿真函数sim仿真一个神经网络1.2 数值试验1.2.1. “异或”问题“异或”问题(XOR)是典型的非线性划分问题。这里以它为例,简单介绍BP网络的应用。在Matlab7.0环境下,建立一个三层的BP神经网络,其中输入层和隐层分别各有两个神经元,输出层有一个神经元。现要求训练这一网络,使其具有解决“异或”问题的能力。“异或”问题的训练输入和期望输出如表5-1。表5-1 异或问题的训练输入和期望输出0000111011101) 基于标准BP算法结果如下及图5.1所示:横轴表示迭代次数,纵轴表示误差。迭代到第240次时达到预设精度。迭代停止时,误差为9.97269e-005,此时的梯度为0.00924693。图5.1 基于标准BP算法的“异或”问题2) 基于共轭梯度法结果如下及图5.2所示:横轴表示迭代次数,纵轴表示误差。迭代到第16次时达到预设精度。迭代停止时,误差为9.0770e-005,此时的梯度为0.00318592。图5.2 基于共轭梯度法的“异或”问题3) 基于LM算法结果如下及图5.3所示:横轴表示迭代次数,纵轴表示误差。迭代到第4次时达到预设精度。迭代停止时,误差为8.8892e-006,此时的梯度为0.00727382。图5.3 基于LM算法的“异或”问题4) 基于RPROP算法结果如下及图5.4所示:横轴表示迭代次数,纵轴表示误差。迭代到第31次时达到预设精度。迭代停止时,误差为4.6696e-005,此时的梯度为0.00721433。图5.4 基于RPROP算法的“异或”问题1.2.2. 连续函数拟合问题一个神经网络最强大的用处之一是在函数逼近上。它可以用在诸如被控对象的模型辨识中,即将过程看成一个黑箱子,通过测量其输入/输出特性,然后利用所得实际过程的输入/输出数据训练一个神经网络,使其输出对输入的响应特性具有与被辨识过程相同的外部特性10。1) 线性函数拟合使用标准BP算法,对函数进行拟合。结果如图5.5,红色虚线和“”号表示拟合结果。迭代到第8次时达到预设精度。迭代停止时,误差为2.49485e-005,此时的梯度为0.0190722。图5.5 线性函数拟合2) 二次函数拟合使用RPROP算法,对函数进行拟合。结果如图5.6,红色虚线和“”号表示拟合结果。迭代到第320次时达到预设精度。迭代停止时,误差为9.9923e-005,此时的梯度为0.00135595。图5.6 二次函数拟合3) sin函数拟合使用共轭梯度算法,对函数进行拟合。结果如图5.7,红色虚线和“”号表示拟合结果。迭代到第119次时达到预设精度。迭代停止时,误差为9.92315e-005,此时的梯度为0.0025562。图5.7 sin函数拟合4) 指数函数拟合使用LM算法,对函数进行拟合。结果如图5.8,红色虚线和“”号表示拟合结果。迭代到第8次时达到预设精度。迭代停止时,误差为5.99591e-005,此时的梯度为0.0544397。图5.8 指数函数拟合5) 复合函数拟合使用LM算法,对函数进行拟合。结果如图5.8,红色虚线和“”号表示拟合结果。迭代到第9次时达到预设精度。迭代停止时,误差为9.73363e-005,此时的梯度为0.0163562。图5.9 复合函数拟合1.2.3. 3-bit Parity问题这次仿真我们考虑3-bit Parity问题,该问题被认为是“异或”问题的三位形式。这个问题描绘了三个二进制输入得到一个二进制输出的过程。如果输入中1的个数是奇数个,则输出是1。反之,输出为014。3-bit Parity问题的训练输入和期望输出如表5-2。表5-2 3-bit Parity问题的训练输入和期望输出000000110101011010011010110011111) 基于标准BP算法结果如下及图5.10所示:横轴表示迭代次数,纵轴表示误差。迭代到第113次时达到预设精度。迭代停止时,误差为9.99979e-005,此时的梯度为0.00799224。图5.10 基于最速下降法的3-bit Parity问题2) 基于共轭梯度法结果如下及图5.11所示:横轴表示迭代次数,纵轴表示误差。迭代到第60次时达到预设精度。迭代停止时,误差为9.42383e-005,此时的梯度为0.0161969。图5.11 基于共轭梯度法的3-bit Parity问题3) 基于LM算法结果如下及图5.12所示:横轴表示迭代次数,纵轴表示误差。迭代到第19次时达到预设精度。迭代停止时,误差为 9.49592e-006,此时的梯度为0.025507。图5.12 基于LM算法的3-bit Parity问题4) 基于RPROP算法结果如下及图5.13所示:横轴表示迭代次数,纵轴表示误差。迭代到第33次时达到预设精度。迭代停止时,误差为9.09842e-005,此时的梯度为0.0115333。图5.13 基于RPROP算法的3-bit Parity问题第二章 总结BP网络的算法实际上就是解决一个无约束最优化问题。标准BP算法是BP神经网络的最基本的算法,应用了最速下降法的思想,所以它不可避免的具备了最速下降法所带了的缺点。为了克服标准BP算法的缺陷,人们进行了更深入的研究,对标准BP算法进行了改进,并提供了一系列快速学习算法,以满足解决不同问题的需要。快速BP算法从改进途径上可分为两大类:一类是采用启发式学习方法,如引入动量因子的学习算法、变学习速率学习算法等;另一类则是采用更有效的数值优化方法,如共轭梯度学习算法、Levenberg-Marquardt算法以及B&B算法等。对于不同的问题,在选择学习算法对 BP 网络进行训练时,不仅要考虑算法本身的性能,还要视问题的复杂度、样本集大小、网络规模、 网络误差目标和所要解决的问题类型而定10。2.1 各种算法的优缺点比较标准BP算法易于理解,方法简单,每一次迭代的工作量较小,所需要的存储空间也较小,而且即使从一个不好的初值开始计算,也可以保证算法的收敛性11。不过正如前文中数值试验所表现的那样,标准BP算法在收敛速度上很慢,迭代次数很多,而且受学习率的影响很大。Levenberg-Marquardt算法是应用于训练BP网络问题的牛顿算法的一个简单版本。它的突出优点是收敛速度快,而且收敛误差小。它的缺点也很突出,它所需的存储空间很大,计算量也很大,所以当网络规模增大时,它的性能会变得很差。另外,LM算法对初值的选择很敏感,不恰当的初值会使算法不收敛。对于规模较小的BP网络,LM算法不失为一个极好的选择。共轭

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论