舰船科学技术  2024, Vol. 46 Issue (11): 80-84    DOI: 10.3404/j.issn.1672-7649.2024.11.015   PDF    
基于LSTM-RNN的船舶操纵运动黑箱建模
田延飞, 李知临, 艾万政, 韩喜红     
浙江海洋大学 船舶与海运学院,浙江 舟山 316022
摘要: 当无需揭示船舶操纵运动机理过程,而只需对输入输出建立映射时,黑箱建模成为一种有效途径。本文基于长短期记忆-循环神经网络(Long Short-term Memory-recurrent Neural Network,LSTM-RNN)构建船舶航向-舵角黑箱模型,LSTM 网络为10-10-1结构,误差指标为RMSE,参数学习采用Adam算法。开展实船Z型操纵实验获取了航向-舵角数据。前70%用于模型训练,后30%用于模型测试。训练后的模型使得RMSE达到设计目标。对测试集数据,训练后模型拟合优度在0.98以上,表明其具有良好的有效性和泛化性。文中航向-舵角LSTM-RNN黑箱模型结构简明清晰,参数明确,易于实际操作使用,为航向-舵角关系建模提供了一种可行方法。
关键词: 船舶操纵运动     黑箱建模     机器学习     LSTM-RNN    
LSTM-RNN based black-box modeling of ship manoeuvring motion
TIAN Yanfei, LI Zhilin, AI Wanzheng, HAN Xihong     
School of Naval Architecture and Maritime, Zhejiang Ocean University, Zhoushan 316022, China
Abstract: Black box modeling becomes an effective approach when it is not necessary to reveal the mechanism of ship maneuvering motion, but only to establish a mapping of input and output. The paper focuses on building a black model of heading angle - rudder angle based on LSTM-RNN. The LSTM layer has a structure of 10-10-1 nodes. Error indicator for measuring the degree of fit is RMSE. The Adam algorithm is adopted for parameter learning. Zigzag manoeuvering experiments by using a full-scale ship maneuvering experiments are conducted to obtain Input and output data, namely the heading angle - rudder angle. The first 70% of the data is used for model training, while the last 30% is used for model testing. The trained model enables RMSE to achieve the hoped-for goals. For the testing data, the goodness of fit of the trained model is above 0.98, indicating that the final LSTM-RNN model has good effectiveness and generalization. The LSTM-RNN black box model for heading angle - rudder angle has a concise and clear structure, clear parameters, and is easy to use in practical operations. It provides a feasible method for modeling the relationship between heading angle and rudder angle for full scale ship.
Key words: ship manoeuvring motion     black-box modeling     machine learning     LSTM-RNN    
0 引 言

船舶运动模型主要有白箱模型、灰箱模型和黑箱模型3种类型。其中,黑箱模型是一种不揭示运动机理的模型(算法),以建立船舶操纵输入(主要是车、舵、环境作用力)-输出(船舶位置、姿态)的映射。随着技术的发展,许多学者基于机器学习算法进行船舶操纵运动建模与预报。Zou等[1]提出使用支持向量机对船舶操纵进行黑箱建模;NIE等[2]结合支持向量回归和经验模态分解方法,建立航行短期预测模型;刘娇等[3]用差分进化算法改进支持向量机构建操纵预测模型;ZHANG等[4]建立了一个港口间历史轨迹数据库利用随机森林模型测量船舶航迹与数据库航迹的相似性来预测船舶操纵;Murray等[5]和GAO等[6]应用无监督学习方法对船舶历史航迹进行聚类,然后对船舶未来操纵行为模式进行预测;胡玉可等[7]应用循环神经网络(Recurrent Neural Network,RNN)预测航迹航向。LIU等[8]和任宇翔等[9]基于长短期记忆-循环神经网络(Long Short-term Memory-recurrent Neural Network,LSTM-RNN)对非线性船舶航行行为进行预测,并强调模型输入向量维度选取的重要性;SUO等[10]提出一种引入门循环单元模型的深度学习框架来预测航迹,并强调消除冗余数据影响的重要性;ZHOU等[11]、徐婷婷等[12]和游兰等[13]采用船舶航行状态区间差值思想,应用深度神经网络模型建立船舶航迹预测模型。这些研究及成果为更好地开展船舶操纵运动建模提供了方法与经验借鉴。

