涉及序列的任务需要多少个 RNN 单元?

数据挖掘 nlp rnn lstm
2022-02-25 01:30:02

我正在针对以下任务训练 RNN:给定 30 个单词的序列,预测下一个单词。

在我的网络中拥有超过 30 个单元(LSTM、GRU 或普通 RNN)有什么好处?
我在网上看到很多例子,其中类似的网络是用多层训练的,每层都有 100 个单元,但这对我来说没有意义。
拥有比序列长度更多的细胞有什么帮助?(在我的情况下,这个长度是 30)

我很困惑,因为据我了解,每个单元格接受两个输入
1. 序列的一个新元素
2. 前一个单元格的输出
所以在 30 个单元格之后,不会有新的序列元素输入到单元格中。每个单元格将只处理前一个单元格的输出(不接收新信息)。

我正在使用 LSTM 单元来完成这项任务(但是,我猜测所使用的 RNN 单元的实际类型无关紧要)。

1个回答

您不需要为序列中的每个条目分配一个 RNN 单元,您只需要一个即可。

单个单元可以处理序列,因为它具有递归性质(其输出反馈给自身):

ht=f(ht1,W,xt)

在哪里ht是 step 的隐藏状态t,W是用于单元格的权重,并且xt是步骤的当前输入t.

希望你能看到我们只需要一个权重矩阵,W,而不是您的理解所暗示的多重。

当我们将隐藏状态作为输入时,您可能会得到多个 RNN 单元的概念,x,进入另一个 RNN 单元。更多层的 RNN 单元,意味着您可以学习更复杂的序列。

最后,如果没有新的输入,您的 RNN 单元单元格将无法工作,因此它会在您的序列结束时结束。此外,建议在 vanilla RNN 单元上使用 LSTM 或 GRU。