了解 LSTM 拓扑

机器算法验证 机器学习 神经网络 lstm 循环神经网络
2022-03-09 07:19:26

和其他许多人一样,我发现这里这里的资源对于理解 LSTM 单元非常有用。我有信心我了解价值如何流动和更新,并且我有足够的信心添加提到的“窥视孔连接”等。

在我的示例中,我在每个时间步都有一个长度为的输入向量i和一个长度为的输出向量o,其中o < i.

这两页真正涵盖的是这些内容的安排和培训方式。

我有两个问题:

  1. 在我的训练数据中,我有很多输入/输出向量对,对应于很多很多时间单位。假设我用所有数据训练 LSTM。然后我可以通过它运行任意长度的输入集吗?我的意思是,如果我有整个 2015 年和 2016 年的训练数据,那么我可以通过网络运行 2017 年的数据吗?还是从 2017 年到 2020 年?
  2. 根据我所读到的,感觉就像每个时间单位有一个 LSTM 单元,所以如果我有很多时间单位,那么我就有很多链接的 LSTM 单元。由于链的长度取决于我想通过网络运行的数据的长度,这可能是任意的,我看不出我将如何训练它,除非我只训练一个 LSTM 单元,然后复制一个数字次。所以看起来我会训练一个 LSTM 单元,然后n将它们链接在一起以获得给定的长度输入向量列表n即使单个 LSTM 单元包含许多元素和功能,但感觉在这么小的东西中捕获这么多信息还不够?

谢谢。是否有任何其他资源可以帮助我了解实施细节(相对较快)?上面的 2 个链接对正在发生的事情提供了一个很棒的高级图片,但未能捕捉到这些更精细的细节。

1个回答

假设我用所有数据训练 LSTM。然后我可以通过它运行任意长度的输入集吗?

抽象地说,是的。然而,一些软件实现对于变量是否需要是固定大小,或者它们是否可以是可变大小有硬性规定,所以在编程方面,你必须检查你是否正确地实现了东西。

所以看起来我会训练一个 LSTM 单元,然后将它们中的 n 个链接在一起以获得长度为 n 的给定输入向量列表?

不,每个单元处理所有时间单位。这就是它们反复出现的原因:细胞通过更新细胞的记忆状态来处理输入下一个时间单位是先前记忆状态和新输入函数。xtxt+1