舰船科学技术  2022, Vol. 44 Issue (14): 48-51    DOI: 10.3404/j.issn.1672-7649.2022.14.011   PDF    
基于人工智能系统的船舶锚泊半径估计
吕洪芹     
交通运输部 救助打捞局,北京 100736
摘要: 船舶锚泊半径估计具有重要的实际应用价值,为了解决当前船舶锚泊半径估计准确差性、误差过大等不足,提出基于人工智能系统的船舶锚泊半径估计方法。首先对船舶锚泊半径的历史数据进行采集和预处理,然后采用人工智能系统中的神经网络和最小二乘法支持向量机分别对锚泊半径进行建模与估计,并对锚泊半径估计结果进行组合,得到最终的锚泊半径估计结果。最后进行锚泊半径估计的仿真对比测试,结果表明,相对于传统方法,本文方法的船舶锚泊半径估计精度得到了明显的提升,而且锚泊半径估计效果要优于单一的人工智能技术,获得更加理想的船舶锚泊半径结果。
关键词: 人工智能     船舶锚泊     半径估计     最小二乘法支持向量机     误差分析    
Estimation of ship anchoring radius based on artificial intelligence system
LV Hong-qin     
China Rescue and Salvage of Ministry of Transport of the People's Republic of China, Beijing 100736, China
Abstract: The estimation of ship anchoring radius has important practical application value. In order to solve the problems of poor accuracy and large error of current ship anchoring radius estimation, a ship anchoring radius estimation method based on artificial intelligence system is proposed. Firstly, the historical data of ship anchoring radius are collected and preprocessed, then the artificial intelligence system neural network and least square support vector machine are used to build and estimate the ship anchoring radius respectively, and their ship anchoring radius estimation results are combined to obtain the final ship anchoring radius estimation results. Finally, the simulation and comparison test of ship anchoring radius estimation is carried out. The results show that: compared with the traditional methods, the estimation accuracy of the ship anchoring radius of this method has been significantly improved, and the estimation effect of the ship anchoring radius is better than that of a single artificial intelligence technology.
Key words: artificial intelligence     ship anchoring     radius estimation     least squares support vector machine     error analysis    
0 引 言

随着航运贸易规模日益扩大,港口船舶数量急剧增加,港口管理压力越来越大。船舶锚泊半径估计有利于港口锚地的使用和管理,因此对船舶锚泊半径估计进行建模具有十分重要的意义[1-3]

针对船舶锚泊半径估计问题,许多学者进行研究,最初采用线性回归分析进行船舶锚泊半径估计建模[4],该方法的船舶锚泊半径估计速度快,过程比较简单,普通人易学掌握,但是其只能描述船舶锚泊半径的线性变化特点,使得船舶锚泊半径估计值与实际值之间偏差比较大,无法高精度描述船舶锚泊半径变化规律[5-6]。近年来,随着人工智能技术的不断发展,出现了许多优秀的人工智能建模系统,如BP神经网络、最小二乘法支持向量机等。BP神经网络可以自学习、智能拟合船舶锚泊半径变化特点,而最小二乘法支持向量机通过结构风险最小化原理对船舶锚泊半径值进行逼近,为船舶锚泊半径估计提供了新的建模技术[7-9]。然而实际应用中,船舶锚泊半径与船舶长度、水域半径均值、平均水深、水流的平均速度均多种因素相关,变化十分复杂,因此单一人工智能技术,无法得到高精度的船舶锚泊半径估计结果[10-12]

为了获得理想的船舶锚泊半径估计结果,本文将BP神经网络、最小二乘法支持向量机组合在一起,设计基于人工智能系统的船舶锚泊半径估计方法,为船舶锚泊半径估计提供一种有价值的建模工具。

1 基于人工智能系统的船舶锚泊半径估计方法 1.1 BP神经网络

BP神经网络是人工智能系统中使用最为广泛的算法,它受到人大脑神经网络工作过程启发而出现,有一个输入层,主要由于接受输入信息,一个隐含层,其输入为输入层的输出结果,通过加权系数与输入层的节点相连接,其输出作为输出层节点的输入,通过映射函数得到输出层节点的输出结果。设BP神经网络输入层节点的输入数据为x(j),j=1,2,···,n,本文为船舶锚泊半径的历史数据,其中n表示输入层的节点数量,这样可以得到

$ o_j^{(1)} = x(j),j = 1,2,\cdots,n 。$ (1)

式中:j表示输入层的第j个神经元结点,上角标(1)表示神经网络的第1层,即输入层。

