BP神经网络设计指导书一、实验目的1.熟悉神经网络的特征、结构以及学习算法2.了解神经网络的结构对控制效果的影响3.掌握用MATLAB实现神经网络控制系统仿真的方法。二、实验原理人工神经网络ANN(ArtificialNeuralNetwork)系统由于具有信息的分布存储、并行处理以及自学习能力等优点,已经在信息处理、模式识别、智能控制及系统建模等领域得到越来越广泛的应用。尤其是基于误差反向传播(BackPropagation)算法的多层前馈网络(Muhiple-LayerFeedforwardNetwork),即BP网络,可以以任意精度逼近任意连续函数,所以广泛地应用于非线性建模、函数逼近和模式分类等方面。1.BP网络算法实现BP算法属于delta算法,是一种监督式的学习算法。其主要思想是:对于M个输人学习样本,已知与其对应的输出样本。学习的目的是用网络的实际输出与目标矢量之间的误差来修改其权值,使实际与期望尽可能地接近,即使网络输出层的误差平方和达到最小,他是通过连续不断地在相对于误差函数斜率下降的方向上计算网络权值和偏差的变化而逐渐逼近目标的。每一次权值和偏差的变化都与网络误差的影响成正比,并以反向传播的方式传递到每一层。2.BP网络的设计在MATLAB神经网络工具箱中.有很方便的构建神经网络的函数。对于BP网络的实现.其提供了四个基本函数:newff,init.train和sim.它们分别对应四个基本步骤.即新建、初始化、训练和仿真(1)初始化前向网络初始化是对连接权值和阈值进行初始化。initff函数在建立网络对象的同时,自动调用初始化函数,根据缺省的参数对网络的连接权值和阈值进行初始化。格式:[wl,bl,w2,b2]=initff(p,sl,fl,s2,f2)其中P表示输入矢量,s表示神经元个数,f表示传递函数,W表示权值,b表示阈值。(2)训练网络BP网络初始化以后,就可对之进行训练了。函数采用批处理方式进行网络连接权值和阈值的更新,要对其参数进行设置,如学习步长、误差目标等,同时在网络训练过程中,还用图形显示网络误差随学习次数的变化。①基本梯度下降法训练网络函数trainbp格式:[wl,bl,w2,b2,te,tr]=trainbp(wl,bl,fl,w2,b2,f2,p,t,tp)②带有动量项的自适应学习算法训练网络函数trainbpx格式:[wl,bl,w2,b2,te,tr]=trainbpx(wl,bl,fl,w2,b2,f2,p,t,tp)其中P表示输入矢量,t表示目标矢量,te为网络的实际训练次数,tr为网络训练误差平方和的行矢量,tp表示网络训练参数(如学习率、期望误差、最大学习次数等)。(3)网络仿真仿真函数simff用来对网络进行仿真。利用此函数,可以在网络训练前后分别进行输入输出的仿真,以做比较,从而对网络进行修改评价。格式:a=simff(p,wl,b1,fl,w2,b2,f2)其中a表示训练好的BP网络的实际输出。三、实验内容试设计BP神经网络来实现正弦函数的逼近。输入矢量X=-1:0.1:1;相对应的目标矢量Y=sin(Pi*X)