BP神经网络matlab实例(简单而经典).doc
p=p1;t=t1;
[pn,minp,maxp,tn,mint,maxt]=premnmx(p,t);%原始数据归一化
net=newff(minmax(pn),[5,1],{tansig,purelin},traingdx);
%设置网络,建立相应的BP网络,minmax(pn)找到pn矩阵的最大最小值
net.trainParam.show=2000;%训练网络
net.trainParam.lr=0.01;
net.trainParam.epochs=100000;
net.trainParam.goal=1e-5;
[net,tr]=train(net,pn,tn);%调用TRAINGDM算法训练BP网络
pnew=pnew1;
pnewn=tramnmx(pnew,minp,maxp);
anewn=sim(net,pnewn);%对BP网络进行仿真
anew=postmnmx(anewn,mint,maxt);%复原数据
y=anew;
1、BP网络构建
〔1〕生成BP网络
:由维的输入样本最小最大值构成的维矩阵。
:各层的神经元个数。
:各层的神经元传递函数。
:训练用函数的名称。
〔2〕网络训练
〔3〕网络仿真
{tansig,purelin},trainrp
BP网络的训练函数
训练方法
训练函数
梯度下降法
traingd
有动量的梯度下降法
traingdm
自适应lr梯度下降法
traingda
自适应lr动量梯度下降法
traingdx
弹性梯度下降法
trainrp
Fletcher-Reeves共轭梯度法
traincgf
Ploak-Ribiere共轭梯度法
traincgp
Powell-Beale共轭梯度法
traincgb
量化共轭梯度法
trainscg
拟牛顿算法
trainbfg
一步正割算法
trainoss
Levenberg-Marquardt
trainlm
BP网络训练参数
训练参数
参数介绍
训练函数
最大训练次数〔缺省为10〕
traingd、traingdm、traingda、traingdx、trainrp、traincgf、traincgp、traincgb、trainscg、trainbfg、trainoss、trainlm
训练要求精度〔缺省为0〕
traingd、traingdm、traingda、traingdx、trainrp、traincgf、traincgp、traincgb、trainscg、trainbfg、trainoss、trainlm
学习率〔缺省为0.01〕
traingd、traingdm、traingda、traingdx、trainrp、traincgf、traincgp、traincgb、trainscg、trainbfg、trainoss、trainlm
最大失败次数〔缺省为5〕
traingd、traingdm、traingda、traingdx、trainrp、traincgf、traincgp、traincgb、trainscg、trainbfg、trainoss、trainlm
最小梯度要求〔缺省为1e-10〕
traingd、traingdm、traingda、traingdx、trainrp、traincgf、traincgp、traincgb、trainscg、trainbfg、trainoss、trainlm
显示训练迭代过程〔NaN表示不显示,缺省为25〕
traingd、traingdm、traingda、traingdx、trainrp、traincgf、traincgp、traincgb、trainscg、trainbfg、trainoss、trainlm
最大训练时间〔缺省为inf〕
traingd、traingdm、traingda、traingdx、trainrp、traincgf、traincgp、traincgb、trainscg、trainbfg、trainoss、trainlm
net.trainParam.mc
动量因子〔缺省0.9〕
traingdm、traingdx
net.trainParam.lr_inc
学习率lr增长比〔缺省为1.05〕
traingda、traingdx
net.trainParam.lr_dec
学习率lr下降比〔缺省为0.7〕
traingda、traingd