PDA

查看完整版本 : [求助]怎么修改我的程序?


caikong
2008-09-23, 15:48
【求助】有关MATLAB人工神经网络

BP模型, 本人的程序如下
a=[1 1 6 20; 1 4.5 6 20;1 10.5 6 20;1 15 6 20;1 3 3.5 20;1 3 4.5 20;1 3 5 20;1 3 6.5 20;1 3 7 20;1 3 8 20; 1 3 9 20;1 3 10 20;1 3 6 0;1 3 6 5;1 3 6 10;1 3 6 20;1 3 6 30;1 3 6 50;1 3 6 60;1 3 6 80]
b=[4; 19;26;53;72;30;13;12; 5;3;4;9; 29;42;40;19; 6; 4;3;1]
c=[1 7.5 6 20;1 3 6 20; 1 3 6 40; 1 3 6 70]
a=a'
b=b'
c=c'
net=newff(minmax(a),[10 1],{'tansig' 'purelin'}, 'trainlm')
net.trainParam.show = 50;
net.trainParam.lr = 0.001;
net.trainParam.epochs = 10000;
net.trainParam.goal = 1e-7;
net.trainParam.min_grad = 1e-9;
[net,tr]=train(net,a,b);
figure
y=sim(net,c)
在运算过程中总出现,
Minimum gradient reached, performance goal was not met.或者是
Maximum MU reached, performance goal was not met.

请问,我改怎么改动我的程序? :lovely:

sbyong
2008-12-04, 14:41
输出需要归一化,即把输出结果转化到0-1之间的数。
有人说输入也要归一。
对于输入,我不是很确定。

tangwa
2008-12-09, 09:47
这个程序输出的是0~1之间的数据,但并不是归一化的结果,而是因为隐藏层的转化函数为归一化处理,输出层的转化函数似乎为线性转化!

cy1608
2008-12-12, 11:00
最好还是要把输入样本归一化