trainlm训练函数中的“mu”是不是学习率?相当于traingdx函数中的“lr”
val fail啥意思,网络训练每次都是因为validation check达到“6”,就结束了,这是什么原因,如下图
如何解决?训练的performance和gradient都还没达到精度要求
你这是论坛上拷贝过来的吧,有没有具体点的方法,还有这种因为validation checkd达到预设值而停止的训练结果能用么
追答你要明白它为什么要停止。连续6次误差不断增大,说明网络性能越训练越差。这可能是两方面原因:1.过拟合。网络学习得太好了,反而泛化能力下降。2.网络规模不够大,信息存储能力不够强,原先学习的知识又被新样本抹去了,导致网络性能无法提升。
要解决这个问题:一、如果要改变validation的验证次数,可以用这个语句net.trainParam.max_fail = 20; 二、或者是增多隐节点或隐层数。
提前停止的网络虽然陷入局部极小,但不一定就不能用,看实际效果吧。
我是因为误差连续6次不下降停止的,不是增大;还有就是隐藏层节点数和层数我都是一个一个凑,都不太行。是不是样本数据太少的原因?
追答不下降不就是增大嘛,不可能误差不变的。数据点少就降低隐层节点数。
追问明白了。不过我把节点数改成2个,还是会因为validation check达到6而终止