APP下载

基于多层感知器和运动轨迹的海上目标类型识别∗

2020-06-11李晓芳

舰船电子工程 2020年3期
关键词:轨迹标签样本

赵 璐 马 野 李晓芳

(1.海军大连舰艇学院学员五大队 大连 116018)(2.海军大连舰艇学院导弹与舰炮系 大连 116018)

1 引言

当前已有很多现代定位技术可以对海上移动目标进行实时监测,获得运动轨迹数据,但监测到的目标数量众多,难以人工进行分类,所以根据运动轨迹对海上目标进行类型识别是具有重大现实意义的问题,已有众多学者对船舶轨迹分类识别进行研究。Pelot等[1]采集四种休闲艇的GPS轨迹点样本,并根据多种指标开发识别模型,能够根据运动轨迹对不同类型的休闲艇进行识别,有利于港口风险评估。赵梁滨[2]对船舶AIS轨迹进行数据挖掘,获得船舶运动模式,为船舶监管提供参考。甄荣[3]等利用统计学理论分析船舶AIS轨迹,获得船舶典型航行轨迹模型,其方法可以有效识别轨迹异常船舶。然而很多海上目标并没有AIS轨迹,而雷达却可以获取附近海域所有运动目标的运动轨迹,因此需要一种可以有效对海上目标运动轨迹分类的方法。

本文提出了一种基于多层感知器(Multi-Layer Perceptrons,MLP)的舰船类型识别方法,建立了多层感知器网络模型,建立了舰船运动轨迹数据集,通过分析舰船运动轨迹识别舰船类型,可迅速对大量舰船目标进行分类,准确地识别舰船类型。

2 多层感知器原理

如图1所示,多层感知器包含很多依次相连的网络层,网络层的全长称为模型的深度[4]。

图1 多层感知器

其中,第一层为输入层,最后一层为输出层,其他网络层是隐层。若感知器网络无隐层,则是单层感知器网络,单层感知器网络对线性不可分问题无法进行分类,所以需要增加隐层数[5]。具有多个隐层的多层感知器能更好地模拟人类大脑神经元结构,能够逐层提取输入数据的特征[6],可实现较为复杂的分类,具有更优异的分类性能。

网络的各个节点被称作神经元,神经元通常接受多个不同输入,产生单一输出传递给网络下一层多个神经元,其结构模型如图2所示。

图2 神经元结构模型

其中x表示从网络上一层传递的信号,共有n个;w表示网络上一层神经元与这个神经元连接的权值;b表示这个神经元的偏置值;ƒ为激活函数;y是这个神经元的输出。则输入与输出的关系为

其中激活函数有多种选择,早期浅层神经网络通常采用sigmoid激活函数,由于在深层神经网络可能出现梯度消失等问题,目前通常使用ReLU激活函数[7],其表达式为

其中z表示激活函数输入,g(z)表示激活函数输出。

在网络输出层常采用softmax激活函数,对输出进行分类;也可采用tanh等性能较好的激活函数进行归一化。

网络训练就是通过改变网络中每个连接权值使网络输出尽可能接近理想值,理想值通常被称作标签。输出与理想值进行对比得到误差,一般被称作损失函数,损失函数对各个权值求偏导,得到权值的更新梯度,按学习率的比例对权值进行更新。但是,每个样本训练一次均更新一次权值会减慢网络训练速度。简单的解决方法是对一批训练样本的损失函数求和再进行权值更新,这就是批量梯度下降法。若随机选取批量样本,则是随机梯度下降法。随机选取批量样本相当于引入噪声,训练过程中不易陷入局部极小值,一定程度上加快了收敛速度[8]。

为了进一步加快网络收敛速度,还可采用加入动量的梯度更新[9],或是自适应学习率算法。目前已有的自适应学习率算法有 AdaGrad[10]、Adadelta[11]和 Adam[12]等。

3 实验方案设计

3.1 网络输入数据构造

原始数据来源于对某海域移动目标的时空监测数据,监测持续时间约两小时,其中位置坐标经纬度已经转化为平面坐标数据,共92000余条坐标数据,部分原始数据如表1所示。

表1 原始数据示例

不同舰船代码代表不同的舰船目标,按舰船代码排序,统计不同舰船代码个数,共有约1880个舰船目标,对每个目标监测轨迹点数由1到3000余条不等。原始数据杂乱,无法直接用于网络训练,需进行清洗。

首先,监测点数过少的目标无法进行有效分类,需剔除。本次实验设置点数下限为20,剩余有效监测目标数为1807个,被剔除的目标数较少,点数下限设置合理。其次,为便于网络训练,需将每个目标监测轨迹点数统一,对于轨迹点数大于20个的目标,采用等间隔选取的方式取20条监测数据。最后将每个目标第一条监测数据作为原点,其余数据与第一条数据求差,获得与原始坐标、时间无关的轨迹点信息,使实验结果具有更强的通用性。剩余1807个目标共36140条轨迹数据,可作为网络输入,部分数据如表2所示。

多层感知器的输入端只采用时间、X坐标和Y坐标三组数据,每个样本数据大小为20行3列。为便于网络训练,分别对三组数据进行归一化,归一化处理公式如下:

