为什么普通的前馈神经网络只接受固定的输入大小,而 RNN 能够接受一系列输入而没有预先确定的大小限制?任何人都可以举例说明这一点吗?
为什么前馈神经网络需要固定大小的输入,而 RNN 可以处理可变大小的输入?
您在谈论两种不同类型的“大小”。对于相同的网络架构,FFNN 和 RNN 的输入大小必须始终保持固定,即它们采用向量并且不能将向量作为输入在哪里. 您在 RNN 上下文中引用的大小是输入序列的长度。
您感到困惑的是,RNN 可以做出与序列相关的预测,即现在想象而不是想象我们有一系列相关的,即非iid数据,如时间序列数据、数据. 假设我们得到了一些初始值(隐藏状态)然后RNN将作为输入和并输出预测和一个新的隐藏状态. 通常,RNN 将作为输入和和输出和其中隐藏状态在下一个时间步作为输入传递给 RNN。然而,所有的维度'沙的都一样,即和对所有人, 在哪里不一定必须等于(根据我的经验,很少是这样)。
请注意,RNN 还可以执行序列到序列的预测(例如语言翻译),其中预测序列的长度可能与输入序列的长度不同,就像在进行翻译时一样(输入句子在翻译后的长度不一定相同)语)。他们通过使用两个独立的 RNN 的编码器和解码器来做到这一点。编码器被输入输入序列,我们维护编码器输出的所有隐藏状态. 然后给解码器一个标记,该标记表示序列的开始和编码器的最后隐藏状态作为输入,它将预测单词应该是什么(我相信但不是 100% 确定解码器会输出它可以预测的单词字典上的概率分布),然后选择的单词作为输入传递到下一步的解码器,以及上一步解码器的隐藏状态,并预测另一个单词。这种情况一直持续到系统预测到序列结束标记(或直到它被某个时间限制强制)。更多细节可以在本文中找到,但我相信在 NLP 中,现在使用注意力模型比本文中介绍的方法更常见。
现在,有了这些数据理论上,您可以将每个数据单独传递给 FFNN,但是 a)它不会捕获数据的顺序性质,因为假设每个数据点都独立于其他数据点,您可以从 FFNN 的架构中看到这一点——它们是有向无环图,无环是导致问题的原因,因为没有递归可以阻止任何顺序信息从一个时间步传递到另一个时间步,并且 b)使用 SGD 训练可能会导致问题,因为我们违反了 iid SGD 收敛到局部最优值所需的假设。有关 iid 要求的更多信息,请参见此处。