徐富元,蒋明,王志印,秦晋,郑子扬
(1.中国航天科工集团8511研究所,江苏 南京 210007;
2.国网衡阳市供电公司,湖南 衡阳 421001)
随着航空技术的巨大进步,航空业获得空前迅速的发展,同时空中管理部门也面临空域资源紧张的挑战。为实现空中交通的安全高效管理,有必要发展飞机航迹预测技术。利用飞机运行过程中由广播式自动相关监视(ADS-B)记录的历史状态信息构成的时间序列,对未来状态进行回归预测实现飞行航迹预测。
当前的航迹预测技术大致分为3种类型,分别是基于空气动力学、基于状态估计理论以及机器学习的方法,其中前两种理论对在预测飞行航迹时,前提条件太过理想且计算复杂度高,相比于机器学习方法灵活性不足,而机器学习的方法使用历史航迹数据挖掘航迹的规律,训练航迹预测模型,对复杂非线性问题有较好的建模效果,近年来得到了越来越多的关注。主要方法包括聚类算法[1-3]、遗传算法[4]、蚁群算法[5]、神经网络[6-11]等。
在机器学习方法的神经网络模型中,门控循环单元(GRU)是挖掘时间序列数据的经典模型之一,可以将其应用在航迹这类时间序列数据上。然而,GRU趋向于关注时序数据的时间信息,而忽略了时序数据的空间信息,同时输入GRU的序列长度不断增长,会导致早期输入的信息变得模糊,无法适应长时间序列的预测场景。与GRU不同,卷积神经网络(CNN)在图像与提取空间信息中有着广泛应用,该模型可以挖掘时间序列数据中在某个时刻之前的数据的空间关系,提取其中隐藏的空间特征。
同时,注意力机制在近些年受到了广泛关注,其最早出现在计算机视觉领域,在航迹预测领域的应用尚处在初始阶段,它通过对输入的数据或者提取的特征进行自适应的关注,提高模型提取特征的能力,可以进一步提高预测的效果。通过强调与长时间序列预测相关的关键特征,同时抑制与结果无关的信息,可以将计算注意力分配给更重要的特征,会提高模型对场景的适应能力。
根据上述描述,本文提出一种基于注意力机制与CNN-GRU的飞机航迹预测模型。该模型使用CNN提取航迹具有时序的空间特征,再使用GRU挖掘飞机航迹的时序特征,最后利用注意力机制,学习各个空间与时间特征的重要程度,提升重要特征的影响力,降低非重要特征的影响力,有效提升模型的预测精度。
由于神经网络在拟合复杂非线性关系的优势,神经网络在航迹预测领域应用广泛,常用模型包括反向传播网络(BP)、深层神经网络(DNN)、循环神经网络(RNN)、长短期神经网络(LSTM)以及GRU等。BP神经网络是应用最多的神经网络之一,其核心是误差反向传播算法。DNN相比于BP增加了多个隐藏层,可以拟合更复杂的非线性函数。但DNN没有充分利用时序数据的时序信息,而RNN通过在隐藏层的神经元节点之间增加联系,提高了处理时间序列数据的能力。LSTM是RNN的变种,通过增加输入门、遗忘门、输出门的结构,解决了RNN在长期记忆情况下的权重爆炸或梯度消失问题,GRU则进一步改进了LSTM,在保留前者优点的情况下简化了模型的结构,使用更新门和重置门替代了原先的3个门结构,在大训练数据的情况下提高了模型的训练速度。
以GRU为基础,还出现了许多改进的时序预测模型。文献[12]利用CNN提取电压时间序列的高层特征,然后将其输入GRU中实现电压轨迹预测,有效提取了数据的高层特征,并解决长期记忆情况下的梯度消失问题。文献[13]使用以GRU为核心的seq2seq模型,利用编码器将历史轨迹序列编码为上下文向量,然后利用解码器实现船舶轨迹预测,对短期轨迹预测具有较好的效果。文献[14]利用双向GRU模型,同时考虑了时间序列的正向和逆向信息,实现了无人机的精确预测。由于航迹数据是具有位置、时间信息的连续采样序列,GRU在该类数据上适用性较好,因此本文采用GRU为基础组件。
CNN的本质在于构建多个能够提取数据特征的滤波器,通过对输入数据进行逐层卷积和池化操作来提取数据之间隐藏的拓扑结构特征。文献[15]考虑到CNN在挖掘非线性时序的精度优势,利用CNN进行数据特征的提取实现电力负荷的预测。文献[16]使用了一种结合CNN与LSTM的模型用于短期的风电功率预测,其中CNN用于提取输入的电力数据的高维特征,然后将结果输入LSTM网络中,相比于使用单一的LSTM模型,实现了更高的预测精度。CNN适合进行空间扩展,提取数据的局部特征,并组合抽象成高层特征,因此本文采用CNN作为空间特征提取组件。
注意力机制最早出现在计算机视觉领域,它的基本原理是通过对数据特征分配不同的权重,根据权重大小判断哪些信息对目标更加重要。Fernando等[17]就利用注意力机制结合LSTM构成的预测模型,通过行人的历史轨迹对未来进行预测。
CNN擅长在空间上做抽象与泛化,而GRU擅长提取时间特征。在对航迹数据构建预测模型时,既要考虑到其空间上的信息,又要考虑时间维度上的特征联系。因此,本文结合2种算法,综合利用各自的优势,提出了CNN-GRU算法。此外,考虑到注意力机制擅长从特征中抓住关键特征,提升关键特征的权重,因而将注意力机制也引入模型,以提升CNN-GRU算法的预测精度。模型整体流程如图1所示。
图1 模型流程图
本文构建的模型包括CNN模块、GRU模块和注意力模块3部分。当数据输入模型后,首先,利用CNN模块的一维卷积核对飞机航迹数据进行处理,提取飞机航迹数据在空间上的特征分量。然后,将提取结果输入GRU模块,由于经过CNN模块处理后的飞机航迹数据依然保有时序特性,GRU模块会进一步提取飞机航迹数据的时序特征。最后,注意力模块将进行权重的自动化分配,以提升重要特征在最终特征表达中的影响力。模型整体结构如图2所示。
图2 模型架构图
2.1 CNN模块
CNN网络主要由卷积层、池化层和全连接层组成,其中卷积层用于提取特征,其主要通过卷积核来从输入数据中提取数据特征,由于卷积核中存在的权值共享、空间安排和局部连接等特性,在参数较少的情况下也可以提取较为丰富的特征,池化层通过降采样等操作减少过拟合,通过多层卷积核可以提取更加抽象的特征。卷积的公式如式(1)所示:
式中,i用于代表第i个卷积核,g(i)用于代表第i个特征图,a用来代表输入数据,b代表偏置,x、y、z则表示输入的3个维度。
在经过卷积操作后,通常使用激活函数实现非线性变换,本文使用的是RELU作为激活函数。
考虑到航迹数据的一维特性,本文采用的为一维卷积神经网络,用来处理一维数据。卷积公式如式(3)所示:
利用以步长为t的滑动窗口形式对航迹序列进行特征提取,所有窗口的特征将通过池化层进行融合,保留时间序列上的主要特征,随后将输出放入下一个卷积层进行进一步高维特征的提取。最后,使用全连接层获得CNN模块的最终结果。CNN模块使用反向传播算法进行权值更新,学习到使误差最小的网络参数。
2.2 GRU模块
GRU是一种RNN的变体,通过改进RNN模块中的记忆单元,改变了在数据持续输入情况下出现的权重爆炸与梯度消失问题,增加了更新门与重置门的设计,使得GRU可以有效更新和传递时序数据中的关键信息。
GRU是由记忆模块组成的,主要包含记忆单元以及用于操控记忆单元状态的更新门与重置门结构,其中更新门用于控制前一状态信息对当前状态的影响,重置门用于选择性地对前一状态信息进行忽略。GRU的记忆模块结构如图3所示。其中zt代表t时刻的输入,ht-1代表t-1时刻的输出,rt和zt分别代表更新门和重置门。
图3 GRU的记忆模块结构
1) 编码器
GRU采用seq2seq结构,其中编码器部门由单层GRU单元组成,用来挖掘航迹数据的空间特征信息,并将获得的特征抽象为隐藏向量c,如式(4)所示:
式中,h1,…,hn表示中间的隐藏状态,c为最终隐藏向量。
2) 解码器
解码器部分也使用GRU单元作为基本组件,模型使用xn作为初始值输入解码器,利用初始值xn和隐藏向量c来生成后续隐藏状态序列,第一步的隐藏状态计算式如(5)所示:
单元的输出作为下一个单元的输入。本单元的隐藏层和输出通过组合输入到注意力机制部分。
2.3 注意力机制
注意力机制对GRU输出的隐层向量进行分配权重求和计算。假设输入的隐层特征向量为hi,基于隐层特征向量可以得到环境向量ci,如式(6)所示:
式中,ai是注意力权重,为了获得注意力权重,模型使用一个全连接网络,将从GRU模块获得的隐层向量作为输入,计算各个隐层向量的得分,作为其对输出的影响力,如式(7)所示:
式 中,wT和bi表示模型参数,si表 示hi与ci的 相 关 程度,之后利用softmax对si进行归一化,获得权重系数ai,如式(8)所示:
3.1 实验环境
本文实验所用系统为Ubuntu18.04,所用GPU为GeForce RTX 3090,CPU为Intel Xeon CPU E5-2620 v4 @ 2.10 GHz,所用Python版本为3.7,采用深度学习框架为PyTorch 1.7.0,所用CUDA版本为11。
3.2 实验流程
本文使用的实验数据集来自OpenSky网站的自动广播式相关监视系统数据集,该数据包含执行飞行任务的飞机被动向外广播的飞行状态数据,主要包括时间、经度、纬度、高度、身份等信息。实验数据按照8∶1∶1划分为训练集、测试集和验证集。首先对实验数据进行缺失值填充、重采样等预处理操作,最终有效数据为20 000条。预处理之后的实验数据如表1所示,其中,Time用UNIX时间戳表示,Icao为飞机的唯一标识。
表1 实验数据示例
航迹数据中的Lat、Lon、Alt分别表示飞机所在的纬度、经度和高度,可以看出由于量纲的不同,3者存在巨大的数值差距,为减少量纲不同对预测结果的影响,在输入模型之前先使用归一化同一量纲。本文使用的归一化方法为离差标准化[18],如式(9)所示:
式中,X代表原始数据,X*代表归一化之后的数据。
基于注意力机制的CNN-GRU模型由输入层、CNN模块、融合注意力机制的GRU模块和输出层组成。其中模型的输入时间窗口大小被指定为10,CNN模块的卷积层卷积核个数设定为12,GRU模块中隐藏层单元个数设定为24个,并将隐藏层的输出取出,使用注意力机制将多个输出张量进行融合,获得融合的数据特征表达式,最后进入全连接层进行激活输出。模型优化器使用的是随机目标函数优化算法Adam[19],在训练过程中进行模型参数的更新,初始学习率设置为0.002,考虑到训练集的数据量较大,实验将数据集划分为批量进行训练,设定32组数据为一批,将batch-size设定为100,迭代次数为10 000,每条输入的航迹数据长度为10,预测长度为10。
网络利用训练集进行模型训练,利用优化函数来调整网络中的参数权重,直到达到设定的迭代次数,以使得损失函数降到最小。最后利用测试集对生成的模型进行评估,所用评估指标包括RMSE、MAE、MSE,分别表示预测值与真实值之间的均方根误差、平均绝对误差和均方误差,如式(10)—(12)所示,其中yi表示真实值,yip表示预测值。
3.3 实验结果
为充分验证本文所提基于注意力机制的CNNGRU模型的有效性,选择GRU、CNN、CNN-GRU模型进行对比实验。实验结果如表2所示。
表2 全阶段数据集的实验结果
从中可以看出,基于注意力机制的CNN-GRU模型在各项评价指标上均表现最好,相较于CNN、GRU、CNN-GRU,本文方法在RMSE上分别下降了24%、35%和14%,这表明本文所提模型进行航迹预测是有效的。相比于本文模型,单一的CNN模型虽然可以从数据中提取特征,但要有多卷积层才能捕获航迹数据中的长期依赖关系,随着输入序列长度的增加,长期依赖关系的捕获能力会变差,不利于航迹的精确预测。类似的,使用单一GRU模型时,虽然模型擅长捕获航迹数据的时序关系,但对于航迹数据中的局部空间特征挖掘能力不足,相比于混合模型,航迹预测精度会有所下降。最后,可以看出本文模型表现效果要好于CNN-GRU组合网络,表明注意力机制有助于提高模型性能,这可能是由于注意力机制能关注特征中的关键信息,降低不重要信息的权重,优化了网络对关键特征的利用能力,降低了无效信息对航迹预测的计算影响。
随机抽取部分轨迹,将本文方法的预测效果进行可视化,其真实轨迹和预测轨迹对比如图4所示。其中input表示输入的历史轨迹,使用黑线显示;
prediction表示本文模型预测的飞机轨迹,使用绿线显示;
groundtruth表示预测轨迹对应的真实的飞行轨迹,使用红线显示。
从图4中可以看出,本文模型的预测效果整体较好,可以准确预测出航迹的未来趋势和位置。在(a)中的真实飞行轨迹比较曲折,对其进行预测存在难度,然而本文模型实际预测效果较好,实际轨迹与预测出来的轨迹之间差距较小,较为精准地刻画了轨迹的变化细节。在(b)中可以发现飞机航向大角度变化的时刻,虽然模型预测精度略微下降,但飞行趋势基本一致,并很快纠正了预测误差。
图4 轨迹预测效果图
考虑到飞机在飞行的不同阶段,飞行状态特征会有不同的分布,本文选择处于爬升阶段与下降阶段的飞机数据各4 000条,在其他条件与全阶段数据集相同的情况下,与不同的模型进行对比。实验结果如表3、表4所示。
表3 爬升数据集的实验结果
通过对比可以看出,本文模型在不同数据集上均表现最好,这是由于本文模型综合考虑了航迹数据在空间和时间上的特征,充分模拟了航迹特征的分布规律,相较于其他单一模型,本文模型具有更好的数据表征能力。相比于全阶段的数据集实验结果,在分阶段的数据集上模型的预测效果普遍下降,这可能是由于飞机在爬升、下降阶段所面对的飞行场景更加复杂,模型在模拟飞行航迹数据的分布更加困难,需要根据场景进行进一步优化,以提高预测精度。
考虑到模型预测时间对实时航迹预测的重要影响,本文记录了模型在全阶段数据集上进行训练和测试的时间效率。其中预测时间为预测一组数据所使用的平均时间,不同模型的时间效率结果对比如表5所示。
表5 模型在全阶段数据集所用时间
从中可以发现,本文模型在训练时间花费稍大于单一模型,这是由于模型在特征提取阶段需要耗费时间提取更加细致的特征。在预测时间上,本文模型虽然拥有更长的网络深度,但与其他对比模型差别不大,均满足实时航迹预测的要求。
综上,本文模型相比于单独的CNN或GRU模型表现更好,是因为结合了两者的模型优势,CNN抽取出了航迹在空间上的高维特征,而GRU充分挖掘了航迹数据在时间上的特征,从空间和时间两个角度实现了对航迹数据的特征提取。与CNN-GRU模型相比,本文引入注意力机制的模型表现出了更高的精度,这表明了注意力机制可以利用权重分配强化时间与空间特征中的关键信息,自动调节网络权重,解决了CNN-GRU模型可能出现的关键特征丢失问题。
本文提出了一种基于注意力机制的CNN-GRU模型用于飞机航迹的预测。其中CNN模块用于从航迹数据中进行空间特征提取,GRU模块用于进行时间特征的提取,既考虑了特征在空间中的联系,又考虑了特征在时间维度上的变化,最后通过引入注意力机制,强化了关键特征对预测结果的影响,进一步提高了模型的预测精度。通过与CNN、GRU、CNN-GRU模型的对比,可以看出基于注意力机制的CNN-GRU模型对于航迹的刻画能力更强,能够更精确地进行航迹预测,验证了该模型的有效性。
猜你喜欢航迹轨迹注意力让注意力“飞”回来小雪花·成长指南(2022年1期)2022-04-09轨迹读友·少年文学(清雅版)(2020年4期)2020-08-24轨迹读友·少年文学(清雅版)(2020年3期)2020-07-24梦的航迹青年歌声(2019年12期)2019-12-17轨迹现代装饰(2018年5期)2018-05-26自适应引导长度的无人机航迹跟踪方法北京航空航天大学学报(2017年7期)2017-11-24“扬眼”APP:让注意力“变现”传媒评论(2017年3期)2017-06-13进化的轨迹(一)——进化,无尽的适应中国三峡(2017年2期)2017-06-09视觉导航下基于H2/H∞的航迹跟踪北京航空航天大学学报(2016年6期)2016-11-16A Beautiful Way Of Looking At Things第二课堂(课外活动版)(2016年2期)2016-10-21