machine-learning - 循环神经网络可以一次学习略有不同的序列吗?

标签 machine-learning neural-network deep-learning recurrent-neural-network

可以使用循环神经网络来学习变化略有不同的序列吗?例如,如果我有足够的训练数据,我是否可以训练一个 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/

相关文章:

machine-learning - 如何知道 scikit-learn 混淆矩阵的标签顺序并更改它

tensorflow - 用于 ML 预测的 Celery 任务在执行中挂起

machine-learning - LSTM 的输入到底是什么?

python-3.x - 无法创建 session 的tensorflow内部错误

python - 请将 torch.load 与 map_location=torch.device ('cpu' 一起使用)

python - 使用 cv2 显示unet预测图像

python - xgb.train 和 xgb.XGBRegressor(或 xgb.XGBClassifier)有什么区别?

java - Encog:BasicNetwork:没有预建数据集的在线学习

python - 如何在keras CNN中使用黑白图像?

python - 将 Matlab 连接到 TensorFlow