预测问题-单车轨迹预测

此项目采用Seq2Seq模型实现机动车的轨迹预测,其中解码器与编码器均为LSTM网络。 在该任务中,输入为车辆历史轨迹坐标,输出为预测的未来车辆轨迹坐标。

完整项目的下载链接为:https://github.com/TOPSlearningcenter/Trajectory_prediction_single

以下给出了模型介绍,点击右侧在线运行代码

模型介绍

1. 模型概述:

LSTM Encoder-Decoder是最常见的sequence-to-sequence(seq2seq)模型,最早由2014年的经典论文《Sequence to Sequence Learning with Neural Networks》提出,被引量已经过万。该模型的基本思想是用一个RNN网络(编码器)来将输入的序列编码为一个固定长度的向量(context vector),该向量可以被视为整个输入序列的一个抽象表示,然后将该向量作为另一个RNN网络(解码器)的初始输入,并输出任意长度的目标序列。

2. 模型架构:

  • Encoder采用了一层全连接层,四层LSTM,并且采用了dropout来降低过拟合。
  • Decoder的结构和Encoder的结构基本一致,区别在于Decoder每次接受输入的序列长度Seq_len为1,然后每次Decoder的输出都作为下一个时刻的输入。
  • 最终的Seq2Seq模型结合了Encoder和Decoder:Encoder将输入的所有历史时间步的轨迹编码为一个上下文向量,即hidden state,Encoder最终的hidden state和cell state作为Decoder初始的hidden state和cell state。Decoder第一个输入为历史轨迹最后一帧,后续输入为Decoder的预测结果

3. 具体实现:

  • 数据预处理:主要是从csv格式的数据中提取和整理轨迹信息,这里为了能达到较好训练效果,采用前后时刻的位移矢量而非绝对坐标作为模型输入。
  • 训练:采用了常用的teacher-forcing技巧,即训练的时候Decoder的输入按照一定概率为上一次的输出或者真实的当前时间点的数据,使得网络能够一定程度上避免时序预测的缺陷:初始预测偏离而导致后续结果受到影响。
  • 测试/评估:使用训练好的模型对所有测试数据进行预测,计算出所需的评价指标。为了保证评估结果的客观性,不使用teacher-forcing。
  • 可视化:使用训练好的模型对部分测试数据进行预测,绘制出历史轨迹、真实轨迹和预测轨迹。