可以使用循环神经网络来学习变化略有不同的序列吗?例如,如果我有足够的训练数据,我是否可以训练一个 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),它将表现不佳。
神经网络更喜欢缩放输入 - 常见的预处理步骤是将每个输入列标准化为均值 0 标准差 1。虽然网络可以接受更大范围的输入数字,但这会降低训练的有效性。借助生成的训练集(例如人工数字序列),您可以通过使用更多示例进行更长时间的训练来强制完成该任务。
您将需要更多的神经元和更多的层来支持更大的序列变化。
对于 RNN,如果迄今为止处理的序列不明确,它的预测效果会很差。例如。如果您使用相同数量的样本训练 1,2,3,4 和 1,2,3,5,当显示序列 1 时,它将预测 4.5(用于回归)或 50% 的机会 4 或 5(用于分类器), 2,3 并要求预测。
关于machine-learning - 循环神经网络可以一次学习略有不同的序列吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40827751/