Matlab BP神经网络之validation checks

Matlab版本:Matlab 2014a

1 问题描述

    bp网络设置如下

net = newff(all_tra, all_bar, 9, {'tansig','purelin'}, 'trainbfg');
net = init(net);
net.trainParam.goal=0.0001;             %设置相应的参数
net.trainParam.show=50;
net.trainParam.mc=0.9;
net.trainParam.lr=0.5;
net.trainParam.epochs=5000;

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


2 原因

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

3 解决方法

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

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

参考资料

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

OneSea

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值