2011-05-03 158 views
2

有人可以告诉我,如果我的代码是错误的,而试图训练我的网络模式识别?我很绝望,因为尝试一切,因为改变Hn,时代,规范化我的数据等......但是网络似乎并没有发展。Matlab神经网络不是学习

下面是代码

net = newff(p,t,15,{},'traingd'); 
net.divideParam.trainRatio = 70/100; % Adjust as desired 
net.divideParam.valRatio = 15/100; % Adjust as desired 
net.divideParam.testRatio = 15/100; % Adjust as desired 
net.trainParam.epochs = 10000; 
net.trainParam.goal = 0.01; 
net.trainParam.show = 25; 
net.trainParam.time = inf; 
net.trainParam.min_grad = 1e-10; 
net.trainParam.max_fail = 10; 
net.trainParam.sigma = 5.0e-5; 
net.trainParam.lambda = 5.0e-7; 
net.trainParam.mu_max = 1e-20; 
net.trainParam.lr = 0.001; 

% Train and Apply Network 
[net,tr] = train(net,p,t); 
outputs = sim(net,p); 

% Create P. 

% Plot 
plotperf(tr) 
plotfit(net,p,t) 
plotregression(t,outpts) 

我运行它正是这样。 pt分别是我的输入和目标。 是否只是我,当试图运行工具箱(nprtool)不能引入目标,除非它来自演示?

回答

2

当您启动GUI(nprtool),你应该能够选择从工作区中的变量目标(和输入):

nprtool

关于你提到的第一个问题:

  • 你可以尝试学习合成数据(当然适合模型)吗?
  • 你可以尝试使用默认的trainlm选项而不是traingd
+0

谢谢你的支持。我确实使用了工作区中的变量。发生什么事是,当我打开目标时,它不会给我改变选择?????我可以问别的吗?我两次能够训练网络,一旦我改变了目标,它就不会继续训练。我想这可能是因为体重,我很幸运,在一周内它可以工作两次。你知道什么是最好的权重开始?非常感谢你 – Paulo 2011-05-04 11:42:46

+0

这可能是由于有问题的数据造成的,如果数据没有遵循神经网络模型,那么算法可能不会收敛。 – 2011-05-04 11:49:58

+0

但我不明白为什么它会在我尝试多次的时候收敛两次。 Trainlm正常地给我一个更糟的MSE。我开始绝望了,是不是总是这样?我想尝试weka,但有空间问题,XMx没有解决它:( – Paulo 2011-05-04 11:55:17