machine-learning - 使用 LSTM RNN 打乱训练数据

标签 machine-learning keras lstm recurrent-neural-network

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

最佳答案

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

无状态情况:

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

另一方面:

有状态案例:

网络的内存在序列之间保持不变。在这里,您不能盲目地打乱数据并期望获得最佳结果。序列 A 应该在序列 B 之前输入到网络,因为 A 在 B 之前,并且我们希望网络通过内存序列 A 中的内容来评估序列 B。

关于machine-learning - 使用 LSTM RNN 打乱训练数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44788946/

相关文章:

python - 如何从时间序列数据中提取有用的特征(例如,用户在论坛中的日常事件)

python - 在 Keras 中,验证准确率始终高于训练准确率

python - 自定义 keras 损失为 'sparse_softmax_cross_entropy_with_logits' - 排名不匹配

python - 如何在此 Tensorflow 模型中保存和加载 BatchNormalization 层?

tensorflow - FC 层后接 LSTM - Tensorflow

algorithm - 计算具有高死链接百分比的稀疏有向图的 pageranks

python - 哪些 PyTorch 模块受 model.eval() 和 model.train() 影响?

python - Scipy 和 Sklearn chi2 实现给出不同的结果

tensorflow - 如何使用TimeDistributed层来预测动态长度的序列? Python 3

python-3.x - 使用 LSTM 在在线多类分类中的每次迭代中预测给出相同的值