p=p1';t=t1';
[pn,minp,maxp,tn,mint,maxt]=premnmx(p,t); %原始数据归一化
net=newff(minmax(pn),[5,1],{'tansig','purelin'},'traingdx');%设置网络,建立相应的BP网络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网络
=
(,[1 2...],{ 1 2...},,,) net newff PR S S SNl TF TF TFNl BTF BLF PF
R?维矩阵。
PR:由R维的输入样本最小最大值构成的2
S S SNl:各层的神经元个数。
[1 2...]
TF TF TFNl:各层的神经元传递函数。
{ 1 2...}
BTF:训练用函数的名称。
(2)网络训练
=
[,,,,,] (,,,,,,)
net tr Y E Pf Af train net P T Pi Ai VV TV
(3)网络仿真
Y Pf Af E perf sim net P Pi Ai T
=
[,,,,] (,,,,)
{'tansig','purelin'},'trainrp'
BP网络的训练函数
训练方法训练函数
梯度下降法traingd
有动量的梯度下降法traingdm
自适应lr梯度下降法traingda
自适应lr动量梯度下降法traingdx
弹性梯度下降法trainrp
Fletcher-Reeves共轭梯度法traincgf
Ploak-Ribiere共轭梯度法traincgp