BPbp神经网络训练样本收敛快 程序如何调整

 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
BP神经网络的收敛问题
下载积分:500
内容提示:BP神经网络的收敛问题
文档格式:PDF|
浏览次数:39|
上传日期: 08:51:29|
文档星级:
该用户还上传了这些文档
BP神经网络的收敛问题
官方公共微信BP网络收敛特别慢,有没有好的处理方法
[问题点数:50分,结帖人njuliao]
BP网络收敛特别慢,有没有好的处理方法
[问题点数:50分,结帖人njuliao]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
本帖子已过去太久远了,不再提供回复功能。BP神经网络validation checks很快到达6,performance还没达到要求,还有performance收敛很慢本人初学者,请高手多多指教,
validation checks是用来防止网络训练过适的,即是训练时网络的验证误差大于训练误差的次数,默认值为6就是大于次数达到6次训练就会停止.网络训练过适时,即使performance还在减小网络性能也不会提高,反而会降低,因此要...
为您推荐:
其他类似问题
扫描下载二维码查看: 2785|回复: 3|关注: 0
BP神经网络训练过程MSE一直居高不下,如何改进优化程序?
<h1 style="color:# 麦片财富积分
新手, 积分 5, 距离下一级还需 45 积分
inputs = xlsread('practice.xlsx','A2:F87');
targets = xlsread('practice.xlsx','G2:G87');
inputs=inputs';
targets=targets';
% Create a Fitting Network
%hiddenLayerSize = 10;
%net = fitnet(hiddenLayerSize);
net = feedforwardnet(12);
% Choose Input and Output Pre/Post-Processing Functions
% For a list of all processing functions type: help nnprocess
net.inputs{1}.processFcns = {'removeconstantrows','mapminmax'};
net.outputs{2}.processFcns = {'removeconstantrows','mapminmax'};
% Setup Division of Data for Training, Validation, Testing
% For a list of all data division functions type: help nndivide
net.divideFcn = 'dividerand';&&% Divide data randomly
net.divideMode = 'sample';&&% Divide up every sample
net.divideParam.trainRatio = 70/100;
net.divideParam.valRatio = 15/100;
net.divideParam.testRatio = 15/100;
net.trainFcn = 'trainlm';&&% Levenberg-Marquardt
net.performFcn = 'mse';&&% Mean squared errorn
net.plotFcns = {'plotperform','plottrainstate','ploterrhist', ...
&&'plotregression', 'plotfit'};
% Train the Network
[net,tr] = train(net,inputs,targets);%使用处理后的输入变量和输出变量训练网络
% Test the Network
%outputn = net(pn);%该项命令计算出训练完的神经网络对于输入数据的输出结果
%outputs = mapminmax('reverse',outputn,ts) %该项命令将输出数据还原到原始尺度
outputs = net(inputs);
errors = gsubtract(targets,outputs);
performance = perform(net,targets,outputs)
% Recalculate Training, Validation and Test Performance获得训练验证和测试的结果
trainTargets = targets .* tr.trainMask{1};
valTargets = targets&&.* tr.valMask{1};
testTargets = targets&&.* tr.testMask{1};
trainPerformance = perform(net,trainTargets,outputs)
valPerformance = perform(net,valTargets,outputs)
testPerformance = perform(net,testTargets,outputs)
% View the Network
view(net)
% Plots
% Uncomment these lines to enable various plots.
figure, plotperform(tr)
figure, plottrainstate(tr)
figure, plotfit(net,inputs,targets)
%figure, plotconfusion(targets,outputs)
figure, plotregression(targets,outputs)
figure, ploterrhist(errors)
save('training_net.mat','net','tr');复制代码程序代码如上所以,训练数据中前六列数据作为输入数据,第七列为输出数据。训练过程中MSE一直在10四次方以上。跪求高人指点如何优化改程序。另外,针对六个不同的输入变量对输出结果的影响程度大小,能够通过什么手段进行评价呢?非常感谢高人解答。
07:25 上传
点击文件名下载附件
33.91 KB, 下载次数: 87
帖子最佳答案
关注者: 2225
尝试把你的训练数据做以下处理:低通滤波、或者微分(最好是二阶),这样首先消除数据里的噪音;
第二:尝试增加你网络的隐藏层,这样可以增加一定数量的非线性
net.trainFcn = 'trainlm';&&% Levenberg-Marquardt 还有很多其他函数可选
math (博士、教授)Email: & &&&QQ:
我在网络上的言论、见解等只代表我个人的观念,与任何研究机构、商业公司等无关。欢迎你通过任何方式与我探讨学术和技术上的问题(学生提问的话,请在论坛上发帖提问)。最新日志:
<h1 style="color:# 麦片财富积分
关注者: 1
增加隐含层试试
net = feedforwardnet([12,6])
<h1 style="color:# 麦片财富积分
math 发表于
尝试把你的训练数据做以下处理:低通滤波、或者微分(最好是二阶),这样首先消除数据里的噪音;
第二:尝 ...
老师您好,我尝试了增加隐含层数目,也尝试了使用不同的训练函数,但是MSE还是10的几次方的数量级。看来我只能通过训练数据的处理。我能不能通过数据的归一化进行训练数据的处理呢?你说的低通滤波和微分怎么实现呢?
站长推荐 /2
Powered by神经网络训练最后的收敛图 best training performance is NaN at。。。什么意思,是没有收敛吗_百度知道

我要回帖

更多关于 bp网络训练 的文章

 

随机推荐