如果训练数据太多,如何训练模型?

时间:2018-04-22 16:07:20

标签: python tensorflow machine-learning neural-network keras

我有一个RNN和太多的训练数据。整个数据的迭代需要数年时间。现在我有两种培训方式:

1。做一个尽可能多的数据传递

2。找到数据的选定部分并训练其上的多个历元

哪一个更好,为什么?

3 个答案:

答案 0 :(得分:3)

假设数据在整个过程中具有相同的质量,那么选项1就要优越得多。

原因是它有助于避免过度拟合。 ML中最大的问题之一是您需要训练的数据量有限,并且网络倾向于过度拟合,即了解特定的数据集而不是推广到预期的问题

从不重复数据实际上是训练的理想情况。

唯一需要注意的是,如果你在某些部分非常准确地设置了标签,而在其他部分中做得更加笨拙 - 在这种情况下,坚持使用质量更好的数据可能更好。

答案 1 :(得分:2)

问题是笼统的问题,因此以下也是一般性的。我希望这有助于您解决具体问题。

一种方法是交叉验证的变体。您随机选择部分数据,并在第二部分数据上评估结果。重复整个过程,直到满足收敛标准或耗尽您的计数。收敛标准可能类似于以某种速率获得相同或类似的网络。您可以在两种模式中的任何一种模式下执行此操作,允许或不允许重复使用数据。

要记住的第二点是,您的执行时间取决于“特征向量”的长度或应用程序中的任何功能。选择特征向量的重要组成部分既可以缩短处理时间,也可以帮助培训更加成功。 Scikit learn有一个函数SelectKBest(),可能对此有所帮助。

答案 2 :(得分:-1)

你不能通过选项1.这需要很多时间。 您可以通过选项2.您可以批量训练数据。它需要更少的内存和更快的训练