本站原创文章,转载请说明来自《老饼讲解-BP神经网络》www.bbbdata.com
本文讲解matlab神经网络工具箱中的ValidationChecks是什么,
并提供几种禁止ValidationChecks的常用方法
Validation Checks是什么
在训练时,会出现遇到达到最大Validation Checks而退出训练的情况,
所以经常有小伙伴问,这Validation Checks是个什么鬼?
matlab工具箱内部会将数据分成三部分(注意观看,上面还有个Data Division):
👉 training
👉 validation
👉 testing
其中,training用于训练,validation用于验证泛化能力。
即matlab是边训练边验证,当验证数据连续n次没能提升时,则退出训练。
因为这样说明,BP神经网络的训练数据在越训练越好,但泛化能力却越来越差,
即走在过拟合的路上,所以将会退出训练。
正常是不关为好的,但如果需要关,那有三种方法:
01 . 将划分函数置空
net.dividefcn =''
02 . 不划分验证数据
net.divideParam.trainRatio=1
net.divideParam.valRatio=0
net.divideParam.testRatio=0
这里将验证数据比例置0,为了不浪费数据,同时也修改训练数据与检验数据比例。
03 . 将失败阈值调到极大
net.trainparam.max_fail =10000
这个不算关掉,只是让训练不因Validation Checks不通过而退出训练。
End