Neural network LSTM单元如何合并空间或顺序信息?

Neural network LSTM单元如何合并空间或顺序信息?,neural-network,keras,lstm,recurrent-neural-network,sequential,Neural Network,Keras,Lstm,Recurrent Neural Network,Sequential,据我所知,LSTM单元按顺序链接,每个单元都有一个输出,每个LSTM单元将一个输出传递给链中的下一个LSTM单元 然而,你不是把所有的输入都放在每一个LSTM单元中吗?我看不出这个链是如何反映数据的结构的,在这些结构中,顺序顺序很重要 有人能解释一下我哪里出错了吗?我对keras中实现的lstm版本特别感兴趣,但每个答案都非常受欢迎 否,LSTM单元都是平行的 当您将维度分离为他们所称的时间步长时,序列仅存在于数据本身中。传递给LSTM的数据的形状为(批量大小、时间步长、数据大小) 该序列以“时

据我所知,LSTM单元按顺序链接,每个单元都有一个输出,每个LSTM单元将一个输出传递给链中的下一个LSTM单元

然而,你不是把所有的输入都放在每一个LSTM单元中吗?我看不出这个链是如何反映数据的结构的,在这些结构中,顺序顺序很重要


有人能解释一下我哪里出错了吗?我对keras中实现的lstm版本特别感兴趣,但每个答案都非常受欢迎

否,LSTM单元都是平行的

当您将维度分离为他们所称的时间步长时,序列仅存在于数据本身中。传递给LSTM的数据的形状为(批量大小、时间步长、数据大小)

该序列以“时间步长”出现,但所有单元并行工作

即使只有一个单元的LSTM也会按照时间步长的顺序工作

LSTM的情况是他们有一个“状态”。这是一个内部矩阵,就像它的内存。在每个序列步骤中,都有“门”(其他矩阵),它们根据步骤输入决定该步骤是否会改变状态以及改变多少。还有“忘记之门”,决定旧国家是保留还是被遗忘


在keras中,可以将属性
return\u sequences
设置为true或false

如果为true,则结果将包含每个时间步的结果。
如果为false,则只输出最终结果

在这两种情况下,单位只是结果的“大小”。(与密集层中的单元或卷积层中的滤波器非常相似,它们更强大,功能更多,但不是更多的步骤)

带有
return\u sequences=False
的输出将只有大小为的单位:
(批量大小,单位)


带有
return\u sequences=True的输出将保留时间步长:
(批次大小、时间步长、单位)

非常感谢您的回复!所以,如果我有一个非常大的序列数据集,我把它切成小块,比如说长度10。然后,如果我将这个长度为10的序列输入到我的单个单元LSTM,长度为10的时间步长为10,在第一个阶段,我的单元将处理序列中的第一个元素,在第二个阶段,直到它分析序列中的第十个元素的最后一个阶段。然后,如果
return\u sequences=False
它将只返回最后一个时间步的输出,如果
return\u sequences=True
它将返回所有时间步的输出?这是否意味着如果我想预测前一个元素,我必须以相反的顺序输入序列?这个大数据集,它是否有一个巨大的序列可以分割?或者它有很多不同的序列?在“切割”和“成型”之间有区别。如果您将其塑造为(N_示例,步骤,10),您将有许多步骤,但每个步骤将一次处理10个元素(好像这些元素不是这10个元素中的序列)。如果你把它塑造成(N_示例,10,N),它将有10个步骤要“剪切”一个序列(创建多个批次以一次发送一个),必须将
stateful
更改为
True
。然后,您可以一次传递一个序列部分(这是一种处理处理处理能力或内存不足的方法)。是的,要预测前一个元素,最好使用反向序列。为此,在LSTM层中有
go_backward
参数。