堆叠多个 LSTM 有什么好处?

机器算法验证 分类 神经网络 深度学习 lstm 循环神经网络
2022-01-20 15:42:09

有什么优势,为什么要在深度网络中使用多个并排堆叠的 LSTM?我正在使用 LSTM 将一系列输入表示为单个输入。所以一旦我有了那个单一的表示——我为什么要再次通过它?

我问这个是因为我在一个自然语言生成程序中看到了这个。

4个回答

我认为您指的是垂直堆叠的 LSTM 层(假设水平轴是时间轴。

在这种情况下,堆叠 LSTM 的主要原因是允许更大的模型复杂性。在简单的前馈网络的情况下,我们堆叠层以创建输入数据的分层特征表示,然后用于某些机器学习任务。这同样适用于堆叠 LSTM。

除了循环输入之外,每个时间步都有一个 LSTM。如果输入已经是 LSTM 层(或前馈层)的结果,则当前 LSTM 可以创建当前输入的更复杂的特征表示。

现在,在特征输入和 LSTM 层之间具有前馈层与具有另一个 LSTM 层之间的区别在于,前馈层(例如全连接层)不接收来自其先前时间步长的反馈,因此无法解释某些情况模式。使用 LSTM 代替(例如使用堆叠的 LSTM 表示)可以在每一层描述更复杂的输入模式

从 {1}:

虽然理论上不清楚更深的架构获得的额外能力是什么,但根据经验观察到,在某些任务上,深度 RNN 比浅层 RNN 工作得更好。特别是,Sutskever 等人 (2014) 报告说,4 层深度架构对于在编码器-解码器框架中实现良好的机器翻译性能至关重要。Irsoy 和 Cardie (2014) 还报告了从单层 BI-RNN 迁移到多层架构的改进结果。许多其他工作报告了使用分层 RNN 架构的结果,但没有明确与 1 层 RNN 进行比较。

供参考:


参考:

从使用 LSTM 进行序列分类开始,它与增加 CNN 中的模型容量具有相同的效果(如果您熟悉它们的话)。因此,您肯定会获得收益,尤其是在数据拟合不足的情况下。

当然是双刃剑,因为您也可以过度拟合并获得更差的性能。就我而言,我从 1 个 LSTM 变成了 2 个 LSTM 的堆栈,并获得了几乎即时的改进。

根据我的经验,堆叠 LSTM 层(超过 3 层)似乎会提供更差的性能。

在此处输入图像描述

紫色有 2 层,粉色有 3 层,绿色有 6 层。其他一切都保持不变。我敢肯定,它确实取决于任务。我的任务是固定长度输入和输出的序列到序列。