使用 LSTM RNN 混洗训练数据
Shuffling training data with LSTM RNN
既然 LSTM RNN 使用以前的事件来预测当前序列,为什么我们要打乱训练数据?我们不会丢失训练数据的时间顺序吗?在对随机训练数据进行训练后,它如何仍然能有效地做出预测?
一般来说,当您打乱训练数据(一组序列)时,您打乱了序列馈送到 RNN 的顺序,而不是打乱单个序列内的顺序。当您的网络是无状态时,这样做很好:
无状态案例:
网络的记忆只在一个序列的持续时间内持续存在。在序列 A 之前对序列 B 进行训练并不重要,因为网络的记忆状态不会跨序列持续存在。
另一方面:
状态案例:
网络的记忆跨序列持续存在。在这里,您不能盲目地调整数据并期望获得最佳结果。序列 A 应该在序列 B 之前馈送到网络,因为 A 在 B 之前,我们希望网络通过记忆序列 A 中的内容来评估序列 B。
既然 LSTM RNN 使用以前的事件来预测当前序列,为什么我们要打乱训练数据?我们不会丢失训练数据的时间顺序吗?在对随机训练数据进行训练后,它如何仍然能有效地做出预测?
一般来说,当您打乱训练数据(一组序列)时,您打乱了序列馈送到 RNN 的顺序,而不是打乱单个序列内的顺序。当您的网络是无状态时,这样做很好:
无状态案例:
网络的记忆只在一个序列的持续时间内持续存在。在序列 A 之前对序列 B 进行训练并不重要,因为网络的记忆状态不会跨序列持续存在。
另一方面:
状态案例:
网络的记忆跨序列持续存在。在这里,您不能盲目地调整数据并期望获得最佳结果。序列 A 应该在序列 B 之前馈送到网络,因为 A 在 B 之前,我们希望网络通过记忆序列 A 中的内容来评估序列 B。