1、_运用Matlab创建BP神经网络(R2010b)BP神经网络属于前向网络以下为创建BP神经网络的方法及参数意义(1)net=newff(P,T,S)或者net = newff(P,T,S,TF,BTF,BLF,PF,IPF,OPF,DDF)P:输入参数矩阵。(RxQ1)T:目标参数矩阵。(SNxQ2)S:N-1个隐含层的数目(S(i)到S(N-1),输出层的单元数目取决于T,默认为空矩阵。TF:相关层的传递函数,默认隐含层为tansig函数,输出层为purelin函数。BTF:BP神经网络学习训练函数,默认值为trainlm函数。BLF:权重学习函数,默认值为learngdm。PF:性能函数
2、,默认值为mse。IPF,OPF,DDF均为默认值即可。(2)传递函数purelin线性传递函数tansig正切S型传递函数logsig对数S型传递函数隐含层和输出层函数的选择对BP神经网络预测精度有较大影响,一般隐含层节点转移函数选用tansig函数或logsig函数,输出层节点转移函数选用tansig函数或purelin函数。(3)学习训练函数神经网络的学习分为有导师学习和无导师学习。最速下降BP算法:traingd动量BP算法:traingdm学习率可变的BP算法:trainda(学习率可变的最速下降BP算法);traindx(学习率可变的动量BP算法)弹性算法:trainrp变梯度算法
3、:traincgf(Fletcher-Reeves修正算法)traincgp(Polak_Ribiere修正算法)traincgb(Powell-Beale复位算法)trainbfg(BFGS拟牛顿算法)trainoss(OSS算法)trainlm(LM算法)参数说明:通过net.trainParam可以查看参数Show Training Window Feedback showWindow: trueShow Command Line Feedback showCommandLine: falseCommand Line Frequency show:两次显示之间的训练次数Maximum E
4、pochs epochs:训练次数Maximum Training Time time:最长训练时间(秒)Performance Goal goal:网络性能目标Minimum Gradient min_grad:性能函数最小梯度Maximum Validation Checks max_fail:最大验证失败次数Learning Rate lr:学习速率Learning Rate Increase lr_inc:学习速率增长值Learning Rate lr_dec:学习速率下降值Maximum Performance Increase max_perf_inc:Momentum Const
5、ant mc:动量因子(4)BP神经网络预测函数SimOut = sim(model,Parameters) & y=sim(net,x)函数功能:用训练好的BP神经网络预测函数输出net:训练好的网络x:输入数据y:网络预测数据(5)训练函数net,tr = train(Net,P,T,Pi,Ai)其中,Net待训练的网络P输入数据矩阵T输出数据矩阵(default = zeros)Pi初始化输入层条件(default = zeros)Ai初始化输出层条件(default = zeros)net训练好的网络tr训练过程记录注意:P Ni-by-TS cell array Each eleme
6、nt Pi,j,ts is anNi-by-Qmatrix.T Nl-by-TS cell array Each element Ti,ts is aUi-by-Qmatrix.BP网络的常用函数表函数类型函数名称函数用途前向网络创建函数newcf创建级联前向网络Newff创建前向BP网络传递函数logsigS型的对数函数tansigS型的正切函数purelin纯线性函数学习函数learngd基于梯度下降法的学习函数learngdm梯度下降动量学习函数性能函数mse均方误差函数msereg均方误差规范化函数显示函数plotperf绘制网络的性能plotes绘制一个单独神经元的误差曲面plote
7、p绘制权值和阈值在误差曲面上的位置errsurf计算单个神经元的误差曲面范例现给出一药品商店一年当中12个月的药品销售量(单位:箱)如下:2056 2395 2600 2298 1634 1600 1873 1487 1900 1500 2046 1556训练一个BP网络,用当前的所有数据预测下一个月的药品销售量。我们用前三个月的销售量预测下一个月的销售量,也就是用1-3月的销售量预测第4个月的销售量,用2-4个月的销售量预测第5个月的销售量,如此循环下去,直到用9-11月预测12月份的销售量。这样训练BP神经网络后,就可以用10-12月的数据预测来年一月的销售量。实现程序如下:P =2056
8、 2395 2600;2395 2600 2298;2600 2298 1634;2298 1634 1600;.1634 1600 1873;1600 1873 1478;1873 1478 1900;1478 1900 1500;.1900 1500 2046;T = 2298 1634 1600 1873 1487 1900 1500 2046 1556;pmax = max(P);pmax1 = max(pmax);pmin = min(P);pmin1 = min(pmin);for i=1:9P1(i,:)=(P(i,:)-pmin1)/(pmax1-pmin1);T1(i)=(T
9、(i)-pmin1)/(pmax1-pmin1);endnet = newff(P1,T1,3 7,tansig logsig,traingd);for i = 1:9net.trainParam.epochs = 15000;net.trainParam.goal=0.01;net.trainParam.lr = 0.1net = train(net,P1(i,:),T1(i);endy=sim(net,1500 2046 1556);y1=y*(pmax1-pmin1)+pmin1;如果神经网络的训练函数使用trainlm,则仿真步骤会很少,但需要较大的系统内存。经预测,来年一月的销售量(y1)为1.6845e+003箱(每次运行后的结果可能不同)。Welcome ToDownload !欢迎您的下载,资料仅供参考!精品资料