摘" 要:针对在轨卫星对船舶跟踪观测时存在的观测时间短、无法满足持续跟踪需求的问题,提出了基于CNN(Convolutional Neural Networks)、BiLSTM(Bidirectional Long Short-Term Memory)和自注意力机制的混合模型进行船舶航迹预测,以确保多颗卫星能够协同工作,实现对船舶的持续、有效跟踪观测。实验结果表明,该模型预测的轨迹很接近真实的轨迹,平均绝对误差比BiLSTM模型和CNN-BiLSTM模型分别降低了40.7%、13.8%。因此,该模型对于轨迹预测具有较高的精度,能够为选取合适的卫星进行监视提供依据。
关键词:航迹预测;卷积神经网络;双向长短期记忆神经网络;自注意力机制
中图分类号:TP183 文献标识码:A 文章编号:2096-4706(2020)22-0160-05
Intelligent Trajectory Prediction Technology for Moving Target
Abstract: To address the problems of short observation time and inability to meet the continuous tracking demand when tracking and observing ships by in-orbit satellites, a hybrid model based on CNN, BiLSTM, and Self-Attention Mechanism for ship trajectory prediction to ensure that multiple satellites can work together to realize continuous and effective tracking and observation of ship. The experimental results show that the trajectories predicted by the model are very close to the real trajectories, and the Mean Absolute Error of the model is reduced by 40.7% and 13.8% compared with the BiLSTM model and CNN-BiLSTM model, respectively. Therefore, the model has high accuracy for trajectory prediction and can provide a basis for selecting appropriate satellites for monitoring.
Keywords: trajectory prediction; CNN; BiLSTM; Self-Attention Mechanism
0" 引" 言
近年来,随着社会的发展,各国的海洋经济也在不断发展,各个海域和港口的船舶数量在不断地增加,海洋权益和海上安全受到越来越多的重视。其中,海上目标的跟踪观测颇受关注,因为它不仅在民用方面可以用于海上交通监管、港口监视、渔业管理和海洋营救搜索等方面,更重要的是在军事方面,可以用于战场态势感知、反舰作战情报支援等。
随着卫星技术和信息处理等技术的迅速发展,卫星定位技术已迈入新阶段,高精度成像卫星为海上目标跟踪提供了丰富的数据源。如何利用这些数据进行船舶航迹预测成为研究热点。然而,单颗卫星仅能短暂跟踪船舶,无法满足长时间观测需求,因此需要多颗卫星协同跟踪。在此情况下,良好的轨迹预测技术可提供船舶航行方向,从而指导选择下一个观测船舶的卫星。这有助于选取合适的卫星进行长时间、精准的跟踪观测,对军事斗争准备具有重要意义。
近年来,智能船舶领域的研究者已取得一些船舶轨迹预测方面的成果。姜佰辰等[1]提出了多项式卡尔曼滤波法,解决了船舶运动数据不足和有误的问题。Qiao等[2]提出了自适应参数选择的隐马尔可夫轨迹预测模型。茅晨昊等[3]则建立了基于高斯过程回归的船舶轨迹预测模型。靳晓雨[4]提出了一种修改传统逻辑回归分类算法的船舶航行轨迹数据聚类算法,用于预测船舶航行轨迹。这些研究使用了传统的机器学习方法,而传统的机器学习方法需要结合多个领域的知识来建立数学模型。然而,在海上航行过程中,受风场、海流等多种因素影响,难以实现实时、精确的预报。因此,一些研究者开始尝试使用神经网络进行轨迹预测。甄荣等[5]结合了AIS数据和BP神经网络,提出了一种船舶轨迹预测方法。任宇翔等[6]使用了LSTM神经网络进行船舶动态预测,进一步提高了预测精度。随后,组合模型开始流行。杨博辰[7]使用RNN-LSTM网络模型预测船舶轨迹,而王妍婷[8]则采用混合CNN-LSTM模型,考虑了实时性和模型精度。虽然预测精度在逐步提升,但是考虑到军用舰船的高机动性对预测精度提出了更高的要求,受到文献[9]和[10]的启发,本文提出了基于CNN、BiLSTM和自注意力机制的混合模型。
1" 基于CNN、BiLSTM和自注意力机制的轨迹预测模型
1.1" CNN模型介绍
CNN主要由卷积层、池化层、全连接层组成。其中卷积层和池化层用于特征提取,而全连接层通常在卷积层和池化层之后进行,其作用在于将前面几层提取的特征进行整合,得到更为高层次的特征表示。一般情况下,卷积层和池化层连接,再和卷积层、池化层连接,这样交替配置。卷积运算过程如下:
其中,σ表示激活函数,W表示滤波器的权重,x表示输入的特征,*表示卷积运算,b表示偏置。
1.2" BiLSTM模型介绍
长短期记忆网络(Long Short-Term Memory, LSTM)是一种时间循环神经网络。主要包括三个门结构,分别是遗忘门、输入门、输出门。遗忘门决定细胞状态需要丢弃哪些信息,输入门决定要往细胞状态中存储哪些新的信息,输出门决定最终输出哪些信息。BiLSTM是LSTM的一种扩展,它通过为同一层LSTM提供两个独立的输入序列,以处理具有一定时序依赖性的数据。对于给定的时间序列,BiLSTM会同时顺序和逆序处理,得到两个信息量更丰富的序列后将它们合并在一起,如图1所示。
BiLSTM网络中计算过程公式如下:
1.3" 自注意力机制模型介绍
注意力机制是一种模仿人类注意力分配原理的方法。它可以帮助神经网络在处理输入序列时,自动地学习对关键信息进行加权和聚焦。通过这种方式,神经网络可以更有效地捕捉输入序列中的长距离依赖关系。注意力机制主要由三阶段组成,第一阶段是根据Query和Key计算两者之间的相关性或相似性,得到注意力得分,第二阶段是利用Softmax函数对注意力得分进行归一化处理,将原始计算分值整理成所有元素权重之和为1的概率分布,第三阶段是根据权重系数对Value值进行加权求和,得到Attention Value。
整个自注意力机制的核心公式为:
其中,Q表示查询向量,K表示关键向量,V表示数值向量,dk表示通道数。
1.4" 模型的整体结构
这个模型采用了结合卷积神经网络、双向长短时记忆网络和自注意力机制的复杂结构。整体由四部分组成,分别是卷积神经网络部分,自注意力机制部分,双向长短期记忆网络部分和全连接层部分。CNN模块用于提取时间序列数据的局部特征,Self-Attention层用于聚焦关键信息,BiLSTM模块用于进行时序建模,全连接层用于对BiLSTM模块的输出进行处理,得到最终的预测结果。CNN-BiLSTM-Self-Attention神经网络模型的结构如图2所示。
1.5" 模型的训练
为了确保实验的可重复性,首先设置随机种子。对数据进行批处理,将所有数据集按照batch_size=32进行划分,确保每个训练批次和测试批次的数据量是一致的,并且能够同时输入模型中进行训练。
初始化最佳模型权重和最佳损失值,然后进行训练,遍历训练数据加载器中的批次数据,对于每个批次,将数据传递给模型进行前向传播,然后计算模型损失,使用反向传播更新模型的参数(权重),通常会多次迭代地执行前向传播、损失计算、反向传播和参数更新过程,最终模型达到最小化损失。下面介绍一下模型训练时设置的一些参数。
1.5.1" CNN模块参数设置
在卷积神经网络中,使用了三个卷积层。第一层卷积包含64个大小为3的卷积核,步幅和填充均为1,第二层卷积和第三层卷积的配置与第一层卷积相同,包括卷积层、批量归一化和ReLU激活函数。
1.5.2" BiLSTM模块参数设置
第一层双向LSTM,设置隐藏状态大小为64,设置BiLSTM的层数为2,输入数据的形状为(batch_size, seq_len, channel_in),其中batch_size为批量大小,seq_len为序列长度。输出数据的形状为(batch_size, seq_len, hidden_size*2),其中hidden_size*2表示正向和逆向LSTM的隐藏状态的拼接。使用ReLU作为激活函数。第二层双向LSTM的设计和第一层类似,它接收第一层LSTM的输出作为输入,输出数据的形状为(batch_size, seq_len, hidden_size*2)。
1.5.3" Self-Attention层参数设置
在计算注意力得分时,创建一个1D卷积层作为查询(Query)转换器,使用了1×1的卷积核,创建一个1D卷积层作为键(Key)转换器,同样使用了1×1的卷积核,通过Query转换器将输入特征映射到Query空间,并通过permute(0,2,1)进行维度变换,以适应后续计算的需要。然后,通过Key转换器将输入特征映射到Key空间。接着,计算Query与Key之间的点积,得到注意力得分矩阵。
在计算注意力权重时,使用Softmax函数对注意力得分进行归一化,得到注意力权重矩阵。通过Softmax函数对查询和键之间的关联性矩阵进行归一化,这确保了注意力权重的有效范围在0-1之间,并且每个时间步的权重和为1。
在最后加权求和时,创建一个1D卷积层作为值(Value)转换器,同样使用了1×1的卷积核。将Value特征与注意力权重相乘,从而得到加权后的值特征。
1.5.4" 其他参数设置
选用Adam优化器优化深度学习模型的参数,使用L2正则化来解决过拟合问题,学习率设置为0.0002,使用了余弦退火学习率调度器动态调整学习率。
2" 数据预处理
2.1" 数据集划分
2.1.1" 数据集划分原则
为了保证模型的训练、验证和测试的有效性和可靠性,将数据集划分为3个子集:训练集、验证集和测试集。
训练集用于训练模型的参数,即模型通过学习训练集中的数据来调整自身的参数以最小化损失函数。训练集通常占据整个数据集的大部分比例。
验证集用于在训练过程中评估模型的性能和调整超参数。通过在验证集上进行评估,可以避免模型在训练过程中出现过拟合或者欠拟合的情况。验证集的主要作用是选择模型的超参数,并进行模型的调优。
测试集用于最终评估模型的泛化能力。模型在测试集上的性能评估通常是在训练和验证阶段完成之后进行的,以确保评估的客观性和公正性。测试集的数据应该与训练集和验证集的数据来源相同,但是独立的样本,不能在模型训练和验证过程中被使用。
2.1.2" 数据集划分比例的选择
通常情况下,训练集的比例较大,而验证集和测试集的比例较小。在本文中,按照7:2:1的比例划分数据集,分别用作训练集、验证集和测试集。
2.1.3" 数据集划分的流程
采用随机划分法。首先使用np.random.seed(0)设置随机种子,保证随机数生成的一致性,接着使用np.arange(0,total_num)生成一个包含总样本数的索引数组,然后使用np.random.shuffle(total_indexes)将索引数组打乱顺序,根据打乱后的索引数组,划分出训练集、验证集和测试集的索引,使用数组切片操作,根据得到的索引,从final_data中获取相应的数据子集。
2.2" 归一化处理
未经过任何处理的原始数据之间的数量级一般是不相同的,为了避免各特征与目标值的量纲不同对预测性能造成影响,同时加快梯度下降的速度,采用归一化处理输入数据,处理后的数据均限制在[0,1]之间。本文采用离差标准化方法归一化训练数据:
式中:max表示训练样本中的最大值;min表示训练样本中的最小值;X为原始数据;X为归一化后的数据。
3" 模型的评估及其测试分析
3.1" 模型评估标准
对模型进行好坏评估可以帮助了解模型在解决本次任务中的性能表现,通过评估,可以得知模型对于输入数据的预测准确度、泛化能力,从而判断模型是否符合预期的需求。
在机器学习中,问题通常分为分类问题和回归问题两大类。本文研究的内容是预测船舶航迹,即预测一个连续的数值,这是一个回归问题。最常见的回归问题的评估标准有:均方根误差(RMSE)、平均绝对误差(MAE)、均方误差(MSE)、R平方(R2)。
3.2" 模型的评估
3.2.1" Epoch和Loss曲线对比
在实验中,将数据集的70%作为训练集,20%作为验证集,设置了训练的Epoch为30,batch size为32。为了验证本文的模型的性能,绘制了CNN、BiLSTM和自注意力机制模型以及BiLSTM模型、CNN和BiLSTM在训练集和验证集上的损失函数图如图3和图4所示。
通过上图可以发现,本文提出的模型在训练集上的损失迅速下降且最终趋于稳定,最终的损失值为0.030 151 477,比BiLSTM模型、CNN-BiLSTM模型最终的损失值更小;本文提出的模型在验证集上的损失也迅速下降且最终趋于稳定,最终的损失值为0.028 218 059,比BiLSTM模型、CNN-BiLSTM模型最终的损失值更小。
3.2.2" MAE和MSE值对比
为了验证本文提出的模型性能,可以利用3.1节介绍的评估标准对模型进行评估。本文选择在MAE和MSE这两个评估指标上将本文所提出的混合模型与BiLSTM、CNN-BiLSTM进行对比,对比结果如表1所示。衡量指标的数值越小,表示模型的误差越小。
通过对比表中的数据不难发现,基于CNN-BiLSTM和自注意力机制的混合预测模型在MAE和MSE这两项指标中都取得了最小值,因此可以认为该混合模型的预测效果更好,其次是基于CNN和BiLSTM的预测模型,基于BiLSTM的预测模型预测效果最差。
3.3" 模型的测试分析
3.3.1" 滑动窗口策略
在船舶航迹预测的神经网络模型中,采用了一种滑动窗口的策略。这种策略通过将连续的时间序列数据分割为固定长度的窗口,以时序数据的形式输入模型,并获取预测结果。滑动窗口策略是一种常用于时序数据预测的技术,在船舶航迹预测中具有重要作用。通过这种方式,模型可以利用历史数据进行连续的预测。图5展示了滑动窗口策略,其中滑动窗口大小为4,移动步长为1。
3.3.2" 预测过程
在船舶航迹预测的预测过程中,采用滑动窗口策略,将连续的历史数据分割成固定长度的序列,然后利用这些序列进行预测。具体而言,以1~20秒的数据作为输入,利用模型预测第21秒的航迹。接着,将2~21秒的数据作为输入,预测第22秒的航迹,以此类推,直到预测完所有的目标时间点。为了更好地展示本文模型预测的效果,绘制了预测结果图,如图6所示。
通过图6可以看出,本文提出的模型可以很好地拟合真实航迹的运行状态,预测出的航迹曲线接近真实航迹曲线。
4" 结" 论
本文提出了基于CNN、BiLSTM和自注意力机制的混合模型进行船舶轨迹预测。首先介绍了模型的整体结构、模型的参数设置以及模型的训练。然后介绍了数据的预处理,包括数据集的划分与归一化处理。最后,对模型进行测试与分析,通过绘制船舶预测轨迹与真实轨迹的图,直观地展现了模型预测的误差;通过MAE和MSE这两个评价指标,将本文提出的混合模型与BiLSTM、CNN-BiLSTM进行了对比,展现出本文提出的混合模型的优越性。因此,本文所提出的混合模型对于轨迹预测具有较高的精度,能够有效地为选取合适的卫星进行监视提供依据,从而满足军事作战需求。
参考文献:
[1] 姜佰辰,关键,周伟,等.基于多项式卡尔曼滤波的船舶轨迹预测算法 [J].信号处理,2019,35(5):741-746.
[2] QIAO S J,SHEN D Y,WANG X T,et al. A Self-Adaptive Parameter Selection Trajectory Prediction Approach via Hidden Markov Models [J].IEEE transactions on intelligent transportation systems,2015,16(1):284-296.
[3] 周艳萍,曾宪群,蔡玲.改进灰色模型的船舶航行轨迹自动预测研究 [J].舰船科学技术,2021,43(20):34-36.
[4] 靳晓雨.船舶轨迹的分析与预测方法 [D].北京:北京邮电大学,2018.
[5] 甄荣,金永兴,胡勤友,等.基于AIS信息和BP神经网络的船舶航行行为预测 [J].中国航海,2017,40(2):6-10.
[6] 任宇翔,赵建森,刘卫,等.基于AIS数据和LSTM网络的船舶航行动态预测 [J].上海海事大学学报,2019,40(3):32-37.
[7] 杨博辰.基于AIS的船舶轨迹分析的研究与应用 [D].成都:电子科技大学,2018.
[8] 王研婷.基于CNN和LSTM的船舶航迹预测 [D].大连:大连海事大学,2020.
[9] 张昱,陈广书,李继涛,等.基于 Attention机制的CNN-LSTM 时序预测方法研究与应用 [J].内蒙古大学学报:自然科学版,2022,53(5):516-521
[10] Adam Kosiorek.神经网络中的注意力机制 [J].机器人产业,2017(6):12-17.