一个神经网络随着新的训练数据可用而不断学习

数据挖掘 神经网络 深度学习
2022-02-17 09:45:34

我有大量训练数据的文本分类问题。运行交叉验证需要很多时间——几天甚至几周。为了让系统反应更灵敏,我在想下面的方案:

  • 在实例 1,...,100 上训练网络。
  • 在实例 101,...200 上测试它;输出精度。
  • 在实例 101,...200 上训练现有网络;
  • 在实例 201,...300 上测试它;输出精度。
  • 等等。

理想情况下,我希望这样:

  • 每增加 100 个实例的训练将花费固定时间(即,我不必在所有先前实例上重新训练网络);
  • 经过训练的网络将具有所有先前实例的组合“智慧”(因此其准确性将随着时间的推移而提高)。

这可能与标准的深度学习工具(例如 dynet)有关吗?

1个回答

您可以通过使用 100 个示例批量训练网络来实现这一目标。在这种情况下,您在一个批次上进行训练并更新神经网络参数,您在第二个批次上进行预测以估计准确度,然后您使用第二个批次的示例继续训练网络,依此类推。

在每个框架上都实现了批量训练(一种在线学习形式),请参阅此处的 Keras 示例。