本文研究基于LSTM-RNN的船舶航向-舵角黑箱建模。基于LSTM-RNN原理设计用于航向-舵角拟合的黑箱模型结构,设计采用Adam算法进行参数学习。采用实船试验数据训练LSTM-RNN黑箱模型。将训练后模型的输出与实验观测的输出对比,验证本文方法及所建模型的适用性。

1 技术路线

本文主要工作为航向-舵角关系的黑箱建模,为实现该模型,技术流程包括:

步骤1 开启实船实验采集操纵数据。在指定海域进行Z形操纵实验,定时记录所需数据;将数据进行归一化处理并分成训练集和测试集。

步骤2 基于LSTM-RNN理论建立航向—舵角的黑箱模型,搭建并初始化LSTM-RNN模型。确定输入层、LSTM层、全连接层及回归层的结构以及所需参数。准备工作完成后,训练所建立的模型,通过Adam梯度下降算法进行参数优化,自我调节学习率从而加快训练速度。

步骤3 对建模结果进行分析。通过计算损失函数以及$ {R}^{2} $值来对整个模型的拟合优度进行分析,由多组不同的实验数据来测试最终模型的泛化性,将黑箱建模的结果以图像的形式记录下来。建模结果与实船实验数据进行比对,验证模型可行性。

步骤4 形成结论,总结模型的优势劣势。如图1所示。

图 1 全文技术路线 Fig. 1 Full text technical route
2 操纵实验及数据 2.1 实验船舶

本文在舟山港双屿门水道水域开展了实船操纵实验,以获取航向-舵角数据。实验船舶为浙港航巡1108,主要参数见表1

表 1 船舶相关参数 Tab.1 Ship-related parameters
2.2 操纵数据

实验中开展了左舵10°、右舵10°、左舵20°、右舵20°的Z型操纵。操纵中航向-舵角数据记录如图2所示。

图 2 各组Z形实验航向舵角变化 Fig. 2 Changes in heading rudder angle for each group of Z-shaped experiments
3 基于LSTM-RNN的黑箱建模 3.1 总体结构

本文构建的LSTM-RNN航向-舵角黑箱模型结构如图3所示。将前5个时刻(单位:s)的航向、舵角作为输入$ {{\boldsymbol{X}}_t} $$ {{\boldsymbol{X}}_t} = [{\delta _{k - 4}},{\delta _{k - 3}},{\delta _{k - 2}},{\delta _{2 - 1}},{\delta _k},{\varphi _{k - 4}},{\varphi _{k - 3}},{\varphi _{k - 2}},{\varphi _{k - 1}},{\varphi _k}] $),将第6个时刻的航向作为理想输出$ {{\boldsymbol{Y}}_t} $$ {{\boldsymbol{Y}}_t} = [{\varphi _{t + 1}}] $)。设置LSTM layer(即循环单元)设计每一层使用10个LSTM单元,图中圆形所示。在当前时刻,先将$ {{\boldsymbol{X}}_t} $归一化为$ {\boldsymbol{X}}_t^* $,将$ {\boldsymbol{X}}_t^* $作为LSTM layer的直接输入;输入的$ {\boldsymbol{X}}_t^* $经过LSTM layer单元处理,输出为$ {{{h}}_{ti}} $,进而进入全连接层,对各个$ {{{h}}_{ti}} $用权重做加和运算,得到$ {{\boldsymbol{H}}_t} $,对输出$ {{\boldsymbol{H}}_t} $进行反归一化,得到模型的预报输出$ {{\boldsymbol{\hat Y}}_t} $。LSTM layer中LSTM单元的内部结构及参数设置见3.2节。

图 3 LSTM-RNN网络构建 Fig. 3 LSTM-RNN network construction
3.2 参数设置

LSTM单元内部结构如图4所示,其参数设置、计算方法如下。

图 4 LSTM单元结构原理示意图 Fig. 4 Schematic diagram of LSTM cell structure principle

遗忘门的直接输出$ {{f} _{t} } $计算式为:

$ {{f}}_{{t}}=\sigma ({\boldsymbol w}_{{f}}\cdot[{\boldsymbol h}_{{t}-1},{x}_{t}]+{\boldsymbol b}_{{f}})。$ (1)

式中,$ \sigma $为sigmoid激活函数,向量分别为权重矩阵和偏置矩阵,$ {h_{t - 1}} $为上一时刻LSTM单元的输出,$ {x_t} $为观测数据输入,$ {x_t} = {\bar X_t} $

输入门的输出$ {{{i}}_{{t}}} $计算式为:

