陈玉立,佟强*,谌彤童,侯守璐,刘秀磊
(1.数据与科学情报分析研究所(北京信息科技大学),北京 100101;2.北京材料基因工程高精尖创新中心(北京信息科技大学),北京 100101;3.北京跟踪与通信技术研究所,北京 100094)
随着空中交通需求的不断增长,航线网络的规模逐渐扩大,空域资源日益稀缺。为了缓解上述问题,国际民航组织将基于航迹的运行(Trajectory Based Operation,TBO)作为辅助空管系统的重要手段[1]。TBO 通过共享飞行器的航迹,将航迹预测作为参考,进而管理飞行器的运行情况。
根据时间尺度,航迹预测可以分为两类:一是短期航迹预测,是几分钟甚至更短时间内的预测,主要应用于冲突探测与解脱;二是长期航迹预测,是一种基于飞行计划的离场前预测,主要应用于燃料消耗和空域流程评估。
航迹预测问题本质上是基于已有航迹数据对未来航迹序列点的经度、纬度、高度的回归预测。现有航迹预测技术使用的模型可总结为空气动力学或飞行器性能、状态估计理论和机器学习三大类。前两类模型适用于简单的线性航迹预测,机器学习模型适用于复杂非线性的航迹预测。
基于空气动力学或飞行器性能的航迹预测模型原理是将飞行过程划分为多个阶段,定义每个阶段的开始、结束条件以及运动方程,通过对飞行器动力学模型、飞行器意图及性能参数等数据进行统计分析,进而对航迹进行预测[2-6]。该类模型使用飞行阶段的特点来简化建模过程,但飞行阶段划分比较理想化,而且动态参数在飞行过程中不断变化,很难进行准确估计。因此,该类模型具有参数难于估计,且预测精度不高的缺点。
基于状态估计理论的航迹预测模型通过运动方程构建状态方程中的状态转换矩阵,不涉及飞行器的质量、力量和性能参数,侧重于研究未来时刻位置与历史时刻位置、速度、加速度及角度等关联关系。根据在预测过程中具有单种或多种飞行模式,分为单模估计和多模估计,其中,单模估计主要包括卡尔曼滤波[7]、粒子滤波器[8]等,多模估计主要包括交互式多模型[9-12]。但该类模型的计算比较耗时,无法应用于实时预测的场合。
基于机器学习的航迹预测模型使用历史航迹数据训练,从数据中挖掘出航迹的规律。该类模型包括回归模型[13-14]、聚类算法[15-17]、神经网络[18-24]、遗传算法[25]、蚁群算法[26]及隐马尔可夫[27]等。机器学习模型主要从大量的历史航迹数据中学习时空特征和航迹信息中隐藏的规律。在大多数情况下,机器学习模型可以展现出更好的预测性能。
在神经网络模型中,长短时记忆(Long Short-Term Memory,LSTM)网络是最具代表性的时序数据建模方式之一[21-23]。LSTM 由于具备一定的时间序列信息挖掘能力,在文本生成、电力预测和图像描述等领域被广泛使用;但在面对长时间序列数据时,训练单一LSTM 存在无法充分学习特征、记忆丢失和梯度消失等问题,很容易忽略序列信息中隐藏的重要特征,不能捕捉信息间的依赖性,最后可能会导致关键特征丢失或模型错误评估等问题。
针对上述问题,本文提出一种基于注意力机制和生成对抗网络(Generative Adversarial Network,GAN)的短期航迹预测模型 ——ATGAN(ATtention Generative Adversarial Network)。该模型使用注意力机制找到重要的航迹特征,提升模型中重要特征的影响力,关注特征间重要程度差异,利用LSTM 融合飞行器的时间序列信息,进而对飞行器特征进行建模;借助生成对抗网络的联合训练对抗机制使模型充分训练,更精确地模拟航迹数据样本分布,生成更加合理的预测航迹,提高模型的准确性。
由于神经网络能无限近似拟合连续函数,所以很多学者从传统的回归模型转向神经网络,常用的模型有反向传播(Back Propagation,BP)网络[18-19]、深层神经网络(Deep Neural Network,DNN)[20]、LSTM[21-23]及门控循环单元(Gated Recurrent Unit,GRU)[24]等。BP 网络是目前在人工智能领域中应用最多的人工神经网络之一,其核心是误差反向传播算法[18]。与传统神经网络相比,DNN 增加了多个隐藏层;但DNN 不能充分利用时间序列的特征,为解决此问题,循环神经网络(Recurrent Neural Network,RNN)被提出。LSTM、GRU 网络均是RNN 的变种,解决了RNN 无法处理因递归产生的权重爆炸或梯度消失问题。LSTM 利用输入门、输出门和忘记门有选择地控制历史信息的传递。与LSTM 不同,GRU 使用更新门代替忘记门和输入门,简化了网络内部结构。
以LSTM 为基础,还涌现出很多改进的航迹预测模型:石庆研等[28]使用LSTM 预测飞行器的经纬度及高度,将结果与差分自回归移动平均(AutoRegressive Integrated Moving Average,ARIMA)模型预测的高度值融合,提高预测的准确性;Ma等[29]提出了一种LSTM 与卷积神经网 络(Convolutional Neural Network,CNN)结合的模型结构,利用LSTM 提取航迹的时间特征,利用CNN 提取航迹的空间特征;Xu等[30]提出了一种基于社会长短期记忆(Social LSTM,S-LSTM)网络的模型,利用LSTM 和池化层捕捉飞行器间的交互来实现多飞行器航迹协同预测;Zeng等[31]提出了一个用于航迹预测的序列到序列深度长短期记忆(Sequence-to-Sequence Deep LSTM,SS-DLSTM)网络,可有效捕获长短时间依赖性和航迹之间的重复性。由于航迹数据是具有位置、时间信息的连续采样序列,LSTM 在时间序列数据预测上具有一定的适用性,因此本文采用LSTM 作为模型的基础组件。
注意力机制最早出现在视觉领域,现已成为人工智能领域内的重要概念[32]。注意力机制的实现原理是通过对目标数据分配不同权重,根据权重得分找出对目标更关键的信息。如果赋予LSTM 关注重要特征的能力,则有助于提取信息间隐藏关键特征,能更有效地捕捉长时间信息间依赖关系。Fernando等[33]提出了一种LSTM 与注意力机制结合的行人轨迹预测模型,可以根据行人及其邻居的过去行为的短暂历史来预测行人的未来运动。本文利用注意力机制关注被LSTM 忽略的重要性差异,对输入的特征逐个加权,提取航迹中关键特征信息。
生成对抗网络主要由生成器和判别器两个网络组成:生成器通过输入噪声并模仿真实数据样本的分布,使生成的假样本数据尽可能地接近真实数据样本[34];判别器可看作是一个二分类器,可以判别输入的样本数据是否真实。Gupta等[35]提出一种社会 生成对抗网络(Social Generative Adversarial Network,SGAN)模型,将生成对抗网络用于行人预测中,利用生成器与判别器间的学习与对抗机制,使模型预测出更加符合社会规范的航迹。本文利用生成器与判别器的博弈,使模型生成最合理的预测航迹。
ATGAN 模型由生成器和判别器两部分构成。生成器包括编码器(Encoder)、汇聚层(Convergence Net,CN)及解码器(Decoder),其中编码器中还包括注意力模块。注意力模块的作用是在模型输入到LSTM 之前,对航迹数据计算出不同的权重值,从而使得在编码过程中能根据权重排序给予不同程度的关注。与LSTM 相比,注意力机制可以使模型注重对预测有利的地方,忽略相关性不高的部分,从而作出更准确的判断。生成器利用编码器对航迹信息进行分析,计算出航迹之间的相对位置,经汇聚层收集全局特征信息,使用解码器对特征信息进行映射,得到重构后的预测航迹。判别器主要包括全连接 层(Fully Connected,FC)、多层感知机(Multi-Layer Perceptron,MLP)等。FC 将编码器映射过的特征嵌入到样本空间,再通过MLP 解码判断预测航迹与真实航迹的差异。最后利用损失函数更新模型网络参数,降低模型损失。ATGAN 模型整体框架如图1 所示。
2.3.1 注意力模块
2.3.2 生成器
其中:Φ(·)是带有激活函数的嵌入函数;Wee是Φ(·)嵌入计算的网络参数;Wencoder是LSTM 编码计算的参数。
其中:ψ(·)是带有激活函数的MLP 嵌入函数;Wc是MLP 嵌入计算时的网络参数。
其中:Φ(·)是带有激活函数的嵌入函数;Wed是嵌入计算的参数;ψ(·)是带有激活函数的MLP 函数;Wdecoder是LSTM 函数解码运算的参数;Wc是MLP 网络编码过程中的参数。
2.3.3 判别器
判别器用于鉴定生成器生成的预测航迹序列的真实程度。在训练过程中,判别器不断校正生成器,使得生成器拟合出高精度的预测航迹。将生成器的输出结果输入到编码函数的LSTM中,LSTM 网络经过神经网络的传递不断学习,得到飞行器i航迹序列的隐藏特征。在最终预测时间点tobs+tpred输出隐藏特征,通过MLP 函数进行解码,利用Softmax 分类器计算输出结果,输出分数为Spred。同理,真实航迹输入判别器的步骤与预测航迹相同。
其中:Wencoder是LSTM 编码运算的参数;Wfc是FC 函数ϕ(·)的解码运算参数;WMLP是带有激活函数MLP 的分类器ψ(·)计算时的参数。
2.3.4 损失函数
损失函数用于评估模型的预测值与真实值的不一致程度,主要分为两部分:一部分是生成器与判别器的联合对抗损失值LGAN(G,D);另一部分是飞行器真实航迹序列的空间特征向量Yi与预测航迹序列的空间特征向量的最小差值LL2(G)。模型每次从k个结果中选出最优值。λ是损失值LL2(G)的权重,用来平衡总损失值,使得生成的预测航迹序列能更趋近于真实航迹。相关公式为:
其中:L是损失函数;G是生成器;D是判别器;是判别器的损失函数是生成器的损失函数。
2.3.5 模型训练步骤
设定模型在每次迭代时以生成器、判别器交替执行单次的方式进行训练。模型训练过程如ATGAN_LOOP 所述,整体训练步骤如下:
步骤1 从数据集中抽取历史航迹序列和真实航迹序列,将历史观测航迹输入到生成器模型中,最终输出预测航迹序列。
步骤2 将历史航迹序列与真实航迹序列拼接得到Yi,将历史航迹序列与预测航迹序列拼接后得到将Yi和输入到判别器中,计算各航迹点的评分结果。
步骤3 将两条航迹序列的评分结果输入到判别器损失函数中,计算生成器与判别器的损失及预测航迹序列和真实航迹序列的数据损失,选择合适的优化算法,通过梯度下降的方式,更新网络的权重参数。
步骤4 重复前3 个步骤进行训练,生成器与判别器的网络参数在反向传播过程中不断优化,损失函数值不断降低,飞行器的预测航迹点不断接近真实航迹点。
模型训练过程ATGAN_LOOP:
本文使用OpenSky 网站[36]中的广播式自动相关监视系统(Automatic Dependent Surveillance-Broadcast,ADS-B)数据作为实验数据集的来源。所有实验用到的数据集按照8∶1∶1 的比例划分为训练集、验证集和测试集。实验流程如图2 所示。
由于ADS 设备容易受到物体遮挡、通信干扰等因素,航迹数据可能会出现时间、位置信息等航迹点重复或航迹点缺失等问题,所以需要对航迹数据进行去重、补全等预处理操作。根据航迹的连续性和平滑性等特点,本文使用线性插值方法对航迹缺失点进行补充[37]。经过数据预处理后的数据格式见表1。
表1 数据集样例Tab.1 Samples of datasets
由表1 数据可以看出,由于经纬度与高度的量纲不同,数值相差较大。为减小因量纲不同造成的网络预测精度问题,在输入模型之前,对航迹数据进行归一化操作。本文使用离差标准化方法进行归一化[38],转换公式为:
其中:max(·)为数据的最大值;min(·)为数据的最小值;X为原始数据;X*表示归一化之后的数据。最后将归一化数据加载到网络中,按照2.3.5 节模型训练过程ATGAN_LOOP 进行训练,如果达到迭代次数,则终止训练。
本文实验的训练与测试均运行在Centos7.2 的操作系统上,GPU 为GeForce GTX 1080Ti,CPU 为Intel Xeon CPU E5-2620 v4 @ 2.10 GHz,Python 版本为3.7,采用的深度学习框架为PyTorch 1.3.0 版本,CUDA 版本为9.2。
实验采用批量训练的方法,每一批包含32 组数据,每组数据包含若干个飞行器,训练时输入每条航迹的观测长度为8,预测长度为8。训练迭代的次数为20 000,生成器和判别器的学习速率均设置为0.001,神经网络的激活函数为线性整流函数(Rectified Linear Unit,ReLU),网络参数初始化的方法为Kaiming。本文使用文献[39]中的评价指标评测模型预测的准确性,包括以下部分:
1)平均位移误差ADE(Average Displacement Error),指每个预测航迹坐标点与真实航迹坐标点之间的欧氏距离差值平均值,计算公式为:
2)最终位移误差FDE(Final Displacement Error),指最后一个预测航迹坐标点与最后一个真实航迹坐标点之间的欧氏距离差值,计算公式为:
3)最大位移误差MDE(Maximum Displacement Error),指所有预测航迹坐标点与真实航迹坐标点之间欧氏距离差的最大值,计算公式为:
式(18)~(20)中:tf表示预测时间长度与分别表示第i条航迹的预测位置与真实位置与表示最终时刻tf时第i条航迹的预测位置与真实位置。
为使模型取得更好的拟合效果,本文对比了常见的6 种优化算法:随机梯度下降(Stochastic Gradient Descent,SGD)[40]、自适应矩估计(Adaptive Moment Estimation,Adam)[41]、弹性传播(Resilient Propagation,RProp)[42]、自适应梯度(Adaptive gradient,Adagrad)[43]、均方根传播(Root Mean Square Propagation,RMSProp)[44]、动量梯度下降(SGD Momentum)[45]。模型使用不同优化算法时结果如图3 所示。
从图3 中可以看出:随着迭代次数的增加,Adam 与RMSProp 的指标值上下波动幅度较大,其他优化算法的指标值基本呈不断降低的趋势,Adagrad 在指标值方面优于其他算法,所以本实验使用Adagrad 作为模型训练过程中的优化算法。
为有效地评估所提模型的相对准确性,本文构建了一个覆盖飞行整个阶段的数据集,随机选择2020 年09 月07 日当天的2 000 条的全球航迹数据。将ATGAN 与其他现有的飞行器预测方法等进行对比,计算在测试集中的所有航迹的预测误差。BP 网络参考文献[18]的实现方法,BP 网络中包含单个隐藏层;LSTM 网络参考文献[23]中的实现方法,隐藏层中仅有单层的LSTM 网络,每层有64 个神经元;GRU 网络参考文献[24]中的方法,模型参数与LSTM 保持一致;SGAN网络参考文献[35]中的实现方法,将模型的输入由二维扩展到三维。所有的模型本质上都是基于数据驱动的方法,且均使用相同的训练数据集、验证数据集训练。不同模型在全阶段数据集上的预测误差见表2。
表2 不同模型在全阶段数据集上的预测误差Tab.2 Prediction errors of different models on dataset during all phases
从表2 中可以看出,ATGAN 在整个飞行阶段的数据集上优于其他模型。与BP、LSTM、GRU 模型相比,GAN 系列的模型预测精度更高,这是由于GAN 系列的神经网络模型更加复杂,刻画特征能力更强。ATGAN 模型的预测精度更高,这是由于注意力机制可以针对不同场景的飞行器关注点进行合理的权重分配,能提取不同场景下的关键特征信息,可充分学习到数据中隐藏的航迹特征规律,对不同类型分布的数据也取得很好的预测结果。
飞行器在爬升、巡航、下降等阶段,其航迹数据会有不同分布,其中:巡航阶段高度变化比较平稳,可近似看成二维航迹预测问题;下降阶段与爬升阶段类似,可看作爬升阶段的逆过程。本文随机选择2 000 条处于爬升阶段的航迹数据,其他条件与全飞行阶段数据集训练时保持一致。不同模型对比实验结果见表3。
表3 不同模型在处于爬升阶段数据集上的预测误差Tab.3 Prediction errors of different models on dataset during climb phase
通过对比表3 中不同预测模型在处于爬升阶段的数据集上的预测误差,在ADE、FDE 与MDE 指标上,ATGAN 在数据集上均表现最好。LSTM 网络和GRU 网络的整体表现不及GAN 系列的模型,因为缺少判别器对预测航迹的反复纠正,导致模型拟合的效果不佳。相较于SGAN,ATGAN 可以有选择地融合对当前飞行器的重要特征,因此ATGAN 具有更强的数据表征能力。相较于SGAN,ATGAN 模型的ADE、FDE 及MDE 分别降低了20.0%、20.4%和18.3%,与整个飞行阶段数据集上的模型表现相比,ATGAN 在爬升阶段上的表现较好,说明ATGAN 在单一飞行阶段数据上能更加充分地学习其分布规律。
为测试所提模型的高效性,本文通过实验对比不同预测模型在全阶段数据上的时间效率,训练所用参数与3.2 节中的模型参数保持一致,模型的预测时间为测试集里一组数据所花费的平均时间。因模型只需一次加载后就能不断预测数据,所以为准确统计不同模型网络的预测实时性,模型加载的时间不计算在内。不同航迹预测模型的时间对比结果见表4。
表4 不同模型在全阶段数据集上的时间对比结果Tab.4 Time comparison results of different models on dataset during all phases
从表4 中可以看出,由于BP 模型的网络结构比较简单,模型训练时间和预测时间最小。LSTM 与GRU 模型需要依次计算前一时刻的隐藏状态,故时间开销大于BP 模型。与LSTM 和GRU 模型相比,基于GAN 方法的SGAN 和ATGAN 在编码、解码阶段需要耗费更多时间,且需要多次训练生成器和判别器,故训练时间较长;数据从输入到输出经过更长的网络深度,故预测时间比其他模型更久。与SGAN 模型相比,ATGAN 模型的训练时间略短,这是由于添加了注意力机制,使模型关注航迹中的重要特征,在一定程度上减少了后续网络参数计算量。综上,ATGAN 不仅能缩短模型的训练时间,还能保证模型预测的实时性与准确性,符合实际应用的要求。
此外,为测试注意力机制的适用性,本文通过实验对比了SGAN 与ATGAN 在不同观测长度上的模型准确性。在模型训练时设置了不同的观测长度,其他条件均保持一致,其中最小观测长度为8,最大观测长度为20,观测长度每次叠加2 个单位,预测长度为8,在测试集上验证模型的性能指标,实验结果如图4 所示。
从图4 实验结果上可以看出:随着观测长度的增加,ATGAN 与SGAN 的性能指标呈不断降低的趋势,ATGAN 的指标性能整体优于SGAN。由于注意力机制降低数据中非重要特征的影响力,从而能更有效率、更灵活地学习数据的重要特征。利用更长的观察时间,ATGAN 可以学习更多的特征信息,提高了对概率分布的刻画性能,能更准确地拟合数据分布并生成预测航迹。
本文通过分析LSTM 的问题与航迹数据时序特点,提出一种基于注意力机制和生成对抗网络的短期航迹预测模型。与BP、LSTM、GRU 等航迹预测模型在性能指标与时间效率上进行对比分析,验证了ATGAN 的准确性、有效性与实时性。实验结果表明ATGAN 模型在单一飞行阶段数据比整个飞行阶段数据的表现更优,最后与SGAN 对比,验证了注意力机制在更长观测时间上具有更好的鲁棒性。后续将对不同飞行阶段的数据做单独的研究,提高模型对整个飞行阶段数据特征的刻画能力。在现实生活中,因为飞行器运动时还必须考虑天气、风速等外界情况,所以在航迹预测时将考虑添加实际环境因素。