使用 LSTM RNN 混洗训练数据

Shuffling training data with LSTM RNN

既然 LSTM RNN 使用以前的事件来预测当前序列,为什么我们要打乱训练数据?我们不会丢失训练数据的时间顺序吗?在对随机训练数据进行训练后,它如何仍然能有效地做出预测?

一般来说,当您打乱训练数据(一组序列)时,您打乱了序列馈送到 RNN 的顺序,而不是打乱单个序列内的顺序。当您的网络是无状态时,这样做很好:

无状态案例:

网络的记忆只在一个序列的持续时间内持续存在。在序列 A 之前对序列 B 进行训练并不重要,因为网络的记忆状态不会跨序列持续存在。

另一方面:

状态案例:

网络的记忆跨序列持续存在。在这里,您不能盲目地调整数据并期望获得最佳结果。序列 A 应该在序列 B 之前馈送到网络,因为 A 在 B 之前,我们希望网络通过记忆序列 A 中的内容来评估序列 B。