Python 当训练数据太多时,如何训练模型?

Python 当训练数据太多时,如何训练模型?,python,tensorflow,machine-learning,neural-network,keras,Python,Tensorflow,Machine Learning,Neural Network,Keras,我有一个RNN和太多的训练数据。对整个数据进行迭代将花费数年时间。现在我有两种培训选择: 1。是否传递尽可能多的数据 2。查找数据的选定部分,并对其上的多个时代进行训练 哪一个更好?为什么?假设数据在整个过程中都具有相同的质量,那么选项1要高得多 原因是它有助于避免过度安装。ML中最大的问题之一是,您需要训练的数据量有限,网络往往过于适合,即学习数据集的具体内容,而不是泛化到预期的问题 从不重复数据实际上是训练的理想情况 唯一需要注意的是,如果您在某些部分设置的标签非常准确,而在其他部分设置的标

我有一个RNN和太多的训练数据。对整个数据进行迭代将花费数年时间。现在我有两种培训选择:

1。是否传递尽可能多的数据

2。查找数据的选定部分,并对其上的多个时代进行训练


哪一个更好?为什么?

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

原因是它有助于避免过度安装。ML中最大的问题之一是,您需要训练的数据量有限,网络往往过于适合,即学习数据集的具体内容,而不是泛化到预期的问题

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


唯一需要注意的是,如果您在某些部分设置的标签非常准确,而在其他部分设置的标签更随意,那么坚持使用质量更好的数据可能会更好。

如果数据始终具有相同的质量,则选项1的效果要好得多

原因是它有助于避免过度安装。ML中最大的问题之一是,您需要训练的数据量有限,网络往往过于适合,即学习数据集的具体内容,而不是泛化到预期的问题

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


唯一需要注意的是,如果您在某些部分设置的标签非常准确,而在其他部分设置的标签则更加草率——在这种情况下,坚持使用质量更好的数据可能会更好。

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

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


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

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

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


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

Peter,您的答案似乎令人惊讶。您是否同意,在对所有数据进行培训的有限情况下,您更有可能过度拟合您的模型?(想必,目的是使用网络获取培训集以外的数据。)我们是否对这个问题有不同的理解,或者我误解了您答案中的某些内容DrM刚刚编辑好,问题的前提是他不可能检查所有的训练数据,因为他有太多的数据。这与我在ML中遇到的任何情况都大不相同。100%的情况下,数据太少,您尝试使用一些魔法来抵消过度拟合。实现这一点的最佳方法是永远不要两次使用同一块数据。假设他的数据在整个过程中都被正确地标记,这将导致在未知数据上的优异性能,而不是多次重复一个小的子集。[cont'd]换句话说,如果你只能在1M样本上进行训练(可用计算资源和时间的限制,而不是数据量),那么如果这1M样本都不同,比重复任何一个样本都好。是的,没有替换的选择是明确的。尽管如此,他还是被迫使用数据的一个子集。所以,他肯定会从数据中选取另一个子集来测试他的结果。一旦他做到了这一点,他似乎需要做几次。所以他可能会运行交叉验证。这就是我所知道的交叉验证:在这里可以这样做,但没有必要,因为你有大量的数据。交叉验证是处理太少数据的另一个有用工具…:)彼得,你的回答似乎令人惊讶。您是否同意,在对所有数据进行培训的有限情况下,您更有可能过度拟合您的模型?(想必,目的是使用网络获取培训集以外的数据。)我们是否对这个问题有不同的理解,或者我误解了您答案中的某些内容DrM刚刚编辑好,问题的前提是他不可能检查所有的训练数据,因为他有太多的数据。这与我在ML中遇到的任何情况都大不相同。100%的情况下,数据太少,您尝试使用一些魔法来抵消过度拟合。实现这一点的最佳方法是永远不要两次使用同一块数据。假如