【问题标题】:Neural Network Random Seed Affecting Results影响结果的神经网络随机种子
【发布时间】:2018-10-26 19:10:26
【问题描述】:

我正在研究 James McCaffrey (download) 在 time-series regression 上的有趣文章中的代码。

这实质上是使用机器学习来生成对给定航空公司数据的预测和预测。

这是我使用他文章中的代码和数据生成的图表。如您所见,一切似乎都正常工作。

当我试图弄乱随机变量时,就会出现问题。他专门用0System.Random 对象播种,如下所示:this.rnd = new System.Random(0);(在NeuralNetwork 构造函数中)。该程序仅在分配网络的初始权重以及随机化要处理的数据顺序时才使用rnd 变量。种子应独立于数据(即处理的顺序和分配的随机权重不应影响结果)。

但是,请注意当我仅将行 this.rnd = new System.Random(0); 更改为 this.rnd = new System.Random(1); 时会发生什么。在这里,除了用1 而不是0System.Random 对象播种之外,我什么也没做。现在看看结果:

它仍然能够学习和预测数据,但是,预测完全错误!为什么更换种子会对结果产生如此显着的影响?从理论上讲,处理哪些订单数据或起始权重是什么都无关紧要,因为这是网络的重点,改变偏差直到它达到解决方案。我有什么遗漏吗?

【问题讨论】:

  • (注意:我没有看你的参考资料)你怎么知道“预测完全错了!”?如果您要对数据进行完整的 ARIMA 分析,包括对预测的置信度测量,您可能会发现两个预测都在模型的置信度范围内。我假设您正在使用 rnd 变量在模型中生成噪声。如果您始终使用相同的种子,您将始终得到相同的噪音。如果你改变种子,噪音就会改变,你会看到输出的变化——但两个预测都可能“正确”
  • 从数据中可以看出每个峰都比上一个高一点的规律。这与种子0 的预测数据以及文章中的图像相匹配。此外,任何随机权重都不应该对数据产生影响,因为神经网络会调整权重以找到解决方案。在这两种情况下,它都以几乎 100% 的准确率预测数据,但预测数据完全不同。为什么在预测相同的情况下会有这样的差异,如何最大化置信度以获得相同的预测?
  • 如果你只有一个神经元,预测的准确性会很差——所以增加神经元的数量来提高准确性。如果您有太多个神经元,也就是说,如果模型复杂度太高,则可能会出现“过度拟合”,从而产生良好的训练预测但预测不佳。一个简单的测试是降低模型复杂度并重新训练,看看您是否在降低复杂度的模型结果分析中观察到相同的现象。
  • 使用 0 的种子并减少到 2 输入,预测质量会受到影响,并且无法创建有意义的预测。对于1 的种子,我得到了类似的结果。当我将输入增加到25 时,预测准确性提高了,但预测的峰值要低得多。同样,1 种子的结果相似。这是否意味着0 的种子和5 的输入大小只是恰好与数据非常吻合的“幻数”?如何为我的数据找到自己的“神奇数字”?
  • 不,数据是一样的。 rnd 变量仅影响初始权重和用于训练的顺序。

标签: c# random neural-network time-series regression


【解决方案1】:

我可能会迟到一点,但让我贡献一下。

对于任何预测任务,我们都需要区分插值和外插。 神经网络是函数逼近器,能够很好地拟合训练数据。如果它们没有过度拟合,那么它们将在插值任务中表现良好(即预测非常接近训练集中观察到的分布的数据点)。 当涉及到外推(数据集的可见分布之外的预测)时,他们的预测可能会更加多样化,并且取决于他们的初始化。原因是神经网络中总是有一些权重不用于分布内的预测,而对于其他权重来说,你在训练期间最终的位置是随机的。这两个因素归因于您的预测具有一定的随机性。你可以这样想——你越是在观察到的训练分布之外,这些随机因素对你的预测的影响就越大。因此,在您的情况下,在观察范围之外进行预测时,随机种子开始发挥更大的作用。

您可以在图片中看到一个示例。蓝色和橙色点表示用于训练 NN 集合的训练/测试数据。绿点来自相同的功能,但已被“隐藏”。每条线代表这个集合中一个 NN 的预测。你可以观察到这些线在他们看到训练数据的区域中是如何彼此非常接近的,并且当它们在它们之外时它们变得更加多样化。这种差异可能是您所经历的,并且是预测不确定性的指标。重要的是要注意,即使评估了不确定性范围,这并不意味着预测(或整体预测的平均值)接近现实,因此这不是误差或潜在误差的度量。

Ensemble NNs extrapolation predictions

这里有两篇论文供参考:

  1. Xu 等人,“神经网络如何推断:从前馈到图神经网络”,ICLR'21;
  2. Madras 等人,“使用局部集成检测外推”,ICLR'20。

【讨论】:

    猜你喜欢
    • 2011-12-27
    • 2022-08-19
    • 2019-01-12
    • 2018-01-05
    • 2017-02-21
    • 2010-12-09
    • 1970-01-01
    • 2018-05-06
    • 1970-01-01
    相关资源
    最近更新 更多