2017-07-07 101 views
0

我对LSTM如何处理输入有点困惑。 大家都知道,LSTM模型在Keras输入的形式(batch_size时,时间步长,input_dim)。 我的数据是一个时间序列数据,其中n个时间步长的每个序列被馈入以预测n + 1个时间步长的值。那么,他们如何访问输入?他们会按顺序处理每个步骤,或者同时访问所有这些步骤? 当我检查每个LSTM层的参数数量。它们有4 * d *(n + d),其中n是输入的维数,d是存储单元的数量。 在我的情况下,我有d = 10,参数的数量是440(没有偏见)。所以这意味着在这里n = 1,所以好像输入的维数为1 * 1。 然后他们可以自由地接触到所有人。 任何人有关于此的一些想法?Keras中的LSTM如何访问输入?

回答

1

首先,考虑卷积层(更容易)。

它具有只对“过滤器大小”,“输入通道”和“过滤器数”依赖参数。但从来没有在“图像的大小”。

这是因为它是一个有点“行走操作”。在整个图像中应用相同的一组滤镜。总的操作随着图像的大小而增加,但是仅定义了滤波器的参数独立于图像大小。 (设想一个过滤器来检测一个圆圈,这个过滤器不需要改变来检测图像不同部分的圆圈,尽管它适用于整个图像的每一步)。

所以:

  • 参数:过滤器号*滤波器²*输入通道
  • 计算步骤的大小:图像的尺寸(考虑进步,填充等)

随着LSTM图层,类似的事情发生。这些参数与他们所谓的“门”有关。 (Take a look here

有一个“状态”,并且每次都迭代来确定的状态将如何改变在施加“门”。

的门不随时间变化的,虽然。这些计算确实是时间迭代,但每次迭代都使用同一组门。

相较于卷积层:

  • 参数:细胞的数量,数据维度
  • 计算步骤:时间步
+0

好的,谢谢你的回答。所以你认为在这种情况下什么是时间依赖的? – qnguyen

+0

细胞的内部状态与时间有关。每个序列步骤都会改变内部状态。但我们通常不会看到或不关心。每一步都有:1 - 以某种方式改变这种内在状态; 2 - 使用此内部状态+输入(上一步的输出)来生成结果。 –