欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

Matlab ANN人工神经网络 validation checks

发布时间:2025/3/21 编程问答 54 豆豆
生活随笔 收集整理的这篇文章主要介绍了 Matlab ANN人工神经网络 validation checks 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

 bp网络设置如下:

%创建网络 % logsig:对数S形转移函数,单极性;tansig: 双极性S形转移函数;purelin:线性函数 % traingdx :梯度下降自适应学习率训练函数,traingdm,trainlm, trainscg 这些是权值的学习算法 % traingdm是带动量的梯度下降法,trainlm是指L-M优化算法,trainscg是指量化共轭梯度法 net=newff(minmax(p1),[8, 15, 12, 1],{'tansig', 'tansig','tansig','purelin'},'trainlm'); %设置训练次数 net.trainParam.epochs = 600; %设置收敛误差 net.trainParam.goal=0.0001; %设置学习率 net.trainParam.lr = 0.003 ; %设置动量因子,避免局部最优和过拟合 net.trainParam.mc=0.9; %最小确认失败次数 net.trainParam.max_fail=6; %设置训练数据 比例:训练:验证:测试 net.divideFcn = 'divideblock' ; net.divideParam.trainRatio = 0.7; net.divideParam.valRatio = 0.15; net.divideParam.testRatio = 0.15;

   对上述bp神经网络进行训练的时候,训练结果还没有达到目标的精度,就由于validation checks的值达到了6而停止了进一步的训练,如下图:

    神经网络的样本默认情况下会将样本随即分为3类:训练样本,确认样本和测试样本。
    确认检查值默认是6,它的意思是指随着网络利用训练样本进行训练的过程中,确认样本的误差曲线连续6次迭代不再下降。这时训练终止(这只是训练终止条件之一,满足任一终止条件,训练过程都将终止)。
    深层含义你可以这样理解,如果随着网络的训练,确认样本的误差已经基本不在减小,甚至增大,那么就没有必要再去训练网络了,因为继续训练下去的话,在利用测试样本进行测试网络的话,测试样本的误差将同样不会有所改善,甚至会出现过度拟合的现象。

    根据《matlab人工神经网络参数》的提示,可以通过下面的设置来改变Validation Checks的值

net.trainParam.max_fail=100; % 最小确认失败次数

 

参考资料

[1]请教:Matlab 7.8 BP网络训练时validation checks 6 退出训练问题

[2]求助:有人懂validation check吗

总结

以上是生活随笔为你收集整理的Matlab ANN人工神经网络 validation checks的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。