无状态LSTM存在的意义何在?

时间:2017-08-07 20:22:52

标签: python keras lstm rnn

LSTM的主要目的是利用其内存属性。基于这一点,无状态LSTM的存在意义何在?我们不是通过这样做将它“转换”成一个简单的NN吗?

换句话说...... LSTM的无状态使用是否旨在对输入数据中的序列(窗口)进行建模 - 如果我们在keras的拟合层中应用 shuffle = False - (例如,对于一个10个时间步长的窗口捕获10个字符的单词之间的任何模式)?如果是,为什么我们不转换初始输入数据以匹配检查中的序列发生器的形式,然后使用普通的NN?

如果我们选择 shuffle = True ,那么我们会丢失可以在我们的数据中找到的任何信息(例如时间序列数据 - 序列),不是吗?在那种情况下,我希望通过设置相同的随机种子来表现类似于普通NN并在两者之间获得相同的结果。

我在思考中遗漏了什么?

谢谢!

1 个答案:

答案 0 :(得分:0)

keras LSTM模型的数据始终采用(batch_size, n_steps, n_features)的形式。当您使用shuffle=True时,您将在batch_size参数上进行随机播放,从而保留n_steps长的序列的自然顺序。

如果您的batch_size个序列中的每个序列彼此无关,那么使用无状态模型是很自然的。每个阵列仍包含订单(时间序列),但不依赖于批次中的其他订单。