当我们将二维矩阵输入 LSTM 层时会发生什么

机器算法验证 机器学习 lstm 循环神经网络
2022-03-14 13:58:43

假设我将一个形状为 (99,13) 的二维矩阵作为 LSTM 层的输入。我有 n 个文件,每个文件都包含 (99,13) 个大小的向量。我决定将 13 个作为特征数,将 99 个作为时间步长。

(在使用 Keras 实现时,我添加了 LSTM 层作为第一层。我将层的 output_dim 设置为 100)

但是当我们提供上述输入时,我无法弄清楚网络中的真实情况。我有以下问题,我无法回答自己。

  1. 我们提供什么样的值作为LSTM 单元的输入?用作单元格输入的xtht-1始终是向量?在我的情况下 xt 的形状是否为 [1,13] ?)
  2. 当我们说我们有一个LSTM 层作为模型l 的第一层时,它是否将第一个输入向量提供给给定层中的所有单元?(例如:将大小为 13 的第一帧(99 帧中)馈送到第一层中的所有 n 个 LSTM 单元?)同样,它是否在每个时间步继续馈送输入矩阵的所有行?
  3. LSTM 单元在每个时间步输出什么样的值(我们是否将单元状态视为节点的正确输出?它是单个值还是向量?如果是向量,维度是多少?有没有办法我们可以猜测维度?我假设ht是向量)
  4. 给定层的output_dim (输出维度)是什么意思?它总是必须是下一层的节点数吗?

请不要将其搁置或直接发送给任何其他组。我认为这些问题与机器学习和rnn有关。我已经阅读了研究论文,但我无法清楚地了解 LSTM 网络中的真实情况。

2个回答

1)X是您的输入,如果您有 99 个时间步,那么您有 99 个大小为 13 的向量。因此,您对每个时间步长的输入是一个大小为 13 的向量。您将需要一个起始隐藏状态,除非您有理由这样做,否则您的起始隐藏状态可能全为 0。该向量的大小是您选择的超参数。

2) 请记住,没有 99 个 LSTM 单元,只有 1 个 LSTM 单元在每个时间步被重复使用 99 次。LSTM 单元在其中保持一个隐藏状态和一个单元状态,它将向前传递到下一个时间步。但是只有一组参数被学习。这些参数需要能够处理所有时间步长,以当前输入、隐藏状态和单元状态为条件。

3) 单元状态不是输出,但是它作为输入向前传递到下一个时间步。隐藏状态h_t将传递给输出以及下一个时间步。

4) 我不太确定,我需要参考这个术语output_dim

这是一个关于 LSTM 的优秀教程: http ://colah.github.io/posts/2015-08-Understanding-LSTMs/

给定层的 output_dim(输出维度)是什么意思?它总是必须是下一层的节点数吗?

output_dim = LSTM 隐藏状态的维度。