小编Jan*_*ber的帖子

循环神经网络:参数共享的意义何在?无论如何填充不会起作用吗?

以下是我对 RNN 中参数共享点的理解:

在常规的前馈神经网络中,每个输入单元都被分配了一个单独的参数,这意味着输入单元(特征)的数量对应于要学习的参数数量。在处理例如图像数据时,输入单元的数量在所有训练示例中都是相同的(通常是恒定像素大小 * 像素大小 * rgb 帧)。

然而,像句子这样的顺序输入数据的长度可能会有很大差异,这意味着参数的数量不会相同,具体取决于处理哪个例句。这就是为什么参数共享对于有效处理序列数据是必要的:它确保模型始终具有相同的输入大小,而不管序列长度如何,因为它是根据从一种状态到另一种状态的转换来指定的。因此,可以在每个时间步使用具有相同权重(输入到隐藏权重、隐藏到输出权重、隐藏到隐藏权重)的相同转移函数。最大的优点是它允许泛化到没有出现在训练集中的序列长度。

我的问题是:

  1. 如上所述,我对 RNN 的理解是否正确?
  2. 在 Keras 中的实际代码示例中,我查看了 LSTM,它们首先将句子填充为相等的长度。这样做,这不是抹去了 RNN 中参数共享的全部目的吗?

nlp deep-learning lstm recurrent-neural-network

6
推荐指数
1
解决办法
2789
查看次数