$ {{i}}_{{t}}=\sigma ({\boldsymbol w}_{{i}}\cdot[{\boldsymbol h}_{{t}-1},{x}_{{t}}]+{\boldsymbol b}_{{i}}) 。$ (2)

LSTM单元中间状态为$ {\tilde c_t} $,计算式为:

$ {\widetilde c_t} = {\rm{tan}}{\text h}({{\boldsymbol W}_{\rm{c}}} \cdot [{{\boldsymbol h}_{{\rm{t}} - 1}},{{\boldsymbol x}_{\rm{t}}}] + {{\boldsymbol b}_{\rm{c}}})。$ (3)

式中:$ {{\boldsymbol w}_{i}} $$ {{\boldsymbol b}_{i}} $分别为权重矩阵和偏置矩阵;tanh为激活函数;$ {{\boldsymbol w}_{c}} $$ {{\boldsymbol b}_{c}} $分别为权重矩阵和偏置矩阵。

输出门的直接输出$ {O_t} $计算式为:

$ {\text{o}}_{t}=\sigma (\boldsymbol {w}_{\text{o}}\cdot[{\boldsymbol h}_{\mathrm{t}-1},{x}_{\text{t}}]+{\boldsymbol b}_{\text{o}})。$ (4)

式中:$ {{\boldsymbol w}_{\text{o}}} $$ {{\boldsymbol b}_{\text{o}}} $分别为权重矩阵和偏置矩阵。

LSTM单元状态$ {c_t} $计算式为:

$ {c_t} = {f_t} \times {c_{t - 1}} + {i_t} \times {\tilde c_t}。$ (5)

式中:$ {c_{t - 1}} $为LSTM单元状态上一时刻状态。

LSTM单元直接输出$ {h_t} $计算式为:

$ {h_t} = {o_t} \times {\text{tanh}}({c_t}) 。$ (6)

全连接层采用下式计算LSTM layer,直接输出$ {H_t} $

$ {H}_{t}={\displaystyle \sum _{i=1}^{10}{\boldsymbol w}_{ti}\cdot {\boldsymbol h}_{ti}}+{\boldsymbol b}_{t} 。$ (7)

式中:$i$为LSTM单元序号;$ {w_{ti}} $为对应于第$i$个LSTM单元的连接权重;$ {h_{ti}} $为第$i$个LSTM单元的直接输出;$ {b_t} $为偏置。

最后,对$ {H_t} $反归一化,得到LSTM-RNN预报的输出$ {{\boldsymbol{\hat Y}}_t} $

3.3 训练过程

对初始LSTM-RNN模型的训练流程为:

步骤1 导入训练数据。导入测试集数据,其中,$ [{{{\boldsymbol X}}_t},{{{\boldsymbol Y}}_t}] $即构成一个训练样本。

步骤2 初始化LSTM-RNN。LSTM层中各单元初始${C_{0i}}$设置为[0 0 0 0 0 0 0 0 0 0 ],初始${h_{0i}}$设置为 [0 0 0 0 0 0 0 0 0 0 ],初始权重矩阵$ {{\boldsymbol{w}}_{{f}}} $$ {{\boldsymbol{w}}_{{i}}} $$ {{\boldsymbol{w}}_{{o}}} $$ {{\boldsymbol {w}}_c} $均为正态化glorot随机生成,初始偏置矩阵$ {{\boldsymbol{b}}_{{f}}} $$ {{\boldsymbol{b}}_{{i}}} $$ {{\boldsymbol{b}}_{{o}}} $$ {{\boldsymbol {b}}_c} $生成规则来源于遗忘门单元。层与层之间连接的权重$ {{\bf w}_l} $初始化通过正交初始化orthogonal规则来随机生成。全连接层中初始权重$ {w_{ti}} $也设置由正态化glorot随机生成,初始$ {{\boldsymbol{b}}_t} $设置为0矩阵。

步骤3 设置训练参数。损失函数采用交叉熵损失函数,参数学习算法采用Adam算法,学习率初值设置为0.001,学习率下降因子设置为0.1,最大迭代次数设置为1000。用于每次训练迭代的最小批次的大小设计为128。

步骤4 开始训练。其中LSTM层以及全连接层权重偏置的更新由LSTM的反向传播决定,将模型前向输出结果与实际对比从而调整各个位置的权重偏置大小。

步骤5 结束并保存训练结果。达到最大迭代次数后,程序结束,保存训练结果,主要是保存训练后模型权重矩阵、偏置矩阵。

4 结果及分析

