2. 南京理工大学 计算机科学与工程学院,江苏 南京 210094
2. School of Computer Science and Engineering, Nanjing University of Science and Technology, Nanjing 210094, China
舰船运动预测已经广泛应用于操纵舰船时间节点的优化,大波浪情况下航海的控制,危险操作状况的警报,操纵性任务危险性的评估以及甲板武器系统的辅助工作[1]。不仅如此,舰船运动预测还能够提升操纵舰船设备的精确度、降低恶劣海况下舰船发生事故的几率。因此,舰船运动预测的研究具有较高的民用和军用价值[2]。
目前,舰船模型理论作为一种方法常被用来解决舰船运动预测问题。舰船被划分为数个刚体模块,并且用微分方程的形式进行描述。这种方法存在一定的弊端,如为了使得舰船模型完整,不得不在模型中加入海浪模块,所有的模块均需要舰船的重量、尺寸、推力参数、波浪参数等。很多参数必不可少却又难以甚至不能获取。此外,舰船在不同航速以及不同海域均需要不同的舰船模型。另一种对舰船运动姿态预测的简单方法是利用回归方法对舰船建模[3]。线性和非线性(正弦曲线)回归能够简单地对舰船运动姿态进行预测,但是向后预测的时间和精度非常有限。时间序列是回归方法的另一种方案,自回归模型(AR模型)和自回归滑动平均模型(ARMA模型)常用来构建时间序列[4]。这 2 种模型已成功地运用在许多领域,但是仍然存在一定的问题:它们是线性统计方法,而舰船预测是非线性的,因此预测会有某些偏差。对于该问题,基于长短期记忆单元的递归神经网络模型是一种很有价值的解决方法。
本文从舰船运动姿态时间序列入手[5],分析了传统AR模型,并利用LSTM模型对时间序列的强辨别力,对舰船运动进行预测。利用复杂海况下的船舶运动姿态数据对LSTM模型进行训练,使网络直接用于对舰船运动姿态数据的预测。最后将同一批数据用于AR模型和LSTM模型仿真,将实验结果进行对比。
1 舰船运动姿态的时间序列分析舰船运动序列之间存在很强的相关性和依赖性,时间序列方法最大的特点是能够分析与表征序列值之间关系,根据舰船运动姿态的过去序列值,时间序列分析方法能够很方便地对将来的值进行预测。
对于系统自变量观测值
通常情况下,时序时域中模型为自回归模型[6],p阶自回归模型AR(p)有如下形式:
${x_t} = {\alpha _0} + {\alpha _1}{x_{t - 1}} + {\alpha _2}{x_{t - 2}} + ... + {\alpha _p}{x_{t - p}} + {\varepsilon _t}\text{,}$ | (1) |
其中,假定时间序列
可见,该自回归模型描述了时间数据序列内部的递推的回归关系。图1是时间序列AR模型算法流程图,主要包含模型系数估计、模型定阶以及序列值预测 3 部分内容。
利用自回归模型对舰船运动做预测需要确定计算模型阶数以及系数,计算较为复杂,操作也较为繁琐。这对计算时间以及计算机性能提出较高的要求。
对于传统的前馈神经网络,输入和输出没有依赖关系。递归神经网络(RNN)能够对下一时刻的值做出预测,通常这些预测值都是和所有先前值的历史信息相关。但是递归神经网络存在的结点记忆快速衰弱的特点,LSTM模型改善了这种不利的状况,LSTM可以充分利用舰船姿态序列本身的特征,这在理论上为利用LSTM模型对舰船运动姿态的预测提供依据[7]。
2 LSTM模型LSTM模型[8]结构包含一组相互联系的递归子网络,也就是我们熟知的记忆模块。每个网络模块包含一个或多个自相关的记忆信元和 3 个增殖单元:输入门、输出门和遗忘门(forget gates),它们分别对应着舰船运动姿态数据序列的写入、读取和先前状态的重置(reset)操作。图2是一个包含单个信元的LSTM记忆模块。3 个门是非线性汇总单元,它们汇集模块内部及外部所有激励,并且通过增殖结点(图中黑色的小圈)控制信元的激励。遗忘门的激励函数通常是对数逻辑曲线,因此门激励在0(门关闭)和1(门开启)之间取值。信元输入、输出门的激励函数通常是双曲正切和逻辑函数。
设定wij为LSTM模型单元i对单元j的权值,n,φ,ω分别对应输入门,遗忘门和输出门,I,H,K分别是输入层、隐层和输出层的大小,C用来表示记忆信元的个数。对于LSTM前向传输,输入门作用值受到上一时刻隐层输出值、上一时刻所有记忆信元状态值的影响,在时间序列
${\rm{a}}_n^t = \sum\limits_{i = 1}^I {{w_{in}}x_i^t + \sum\limits_{h = 1}^H {{w_{hn}}b_{_h}^{t - 1} + \sum\limits_{c = 1}^C {{w_{cn}}s_c^{t - 1}} } } \text{,}$ | (2) |
式中:xi为单元i关于运动姿态数据序列的输入;bk为单元k的非线性映射,通常用单元激励函数f(·)表示;sc为记忆信元c的状态;初始条件b0=0,残差δT+1=0。
在LSTM模型记忆模块中,除了单元自身内部对舰船姿态数据演算外,只有遗忘门前一时刻的输出bh会被传送到本单元。遗忘门用来控制上一时刻的记忆信元的状态st-1,其输出为
$a_\phi ^t = \sum\limits_i {{w_{i\phi }}x_i^t + \sum\limits_h {{w_{h\phi }}b_h^{t - 1} + \sum\limits_c {{w_{c\phi }}s_c^{t - 1}} } } \text{。}$ | (3) |
记忆信元的输入和状态分别表示为
$a_c^t = \sum\limits_i {{w_{ic}}x_i^t + \sum\limits_h {{w_{hc}}b_h^{t - 1}} } \text{,}$ | (4) |
$s_c^t = {b_\phi }ts_c^{t - 1} + b_n^tg(a_c^t)\text{。}$ | (5) |
输出门对应的输入和输出分别表示为
$a_\omega ^t = \sum\limits_i {{w_{i\omega }}x_i^t + \sum\limits_h {{w_{h\omega }}b_h^{t - 1}} {\rm{ + }}\sum\limits_{\rm{c}} {{w_{c\omega }}s_c^t} } \text{。}$ | (6) |
式(2)、式(3)和式(6)中对应的非线性映射为
$b_k^t = f(a_k^t)\text{,}$ | (7) |
其中k取为n、φ和ω。
式(4)对应的信元输出受输出门控制,这个输出也会作为下一时刻整个记忆模块的输入,其形式为
$b_c^t = b_\omega ^th(s_c^t)\text{。}$ | (8) |
输出层常为softmax函数或者logistic函数,为了方便描述残差反向传递,首先利用链式法则(chain rule)定义辅助变量:
$\varepsilon _c^t \!=\! \frac{{\partial L}}{{\partial b_c^t}} \!=\! \sum\limits_k {\frac{{\partial L}}{{\partial a_k^t}}} \frac{{\partial a_k^t}}{{\partial b_c^t}} \!+\! \sum\limits_h {\frac{{\partial L}}{{\partial a_h^t}}} \frac{{\partial a_h^t}}{{\partial b_c^t}}\! =\! \sum\limits_k {{w_{ck}}\delta _k^t} \!+\! \sum\limits_h {{w_{ch}}\delta _h^{t + 1}} \text{,}$ | (9) |
$\varepsilon _s^t \!= \!\frac{{\partial L}}{{\partial s_c^t}} \!= \!b_\omega ^th'(s_c^t)\varepsilon _c^t + b_\phi ^{t + 1}\varepsilon _s^{t + 1} \!+\! {\omega _{c\omega }}\delta _\omega ^t \!+\! {\omega _{cn}}\delta _n^{t + 1}\! +\! {\omega _{c\phi }}\delta _\phi ^{t + 1}\text{,}$ | (10) |
式中L为损失函数。
残差先后作用于记忆信元、遗忘门和输入门:
$\delta _c^t = \frac{{\partial L}}{{\partial a_c^t}} = \frac{{\partial L}}{{\partial s_c^t}}\frac{{\partial s_c^t}}{{\partial g(a_c^t)}}\frac{{\partial g(a_c^t)}}{{\partial a_c^t}} = \varepsilon _c^tb_n^tg'(a_c^t)\text{,}$ | (11) |
$\delta _\phi ^t = \frac{{\partial L}}{{\partial a_\phi ^t}} = \sum\limits_c {\frac{{\partial L}}{{\partial s_c^t}}} \frac{{\partial s_c^t}}{{\partial b_\phi ^t}}\frac{{\partial b_\phi ^t}}{{\partial a_\phi ^t}} = f'(a_\phi ^t)\sum\limits_c {s_c^{t - 1}} \varepsilon _s^t\text{,}$ | (12) |
$\delta _n^t = \frac{{\partial L}}{{\partial a_n^t}} = \sum\limits_c {\frac{{\partial L}}{{\partial s_c^t}}} \frac{{\partial s_c^t}}{{\partial b_n^t}}\frac{{\partial b_n^t}}{{\partial a_n^t}} = f'(a_n^t)\sum\limits_c {g(a_c^{t - 1}} )\varepsilon _s^t\text{。}$ | (13) |
残差先传到完成后,直接用残差对权重wij进行求偏导数,有
$\frac{{\partial L}}{{\partial {w_{ij}}}} = \sum\limits_t {\frac{{\partial L}}{{\partial a_j^t}}} \frac{{\partial a_j^t}}{{\partial {w_{ij}}}} = \sum\limits_t {\delta _j^t} b_i^t\text{,} $ | (14) |
式中
求得局域梯度后,便可利用Delta法则[9]重新调节各层权值。最后,重复梯度下降法的迭代步骤减小代价函数,确定LSTM神经网络模型以便将其用于舰船运动姿态序列训练仿真。
3 实验结果与分析本文实验选取船舶横倾作为示例,运动姿态序列通过厦门港“新海虎”号船舶的传感装置采集得到。运用LSTM模型对该船运动预测进行检测。
在训练LSTM模型时,本文在选取50 s内90个样本值。利用Xavier方法对权重初始化,超参数中学习速率非常重要,因此用自适应学习率调整算法(AdaDelta)更新学习速率,选取条件概率最大似然函数为目标函数,将Soft Sign函数作为模型的激励函数。训练结束后,实际预测过程中使用束搜索(Beam Search)方法简化LSTM模型运算复杂度。预测时间为9 s,图3为AR模型对船舶运动姿态预测曲线图,图4给出了LSTM模型预测的曲线图,表1显示了 2 种模型统计分析结果。
结果表明,LSTM模型方法较传统的AR模型有更好的预测精度和更短的模型消耗时间,这也充分说明了LSTM模型具有对时间序列本身强化记忆能力的特点。
4 结 语根据舰船运动姿态序列的特点,采用基于LSTM模型的舰船运动姿态预测方法。和传统AR模型分析法相比,基于LSTM模型预测方法具有精度高、预测时间长、自适应高等优点,并且能够充分逼近非线性映射。该方法具有通用性,能够适用于舰船的其他自由度运动预测,在工程中具有较高的使用价值。
[1] | Jian-chuan YIN, Zao-jian ZOU, Feng XU. On-line prediction of ship roll motion during maneuvering using sequential learning RBF neural networks[J]. Ocean Engineering, 2013, 61 : 139–147. DOI: 10.1016/j.oceaneng.2013.01.005 |
[2] | E. Bal Beşikçi, O. ARSLAN, O. TURAN, A. I. Ölçer, An artificial neural network based decision support system for energy efficient ship operations[J]. Computers & Operations Research, 2016, 66: 393–401. |
[3] |
彭秀艳, 赵希人, 高奇峰. 船舶姿态运动实时预报算法研究[J]. 系统仿真学报, 2007, 19 (2): 267–271.
Xiu-yan PENG, Xi-ren ZHAO, Qi-feng GAO. Research on Real-time Prediction Algorithm of Ship Attitude Motio[J]. Journal of System Simulation, 2007, 19 (2): 267–271. |
[4] | Ming-We LI, Jing GENG, Duan-Feng HAN, Tian-Ju ZHENG. Ship motion prediction using dynamic seasonal RvSVR with phase space reconstruction and the chaos adaptive efficient FOA[J]. Neurocomputing, 2016, 174 : 661–680. DOI: 10.1016/j.neucom.2015.09.089 |
[5] | PETER J. BROKWELL, 田铮. 时间序列的理论与方法(第二版)[M]. 北京: 高等教育出版社, 2001. |
[6] |
马洁, 韩蕴韬, 李国斌. 基于自回归模型的船舶姿态运动预报[J]. 舰船科学技术, 2006, 28 (3): 28–30.
MA Jie, Yun-tao HAN, Guo-bin LI. Prediction of ship pitching motion based on AR method[J]. Ship Science and Technology, 2006, 28 (3): 28–30. |
[7] | ZACHARY C L, JOHN B, CHARLES E. A critical review of recurrent neural networks for sequence learning[M]. Computer Science, 2015. |
[8] | ALEX G. Supervised sequence labelling with recurrent neural networks[J], Studies in Computational Intelligence, 2012, 385. |
[9] | TOMASZ Praczyk. Using evolutionary neural networks to predict spatial orientation of a ship[J]. Neurocomputing, 2015, 166 : 229–243. DOI: 10.1016/j.neucom.2015.03.075 |