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

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

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

  • 26个输入

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

  • 1个输出

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

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

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

我的问题

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


回答:

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

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

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