是否可以使用递归神经网络来学习变异略有不同的序列?例如,如果我有足够的训练数据,我是否可以训练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
等等, 我能够成功地为测试集预测两个序列吗?
如果我在训练数据中有更多变化,例如每三个整数或每四个整数的序列,等等,该怎么办?
答案 0 :(得分:1)
是的,如果序列中有足够的信息使其不明确,神经网络应该能够学会正确完成这些序列。
你应该注意一些细节:
神经网络和一般的ML模型在外推方面都很糟糕。一般来说,简单的网络不太可能了解序列。它永远不会像孩子一样迅速学习序列逻辑的概念。因此,如果您提供超出其经验的测试数据(例如,项目之间的3个步骤,当它们不在训练数据中时),它将表现不佳。
神经网络更喜欢缩放输入 - 常见的预处理步骤是将每个输入列的标准化归一化为0标准差1。虽然网络可以在输入处接受更大范围的数字,但这将降低培训的有效性。通过生成的训练集(例如人工数字序列),您可以通过更长时间的训练延长训练时间。
您需要更多神经元和更多层,以支持更大的序列变异。
对于RNN,如果到目前为止处理的序列是不明确的,它会预测很差。例如。如果训练1,2,3,4和1,2,3,5使用相同数量的样本,当它显示序列1时,它将预测4.5(对于回归)或50%机会4或5(对于分类器), 2,3并要求预测。