资源描述:
《基于MATLAB的BP神经网络实现研究_徐远芳.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、MicrocomputerApplicationsVol.22,No.8,2006技术交流微型电脑应用2006年第22卷第8期文章编号:1007-757X(2006)08-0041-04基于MATLAB的BP神经网络实现研究徐远芳,周,郑华摘要:BP神经网络是人工神经网络中的一个典型代表。MATLAB的神经网络工具箱提供了许多有关神经网络设计、训练和仿真的函数和方便、友好的图形用户界面来实现BP网络,还可实时将仿真结果可视化,从而使应用BP网络来解决许多领域的实际问题变得非常方便和有效。关键词:BP神经网络;MATLAB;仿真中图分类
2、号:TP183文献标识码:A引言1BP神经网络的结构与学习原理人工神经网络(ArtificialNeuralNetwork,ANN)的理论BP网络是前向网络的核心部分,体现了神经网络中最精于20世纪提出,由于自身固有的超强适应和学习能力,至今华、最完美的内容。它是一种单向传播的具有三层或三层以上已在自动控制、故障诊断与检测、模式识别和分类等很多领域的前向神经网络,包括输入层、隐层和输出层,上下层之间实获得了极其广泛的应用。而据统计,在人工神经网络的实际应现全连接,而每层神经元之间无连接。一个三层的BP网络理用中,80-90%均采用了B
3、P神经网络或它的变化形式。BP网论上可逼近任意的非线性映射,因此在实际应用中,一般采用络是一种多层前馈神经网络,因采用BP(back-propagation,三层的BP网络就可以满足需要。如图1所示的就是一个三层反向传播)算法而得名。人工神经网络的建立需要不断尝试,的BP网络结构图。其学习算法通常较复杂,难以通过手工编程来实现。因此,采用计算机辅助来进行神经网络的设计与分析是必然的选择。目前,市场上已经有了一些比较成熟的神经网络软件包,MATLAB就是其中一个非常优秀的代表。MATLAB是Mathworks公司开发的一种高性能的数值计
4、算和可视化软件,强大的功能使得它在学术界和工业界都得到了广泛的应用。MATLAB编程语言被称为第四代计算机语言,相对于其它高级程序设计语言而言,具有可读性强,调试简单等特点,通过提供丰富的函数库省去了大量的重复编程。MATLAB产品支持从概念设计、算法开发、建模仿真到实图1三层BP网络结构图时实现的理想的集成环境,尤其是它提供了各种专业性较强BP网络由正向传播和反向传播组成,在正向传播阶段,的工具箱。如在神经网络工具箱中,它提供了许多有关神经网每一层神经元的状态只影响下一层神经元的状态,若在输出络设计、训练和仿真的函数。用户只要根据自
5、己的需要调用相层得不到期望的输出值,则进行误差的反向传播阶段。其具体关的程序,从而免除了编写复杂而庞大的算法程序的困扰。的学习过程和步骤如下:2004年,MATLAB的最新版本产品MATLAB7发布。MAT-(1)选择一组训练样本,每个样例由输入信息和期望的输LAB7在编程和代码效率、绘图和可视化、数学运算、数据读出结果两部分组成;写等方面都有了很大的改进。(2)从训练样本中取一样本,把输入的信息输入到网络本文以MATLAB7作为开发环境,论述利用其神经网络中;工具箱开发BP网络的方法及设计步骤,并给出了一个应用(3)分别计算经神经元
6、处理后的各层结点的输出;实例。(4)计算网络的实际输出与期望输出的误差,如果误差达⒇作者简介:徐远芳,长沙理工大学计算机与通信工程学院,长沙410076⒇周,长沙理工大学计算机与通信工程学院,长沙410076⒇郑华,广西财经学院计算机与信息管理系,南宁530003·41·⒇⒇⒇MicrocomputerApplicationsVol.22,No.8,2006技术交流微型电脑应用2006年第22卷第8期到要求,则退出,否则继续执行第5步;时通常需要设置一些训练参数,主要包括如下一些:(5)从输出层反向计算到第一个隐层,并按照某种能使误N
7、et.trainParam.epochs:训练次数,默认为100差向减小方向发展的原则,调整网络中各神经元的连接权值Net.trainParam.show:两次显示之间的训练步数,默认(Weight)和阈值(Threshold);为25(6)对训练样本集中的每个样本重复(3)到(5),直到对整Net.trainParam.goal:训练目标,默认为0个训练样本集的误差达到要求为止。Net.trainParam.time:训练时间,默认为inf,表示训练时间不限2MATLAB7的神经网络工具箱简介(5)性能函数:用来计算网络的输出误差,
8、为训练提供判据。包括:函数mae,计算网络的平均绝对误差;函数mse,MATLAB环境下的神经网络工具箱是以人工神经网络计算网络的均方误差;函数msereg,计算均方误差和权/阈值理论为基础,利用MATLAB语言构造出许