永发信息网

这个matlab的bp神经网络为什么误差这么大?

答案:2  悬赏:10  手机版
解决时间 2021-04-15 20:02
  • 提问者网友:寂寞撕碎了回忆
  • 2021-04-15 09:27
P=1:2:100;
T=sin(P*0.1);
NodeNum=7;
TypeNum=1;
Epochs=10000;
TF1 = 'tansig';TF2='purelin';
net=newff(minmax(P),[NodeNum TypeNum],{TF1 TF2},'trainlm');
net.trainParam.epochs=Epochs;
net.trainParam.goal=1e-8;
net.trainParam.min_grad=1e-20;
net.trainParam.show=200;
net.trainParam.time=inf;
net=train(net,P,T);
X=sim(net,P); %对用来训练的输入进行仿真
E=X-T;
sumsqr(E)
P1=2:2:200;
X=sim(net,P1); %对另外一个输入进行仿真
T1=sin(P1*0.1);
E=X-T1;
sumsqr(E)

ans =

4.9766e-007

ans =

111.2491

两次计算均方差结果,第一次结果很好,第二次为什么误差这么大?
谢谢大家
最佳答案
  • 五星知识达人网友:枭雄戏美人
  • 2021-04-15 10:34
首先是数据归一化,看见你程序好像是没有设定步长吧,设上试试
全部回答
  • 1楼网友:西岸风
  • 2021-04-15 11:33
clear; clc; shuru=[1305554.51 662938.89 877648.23 955254.91 1182286.47 605157.99 769639.28 1000855.67 1567936.19 712892.06 995621.47 1210817.23 1824825.89 805095.78 1357303.95 1913573.98 2221913.29 988940.37 1520540.25; -535933.67 -265478.17 -358139.96 -390311.91 -484727.57 -240666.79 -312753.06 -408491.77 -644476.31 -284092.72 -405644.61 -495278.31 -750743.05 -320627.06 -555553.68 -786731.21 -914786.21 -395704.62 -622816.59; 190253.14 97770.16 127640.62 138952.91 172150.18 89252.23
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