既然 LSTM RNN 使用之前的事件来预测当前序列,为什么我们要打乱训练数据呢?我们不会丢失训练数据的时间顺序吗?在经过打乱的训练数据训练后,它如何仍然有效地进行预测?
最佳答案
一般来说,当您打乱训练数据(一组序列)时,您会打乱序列输入 RNN 的顺序,而不是打乱各个序列内的顺序。当您的网络无状态时,这样做很好:
无状态情况:
网络内存仅在序列持续时间内持续存在。在序列 A 之前对序列 B 进行训练并不重要,因为网络的内存状态不会跨序列持续存在。
另一方面:
有状态案例:
网络的内存在序列之间保持不变。在这里,您不能盲目地打乱数据并期望获得最佳结果。序列 A 应该在序列 B 之前输入到网络,因为 A 在 B 之前,并且我们希望网络通过内存序列 A 中的内容来评估序列 B。
关于machine-learning - 使用 LSTM RNN 打乱训练数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44788946/