理解 LSTM 时间步长和特征
在 LSTM 模型中,时间步长和特征指的是输入数据的维度。时间步代表序列中数据点的数量,而特征代表每个数据点内的不同变量或维度。
在您的示例中,输入数据被重新整形为具有以下维度的 3D 数组:
因此,每个样本都是 3 个数据点的序列,每个数据点由单个输入组成变量。
有状态 LSTM
有状态LSTM 维护一个在每个时间步更新的隐藏状态。这使得模型能够从过去的输入中学习并根据上下文做出预测。当 stateful=True 时,LSTM 将记住批次之间的隐藏状态,这对于顺序数据非常有用。
在您的代码中,您使用批次大小为 1 并训练模型 100 个时期。但是,您还可以使用 model.reset_states() 在每个纪元之后重置状态。这意味着模型实际上并没有从批次之间的过去输入中学习,它本质上是将每个批次视为一个新序列。
要正确训练有状态 LSTM,您应该避免在训练期间重置状态。相反,您应该仅在想要开始新序列或对新数据点进行预测时重置状态。
展开的图表
您提供的图表说明 LSTM 网络的展开架构。在这两种情况下,红色框代表输入步骤,绿色框代表隐藏状态。
编辑 1:
下图对应于第一个展开的图您提供的:
[每个时间步一个输入步骤的展开图的图像]
您提供的图表对应于第二个展开图:
[同时包含所有输入步骤的展开图图像]
编辑 2:
理解时间步长和特征参数对于 LSTM 模型至关重要。请参阅原始帖子和评论中提供的资源以获取进一步的说明。
附加说明:
以上是时间步长和特征如何影响 LSTM 模型性能和状态训练?的详细内容。更多信息请关注PHP中文网其他相关文章!