Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 在训练神经网络时增加历元数以达到性能目标_Matlab_Neural Network - Fatal编程技术网

Matlab 在训练神经网络时增加历元数以达到性能目标

Matlab 在训练神经网络时增加历元数以达到性能目标,matlab,neural-network,Matlab,Neural Network,我正在用85*650的输入向量和26*650的目标向量训练神经网络。下面是我使用的参数列表 net.trainParam.max_fail = 6; net.trainParam.min_grad=1e-5; net.trainParam.show=10; net.trainParam.lr=0.9; net.trainParam.epochs=13500; net.trainParam.goal=0.001; 隐藏节点数=76 如你

我正在用85*650的输入向量和26*650的目标向量训练神经网络。下面是我使用的参数列表

     net.trainParam.max_fail = 6;
     net.trainParam.min_grad=1e-5;
     net.trainParam.show=10;
     net.trainParam.lr=0.9;
     net.trainParam.epochs=13500;
     net.trainParam.goal=0.001;
隐藏节点数=76


如你所见,我已将历代的数量设置为13500。将纪元数设置为如此大的数字可以吗?。如果纪元数减少,并且我在测试时得到的分类不好,则性能目标无法达到。

尽量不要关注纪元数。相反,您应该至少有两组数据:一组用于培训,另一组用于测试。使用测试集来了解您的ANN的性能,以及获得一个好的ANN需要多少时间


例如,当测试集的性能趋于稳定或开始下降(变得更糟)时,您希望停止培训。这将是过度学习的证据,这也是为什么更多的时代并不总是更好的原因。

当你达到13500岁时,你会得到什么?好的分类还是坏的分类?@NKN我得到了一个相当好的分类。那么,这对你的结构来说是一个好时代。您可以增加隐藏层中的神经元数量,例如,增加85x2或更多(如果85是样本中的变量数量)。在这种结构中,你可能会通过较少的试验次数(较低的年代)获得相同的结果。我认为这是一种错误的看待方法。一个好的算法在运行较长时间时应该表现得更好。这种缩短算法并期望良好分类和泛化的倾向是非常不成熟的。在我看来,只要你有耐心,就应该允许算法运行,并且泛化问题应该作为一个单独的问题来处理(通过辍学或其他方式)。所以,13500或100万个时代,如果这是你有耐心的事情,那就去吧。但是,如果它不是泛化的或过度拟合的,就不要减少历元作为解决方案。我一直在通过反复试验的方法增加历元的数量,直到达到性能目标。这样做对吗?