【发布时间】:2020-07-30 14:37:05
【问题描述】:
我正在使用 LSTM(在 PyTorch 中)进行多元时间序列预测。让我们想象一下这种情况:我有 2 个时间序列,A 和 B,我想使用 A 和 B 的先前值(在 t 之前)预测 B 的 t 值。这样的预测效果很好,我的模型得到了很好的结果。
但是如果(在测试期间,训练之后)我想使用 B 的预测值作为下一个时间步的输入而不是实际值,该怎么办?例如:我预测B的第一个值,迈出一步,将预测值代替真实值,然后再次进行预测。然后我使用两个预测值而不是真实的两个,依此类推。在某些步骤中,只有预测值会在时间序列 B 中。
有没有可能做到这一点?
【问题讨论】:
-
Teacher Forcing 收敛更快。在测试模式下,您可以使用波束搜索以获得最佳性能
-
在培训期间,我使用教师强制方法。当预测值作为下一个时间步的输入时,测试期间会出现问题。例如。 [x1, x2, x3] 预测 x4,在下一个时间步我将使用 [x2, x3, x4] 预测 x5,依此类推,x3 之后的值是预测,不是来自测试数据,但我的 lstm 不收敛。
标签: python pytorch lstm recurrent-neural-network