如何从多组数据中训练神经网络?

时间:2016-05-25 20:15:03

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

我想用很多相关数据来训练神经网络。这些数据来自飞行一定距离的赛鸽。输入可以是重量,年龄,大小,翼展,性别,距离,时间等。采样可以说每分钟。 我试图预测鸽子的典型时间,考虑到投入,将完成比赛。 输入数据将被标准化以提高网络的效率。 一个典型的数据线可能看起来像重量,年龄,大小,翼展,性别,距离,时间 -1.34,-1.23,-0.49,0.47,0.97,-1,-1.44,-0.75 随着比赛的进行,会有很多这样的线路,最后每只鸽子都会有时间成果。即3小时5分钟。 然后我会为这场比赛提供一套完整的数据,但显然每场比赛都会有所不同,所以我需要一种方法来训练它。 我的问题是,因为每场比赛都是一个谨慎的事件,我应该用什么方法来训练网络。我感到困惑的是,这不是一个连续的数据流,我可以让它开始工作。我应该用一套\种族训练它,直到它已经学会了,然后转移到下一个等等,或者是否有一种方法可用于此类问题。

谢谢!

2 个答案:

答案 0 :(得分:4)

如果我理解你的问题,你有:

  1. 一组比赛
  2. 每场比赛,你都有一套鸽子
  3. 对于比赛中的每羽鸽子,您每分钟都会记录一系列值。
  4. 对于比赛中的每羽鸽子,你也有最后的时间。
  5. 你想预测到目前为止在现场比赛中记录了一系列值的鸽子的最后时间。
  6. 如果这一切都正确,那么我会观察以下内容:

    1. 出于这个问题的目的,忽略两只鸽子是在同一场比赛还是两场不同比赛中飞行是有意义的。因此,"种族的概念"可以放弃,输入数据现在可以被认为是一组鸽子记录的苍蝇。
    2. 从本质上讲,您的数据是时间序列。常规前馈网络对时间序列不好。您需要使用经常性网络。目前,实际经常使用的两种循环网络是LSTM和GRU。
    3. 从头开始编写循环神经网络并不是一个好主意。选择一个框架(Keras,TensorFlow,Mxnet等),找到如何在该框架中训练LSTM的文档 - 所有这些都有这样的教程 - 并根据您的用例进行调整。

答案 1 :(得分:1)

  

(这本来是一个评论,但变得太长了,所以我把它作为答案;)

关于通过反向传播训练的前馈神经网络需要考虑的重要事项:反向传播算法通过一次又一次地遍历整个数据集来调整权重,从而(希望)改进结果和发现一套很好的。

此过程完成后,权重将被修复,您无法包含更多信息(仅将权重调整为新数据)。

这就是说,你要么一次训练所有种族(如@Ishamael)所建议,要么为每场比赛训练一个不同的NN

或者您转移到其他类型的网络和learning algorithms

最后,问题是在训练后我想对网络做些什么?