图5所示,图5(a)~图5(d)为LSTM模型的训练集结果,图5(e)~图5(h)为LSTM模型的预测集结果。

图 5 各组拟合结果 Fig. 5 Fitting results for each group

黑箱模型的拟合优度通过RMSE、R2来反映,见表2。表中可见,该模型拟合过程中4组RMSE值均较低,4组R2值均接近于1。由此得到该LSTM-RNN黑箱模型效果可观,可以很好地拟合出船舶在运动过程中的航向变化趋势。

表 2 各组数据训练误差表 Tab.2 Table of training errors for each data set
5 结 语

1)构建了船舶航向-舵角LSTM-RNN黑箱模型,为船舶航向-舵角关系建模提供了一种可行方法。该模型LSTM layer为10-10-1,误差指标为RMSE,参数学习采用Adam算法;并使用实船操纵数据对初始模型进行训练。设计的LSTM-RNN黑箱模型结构简明清晰,参数明确,易于实际操作使用;训练过程简明,易于实现。

2)对训练集数据,训练后的模型使得RMSE达到设计目标。对测试集数据,训练后模型拟合优度在0.98以上。经训练后的角LSTM-RNN黑箱具有良好的有效性和泛化性,能作为航向-舵角黑箱模型。

3)目前,模型训练仅使用了Z型操纵的4组数据,数据量不够大,使模型仅能描述有限操纵情形。后续将开展更多操纵,获取大量数据,用于模型训练,以提高模型的普适性。

参考文献
[1]
徐锋, 邹早建, 徐小卡, 等. 基于支持向量机的船舶操纵运动黑箱建模[J]. 北京航空航天大学学报, 2013(11): 1553-1557.
[2]
NIE Z H, SHEN F, XU D J, et al. An EMD-SVR model for short-term prediction of ship motion using mirror symmetry and SVR algorithms to eliminate EMD boundary effect[J]. Ocean Engineering, 2020, 217: 107927. DOI:10.1016/j.oceaneng.2020.107927
[3]
刘娇, 史国友, 杨学钱, 等. 基于DE-SVM的船舶航迹预测模型[J]. 上海海事大学学报, 2020, 41(1): 34-39.
[4]
ZHANG C K, BIN J C, WANG W, et al. AIS data driven general vessel destination prediction: a random forest based approach[J]. Transportation Research Part C, 2020, 118: 102729. DOI:10.1016/j.trc.2020.102729
[5]
MURRAY B, PERERA L P. A dual linear autoencoder approach for vessel trajectory prediction using historical AIS data[J]. Ocean Engineering, 2020, 209: 107478. DOI:10.1016/j.oceaneng.2020.107478
[6]
GAO M, SHI G Y. Ship-handling behavior pattern recognition using AIS sub-trajectory clustering analysis based on the T-SNE and spectral clustering algorithms[J]. Ocean Engineering, 2020, 205: 106919. DOI:10.1016/j.oceaneng.2020.106919
[7]
胡玉可, 夏维, 胡笑旋, 等. 基于循环神经网络的船舶航迹预测[J]. 系统工程与电子技术, 2020, 42(4): 871-877.
[8]
LIU Y C, DUAN W Y, HUANG L M, et al. The input vector space optimization for LSTM deep learning model in real-time prediction of ship motions[J]. Ocean Engineering, 2020, 213: 107681. DOI:10.1016/j.oceaneng.2020.107681
[9]
任宇翔, 赵建森, 刘卫, 等. 基于 AIS 数据和 LSTM 网络的船舶航行动态预测[J]. 上海海事大学学报, 2019, 40(3): 32-37.
[10]
SUO Y F, CHEN W K, CLAR AMUNT C, et al. A ship trajectory prediction framework based on a recurrent neural network[J]. Sensors, 2020(1): 29-36. DOI:10.3390/s20185133
[11]
ZHOU H, CHEN Y J, ZHANG S M. Ship trajectory prediction based on BP neural network[J]. Journal on Artificial Intelligence, 2019(1): 29-36. DOI:10.32604/jai.2019.05939
[12]
徐婷婷, 柳晓鸣, 杨鑫. 基于BP神经网络的船舶航迹实时预测[J]. 大连海事大学学报, 2012, 38(1): 9-11.
[13]
游兰, 韩雪薇, 何正伟, 等. 基于改进 Seq2Seq 的短时AIS轨迹序列预测模型[J]. 计算机科学, 2020, 47(9): 169-174.