Matlab神经网络不是学习
问题描述:
有人可以告诉我,如果我的代码是错误的,而试图训练我的网络模式识别?我很绝望,因为尝试一切,因为改变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)
我运行它正是这样。 p
和t
分别是我的输入和目标。 是否只是我,当试图运行工具箱(nprtool)不能引入目标,除非它来自演示?
答
当您启动GUI(nprtool),你应该能够选择从工作区中的变量目标(和输入):
关于你提到的第一个问题:
- 你可以尝试学习合成数据(当然适合模型)吗?
- 你可以尝试使用默认的
trainlm
选项而不是traingd
?
谢谢你的支持。我确实使用了工作区中的变量。发生什么事是,当我打开目标时,它不会给我改变选择?????我可以问别的吗?我两次能够训练网络,一旦我改变了目标,它就不会继续训练。我想这可能是因为体重,我很幸运,在一周内它可以工作两次。你知道什么是最好的权重开始?非常感谢你 – Paulo 2011-05-04 11:42:46
这可能是由于有问题的数据造成的,如果数据没有遵循神经网络模型,那么算法可能不会收敛。 – 2011-05-04 11:49:58
但我不明白为什么它会在我尝试多次的时候收敛两次。 Trainlm正常地给我一个更糟的MSE。我开始绝望了,是不是总是这样?我想尝试weka,但有空间问题,XMx没有解决它:( – Paulo 2011-05-04 11:55:17