LSTM 长期依赖 Keras

数据挖掘 神经网络 lstm rnn
2021-10-02 08:03:58

我熟悉 LSTM 单元(记忆单元、遗忘门、输出门等),但是我很难了解它如何与 Keras 中的 LSTM 实现联系起来。

在 Keras 中,X 的输入数据结构是:(nb_samples, timesteps, input_dim)。

假设 X 的形状为:(1000, timesteps = 10, 40)。

1)这是否意味着 LSTM 单元将只考虑 10 个先前时间步的“批次”?

2) 或者 LSTM 单元的输出是否在这些 10 个时间步的集合之间传递,即你能在 50 个时间步之外捕获长期依赖关系吗?

1个回答

最后一个数字 40 与序列长度无关,它是一个超参数设置,基本上是序列中每个标记的向量“表示”的长度。在这种情况下,它的长度为 40。如果将其设置为 40 并使用输入 300 维的输入嵌入(在 Glove 中很常见),则 300 维单词将映射到通过 LSTM 排列的 40 维单词。

如果你熟悉的话,这个想法与 CNN 中的“内核映射”的数量非常相似。它只是一种告诉你的网络你希望你的模型在你的 LSTM 做它的事情时生成多少内部特征的方法。更多的特征意味着更强的表示能力和更好的信息流,但可能会以过度拟合为代价。