基于双向长短时记忆模型和卡尔曼滤波的轨迹去噪方法与流程

文档序号:18668271发布日期:2019-09-13 20:29阅读:700来源:国知局
基于双向长短时记忆模型和卡尔曼滤波的轨迹去噪方法与流程

本发明涉及轨迹数据挖掘技术领域,更具体的说是涉及一种基于双向长短时记忆模型和卡尔曼滤波的轨迹去噪方法。



背景技术:

目前,gps导航定位技术已经成为日常生活普遍应用的一项技术,而针对gps轨迹降噪的解决方案都非常地简单,一般采用卡尔曼滤波或者粒子滤波实现,并且对于gps轨迹降噪这方面的研究也一直没有受到重视。但是,相比于其它时间序列数据,轨迹数据具有很明显的时空特征,随着深度学习的兴起以及大数据时代的来临,我们完全可以通过深度学习来学习大尺度的轨迹数据,让深度神经网络自己学习到路网的结构和时间特征,通过隐含的路网结构来进行数据降噪,从而达到gps轨迹有效降噪的目的。传统的去噪方法往往只能解决高斯白噪声等比较简单的情况,而真实的噪音分布往往要复杂得多,因此对于gps轨迹利用传统方法进行降噪处理,并不能有效去除轨迹数据中真实噪声。

因此,如何提供一个可以捕捉到轨迹数据深层信息的轨迹去噪算法是本领域技术人员亟需解决的问题。



技术实现要素:

有鉴于此,本发明提供了一种基于双向长短时记忆模型和卡尔滤波的轨迹去噪方法,将卡尔曼滤波和循环神经网络结合起来,先使用循环神经网络来建模复杂的噪声分布和路网结构,然后将循环神经网络的输出作为卡尔曼滤波的输入,最后由卡尔曼滤波完成去噪,在循环神经网络中将复杂的噪音分布结合路网信息转换成高斯分布,然后再通过卡尔曼滤波将高斯白噪声进行滤除。

为了实现上述目的,本发明采用如下技术方案:

一种基于双向长短时记忆模型和卡尔曼滤波轨迹去噪方法,包括:

步骤1:采集训练集d,包括已知的高精度gps轨迹数据t*和对所述高精度gps轨迹数据t*添加噪声得到的待修正轨迹t,采用双向长短时记忆模型进行建模,输入gps轨迹数据,得到输出值hi,再基于所述双向长短时记忆模型中的两个多层感知机计算得出估计测量协方差和被估计的测量均值并得出所述双向长短时记忆模型的损失函数l1来优化所述被估计的测量均值

步骤2:采用卡尔曼滤波算法对所述估计测量协方差和所述被估计的测量均值进行预测和更新,并计算得出损失函数l2和更新过程协方差矩阵q,优化卡尔曼滤波输出的修正轨迹数据oi。

优选的,所述步骤1中所述双向长短时记忆模型包括前向lstm和后向lstm,具体建模过程如下:

步骤11:所述前向lstm按顺序读入所述待修正轨迹t,采用如下lstm建模公式:

ft=σ(wf[ht-1,at]+bf)

it=σ(wi[ht-1,at]+bi)

ot=σ(wo[ht-1,at]+bo)

ht=ot*tanh(ct)

输出前向隐状态序列其中,at为输入的经纬度坐标,ft为遗忘门向量,wf为遗忘门的权重矩阵,bf为遗忘门的偏置项,σ为sigmoid函数,xt为当前时刻网络的输入,ht-1为上一时刻lstm输出值,[ht-1,at]表示把两个向量连接成一个更长的向量;it是输入门向量,wi是输入门的权重矩阵,bi是输入门的偏置项;为当前输入的单元状态,ct为当前时刻的单元状态,tanh为单元状态;ot为输出门向量;ht为lstm输出值;

步骤12:所述后向lstm按照相反的顺序读入所述训练集d,采用步骤11中的所述lstm建模公式输出后向隐状态序列

步骤13:所述双向长短时记忆模型的输出其中i表示第i时刻;

步骤14:根据所述lstm输出值基于所述双向长短时记忆模型中的两个多层感知机计算得出所述估计测量协方差和所述被估计的测量均值i表示第i时刻;

步骤15:所述被估计的测量均值通过所述双向长短时记忆模型的损失函数l1被优化,