隐含层节点的输入和输出计算公式具体为:

$ net_i^{(2)} = \sum\limits_{j = 1}^n {{w_{ij}}} o_j^{(1)} ,$ (2)
$ O_i^{(2)} = f(net_i^{(2)}),i = 1,2,\cdots p。$ (3)

式中: $ {w_{ij}} $ 表示隐含层的加权系数,p表示隐含层的节点数量,i表示隐含层的第i个神经元结点,上角标(2)表示神经网络的第2层,即隐含层,f()表示隐含层的映射函数,一般采用如下公式:

$ f(x) = \frac{{{e^x} - {e^{ - x}}}}{{{e^x} + {e^{ - x}}}}。$ (4)

输出层节点的输入和输出计算公式为:

$ net_l^{(3)} = \sum\limits_{i = 1}^p {{w_{li}}} o_i^{(2)},$ (5)
$ O_l^{(3)} = g(net_l^{(3)}),l = 1,2,\cdots m。$ (6)

式中: $ {w_{li}} $ 表示输出的加权系数;m表示输出层的节点数量;l表示输出层的第l个神经元结点,上角标(3)表示神经网络的第3层,即输出层;g()表示输出层的映射函数,一般采用如下公式:

$ g(x) = \frac{{{e^x}}}{{{e^x} + {e^{ - x}}}} 。$ (7)

对于k次训练,输出层节点的实际值和期望值之间的误差为E(k),当船舶锚泊半径估计误差大于预先设置的值时,就要对权系数进行,加权系数调整式为:

$ \Delta w_{li}^{(3)}(k) = - \eta \frac{{\partial E(k)}}{{\partial w_{li}^{(3)}}} + \alpha w_{li}^{(3)}(k - 1)。$ (8)

式中: $ \eta $ 表示神经网络的学习速率; $ \alpha $ 为惯性系数。

$ \begin{split} \frac{{\partial E(k)}}{{\partial w_{li}^{(3)}}} =& \frac{{\partial E(k)}}{{\partial y(k)}} \cdot \frac{{\partial y(k)}}{{\partial \Delta u(k)}} \cdot \frac{{\partial \Delta u(k)}}{{\partial o_l^{(3)}(k)}} \cdot\\ &\frac{{\partial o_l^{(3)}(k)}}{{\partial net_l^{(3)}(k)}} \cdot \frac{{\partial net_l^{(3)}(k)}}{{\partial w_{li}^{(3)}(k)}} ,\end{split} $ (9)
$ \frac{{\partial net_l^{(3)}(k)}}{{\partial w_{li}^{(3)}(k)}} = o_i^{(3)}(k) 。$ (10)

在实际应用中, $\dfrac{{\partial y(k)}}{{\partial \Delta u(k)}}$ 通情况下,无法得到它的值,所以一般假设其近似等于:

$ \dfrac{{\partial y(k)}}{{\partial \Delta u(k)}} = {\rm sgn} \left( {\dfrac{{\partial y(k)}}{{\partial \Delta u(k)}}} \right) 。$ (11)

综合上述可以得到如下公式:

$ \frac{{\partial \Delta u(k)}}{{\partial o_l^{(3)}(k)}} = E(k)。$ (12)

这样可以得到输出层节点加权系数最后调整公式为:

$ \Delta w_{li}^{(3)}(k) = \alpha w_{li}^{(3)}(k - 1) + \eta \delta _l^{(3)}o_i^{(2)}(k) 。$ (13)

式中: $ \delta _l^{(3)} $ 表示输出层的连接阈值。

同理可得隐含层加权系数的学习算法:

$ \Delta w_{ij}^{(3)}(k) = \alpha w_{ij}^{(2)}(k - 1) + \eta \delta _i^{(2)}o_j^{(1)}(k)。$ (14)

式中: $ \delta _i^{(2)} $ 表示隐含层的连接阈值。

BP神经网络通过不断重复学习上述过程,当船舶锚泊半径计小于预先设置值时,那么可以建立最优的船舶锚泊半径估计模型,由于船舶锚泊半径变化比较复杂,单一BP神经网络的估计结果无法满足实际应用要求,因此本文同时选择最小二乘法支持向量机对船舶锚泊半径进行建模估计,以进一步提升船舶锚泊半径估计精度。

1.2 最小二乘法支持向量机

最小二乘法支持向量机的学习速度要明显快于标准支持向量机,同时学习精度要好于BP神经网络,为此将其引入到述船舶锚泊半径估计的建模中。对于船舶锚泊半径估计问题,最小二乘法支持向量机可以采用如下形式描述:

