LSTM网络中序列到序列和序列到一回归之间有什么区别?

时间:2019-02-26 19:33:26

标签: matlab neural-network lstm

Matlab documents two ways to use LSTM networks进行回归:

Schematic

  • 序列到序列:LSTM层的输出是序列,并馈入完全连接的层。 lstmLayer(N, 'OutputMode', 'sequence'
  • 一对一序列:LSTM层的输出是序列的最后一个元素,馈入一个完全连接的层。 lstmLayer(N, 'OutputMode', 'last'

在时间序列预测方面,两者之间有什么区别?什么时候应该使用另一个?


注释An example for time-series prediction使用序列到序列的体系结构。如果您只需要预测下一个步骤,为什么要输出整个序列?我没有看到序列对一回归的任何示例。

2 个答案:

答案 0 :(得分:0)

如果您要在给定序列之后预测i事件,则可以使用seq-to-seq(大小为i的第二个序列)以及何时要预测下一步输入序列,您可以使用seq-to-one来预测输入序列的下一步。

答案 1 :(得分:0)

序列到序列:输出是LSTM单元在输入序列中每个时间步的隐藏状态。我们需要LSTM的状态,因为它消耗了序列中的每个点并考虑了其先前的状态。例如,当您要区分时间序列时,您想要序列中每个点的“梯度”:

x4  x3  x2  x1
           [LSTM]
            (h1)

    x4  x3   x2    x1
           [LSTM]
             (h2)  (h1)

        x4   x3     x2    x1
           [LSTM]
             (h3)  (h2)  (h1)

LSTM基本上是将输入序列翻译为输出序列。输出为(h4) (h3) (h2) (h1)

一对一的顺序:在这种情况下,假设我们想要的只是消耗整个序列后LSTM的状态。例如,当您整合时间序列时,您希望在整合整个序列后获得最终结果:

             x4     x3    x2    x1
           [LSTM]
             (h4)  (h3)  (h2)   (h1)

因此输出将仅为(h4)