其中,x表示原始数据,xnorm表示归一化后的数据,xmax和xmin表示原始数据的最大值和最小值。因多层感知器只能采用一维输入,所以将每个样本数据形状更改为1行60列。

表2 清洗后数据示例

3.2 网络输出标签设置

网络输入数据整理完成后,接下来可以求出每个目标在每个点的速度等特征。通过对每个目标按最大速度排序,定义速度分类界限,可以分辨出飞机、军舰、高速小艇等高速目标,此类目标数约为15个;还有13个最大速度为0的锚泊船只。剩余数目较多的货船、游船和渔船等低速目标有待进一步进行分类。

通过绘制目标运动轨迹,结合速度等参数,人工对部分货船、游船和渔船目标设置标签,制作样本数较少的训练集和测试集,典型的货船、游船和渔船轨迹如图3所示。

图3 货船、游船和渔船轨迹

货船轨迹近似一条直线,方向变化较小;游船多为一条折线;渔船轨迹杂乱。标签设置[1 0 0]代表货船,[0 1 0]代表游船,[0 0 1]代表渔船。人工设置好标签的训练集与测试集样本数目如表3所示。

表3 少量样本数据集描述

由于对全部目标人工设置标签过于繁琐,故先使用人工设置好标签的少量样本数据训练多层感知器,将训练好的多层感知器用于所有样本的预分类,再人工剔除多层感知器预分类错误的数据,进而制作出样本数更多的训练集和测试集。

3.3 多层感知器网络模型

根据样本维数与标签维数构造多层感知器,多层感知器网络结构如表4所示。

表4 多层感知器结构

为加快神经网络计算速度,多层感知器输入层与隐层均采用ReLU激活函数,在输出层采用softmax激活函数对输出进行分类,损失函数采用均方误差。为加快损失函数收敛速度,采用adam算法和小批量梯度下降法进行权值更新。

4 实验验证及仿真分析

4.1 实验过程

实验过程基于TensorFlow的深度学习库,采用Keras高层神经网络API,采用Anaconda的Jupyter Notebook作为python编译器,所用计算机配置为CPU i3-4005U,4GB内存,Windows7 64位操作系统。

首先对用于初步分类多层感知器进行实验,将三种类别共190个训练样本作为训练集,输入到多层感知器网络进行训练,通过与人工设置的标签对比更新权值。训练集迭代5000次后终止训练,得到样本训练过程中的损失函数误差收敛曲线。将测试集共35个样本输入到训练好的网络,获得测试集输出,将输出中的最大值所在位置与标签中1的所在位置进行对比,一致则分类成功,否则分类失败,统计正确分类数以及分类正确率,重复三次。

若分类正确率较高,将训练好的网络用于剩余全部目标初步分类,并人工剔除分类错误数据,制作样本数较多的数据集,将此数据集用于多层感知器的训练和测试,统计分类正确率。

4.2 少量样本实验结果分析

少量样本训练过程的误差收敛曲线如图4所示。训练集迭代5000次,一分钟内训练完毕。可以看出,损失函数下降到较小的值,无需继续增加训练次数,训练结果可用于在测试集上测试。

将测试集输入训练好的多层感知器进行分类,分类结果如表5所示,考虑到人工制作标签可能存在错误,多层感知器分类结果令人满意,可用于样本初步分类。

图4 少量样本误差收敛曲线

表5 少量样本分类结果

4.3 多数样本数据集实验

将全部约1800个样本输入上文训练好的第一个网络进行分类。结合轨迹图片,人工剔除分类错误或难于判断轨迹类型的样本,对剩余样本设置标签,得到训练集与测试集样本数目如表6所示。

表6 多数样本数据集描述

对多数样本的实验过程同少量样本类似,训练集迭代500次,训练时间大约一分钟。多数样本训练过程的误差收敛曲线如图5所示。可以看出训练500次损失函数已经下降到很小。

图5 多数样本误差收敛曲线

多数样本的测试集分类结果如表7所示。可以看出,分类正确率很高,且分类时间只要几秒。增加训练集样本数有利于提高分类正确率。

表7 多数样本分类结果

5 结语

采用多层感知器根据海上目标运动轨迹对目标进行分类,并设计实验分析多层感知器分类结果。实验结果表明,多层感知器可有效进行海上目标分类,分类迅速正确率高,但也存在诸多限制。由于仅采用时空监测数据,若高速目标低速航行,人工不能进行分类,多层感知器也不能进行分类;由于样本数过少等原因,没有将帆船、军舰、高速小艇、飞机等海上目标同时分类,这方面有待进一步研究。多层感知器为基于运动轨迹的海上运动目标分类提供了新的有效手段。

猜你喜欢

轨迹标签样本
解析几何中的轨迹方程的常用求法
轨迹
轨迹
规划·样本
不害怕撕掉标签的人,都活出了真正的漂亮
人大专题询问之“方城样本”
随机微分方程的样本Lyapunov二次型估计
让衣柜摆脱“杂乱无章”的标签
科学家的标签
科学家的标签