多层 LSTM 神经网络的结构?

数据挖掘 机器学习 lstm
2022-02-21 05:50:07

我在 Keras 中实现了一个 LSTM 神经网络模型。然而,这些代码是如何在幕后工作的还不是很清楚。我想知道它是否像我猜的那样工作?

例如:假设有一个 2 层 LSTM 网络,每层有 10 个单元。输入是序列数据X1,X2,X3,X4,X5.

所以当输入进入网络时,X1将首先被投入网络并连接到第一层的每个单元。它将生成 10 个隐藏状态/10 个存储单元值/10 个输出。然后是 10 个隐藏状态、10 个记忆单元值和X2将再次连接到 10 个单元,并生成另外 10 个隐藏状态/10 个存储单元值/10 个输出等等?

毕竟5Xi的被输入到网络中,来自的 10 个输出X5然后将来自第一层的输入用作第二层的输入。其他输出来自X1X4不使用。而这10个输出又会被一层一层的输入到第二层。因此,10 个中的第一个将连接到第二层中的每个单元,并生成 10 个隐藏状态/10 个存储单元值/10 个输出。10 个存储单元值/10 个隐藏状态,然后将连接 10 个中的第二个值,等等?

完成所有这些之后,只有第 2 层的最后 10 个输出会被使用吗?这就是 LSTM 网络的工作原理吗?谢谢!

1个回答
  • 对于第 1 层,After all 5 Xi's are entered into the network, the 10 outputs from X5 from the first layer are then used as the inputs for the second layer. The other outputs from X1 to X4 are not used.

不,所有时间步长 1,2,...,5 的输出都用作第二层的输入。

  • 对于第 2 层,After all these are done, only the final 10 outputs from the layer 2 will be used?

这取决于你。有些人选择仅使用最终 size=10 的输出作为所有输入的编码有些人选择平均或连接第二层的所有输出。使用注意力时,会使用所有输出。

是一个 3 层 LSTM 的示意图。请注意,来自较低层的所有输出,不仅是最终输出,都被馈送到较高层。

堆叠的lstm.