神经网络随机种子影响结果

时间:2018-10-26 19:10:26

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

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

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

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

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

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

enter image description here

它仍然能够学习和预测数据,但是预测是完全错误的!为什么更换种子会对结果产生如此重大的影响?从理论上讲,处理偏序数据或起始权重是多少(这就是网络的要点),更改偏差直到解决方案才有意义。有什么我想念的吗?

0 个答案:

没有答案