基于滑动窗口和LSTM 自动编码器的渔船作业类型识别①
2022-06-29徐文进董少康
徐文进, 董少康
(青岛科技大学 信息科学技术学院, 青岛 266061)
中国是一个人口大国, 也是一个渔业大国, 近年来,渔业从业人员与日俱增, 截止2020 年年末, 我国的渔船总数为56.33 万艘, 海洋捕捞的产值为2197.20 亿元, 渔业捕捞为我国沿海经济的发展做出了重要的贡献[1]. 但是随着渔业经济的不断发展, 未报告、过度和非法捕捞问题日益严重[2]. 这些行为不断破坏海洋的可持续性. 据联合国粮食及农业组织估计, 世界17%的海洋物种被过度捕捞, 6%的海洋物种已灭绝[3]. 为了保护剩下的渔业资源, 实现渔业的可持续发展, 对渔船的作业进行监督管理变得越来越重要.
随着船舶自动识别系统(AIS)的广泛部署, 产生了大量的轨迹数据[4]. AIS 轨迹数据中包含了大量的船舶运动信息, 如位置经纬度, 对地航速(SOG)和对地航向(COG)[5], 这些信息可以显示渔船完整的捕捞活动,为渔业管理提供了有价值的信息[6]. 利用渔船的AIS轨迹数据监测渔船的作业方式比传统的现场监测具有难度小、成本低、风险低等优点. 所以国内外学者基于AIS 轨迹数据提出了许多渔船作业类型识别算法进行渔船监测. 现有的识别方法大致可以分为两类: 一类是基于机器学习的方法[7–10], 另一类是基于深度学习的方法[11–14]. 传统的基于机器学习的算法需要手动提取特征, 学习的是浅层的特征. 随着深度学习的发展, 学者提出的基于深度学习的算法则能自动学习特征. 但是这两类算法使用的都是AIS 轨迹中位置经纬度、速度、加速度和航向等运动特征, 忽略了轨迹的时域特征.
为了解决上述问题, 本文提出了一个基于滑动窗口和LSTM 自动编码器的渔船作业类型识别算法. 该算法基于深度学习, 能从轨迹数据中自动学习运动特征和时域特征, 提高了识别的准确率. 本文的具体内容和贡献如下:
(1)针对每一条渔船的AIS 轨迹数据采样时间不同、数据稀疏和数据量过大的问题, 我们采用滑动窗口提取轨迹的运动特征.
(2)提出利用LSTM 自动编码器生成轨迹的深度表征向量, 重构轨迹特征, 提取轨迹的运动特征、时域特征和隐含特征.
(3)在LSTM 自动编码器中嵌入Softmax 分类器.并构造一个新的损失函数, 利用新的损失函数反向传播优化网络. 最终实现拖网渔船与围网渔船的精确识别.
1 相关工作
目前, 利用渔船AIS 轨迹数据进行渔船作业监测的算法越来越多. 随着机器学习和深度学习的发展, 国内外相关学者围绕这两个方面提出了很多渔船作业类型识别算法.
基于机器学习的识别算法需要手动构建特征. 依据不同渔船之间进行捕捞时速度、航向角的变化趋势不同, Souza 等人[7]以速度为主要的影响因素, 提出了一个识别拖网、围网、延绳钓3 种渔船的算法. Huang等人[8]使用特征工程和XGBoost 两个模块构建了一个识别模型, 用于识别7 种类型的渔船. Gao 等人[9]为了充分利用数据中包含的信息, 克服以往使用单一数据进行渔船作业类型识别的弊端, 将渔业监管机构的政策文件和数据与AIS 数据进行融合并利用XGBoost进行识别, 提升了识别的准确率. Guan 等人[10]从渔船AIS 轨迹提取60 个特征, 利用LightGBM (light gradient boosting machine)方法进行渔船作业分类.
基于深度学习的算法可以自动学习轨迹特征,Kroodsma 等人[11]使用CNN 将7000 多条渔船数据划分为6 种作业类型. 郑巧玲等人[12]以我国近海3 种不同类型78 艘渔船为研究对象, 基于航速和航向设计了对应的BP 神经网络, 提出的模型能准确识别拖网和张网渔船. 汤先峰等人[13]将渔船AIS 轨迹数据转化为图片, 利用自定义的CNN 网络提取轨迹的空间特征进行渔船作业类型识别, 提出的算法在刺网和拖网渔船的数据集上进行了验证, 具有较高的准确率. Kim等人[14]用基于滑动窗口的数据切片方法来生成训练数据集. 使用CNN 构建深度神经网络模型进行渔船作业类型识别.
2 相关概念
AIS 轨迹. 一条渔船AIS 轨迹是由一组有序的空间点组成. 它可以表示为Tra=(p0,p1,···,pi,···,pn),0 ≤i≤n, 其中pi=(lati,loni,ti,fi),lati和loni代表ti时刻的位置坐标,fi代表ti时刻轨迹点的运动特征(如速度、航向、加速度等).
渔船类型. 进行海洋捕捞的渔船按捕捞方式可以分为拖网、围网 刺网、延绳钓等. 我国的渔船作业方式以拖网和围网为主. 拖网渔船主要围捕底层和中下层水域的鱼类. 围网渔船主要围捕中层和中上层水域的鱼类. 拖网渔船捕捞时的轨迹一般是直线, 航向变化小, 由于要拖曳网具, 所以需要定速行驶较长时间, 速度一般为3–6 海里/小时. 围网渔船捕捞时的轨迹呈圆形, 航向时刻变化, 当收到某海域发现密集鱼群的信息时, 需要快速驶向中心渔场, 所以围网渔船的速度变化较大并且最高速度可以达到14 海里/小时. 图1 显示了编号为27034 (拖网)、23457 (围网)渔船航迹图、速度和航向变化图.
图1 编号为27034 (拖网)、23457 (围网)渔船航迹图、速度和航向变化图
3 本文算法
本节介绍了提出的算法. 如图2 所示, 第①部分显示了原始的轨迹数据; 第②部分显示了特征提取方法,在3.1 节给出了具体介绍; 第③部分LSTM 自动编码器用于重构原始轨迹, 学习轨迹的运动特征、时域特征和隐含特征, 并将这些特征向量输入Softmax 分类器进行分类, 详细介绍在3.2 节给出; 第④部分显示使用提出算法得到的分类数据.
图2 渔船作业类型识别算法框架
3.1 特征提取方法
AIS 系统进行数据采样时, 会存在数据丢失的情况且每一条渔船的AIS 轨迹数据过于庞大、稀疏[15].限制轨迹大数据进行挖掘分析、应用的最重要因素也是海量的数据规模和数据采样精度[16]. 针对这一问题,本文提出利用滑动窗口处理原始的AIS 轨迹数据, 提取轨迹的运动特征. 轨迹特征提取的原理是利用设定的滑动窗口遍历整条渔船轨迹, 计算每个窗口中的轨迹点的统计信息并生成特征序列. 该方法在拓展每个窗口内轨迹点的特征、降低了数据的长度, 同时解决了数据稀疏的问题. 特征提取方法的具体步骤如下:
Step 1. 直接从数据库中获取的轨迹会存在速度、坐标、航向角的离群点. 因此采用经验阈值过滤这些异常点, 并通过经纬度重新计算航向角. 式(1)给出了计算过程. 其中loni代表ti时刻轨迹点的经度, 其中lati代表ti时刻轨迹点的纬度.
Step 2. 通过式(2)计算渔船行驶的加速度, 拓展轨迹序列的特征.vti代表ti时刻轨迹点的速度
Step 3. 初始化滑动窗口的宽度W和滑动步长S.
Step 4. 利用滑动窗口遍历所有轨迹, 记录每一个窗口内轨迹点. 由于采样精度的不同以及数据的丢失,有些窗口会没有轨迹点. 如图3 所示, 显示了使用W=10 min的滑动窗口遍历渔船30 min 内采集的轨迹的示意图, 从图中可以看出, 第1 个窗口中有p1,p2,p3三个轨迹点, 第2 个窗口中的轨迹点为p3, 同时可以看出第3 个窗口没有轨迹点.
图3 滑动窗口遍历轨迹示意图
Step 5. 计算每一个窗口内所有轨迹点的速度、加速度、经度、纬度、航向角的统计特征, 并挑选如下6 个统计特征: mean, max, min, 75% quantile, 50%quantile, 25% quantile.
Step 6. 组合所有的特征, 并生成 (b,T, 5×6) 的特征序列. 其中b表示渔船的数目,T表示窗口的数量,5×6表示5 个特征的统计特征的组合.
3.2 分类模型
提取特征序列后, 本文使用基于LSTM 自编码器和Softmax 分类器的分类模型进行渔船作业类型识别.分类模型如图4 所示, 图4(a)在第3.2.1 节进行了详细介绍. 在图4(b)在第3.2.2 节进行了详细说明.
图4 分类模型
3.2.1 LSTM 自动编码器
自动编码器是一种无监督学习方法, 能将不等长的序列转化为固定长度的序列, 能更好地用于特征降维、获取隐含特征. 相比于LSTM 提取轨迹的运动特征和时域特征, 在本文中, 我们使用多层长短期记忆(LSTM)神经网络构建自动编码器重构轨迹的特征向量, 学习轨迹的运动特征、时域特征和隐含特征.
LSTM 是对传统RNN 的一个改进, 它是由是Hochreiter 等人[17]在1997 年提出, LSTM 基本单元如图5 所示, 主要由输入门、遗忘门和输出门控制长期状态C, 它们用来新增或删除记忆细胞中的信息, 控制信息的流动, 式(3)–式(7)给出了图中各个变量的更新过程, 其中W表示权重,b表示偏移量, σ表示激活函数.LSTM 克服了长序列训练进行反向传播时“梯度消失”和“梯度爆炸”的问题. 并且在时序数据挖掘方面, 实现很多成功的应用[18,19].
图5 LSTM 基本单元示意图
本文构建的LSTM 自动编码器由2 层的LSTM编码器、2 层LSTM 解码器组成, 2 层LSTM 编码器重构轨迹特征, 输出为 (b,N), 其中,N为重构后轨迹特征的维度, 如图4(a). 同时, 本文选择了均方误差作为LSTM 自动编码器的损失函数. 在式(8)给出了详细的计算过程. 其中yˆ表示LSTM 解码器输出,x表示LSTM编码器输入即使用滑动窗口获取的特征向量 (b,T, 5×6).
3.2.2 Softmax 分类器
Softmax 分类器将特征按照分类个数进行划分, 保证类别是可分的, 这一点对多分类任务非常合适. 因此通过LSTM 自动编码器得到固定长度的轨迹向量(b,N)后, 本文采用Softmax 分类器进行渔船作业类型识别, 分类器输出为0 和1, 代表两种类型的渔船. 模型图如图4(b).
Softmax 进行分类时采用的损失函数是交叉熵, 如式(9)所示.yi表示样本i的类别,pi表示预测其中一个类的概率.
为了能让网络学习最佳参数, 使分类效果达到最佳. 文中提出了一个全新的损失函数, 如式(10)所示.网络进行训练时, 使用J进行反向传播, 使重构特征进行分类的准确率最佳.
4 实验结果与分析
为了验证提出算法的有效性和可靠性, 在本节中,我们在真实的数据集上评估了提出的算法. 第4.1 节给出了实验数据来源, 第4.2 节给出了实验结果及与其他深度学习算法的比较分析.
4.1 实验数据集和评估指标
A. 实验数据集
使用的数据集是2020 年数字中国创新大赛(智慧海洋建设)提供的数据集. 我们提取了其中包括围网渔船3002 条和拖网渔船2632 条一共5634 条渔船AIS轨迹进行实验. 表1 显示了渔船AIS 轨迹数据的详细信息.
表1 渔船AIS 轨迹数据信息
B. 评估指标
本文采用式(11)计算分类的准确度. 其中T拖网代表拖网渔船预测识别正确的总数,T围网代表围网渔船预测识别正确的总数,F拖网代表拖网渔船预测识别错误的总数,F围网代表围网渔船预测识别错误的总数.
4.2 实验结果及分析
4.2.1 实验结果
在实验时滑动窗口的宽度W设置7200 s, 滑动步长S设置为7200 s, 神经网络的学习率lr设置为0.001,训练epoch设置为100. 利用滑动窗口生成的特征序列训练分类模型. 图6 显示了训练的损失函数与训练次数的关系曲线. 图7 显示了训练的精度与训练次数的关系曲线.
图6 训练的损失函数与训练次数的关系曲线
图7 训练的精度与训练次数的关系曲线
从图6 和图7 可以看出, 当迭代到100 次的时候测试集的损失函数达到最低为0.2670, 准确率达到最高为95.82%.
4.2.2 对比分析
为了进一步说明提出算法的有效性, 本文在相同的实验环境下使用滑动窗口生成的特征序列训练基于LSTM、CNN 和BP 神经网络的分类模型. 学习率设置为0.001, 训练次数设置为100 次, 实验结果如表2 所示.
表2 不同模型分类结果对比 (%)
从表2 的结果可以看出, 将滑动窗口获取的特征向量作为输入, 使用LSTM、BP、CNN 和本文提出的算法识别渔船作业类型, 均取得了90%以上的准确率,证明利用滑动窗口预处理轨迹并提取轨迹特征是有效的. 同时本文算法在数据集上准确率达到最优证明提出的分类模型的可靠性. 与LSTM 模型相比, LSTM 自动编码器的准确率更优, 说明自动编码器在渔船识别中重构轨迹特征后能学习到隐含特征, 导致渔船识别模型准确率更高. 同时LSTM 分类模型准确率高于BP 神经网络和CNN 分类模型说明学习轨迹的时域特征的重要性.
5 结论与展望
拖网渔船捕捞海洋底层的鱼类, 会破坏海底的微生物从而损坏水质, 对海洋生态造成不可逆的影响. 目前我国存在少量渔船擅自改变作业方式、未登记作业方式甚至在禁渔线内作业. 因此本文提出了一种基于滑动窗口和LSTM 自动编码器的渔船作业类型识别算法, 用于监测渔船的作业方式. 并且与其他模型进行了对比. 实验表明, 提出的算法能进一步学习轨迹的时域特征和潜在的高级特征, 准确率更高, 证明本文提出算法的可靠性, 可用于辅助围网和拖网渔船分类. 本文仅对两种渔船AIS 轨迹进行了分类研究, 后续可以对更多的渔船AIS 轨迹进行分类研究, 提高算法的实用性.