如何对使用序列的多个观察值训练的 LSTM 执行多步预测?

数据挖掘 rnn lstm 预报
2022-01-20 15:07:09

我有一个经过训练的序列到序列 LSTM,它可以预测一个人在沿着路径行走时的位置 (x, y) 的速度轨迹 (Δx, Δy)。我使用 200 个沿路径行走的不同人的示例来训练 LSTM。现在,我想使用多步预测来预测几个新人在走过 1/3 的路径后的未来速度。这可能吗?如果是这样,我如何在 Python 或 MATLAB 中实现它?

训练 = 200 个序列观察,2 个输入特征 (x, y),观察的时间长度不同

测试 = 5 个部分序列观察(序列的 1/3),我想预测每个人序列的最后 2/3。

2个回答

ConvLSTM,keras 有一个implementation,因此你可以使用 Python 本身。

如果您想要 LSTM 的多个输出,您可以查看return_sequences分层return_state显示特征。LSTM它们的默认值为None,但如果你给True你,你可以获得每个时间步长的多个输出,并且适用于每个人。

这篇出色的博客文章帮助我理解了它们。

一种技术是光流 [1]、[2],它在对动作视频进行建模的人们中很流行。

这里有一个 [3] 的 github 实现,她称之为 ConvLSTM,并用 Lua 编码。

[1] P. Weinzaepfel、J. Revaud、Z. Harchaoui 和 C. Schmid。Deepflow:具有深度匹配的大位移光流。在计算机视觉 (ICCV) 中,2013 年 IEEE 国际会议,第 1385–1392 页,2013 年 12 月。doi: 10.1109/ICCV.2013.175

[2] Philipp Fischer、Alexey Dosovitskiy、Eddy Ilg、Philip Hausser、Caner Hazirbas、Vladimir Golkov、Patrick van der Smagt、Daniel Cremers 和 Thomas Brox。Flownet:使用卷积网络学习光流。CoRR, abs/1504.06852, 2015

[3] Patraucean, V.、Handa, A. 和 Cipolla, R. (2015)。具有可微记忆的时空视频自动编码器。arXiv 预印本 arXiv:1511.06309。