循环神经网络能否一次学习略有不同的序列?

Can a recurrent neural network learn slightly different sequences at once?

是否可以使用递归神经网络来学习变化略有不同的序列?例如,如果我有足够的训练数据,我是否可以训练 RNN 以便它可以生成一系列连续整数或交替整数?

例如,如果我使用

训练
1,2,3,4
2,3,4,5
3,4,5,6

等等 并使用

训练同一个网络
1,3,5,7
2,4,6,8
3,5,7,9

等等, 我能否成功预测测试集的两个序列?

如果我在训练数据中有更多变化,例如每三个整数或每四个整数的序列等等怎么办?

是的,只要序列中有足够的信息使其不含糊不清,神经网络应该能够学习正确地完成这些序列。

不过您应该注意一些细节:

  • 神经网络和一般的机器学习模型在外推方面表现不佳。一个简单的网络不太可能学习一般的序列。它永远不会像 child 那样快速学习顺序逻辑的概念。因此,如果您在其经验之外输入测试数据(例如,项目之间的步骤 3,当它们不在训练数据中时),它将表现不佳。

  • 神经网络更喜欢按比例缩放的输入 - 一个常见的 pre-processing 步骤是将每个输入列归一化为均值 0 标准差 1。虽然网络可以接受更大范围的输入数字,但这会降低训练的有效性。使用生成的训练集(例如人工数字序列),您可以通过使用更多示例进行更长时间的训练来强制完成训练。

  • 您将需要更多神经元和更多层,以支持更大的序列变化。

  • 对于 RNN 来说,如果到目前为止它处理的序列是模糊的,它的预测会很糟糕。例如。如果你用相同数量的样本训练 1,2,3,4 和 1,2,3,5,当它显示序列 1 时,它将预测 4.5(用于回归)或 50% 的机会 4 或 5(用于分类器), 2,3 并要求预测。