其中,为所述双向长短时记忆模型在i时刻的修正结果;lossi'为均方误差;bi是i时刻的实际位置,是t*中的数据值;x和y分别为t中位置坐标的经度和纬度数值。

优选的,所述双向长短时记忆模型在i时刻的隐状态为{x(i,i),c(i,i)},其中c(i,i)为x(i.i)对应的协方差矩阵;所述步骤2的具体实现过程为:

步骤21:将所述估计测量协方差和所述被估计的测量均值输入至所述卡尔曼滤波进行轨迹数据修正,在所述卡尔曼滤波中i-1时刻的后验状态估计为{x(i-1,i-1),c(i-1,i-1)},i-1时刻对应的是i时刻的先验状态,i时刻的先验状态估计为{x(i,i-1),c(i,i-1)},

x(i,i-1)=φi-1x(i-1,i-1)

其中φi为设定的转移矩阵,qi为i时刻的过程协方差矩阵;

步骤22:所述估计协方差和所述被估计的测量均值替换当前时刻的协方差矩阵ri和测量结果zi,根据所述先验状态估计{x(i,i-1),c(i,i-1)}和由所述测量结果zi和所述协方差矩阵ri组成的测量状态{zi,ri},得到后验状态估计{x(i,i),c(i,i)},

x(i,i)=x(i,i-1)+ki(zi-hix(i.i-1))

c(i,i)=(i-kihi)c(i,i-1)

其中,ki为卡尔曼增益矩阵;i为单位矩阵;hi为定义的测量矩阵,为超参数,是在开始学习过程之前设置值的参数,根据问题的定义而确定的;

步骤23:通过上述步骤21和步骤22中的所述预测和所述更新来计算后验状态,所述卡尔曼滤波的输出为修正轨迹数据oi

oi=hix(i,i)

其中,x(i,i)为所述卡尔曼滤波中第i时刻的后验状态;为第i时刻x和y方向上的被估算速度向量。

优选的,利用所述卡尔曼滤波的输出采用基于时间的反向传播算法进行所述卡尔曼滤波的优化,令卡尔曼滤波自适应双向长短时记忆模型输出的并将基于时间的反向传播算法和神经网络结合,获得一种全新的循环神经网络单元;卡尔曼滤波输出的损失函数l2是

lossi=((bi·x,bi·y)-oi)2

其中,oi为卡尔曼滤波在i时刻的输出,bi是在i时刻的实际位置,通过所述损失函数l2进行反向传播实现端到端优化,对所述oi进行优化,输出修正轨迹数据。

优选的,所述过程协方差矩阵q的更新过程依据j时刻的过程协方差qj和第j+n时刻的梯度进行:

j时刻的过程协方差qj的梯度来自于lossj到lossn变化:

经由上述的技术方案可知,与现有技术相比,本发明公开提供了一种基于双向长短时记忆模型和卡尔曼滤波的轨迹去噪方法,将卡尔曼滤波和循环神经网络结合起来,先使用循环神经网络来建模复杂的噪声分布和路网结构,然后将循环神经网络的输出作为卡尔曼滤波的输入,最后由卡尔曼滤波完成去噪。利用循环神经网络中的双向长短时记忆模型对gps轨迹数据进行学习,学习到路网结构、时间特征和复杂噪声分布,然后再通过卡尔曼滤波对噪声进行滤除。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1附图为本发明提供的gps轨迹数据去噪模型整体结构示意图;

图2附图为本发明提供的双向长短时记忆模型与卡尔曼滤波结合示意图;

图3附图为本发明提供的轨迹修正效果示意图;

图4附图为本发明提供的卡尔曼滤波的内部计算过程概率分布图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例公开了一种基于双向长短时记忆模型和卡尔曼滤波轨迹去噪方法,包括:

s1:采集训练集d,包括已知的高精度gps轨迹数据t*和对高精度gps轨迹数据t*添加噪声得到的待修正轨迹t,采用双向长短时记忆模型进行建模,输入gps轨迹数据,得到输出值hi,再基于双向长短时记忆模型中的两个多层感知机计算得出估计测量协方差和被估计的测量均值并得出双向长短时记忆模型的损失函数l1来优化被估计的测量均值

s2:采用卡尔曼滤波算法对估计测量协方差和被估计的测量均值进行预测和更新,并计算得出损失函数l2和更新过程协方差矩阵q,优化卡尔曼滤波输出的修正轨迹数据oi。

为了进一步优化上述技术方案,s1中双向长短时记忆模型包括前向lstm和后向lstm,具体建模过程如下:

