LSTM中的时间步和功能之间有什么区别?

时间:2018-12-03 10:45:22

标签: python neural-network lstm timestep

我有一个表示许多时间段内数值的数据框,并且已经格式化了该数据框,将其表示为先前值的串联。例如:

+------+------+------+
| t1   | t2   | t3   |
+------+------+------+
| 4    | 7    | 10   |
+------+------+------+
| 7    | 10   | 8    |
+------+------+------+
| 10   | 8    | 11   |
+------+------+------+
...

当我格式化数据集以使用LSTM时,我将其整形为3维矢量[样本,时间步长,特征]。

但是,对于时间步长和功能,我必须赋予哪个值?我应该学习最后3个元素,所以特征应该是3吗?

当我有了这个时:

trainX = numpy.reshape(trainX, (trainX.shape[0], 1, trainX.shape[1])) 

1 个答案:

答案 0 :(得分:0)

我尝试解释一个例子。因此,假设我们对温度和压力进行了一些测量,并希望预测将来的某个温度。我们有两个功能(温度和压力)。因此,我们可以使用它们来输入LSTM并尝试进行预测。现在我不确定您对LSTM理论的看法如何,但是在游戏中有两个变量,单元状态C和先前的输出h(t-1)。我们集中于h(t-1)。因此,您给了LSTM细胞(现在假设只有一个神经元)输入(温度和压力)。 LSTM会产生输出和单元状态,现在,如果您将时间步调设为1,则在为LSTM提供新输入时,输出将仅取决于单元状态和输入。但是,如果您将时间步长设置为5。第二个输入将取决于单元状态,输入和先前的输出。第三输出将取决于第二输出,电池状态,电流输入。当您再次依赖于输入和单元状态时,此序列在第六次输入时继续。这些h(t-1)的东西称为短时记忆。因此,如果将时间步长设置为1,则会失去记忆。

修改 不好意思,我没有以正确的方式查看您的数据。您有一个特征,t和三个步骤。但是,您的构图方式不正确,您将三个t值视为单独的特征,并向它们提供了LSTM。但是您可以改为将数据整形为样本x 3 x1。因此,您将LSTM的第一个样本的t1输入到第一个样本的下一个t2,但是LSTM的输出将受到上一时间步长的输出的影响。