【问题标题】:Why I get different predictions from same neural-network model?为什么我从同一个神经网络模型得到不同的预测?
【发布时间】:2018-11-29 07:13:04
【问题描述】:

正如我写的标题,我陷入了我的神经网络做出不同预测值的问题。

这是我使用神经网络进行预测的步骤。

首先,对 x 进行归一化,并使用 'nnet' 制作神经网络模型。

之后,我使用 predict 命令进行了预测。预测(网络模型,测试数据)

但问题是,每当我运行神经网络时,我都会得到不同的预测。

例如,

我的模型

预测(mymodel.test 数据)

我从预测中得到值 A。

之后,我再次执行相同的命令 'mymodel

如果我再次运行它,我会得到 C。

为什么我从同一个神经网络模型中得到不同的预测?

我应该怎么做才能解决这个问题?

【问题讨论】:

  • 回答这个问题的唯一方法是您需要提供的机智代码。显示问题的自包含示例将是最好的。

标签: machine-learning neural-network artificial-intelligence prediction


【解决方案1】:

原因是您在进行另一个预测之前要重新训练您的模型。默认情况下训练神经网络模型涉及在初始化时为每个神经元值设置一些随机值。因此,每次训练都会在一定程度上产生不同的模型。

为了避免这种情况,要么使用相同的模型实例(在开始时只执行一次mymodel<-nnet(~~~~),然后继续只执行predict()),或者为随机值生成设置一个种子,这样你总是得到相同的集合正在初始化的随机值

【讨论】:

    【解决方案2】:

    即使数据和模型相同,您得到不同结果的原因是每次您要求预测时,您都要求程序初始化模型所需的所有内容(即权重)。如果您每次都想要相同的结果,那么您需要为权重保持相同的值而不是每次都重新初始化它们,您可以通过将它们放入数据库中以供以后使用来做到这一点

    【讨论】:

      猜你喜欢
      • 2021-11-08
      • 2021-12-06
      • 1970-01-01
      • 2021-07-22
      • 2013-05-12
      • 2017-05-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多