s11:前向lstm按顺序读入待修正轨迹t,采用如下lstm建模公式:

ft=σ(wf[ht-1,at]+bf)

it=σ(wi[ht-1,at]+bi)

ot=σ(wo[ht-1,at]+bo)

ht=ot*tanh(ct)

输出前向隐状态序列其中,at为输入的经纬度坐标,ft为遗忘门向量,wf为遗忘门的权重矩阵,bf为遗忘门的偏置项,σ为sigmoid函数,xt为当前时刻网络的输入,ht-1为上一时刻lstm输出值,[ht-1,at]表示把两个向量连接成一个更长的向量;it是输入门向量,wi是输入门的权重矩阵,bi是输入门的偏置项;为当前输入的单元状态,ct为当前时刻的单元状态,tanh为单元状态;ot为输出门向量;ht为lstm输出值;

s12:后向lstm按照相反的顺序读入训练集d,采用s11中的lstm建模公式输出后向隐状态序列

s13:双向长短时记忆模型的输出其中i表示第i时刻;

s14:根据lstm输出值基于双向长短时记忆模型中的两个多层感知机计算得出估计测量协方差和被估计的测量均值

i表示第i时刻;

s15:被估计的测量均值通过双向长短时记忆模型的损失函数l1被优化,

其中,为双向长短时记忆模型在i时刻的修正结果;lossi'为均方误差;bi是i时刻的实际位置,是t*中的数据值;x和y分别为t中位置坐标的经度和纬度数值。

为了进一步优化上述技术方案,双向长短时记忆模型在i时刻的隐状态为{x(i,i),c(i,i)},其中c(i,i)为x(i.i)对应的协方差矩阵;s2的具体实现过程为:

s21:将估计测量协方差和被估计的测量均值输入至卡尔曼滤波进行轨迹数据修正,在卡尔曼滤波中i-1时刻的后验状态估计为{x(i-1,i-1),c(i-1,i-1)},i-1时刻对应的是i时刻的先验状态,i时刻的先验状态估计为{x(i,i-1),c(i,i-1)},

x(i,i-1)=φi-1x(i-1,i-1)

其中φi为设定的转移矩阵,qi为i时刻的过程协方差矩阵;

s22:估计协方差和被估计的测量均值替换当前时刻的协方差矩阵ri和测量结果zi,根据先验状态估计{x(i,i-1),c(i,i-1)}和由测量结果zi和协方差矩阵ri组成的测量状态{zi,ri},得到后验状态估计{x(i,i),c(i,i)},

x(i,i)=x(i,i-1)+ki(zi-hix(i.i-1))

c(i,i)=(i-kihi)c(i,i-1)

其中,ki为卡尔曼增益矩阵;i为单位矩阵;hi为定义的测量矩阵,为超参数,是在开始学习过程之前设置值的参数,根据问题的定义而确定的;

s23:通过上述s21和s22中的预测和更新来计算后验状态,卡尔曼滤波的输出为修正轨迹数据oi,

oi=hix(i,i)

其中,x(i,i)为卡尔曼滤波中第i时刻的后验状态;为第i时刻x和y方向上的被估算速度向量。

为了进一步优化上述技术方案,利用卡尔曼滤波的输出采用基于时间的反向传播算法进行卡尔曼滤波的优化,令卡尔曼滤波自适应双向长短时记忆模型输出的并将基于时间的反向传播算法和神经网络结合,获得一种全新的循环神经网络单元;卡尔曼滤波输出的损失函数l2是

lossi=((bi·x,bi·y)-oi)2

其中,oi为卡尔曼滤波在i时刻的输出,bi是在i时刻的实际位置,通过所述损失函数l2进行反向传播实现端到端优化,对oi进行优化,输出修正轨迹数据。

为了进一步优化上述技术方案,过程协方差q的更新过程依据j时刻的过程协方差qj和第j+n时刻的梯度进行:

j时刻的过程协方差qj的梯度来自于lossj到lossn变化:

为了进一步优化上述技术方案,协方差矩阵ri是一个常量矩阵,它描述了数据的协方差,一般会作为超参数来被调整。在卡尔曼滤波大多数的应用中,观测数据往往是由传感器捕捉到,而传感器的噪声在没有损坏的情况下一般是不会发生变化的。相似地,qi是i时刻的过程协方差矩阵,它描述了预测过程在i时刻的协方差,这个协方差描述了对于卡尔曼滤波内部运动模型的信心,协方差越低,那么预测结果就会更加偏向于卡尔曼滤波的先验状态估计。除此之外,测量矩阵hi和转移矩阵φi也不会随着时间改变。