$ \begin{gathered} \mathop {\min }\limits_{\omega ,b,e} J\left( {\omega ,e} \right) = \frac{1}{2}{\omega ^{\rm{T}}}\omega + \frac{1}{2}\gamma \sum\limits_{i = 1}^n {e_i^2} \\ {\rm{s.t.}} \\ \left\{ \begin{gathered} {y_i} = {w^{\rm{T}}}\phi \left( {{x_i}} \right) + b + {e_i},\\ i = 1,2,\cdots ,n 。\\ \end{gathered} \right. \\ \end{gathered} $ (15)

式中, $\gamma $ 为可调超参数。

建立如下拉格朗日函数:

$ L\left( {\omega ,b,e,a} \right) = J\left( {\omega ,e} \right) - \sum\limits_{i = 1}^n {{a_i}\left\{ {{w^{\rm{T}}}\phi \left( {{x_i}} \right) + b + {e_i} - {y_i}} \right\}}。$ (16)

为了优化式(16),消去 $\omega $ 和e后,建立如下线性矩阵方程:

$\underbrace {\left[ {\begin{array}{*{20}{c}} 0 & {{I^{\rm{T}}}}\\ I & {\varOmega + \frac{1}{\gamma }I} \end{array}} \right]}_{\rm{A}}\left[ {\begin{array}{*{20}{l}} b\\ \alpha \end{array}} \right] = \underbrace {\left[ {\begin{array}{*{20}{l}} 0\\ y \end{array}} \right]}_{\rm{B}} 。$ (17)

式中: $y = \left[ {{y_1},{y_2},\cdots ,{y_n}} \right]$ $ \alpha = \left[ {{\alpha _1},{\alpha _2},\cdots,{\alpha _n}} \right] ,$ $I = \left[ {1,1,\cdots ,1} \right]$

根据对偶形式: $\varOmega = \phi {\left( x \right)^{\rm{T}}}\phi \left( {{x_i}} \right)$ ,并采用核函数 $K\left( {x,{x_i}} \right) $ 代替 $\phi {\left( x \right)^{\rm{T}}}\phi \left( {{x_i}} \right)$ ,可以得到船舶锚泊半径估计的最小二乘法支持向量机回归形式为:

$ y = \sum\limits_{i = 1}^n {{\alpha _i}K\left( {x,{x_i}} \right)} + b。$ (18)
1.3 基于人工智能系统的船舶锚泊半径估计流程

为了全面、准确描述船舶锚泊半径变化规律,结合神经网络和最小二乘法支持向量机的优点,对船舶锚泊半径进行建模和估计,具体实现流程如图1所示。首先采集船舶锚泊半径数据,对船舶锚泊半径进行归一化等预处理,然后采用神经网络和最小二乘法支持向量机建立相应的船舶锚泊半径估计模型,并得到各自的船舶锚泊半径估计结果。最后通过赋予各个模型的不同的权重,根据权重得到最终船舶锚泊半径估计结果。

图 1 基于人工智能系统的船舶锚泊半径估计流程 Fig. 1 Estimation process of ship anchoring radius based on artificial intelligence system
2 船舶锚泊半径估计效果的仿真测试与分析 2.1 测评平台

为了分析基于人工智能系统的船舶锚泊半径估计效果,对其进行仿真测试,测试平台参数设置如表1所示。

表 1 船舶锚泊半径估计实验测试平台参数设置 Tab.1 Parameter setting of experimental test platform for estimating ship anchoring radius
2.2 船舶锚泊半径估计实验数据

采集大量的船舶锚泊半径数据作为实验数,具体如图2所示。随机选择50个数据验证样本集,其他数据作为船舶锚泊半径估计建模训练集。

图 2 船舶锚泊半径估计实验数据 Fig. 2 Experimental data of ship anchoring radius estimation
2.3 船舶锚泊半径数据的预处理

图2可以看出,船舶锚泊半径的值差异比较明显,这样会影响船舶锚泊半径估计建模准确性,为此对船舶锚泊半径数据进行预处理,具体方式如下:

$ y_i' = \frac{{{y_i} - {y_{\min }}}}{{{y_{\max }} - {y_{\min }}}}。$ (19)

式中: $ {y_i} $ $ y_i' $ 分别表示原始和预处理后的船舶锚泊半径, $ {y_{\max }} $ $ {y_{\min }} $ 分别表示最大和最小的船舶锚泊半径值。

2.4 与传统方法的船舶锚泊半径估计效果对比

为了测试人工智能技术的优越性,选择回归分析的船舶锚泊半径估计方法进行对比测试,共进行5次实验,每一次实验随机选择50个验证样本,统计锚泊半径估计精度平均值,结果如图3所示。可知,相对于回归分析方法,本文方法的锚泊半径估计精度明显提升,而且提升的幅度比较大。这主要是因为回归分析是一种线性建模方法,无法描述船舶锚泊半径的变化特点,导致船舶锚泊半径估计误差,而本文方法利用人工智能的自学习能力,可以拟合锚泊半径变化特点,减少了锚泊半径估计误差,获得更加理想的锚泊半径估计结果。

图 3 与传统方法的船舶锚泊半径估计精度对比 Fig. 3 Comparison of estimation accuracy of ship anchoring radius with the traditional method
2.5 与单一人工智能方法的船舶锚泊半径估计效果对比

为了进一步验证本文方法的优越性,选择单一人工智能技术BP神经网络和最小二乘法支持向量机进行对比测试,同时进行5次船舶锚泊半径估计实验,精度平均值如图4所示。可以看出,本文方法的船舶锚泊半径估计精度要高于单一人工智能技术。这主要是由于本文方法融合2种单一人工智能技术的优点,建立了更好的船舶锚泊半径估计模型,可以更加准确反映锚泊半径变化规律,减少了锚泊半径估计误差。

图 4 与单一人工智能方法的船舶锚泊半径估计精度对比 Fig. 4 Comparison of estimation accuracy of ship anchoring radius with single artificial intelligence method
3 结 语

针对船舶锚泊半径估计问题,利用人工智能技术中的神经网络和最小二乘法支持向量机的优点,提出基于人工智能系统的船舶锚泊半径估计方法。测试结果表明,本文方法可以很好反映船舶锚泊半径的变化特点,对其进行高精度建模,提高了船舶锚泊半径估计精度,克服了当前传统方法或者单一神经网络的船舶锚泊半径估计误差大的弊端,满足船舶锚泊的实际应用要求。

参考文献
[1]
陈家义, 李福武, 何小阳. AIS系统在大型船舶锚泊半径及船间距的应用[J]. 舰船科学技术, 2017, 39(10): 67-69.
[2]
郭长进. 长江江苏段超大型船舶锚泊安全风险分析[J]. 中国水运(下半月), 2013, 13(3): 8-9.
[3]
刘勇, 徐海军, 李振. 锚泊船舶的安全警戒范围[J]. 航海技术, 2015(5): 31-33.
[4]
陈昌源, 戴冉, 黎泉, 等. 基于回归分析的锚泊半径[J]. 水运工程, 2015(10): 9-12+26. DOI:10.3969/j.issn.1002-4972.2015.10.002
[5]
刘宗杨, 周春辉, 孙业峰, 等. 闽江口水域船舶锚泊行为识别与挖掘方法[J]. 武汉理工大学学报(交通科学与工程版), 2021, 45(4): 805–810.
[6]
马洪新, 王磊, 刘坤, 等. 基于MOSES软件的挖沟机工程船锚泊分析[J]. 船舶标准化工程师, 2015, 48(6): 19-23.
[7]
潘国华. 北仑港大型船舶定点抛锚的操纵及锚泊点分析[J]. 航海技术, 2013(2): 15-18. DOI:10.3969/j.issn.1006-1738.2013.02.005
[8]
吴金龙, 吴彬贵, 刘大刚, 等. 天津港锚地大风条件下锚泊船安全评估系统[J]. 大连海事大学学报, 2013, 39(1): 49-52. DOI:10.3969/j.issn.1006-7736.2013.01.013
[9]
唐皇, 尹勇. 一种基于数据挖掘的锚泊半径模式提取方法[J]. 船海工程, 2017, 46(4): 206-209.
[10]
肖进丽, 付耀方, 程涛. 基于AIS信息的单锚泊船舶走锚监测报警方法[J]. 大连海事大学学报, 2018, 44(4): 8-14.
[11]
陈科, 张文剑, 蔡凌曦. 基于人工智能算法的校园安全无人机预接警系统设计[J]. 成都工业学院学报, 2022, 25(2): 37-41. DOI:10.13542/j.cnki.51-1747/tn.2022.02.008
[12]
陈果. 基于人工智能技术的复杂环境船舶自动导航系统[J]. 舰船科学技术, 2022, 44(9): 150-153. DOI:10.3404/j.issn.1672-7649.2022.09.031