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

时间:2018-11-29 07:13:05

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

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

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

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

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

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

例如

mymodel <-nnet(~~~~)

预测(mymodel.test数据)

我从预测中得到了值A。

之后,我再次执行了相同的命令“ mymodel <-nnet(~~~~)预测(mymodel.test数据)”,那么很自然地得到A作为预测值。但是这一次,我得了B。

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

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

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

2 个答案:

答案 0 :(得分:2)

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

为避免这种情况,请使用相同的模型实例(仅在开始时执行一次mymodel<-nnet(~~~~),之后再继续执行predict()),或设置种子以生成随机值,以便您始终得到相同的随机值集

答案 1 :(得分:0)

即使数据和模型相同,您仍获得不同结果的原因是,每次您要求进行预测时,您都要求程序初始化模型所需的所有内容(即权重)。如果每次都希望获得相同的结果,则需要保持相同的权重值,而不必每次都重新初始化它们,则可以将其放入数据库中以备后用