Matlab在训练神经网络时既未达到迭代次数也未达到优化目标,但是突然停止

本文详细解释了神经网络训练过程中validationcheck的功能及其作用机制,包括样本划分原则和训练终止条件。同时,提供了调整validationcheck设置、优化网络结构和数据选择等三种解决网络训练停止过早的方法。最后讨论了取消validationcheck后的潜在风险,提醒读者注意网络可能陷入局部最优的风险。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

加入如下参数,取消validation check功能    
net.divideFcn = ''
但是这个方法对于网络的训练精度提高和输出的逼近程度没有显著改善
问:求助:有人懂validation check吗
我在训练BP网络时,nntraintool 的界面上提示说validation stop.而且它的validation check自动显示的是6,而训练目标没有达到,训练就结束了。
答:validation check
翻译过来:确认检查
内涵:神经网络的样本若输入网络,默认情况下会将样本随即分为3类:训练样本,确认样本和测试样本。确认检查值默认是6,它的意思是指随着网络利用训练样本进行训练的过程中,确认样本的误差曲线连续6次迭代不在下降。这时训练终止(这只是训练终止条件之一,满足任一终止条件,训练过程都将终止)深层含义你可以这样理解,如果随着网络的训练,确认样本的误差已经基本不在减小,甚至增大,那么就没有必要再去训练网络了,因为继续训练下去的话,在利用测试样本进行测试网络的话,测试样本的误差将同样不会有所改善,甚至会出现过度拟合的现象。

validation checks已经达到设置的值了,所以停止训练了,如果网络在连续max_fail epochs后不能提高网络性能,就停止训练。有三种方法解决这个问题;1  提高validation checks的数值,比如设置net.trainParam.max_fail = 200;其实这等于自己糊弄自己严重不推荐,出现停止训练,就是因为被训练的网络已经过拟合,停下来是应该的。但6的确有点小,建议改成10到20之间的数
2 修改被训练的网络,比如说再加一个隐藏层试试
3  如果是数据太相近的问题,试试选择用divideind
还可以加入如下参数,取消validation check功能
net.divideFcn = ''
但是这个方法对于网络的训练精度提高和输出的逼近程度没有显著改善,但是取消这个功能之后,gradient又首先达到指定的目标,我的神经网络是不是陷入局部最优了。


转自:http://blog.youkuaiyun.com/pitt_xiong/article/details/7781274

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值