我正在尝试前馈反向传播但是在网络训练之后,当模拟和打印模拟输出时,我看不到任何靠近目标的值,但它只是一个数字。
代码如下。有什么问题或者问题是什么?
前馈反向传播:
>> load('E:/Inputdata.txt');
>> load('E:/Targetdata.txt');
>> P = Inputdata(1:406,1:3);
>> T = Targetdata(1:406,1);
>> S = Inputdata(407:507,1:3);
>> Y = Targetdata(407:507,1);
>> [pn,minp,maxp,tn,mint,maxt]=premnmx(P',T');
>> [sn,mins,maxs,yn,miny,maxy]=premnmx(S',Y');
>> net =newff(minmax(pn),[5 2 1],{'tansig','tansig','tansig'},'traingdm');
>> net.trainParam.show = 50;
>> net.trainParam.lr = 0.4;
>> net.trainParam.epochs = 3200;
>> net.trainParam.goal = 1e-5;
>> net=train (net,pn,tn);
>> A = sim (net,sn);
>> Z=postmnmx(A',miny,maxy);
>> [Y Z]
75.8810 80.0903
76.5849 80.0903
77.2888 80.0903
77.9927 80.0903
78.6966 80.0903
79.4005 80.0903
80.1044 80.0903
80.8083 80.0903
128.6739 80.0903
129.3778 80.0903
130.0817 80.0903
130.7856 80.0903
131.4895 80.0903
132.1934 80.0903
132.8973 80.0903
133.6012 80.0903
Y是真正的目标,Z是网络输出中的第2列。
此输出不满足它必须做的事情,因为如果我给其他模拟设置所以它是相同的,输出必须接近真实目标。