为了进一步优化上述技术方案,为了结合卡尔曼滤波和深度神经网络,一个被交叉熵预训练好的双向长短时记忆模型是必要的。传统的静态的方法通过将卡尔曼滤波的观测值替换为神经网络的预测值,而观测协方差和过程协方差都会被基于时间的反向传播算法优化(bptt)。然而,静态的测量协方差不能处理复杂的交通情况,比如说被预测的位置a在十字路口,而被预测的位置b远离一切的交叉路口,那么被预测的位置a的测量协方差不可能等于被预测位置b的测量协方差。本发明明的动态方法被提出来用来估计一个动态的协方差,用来替换第i时刻的测量协方差ri。根据神经网络通过公式和公式计算出双向长短时记忆模型的隐状态hi。

为了进一步优化上述技术方案,本发明的卡尔曼滤波和双向长短时记忆模型的损失函数为l=l1+l2,损失函数l1部分被用来训练双向长短时记忆模型,而第二部分l2用来优化卡尔曼滤波最终修正结果的均方误差。

为了进一步优化上述技术方案,本发明采用动态的方法用来估计一个动态的协方差替换第i时刻的测量协方差ri,以及动态估计一个来替换测量结果zi。

为了进一步优化上述技术方案,循环神经网络是一个好的选择用来建模真实轨迹采用lstm(长短时记忆模型)作为轨迹噪音建模的基本单元。lstm是一种循环神经网络的变体(rnn),被提出用来解决普通循环神经网络(rnn)的梯度消失问题。因为循环神经网络需要在时间上展开,所以由于任务的需要它经常会展开很多时刻。深层的神经网络非常难以训练,因为它会造成梯度的消失,从而无法回传。为了解决这个问题,残差神经网络通过前后层的连接解决了梯度消失的问题。而在循环神经网络中,一般采用lstm来解决这个问题,因为这个模型可以使用记忆门和遗忘门来解决消失的问题。

实施例

训练的过程分为两步,第一步通过均方误差loss'i进行反向传播预训练双向长短时记忆模型模型。在预训练之后,对于每一个点,基于两个多层感知机来计算被估计的基于被估计的坐标和协方差,卡尔曼滤波会做出预测和更新,最后,它会计算均方误差并更新过程协方差矩阵q。

如图2所示为本发明双向长短时记忆模型和卡尔曼滤波结合进行轨迹数据去噪的过程,首先采集的轨迹数据经过双向lstm模型,获得模型输出值hi,通过hi计算获到估计测量协方差和被估计的测量均值并输入至卡尔曼滤波,在卡尔曼滤波中依据前一个时刻轨迹数据的后验状态估计{x(i-1),c(i-1)},预测获得此时i时刻的先验状态估计{x(i,i-1),c(i,i-1)},最后根据和{x(i,i-1),c(i,i-1)}更新获得此时的后验状态估计{x(i),c(i)}和修正轨迹数据oi。

如图3表示gps轨迹修正结果,红色是待修正点,蓝色是修正后的点。图4以概率分布图的形式展示了我们卡尔曼滤波的内部计算过程,图中bi-2、bi-1、bi分别为i-2、i-1和i时刻的实际轨迹位置,oi-2为卡尔曼滤波在i-2时刻的修正结果,表示修正轨迹位置概率分布,其中颜色越深的区域其分布概率越大,红色区域概率大于橙色区域,橙色区域概率大于黄色区域,黄色区域概率大于绿色区域,绿色区域概率大于蓝色区域,蓝色区域概率大于紫色区域。oi-1为卡尔曼滤波在i-1时刻的修正结果,表示i-1时刻修正轨迹位置概率分布。{x(i,i-1),c(i,i-1)}为卡尔曼滤波在i时刻的先验状态估计;{x(i,i),c(i,i)}为卡尔曼滤波在i时刻的修正结果,表示i时刻修正轨迹位置概率分布,由i时刻的先验状态估计{x(i,i-1),c(i,i-1)}以及测量结果zi和协方差矩阵ri计算得到;为卡尔曼滤波输入的高斯分布,表示当前的测量结果zi和协方差矩阵ri概率分布。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1