一种基于注意力机制的双向gru轨迹预测方法
技术领域
本发明涉及轨迹预测
技术领域
,尤其是涉及一种基于注意力机制的双向GRU轨迹预测方法。背景技术
轨迹预测是通过接收传感器采集的历史轨迹数据,并进行相应处理计算,以对轨迹的下一时刻位置进行预测。传统的轨迹预测算法大多是在原有的数据上直接采用各种方法进行预测,如今则通过各种数据处理方法、不断使得数据适应预测模型的要求,以取得更好的预测效果。
目前的预测方法主要分为两大类:统计性预测,神经网络预测。其中,统计型预测方法由于无法考虑到长时间序列所引发的维度爆炸问题,因此只适用于短时间轨迹序列;神经网络作为一种智能方法,不仅可以解决维度爆炸问题,还在挖掘样本数据的深层规律和预测方面效果显著,比如RNN(Recurrent Neural Network,循环神经网络)作为一种具有反馈功能的神经网络框架,不仅能够充分考虑时间序列的相关性,还可以通过分析历史信息,创建完整的时间序列预测模型,但是RNN容易出现梯度消失及梯度爆炸等问题,而LSTM(long-short term memory,长短期记忆网络)作为一种特殊的RNN模型,则能够有效规避这些问题,实现对历史信息真实有效的提取,但是三个门控循环单元的引入,使得LSTM网络训练速度有所下降,而且LSTM神经网络不能考虑到将来的信息对预测结果的影响。
上述基于神经网络的轨迹预测方法均不能很好地兼顾预测精度以及预测速度。
发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种基于注意力机制的双向GRU轨迹预测方法,以有效提高轨迹预测的精度和速度。
本发明的目的可以通过以下技术方案来实现:一种基于注意力机制的双向GRU轨迹预测方法,包括以下步骤:
S1、获取原始GPS数据,并对获取的原始GPS数据进行预处理;
S2、对预处理后的原始GPS数据进行数据扩充,以得到样本数据;
S3、构建基于注意力机制的双向GRU神经网络模型;
S4、将样本数据输入双向GRU神经网络模型,结合WOA(Whale OptimizationAlgorithm,鲸鱼优化算法)进行训练,以得到轨迹预测模型;
S5、获取当前实际GPS数据,将实际GPS输入轨迹预测模型,输出得到对应的轨迹预测值。
进一步地,所述步骤S1具体是采用卡尔曼滤波和三次样条插值分别对原始GPS数据进行滤波和缺失值补齐处理。
进一步地,所述步骤S2包括以下步骤:
S21、基于预处理后的原始GPS数据,得到对应的嵌入向量;
S22、将嵌入向量与原始GPS数据组合构成样本数据。
进一步地,所述嵌入向量具体为:
E={Δδ,Δs,Δv}
Δδ=δi+1-δi
Δs=Hav(pi+1,pi)
Δv=vi+1-vi
其中,E为嵌入向量,Δδ为两个数据点之间的角度差,Δs为两个数据点之间的距离,Δv为两个数据点之间的速度差,Hav为海氏距离,a为海氏距离计算过渡参数,lat′i和lon′i都是弧度制数值。
进一步地,所述步骤S3中注意力机制的具体计算公式为:
M=tanh(ht)
α=soft max(ωTM)
γ=htαT
其中,M为注意力机制过渡参数,ht为t时刻隐含层状态,α为注意力分配概率,ω为注意力机制内部网络权重,γ为某一特征输出权重。
进一步地,所述步骤S4具体包括以下步骤:
S41、对样本数据进行归一化处理,创建训练数据及预测数据;
S42、将训练数据输入双向GRU神经网络模型,经由前向与后向两个方向单独进行矩阵计算,得到两个方向的隐含层状态;
S43、对两个方向的隐含层状态进行占比求和,通过计算得到当前的输入值;
S44、利用WOA算法对神经网络权值进行寻优,将损失函数作为目标函数,得到最优权值;
S45、按照最优权值,结合预测数据,经由双向GRU神经网络计算得到输出值;
S46、对输出值进行反归一化处理,即可得到轨迹预测值。
进一步地,所述步骤S41中归一化处理的计算过程为:
其中,x′i为归一化处理值,xi为输入的样本数据,xmax为输入样本数据中的最大值,xmin为输入样本数据中的最小值。
进一步地,所述步骤S42具体包括以下步骤:
S421、对WOA算法中的参数进行初始化;
S422、将个体值赋值给双向GRU神经网络;
S423、将训练数据输入初始赋值后的双向GRU神经网络,经由前向与后向两个方向单独进行矩阵计算,得到两个方向的隐含层状态。
进一步地,所述个体值具体为前向和后向传播过程中的各个权重。
进一步地,所述步骤S44具体包括以下步骤:
S441、根据当前的输入值,利用注意力机制计算损失函数;
S442、判断损失函数输出值是否满足预设条件,若判断为是,则以当前个体值作为最优鲸鱼个体参数,即最优权值,否则执行步骤S443;
S443、判断是否达到预设的迭代次数,若判断为是,则以当前个体值作为最优鲸鱼个体参数,即最优权值,否则迭代更新当前个体值,之后返回步骤S422。
与现有技术相比,本发明具有以下优点:
一、本发明通过在双向GRU神经网络模型基础上添加注意力机制,利用注意力机制挖掘重要特征、减少关键信息的丢失,从而有效提高预测模型的准确度,并且结合WOA算法对双向GRU神经网络前向和后向传播过程中的权重进行寻优,由此解决传统训练过程中精度下降的问题,且提高模型训练速度、优化双向GRU神经网络结构,以得到更精准的预测模型,从而保证后续轨迹预测的精度和速度。
二、本发明通过对双向GRU神经网络前向和后向两个方向的隐含层状态进行占比求和处理,使得双向GRU神经网络能够同时考虑过去和未来的信息,进一步提高预测准确性。
三、本发明在进行预测模型训练之前,针对原始GPS数据进行滤波、补齐和数据扩充,以有效提高后续训练效果,提高训练后预测模型的可靠度。
附图说明
图1为本发明的方法流程示意图;
图2为注意力机制的结构示意图;
图3为双向GRU神经网络结构示意图;
图4为实施例中轨迹预测模型的训练过程示意图;
图5为实施例中本发明方法与传统预测方法的预测结果对比示意图;
图6为实施例中本发明方法与传统预测方法在限定误差下的轨迹预测正确率对比示意图。
具体实施方式
下面结合附图和具体实施例对本发明进行详细说明。
实施例
如图1所示,一种基于注意力机制的双向GRU轨迹预测方法,包括以下步骤:
S1、获取原始GPS数据,并对获取的原始GPS数据进行预处理,本实施例中,具体是采用卡尔曼滤波和三次样条插值分别对原始GPS数据进行滤波和缺失值补齐处理;
S2、对预处理后的原始GPS数据进行数据扩充,以得到样本数据,具体的:
首先基于预处理后的原始GPS数据,得到对应的嵌入向量:
E={Δδ,Δs,Δv}
Δδ=δi+1-δi
Δs=Hav(pi+1,pi)
Δv=vi+1-vi
其中,E为嵌入向量,Δδ为两个数据点之间的角度差,Δs为两个数据点之间的距离,Δv为两个数据点之间的速度差,Hav为海氏距离,a为海氏距离计算过渡参数,lat′i和lon′i都是弧度制数值;
之后将嵌入向量与原始GPS数据组合构成样本数据;
S3、构建基于注意力机制的双向GRU神经网络模型,其中,注意力机制结构如图2所示,注意力机制的具体计算公式为:
M=tanh(ht)
α=soft max(ωTM)
γ=htαT
其中,M为注意力机制过渡参数,ht为t时刻隐含层状态,α为注意力分配概率,ω为注意力机制内部网络权重,γ为某一特征输出权重;
双向GRU神经网络模型结构如图3所示,分为前向和后向两个方向,包含前向和后向传播过程中的七个权重值:wr,ur,uz,wz,wy,w,u;
S4、将样本数据输入双向GRU神经网络模型,结合WOA进行训练,以得到轨迹预测模型,如图4所示:
首先对由嵌入向量和原始数据组成的样本数据进行归一化处理,创建训练数据及预测数据,归一化计算公式为:
其中,x′i为归一化处理值,xi为输入的样本数据,xmax为输入样本数据中的最大值,xmin为输入样本数据中的最小值;
之后将训练数据输入双向GRU神经网络模型,经由前向与后向两个方向单独进行矩阵计算,得到两个方向的隐含层状态,具体的:
a、对WOA算法中的参数进行初始化;
b、将个体值赋值给双向GRU神经网络,个体值具体为前向和后向传播过程中的各个权重;
c、将训练数据输入初始赋值后的双向GRU神经网络,经由前向与后向两个方向单独进行矩阵计算,得到两个方向的隐含层状态;
再对两个方向的隐含层状态进行占比求和,通过计算得到当前的输入值;
然后利用WOA算法对神经网络权值进行寻优,将损失函数作为目标函数,得到最优权值,具体的:
a、根据当前的输入值,利用注意力机制计算损失函数;
b、判断损失函数输出值是否满足预设条件,若判断为是,则以当前个体值作为最优鲸鱼个体参数,即最优权值,否则继续判断是否达到预设的迭代次数,若判断为是,则以当前个体值作为最优鲸鱼个体参数,即最优权值,否则迭代更新当前个体值,之后返回重新个体值赋值给双向GRU神经网络;
再按照最优权值,结合预测数据,经由双向GRU神经网络计算得到输出值;
最后对输出值进行反归一化处理,即可得到轨迹预测值;
S5、获取当前实际GPS数据,将实际GPS输入轨迹预测模型,输出得到对应的轨迹预测值。
本实施例应用上述技术方案,其主要过程包括:
1、原始GPS数据预处理
考虑到原始GPS数据分布密集且抖动过大,对模型的预测极为不利,因此有必要对GPS数据进行先期处理,本实施例使用卡尔曼滤波将原始数据平稳化,保留整体数据结构,并采用三次样条插值补齐缺失点,再将其作为输入集加载到模型。
Kalman滤波算法是一种采用递归的方法解决线性滤波问题的方法。假设以离散线性动态系统:
xk=A*xk-1+B*uk-1+ωk-1
ZK=H*XK+VK
式中,Xk为系统状态矩阵,ωk-1噪声和VK测量噪声均为高斯白噪声,协方差分别为Q和R,即pω∈N(0,Q),pν∈N(0,R)。ZK状态矩阵中的值(实际值),uk-1是系统输入,A为状态转移矩阵,控制输入矩阵,H为状态观测矩阵,为状态预测值,为最优估计值,Xk为真实值,卡尔曼滤波的原理就是利用卡尔曼增益来修正状态预测值,使其逼近真实值。
2、数据扩充
由于原始的轨迹数据只包含经纬度坐标,速度,角度,时间元素,所含有的信息单一,维度信息的缺失使得神经网络难以有更好的训练效果,因此需要对原始的轨迹进行扩充,并将其嵌入到原始数据中。
Δδ=δi+1-δi
Δs=Hav(pi+1,pi)
Δv=vi+1-vi
式中,Hav(pi+1,pi)是相邻轨迹点之间的海氏距离。
式中lat′i和lon′i都是弧度制数值,嵌入向量由E={Δδ,Δs,Δv}组成,形成特定维度的嵌入向量,样本数据由原始数据和嵌入向量组成。测试样本数据的构建方法与训练样本数据一致。样本数据构建完成之后,为防止数据量值对预测误差的不利影响,还需对所有数据进行归一化处理:
式中,x′i为归一化处理值,xi为输入的样本数据,xmax为输入样本数据中的最大值,xmin为输入样本数据中的最小值。
3、鲸鱼算法优化神经网络。
由于注意力机制在自然语言处理中对强化关键信息的有效性,所以本发明在双向GRU神经网络的基础上添加了注意力机制来提高模型的准确率。注意力机制可以减少时间序列关键信息丢失的原因是通过强化关键信息的比重,实现方式是通过对不同的关键信息分配不同的权重,以提升权重的方式来强化关键信息的比重,以减少关键信息的丢失。注意力机制的计算公式如下:
M=tanh(ht)
α=soft max(ωTM)
γ=htαT
鲸鱼优化算法(WOA)是基于自然启发算法的鲸鱼群体的算法,能够较好地应对传统梯度下降算法在训练过程中导致的精度下降问题。在BIGRU神经网络的训练过程中,通过WOA算法对前向和后向传播过程中的权重wr,ur,uz,wz,wy,w,u进行寻优。首先对输入数据进行归一化处理,创建训练数据与预测数据,然后将训练矩阵作为输入,经由前向与后向两个方向单独进行矩阵计算,得到两个方向的隐含层状态,并对两个方向的隐含层状态进行占比求和,通过计算得到当前的输入值。利用WOA算法对神经网络权值进行寻优,将损失函数作为目标函数,得到最优时的权值。按照最优权值,结合预测矩阵,经由所提预测模型计算得到输出值,并对输出值进行反归一化处理,即可得到预测值,达到轨迹预测的目的。
综上所述,本发明利用kalman滤波算法在搜集的数据的基础上对其进行异常点的删除和偏离点校正,并通过三次样条插值对缺失点进行补充;
本发明基于注意力机制构建双向GRU模型,通过注意力机制可以发现轨迹数据中对预测结果影响大的信息,并在预测过程中赋予其较大的权值;
本发明还采用鲸鱼优化算法,能够在充分发挥鲸鱼算法本身的优势的基础上,对双向GRU神经网络架构进行更细致的优化。
为验证本发明方法的有效性,本实施例采用本发明方法与传统的LSTM预测方法、双向GRU预测方法以及未融合注意力机制的WOA-双向GRU预测方法,分别针对同一ORIGINAL原始数据进行轨迹预测,得到的结果对比示意图如图5和图6所示,从以上结果可以看出,本发明基于注意力机制的WOA-BIGRU预测模型利用BIGRU能够考虑轨迹下下文信息的特点并且通过注意力机制寻找重要特征、WOA算法对BIGRU网络结构进行优化,可得到更精确的预测模型,结果表明优化后的BIGRU预测模型能够大大提高轨迹预测的精度。