在Accord.Net中训练神经网络后测试性能/错误不一致/不同

我正在使用Accord.Net训练一个ResilientBackpropagation神经网络,以便为一组特征进行评分。

这个网络非常简单,结构如下:

  • 26个输入

  • 1个隐藏层,包含3个节点

  • 1个输出

我使用以下方式进行训练:

  • SigmoidFunction
  • 随机初始化
  • 训练集3000个样本
  • 验证集1000个样本

每次运行的学习曲线略有不同,但这是平均情况:enter image description here

我的问题

如果我使用相同的参数运行训练5次,并在我的交叉验证集上验证网络,我会得到5个不同的F1分数,介于88-91%之间。因此,很难决定何时停止训练并采用最终算法。这是正常的吗?所以,如果我想部署,我需要运行训练X次,并在我认为达到最佳结果时停止吗?


回答:

神经网络的权重是随机初始化的,因此训练后会生成不同的网络,从而给出不同的性能。虽然训练过程是确定性的,但初始值不是!结果,你可能会陷入不同的局部最小值,或者在不同的地方停止。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注