Keras LSTM中隐藏状态的含义

3

由于我对深度学习还很新,所以这个问题可能对你来说有点幼稚。但是我无法在脑海中形象化它。这就是我要问它的原因。

我将一句话作为向量交给LSTM,例如一句话包含10个单词。然后我将这些句子转换为向量并将其提供给LSTM。

LSTM单元的长度应该为10。但是在大多数教程中,我看到它们添加了128个隐藏状态。我无法理解和形象化它。通过LSTM层的“128维隐藏状态”这个词是什么意思?

例如:

X = LSTM(128, return_sequences=True)(embeddings)

这个的总结如下:
lstm_1 (LSTM)                (None, 10, 128)           91648    

这里似乎添加了10个LSTM单元,但为什么有128个隐藏状态?希望您明白我的期望。

1个回答

5

简短回答: 如果您更熟悉卷积网络,那么LSTM层的大小(128)相当于卷积层的大小。10只是表示您的输入大小(序列长度为10)。

详细回答: 您可以查看有关RNN的文章以获取更多详细信息。

在左侧图像中,LSTM层用(xt)表示为输入,输出为(ht)。反馈箭头显示单元格内部存在某种记忆。

在Keras实践中(右图),该模型被“展开”,以便将整个输入xt并行传递到我们的层中。

因此,当您的摘要为: lstm_1 (LSTM) (None, 10, 128) 91648
这意味着您的输入序列为10 (x0,x1,x2,...,x9),而您的LSTM的大小为128(128将是您的输出ht的维度)

enter image description here


这意味着输入的数量很少,而输出的数量很多。我不明白的是,在你的图片中,xt和ht的数量是相同的。那么当有大量的ht时,它是如何产生的?请给出一个可视化的解释。@Daniel - Sathiyakugan
考虑阅读引用的文章,也许有公式会更清晰明了。 - Daniel GL
您提供的链接目前不可用,请尽可能提供一些替代链接。 - Krissh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接