MATLAB爱好者论坛-LabFans.com

MATLAB爱好者论坛-LabFans.com (https://www.labfans.com/bbs/index.php)
-   深度神经网络/深度学习 (https://www.labfans.com/bbs/forumdisplay.php?f=45)
-   -   急救 :毕业设计神经网络问题 (https://www.labfans.com/bbs/showthread.php?t=8487)

流苏苏 2009-05-20 22:00

急救 :毕业设计神经网络问题
 
我的毕业设计老师让用神经网络,但是老师自己也不知道。我也是刚学。写出来的程序很不稳定。我也不知道要怎么办。
问题有:1,对于每一组数据结果总是差很多,有的时候说Maximum MU reached,我不知道MU 是什么,有的时候说梯度达到最小,有的时候说矩阵达到奇异化(Matrix is close to singular or badly scaled.
Results may be inaccurate. RCOND = 4.122506e-017.
> In trainlm at 318
In network.train at 278)。可是我不知道要怎么改程序,不知道是什么问题。
2,我用三组数据进行训练,可是误差很大,有的组的数据MSE误差达到0.001,有的组却又12.334,差别这么大,崩溃了。
现在介绍一哈我的系统,输入为两个节点(温度和黏度),输出一个节点(液体含油量这个是固定的,别的都是我自己写的。
另外参数要怎么选择我也不是很明白,还有就是输入数据和输出数据我也不是很明白要怎么选择。因为我看的书也没有介绍要怎么选择。
源代码如下:P1=[32 32 32 26 26 8 8 16 16 22 12 20 20 30 30 30 10 10 14 14 18 28 24];
P2=[80 88 94 84 94 82 86 84 94 86 90 88 94 84 90 94 88 96 82 90 90 90 84];
T=[34.9 30.8 25.4 36.4 29.7 49.1 48.0 43.0 39.1 38.0 43.8 38.5 35.4 33.6 29.4 26.7 46.1 44.1 45.0 42.1 39.0 30.7 37.8];
PTEST1=[18 18 14 14 14 8 8 32 32 26 22 10 10 30 30 28 24 24 12 12 12 16 20];
PTEST2=[88 92 80 86 92 92 84 90 84 86 90 90 84 96 80 86 82 90 80 86 96 90 90];
TTEST=[40.0 38.0 45.5 43.6 41.5 46.6 48.6 28.0 32.2 35.0 35.4 45.4 47.0 25.9 36.0 33.9 38.7 34.0 46.8 45.1 42.1 40.6 37.4];
P=[P1;P2];
PTEST=[PTEST1;PTEST2];

plot3(P1,P2,T);
title('目标矢量与输入关系');
xlabel('黏度');
ylabel('温度');
zlabel('含油量');
net=newff([8 32;80 96],[7,1],{'tansig','purelin'},'trainlm')
[R,Q]=size(P);
[S2,Q]=size(T);
S1=5;
[w1,b1]=rands(S1,R);
[w2,b2]=rands(S2,S1);
A2=purelin(w2*tansig(w1*P,b1),b2);
figure(2);
plot3(P1,P2,A2);
title('初始网络输出图');
xlabel('黏度');
ylabel('温度');
zlabel('含油量');
net.trainParam.epochs = 1000;
net.trainParam.show = 10;
net.trainParam.lr = 0.01;
net.trainParam.goal = 0.001;
[net,tr,A,E,Pf,Af] = train(net,P,T,[],[]);
A=sim(net,P);
figure(3);
plot3(P1,P2,A);
title('训练后网络输出图');
xlabel('黏度');
ylabel('温度');
zlabel('含油量');
E=T-A
MSE=mse(E)
A=sim(net,P)



另外一组输入和输出的数据是:
P1=[8 8 8 10 10 24 24 24 26 30 32 18 18 18 26 20 16 14 12 22 22 28 28];
P2=[80 88 96 82 92 80 88 96 90 92 96 80 86 94 82 82 82 96 92 84 96 84 94];
T=[49.5 47.7 45.9 47.5 45.0 39.7 35.3 30.1 32.2 28.0 24.1 43.0 40.8 37.1 37.5 41.1 43.6 40.1 43.1 39.0 31.9 35.0 28.0];
还有就是把训练数据和检测数据调换,误差还是差别很大。崩溃了。马上就要答辩。

怎么样才能把系统弄得稳定一些,误差要在 0.02以下 谢谢
谢谢各位。我在线等。也可以加QQ :506177678

karl_wang 2009-05-25 13:10

回复: 急救 :毕业设计神经网络问题
 
你好,你这个系统:输入为两个节点(温度和黏度),输出一个节点;那你就测量这两个节点的数据,再测得在这个两个数据条件下输出数据;多做得到些这样的数据,就可以训练神经网络了。

流苏苏 2009-05-26 15:09

回复: 急救 :毕业设计神经网络问题
 
[QUOTE=karl_wang;28562]你好,你这个系统:输入为两个节点(温度和黏度),输出一个节点;那你就测量这两个节点的数据,再测得在这个两个数据条件下输出数据;多做得到些这样的数据,就可以训练神经网络了。[/QUOTE]


版主,我想问一哈。两个节点到哪经验上需要多少输入数据呀 。谢谢 还有隐层节点理论上多少才是比较好的。谢谢

karl_wang 2009-05-26 15:46

回复: 急救 :毕业设计神经网络问题
 
至于输入多少比较合适这个也没有看到相关的资料有;不过这个隐层的神经元个数一般至少是输入神经元个数的:2n+1个。

小手冰凉 2013-05-28 08:51

回复: 急救 :毕业设计神经网络问题
 
请问这个程序为什么不出图


所有时间均为北京时间。现在的时间是 21:21

Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.