【发布时间】:2019-08-06 08:42:41
【问题描述】:
我正在学习神经网络,我正在尝试使用 Keras 实现和理解 LSTM 和其他循环神经网络。
我一直试图通过阅读文章和书籍来理解它们,特别是:this。但我无法将理论与实际例子联系起来。
例如,我将时间序列数据重新格式化为一个三维数组。我的数组大小为 (12000,60,1),目标是预测下一步。我的理解是我的时间步长是 60。
LSTM 结构如何利用这些数据,尤其是时间步长?
我目前的想法是,参考图表,LSTM 采用第一个 60 步数组并将第一个元素用作 X_0,然后它“执行 LSTM 单元所做的事情”并将更新的单元状态传递到输入 X_1 的下一个单元格并重复该过程。
现在,当 60 个元素中的每一个元素都通过了它们的每个单元格时,我们就有了 60 个节点(h0 到 h59),然后将这些节点馈入输出节点以预测下一步。最终的单元状态是下一个数组的第一个单元状态,并且以相同的方式运行下一个 60 的数组。
这是正确的吗?我怀疑我的理解,特别是最终的单元状态是否被传送到下一个数组。
如果所有这些都是正确的,那么相对于我的理解,LSTM(50) 中的 50 表示什么?
【问题讨论】:
-
我认为你的第一个猜测是正确的。如果您设置“stateful = true”,您的第二个也是正确的。如果“stateful=false”,则单元状态和隐藏状态将在每 60 个时间步后重置。
标签: keras neural-network lstm