APP下载

基于深度网络和船舶交通流的航道水深预测方法研究*

2019-03-01何正伟

关键词:水深决策树航道

杨 帆 何正伟 何 帆

(武汉理工大学航运学院1) 武汉 430063) (内河航运技术湖北省重点实验室2) 武汉 430063) (国家水运安全工程技术研究中心3) 武汉 430063)

0 引 言

在水路运输中实际航道水深难以准确获得,从电子海图、航道区域图等途径中获得的航道水深数据实时性不强,难以代表当前航道的准确水深.

目前国内外有关水深预测的研究主要有: Su等[1]提出的一种基于多光谱卫星图像的方法对水域的水深进行预测的方法.该方法使用了RK(regression kriging)方法对水深进行预测,相比传统的逻辑回归方法,该方法具有更高的预测准确性,然而由于RK方法的局限性,对于多变量的情况无法更好地预测水深.Shiri[2]提出的一种基于小波和模糊神经的方法对地下水深度进行预测.通过组合离散小波变换和神经模糊模型两种方法,改进了小波神经模糊模型.通过比较结果表明,小波神经模糊模型优于传统的神经模糊模型,更好地对短时地下水深度进行准确地预测.Wang[3]提出的一种转换瑞利法进行计算浪高.在所提出的变换瑞利方法中,转换模型被选择为单调指数函数,使得变换模型的前三个时刻匹配真实过程的时刻.所提出的新方法已经应用于用海神平台测量的地面高程数据来计算海况波高超概率.在这种情况下证明,所提出的新方法可以比通过使用常规瑞利波高度分布模型提供更好的预测.Younis等[4]提出的一种粗糙复合航道中的渐进水深预测方法.通过对一维的预测方法进行分析,得到了一种错误率较低的预测方法.实验结果表明,该预测方法具有较高的准确率,然而,该方法是否一定优于其他方法还需要后续研究进行证明.

文中通过船舶交通流和AIS(automatic identification system)数据进行数据挖掘,构建深度神经网络模型和决策树-深度神经网络结合的模型,从而对航道水深进行预测,提高水深数据的准确度和及时性,为船舶安全导航提供参考.

1 研究方法

1.1 研究思路

通过深度神经网络及决策树模型,进行AIS数据挖掘,并对各模型进行模型评判和验证,最终对不同的水深预测模型进行实际预测,比较各模型在航道水深预测领域的效果.研究方法图见图1.

图1 研究方法图

1.2 水深数据获取

航道水深数据可以通过相关航道的电子海图和泊位水深图中获取.首先通过电子海图和最新的泊位水深图读取航道内已知点的经度数据、纬度数据和对应的水深数据,其中经度数据为lon1,lon2,…,lonn,纬度数据为lat1,lat2,…latn,水深数据为d1,d2,…,dn.

本设计通过三维插值方法,根据电子海图中的已知水深数据对航道内的未知水深数据进行三维插值,采用Spline插值方法对船舶轨迹进行插值.设已知待插值的数据点的经纬度分别为a≤lon1

通过三次样条插值的方法可以得到航道内不同的经度、纬度点对应的水深数据,将得到的水深数据按照经度、纬度值和航道的AIS数据进行整合,从而将水深数据和AIS数据的动态数据和静态数据相结合.

1.3 AIS数据预处理

本设计通过小波分析对水AIS数据的异常数据进行分析和检测.通过小波变换将AIS中的数据进行多层分解,能够对高频和低频部分进行分别处理.在AIS数据中,由于信号传输过程受到干扰,或者信号中夹杂着噪声等因素导致传输数据出现异常,这些异常数据一般存在于信号分解后的高频部分,因此,异常检测过程就是通过小波分析的方法,对高频数据进行处理,处理后的高频数据和低频数据进行重构,最终判断异常数据出现的位置以及异常数据的个数,并且对异常数据根据不同情况采取数据清除或数据矫正,从而完成异常数据的检测功能.

1.4 深度神经网络模型

输入层进行不同特征数据的输入,隐含层的层数不定,根据不同的深度神经网络会采用不同层数的隐含层,输出层进行整个模型数据的输出.每一层网络之间通过节点进行相互连接,不同的节点具有对应的权重,用来表示节点与节点之间的关系.对于每层网络来说,激活函数用来进行输入数据的加权求和,目前常用的激活函数包括relu、sigmoid、tanh等[5].对于不同的输入AIS数据x=(x1,x2,…,xn)来说,深度神经网络的主要任务是要确定激活函数以及隐含层的层数,这对于网络的性能提升具有重要的作用.

(1)

式中:fw,b为每一层网络中的激活函数,可以表示该层网络之前的所有加权求和的过程.对于l层网络来说,该过程可以表示为

(2)

式中:Nl为第l层网络的节点个数;wl∈RNl×Nl-1和b∈R分别为通过学习得到的网络权重和偏置.

构建深度神经网络之前,首先要确定输入AIS数据的参数.Pearson相关系数是一种反应变量之间相关程度的统计量,计算公式为

(3)

式中:r为相关系数;n为样本个数;xi和yi为变量对应的样本值.

通过设置yi作为不同点的水深数据,分别选择不同的输入参数xi并计算得到相关系数ri,将ri进行从大到小顺序进行排序,选择前n个ri对应的输入参数xi作为深度神经网络的输入参数,水深数据Di作为深度神经网络的输出参数.

以船舶吃水为例,通过计算相关系数ri,得到船舶吃水和航道水深的相关性见表1.

通过对所有的AIS数据特征属性和航道水深之间进行相关性分析,得到不同属性的相关性系数ri,从而为深度神经网络提供合适的输入特征参数.

表1 船舶吃水和航道水深的相关性

注:在置信度(双测)为 0.01 时,相关性是显著的.

设置深度神经网络的初试化结构参数,通过迭代来不断调整深度神经网络的权值wi和偏置θi,达到预测准确率最大,此时的深度神经网络为最优.图2为深度神经网络模型流程图.

图2 深度神经网络模型流程图

(4)

对于整个区域的水深预测数据来说,预测模型模型为

(5)

在该预测模型表达式中,n为不同的地理位置对应的点,(a,b)为对应的经度和纬度.整个模型对于水深数据预测时,需要找到合适的稀疏矩阵作为网络的自回归模型.

在对大量的AIS数据进行预处理和分析后,对于深度神经网络的预测能力最重要的就是找到最优参数使得整个网络的预测性能达到最佳.随机梯度下降算法可以用来寻找最优网络参数,使得网络的性能达到最优水平.通过对AIS数据进行训练后,网络的各种参数范围为

f∈{tanh(x),sigmoid(x),max(x,0)}

λ∈{10-4,10-2}

n∈{1,15}

Nl∈{1,200}n

(6)

整个深度神经网络模型将通过对大量的已知水深数据进行学习,寻找最优参数,构建最终的水深预测模型.

1.5 DT-NN组合模型

预测水深的另一种方法是通过决策树和深度神经网络组合模型对AIS数据进行学习,通过水深数据作为标签,划定AIS数据分类标准,为水深数据预测建立模型.图3为DT-NN组合模型结构图.其中决策树上的每一个非叶子节点表示一个AIS数据特征属性上的判断,用来判断叶子结点是否属于某一范围[6-7],并对每个非叶子结点进行>0的判断.每个分支代表这个特征属性在某个值域上的输出,用来表示对应判断下的输出值.通过对AIS数据中船舶静态特征和动态特征集合进行决策树判断后,可以确定不同的特征对应的信息增益,从而评判不同特征和预测变量之间的相关性.

图3 DT-NN组合模型结构

使用决策树对AIS数据进行最优特征选择的过程就是从决策树的根节点开始,测试待分类项中相应AIS数据对应的特征属性,并按照其值选择输出分支,直到到达叶子节点,将叶子节点存放的类别作为决策结果.使用决策树模型对AIS数据进行分类和预测时,根据输入参数依次在各个判断节点进行相关特征属性的判断和移动,最后到达叶子节点并建立本次决策树的水深预测模型,从而为AIS数据和航道水深之间建立预测模型.

DT-NN决策树-深度神经网络组合模型主要由两部分组成.决策树部分负责对AIS数据中静态数据和动态数据的不同特征进行选择,选取最优特征.深度神经网络部分负责对最优特征进行处理,生成水深预测数据.该模型的流程见图4.

图4 DT-NN组合结构流程

对于整个AIS数据集的水深分类可以利用决策树中的ID3算法,首先计算整个AIS数据训练集的信息熵,然后计算训练集按照不同的属性进行划分的期望信息,当期望信息最小的时候的信息增益最大,也就是说决策树的节点是以该属性进行分裂的,然后依次类推即可构造特征选择的决策树.

计算每个特征的信息增益之后,可以选择信息增益最大的前k个特征组成的集合(X1,X2,…,Xk)作为DT-NN模型选择的最优特征集合.经过预处理后的AIS的特征包含了船舶静态特征(a1,a2,…,an)和船舶动态特征(b1,b2,…,bn).其中,船舶静态特征包含的主要是船舶的静态信息,如船舶吃水、船长、船宽等数据,船舶动态特征包含船舶运动过程中时刻变化的数据,如船舶对地航速、转向率等数据.通过对船舶静态特征和动态特征进行信息增益的计算后,设置最优特征参数个数为看,此时对船舶的静态特征和动态特征信息增益进行从大到小的排序,选择前k个船舶特征(c1,c2,…,ck)构成最优特征组合.选取最优特征之后,通过深度神经网络模型对水深进行预测输出.

2 实 验

2.1 实验数据

实验中选择中国南通港和防城港两个航道的AIS数据进行水深预测,通过水深数据获取和AIS数据整合,得到两个航道的水深和AIS数据结合的数据作为本次实验的数据来源, AIS大数据总量为105万条,70%的数据作为训练数据集,30%的数据作为验证数据集.

2.2 实验结果

通过Spark Mllib的机器学习库对两个航道的AIS数据构造深度神经网络模型,其中,输入参数为AIS数据中的动态数据部分的6个船舶属性,包括船长、船宽、航速、吃水、转向率、船首向六个参数.通过深度神经网络设置输入参数和输出参数,对深度神经网络的结构参数进行调整,分别记录在不同的结构参数下水深数据预测的准确性.表2为不同的网络结构参数下,深度神经网络模型对水深数据预测实验结果.

表2 深度神经网络模型实验结果

通过Spark Mllib的机器学习库对两个水域的数据构造DT-NN模型,借助决策树分类算法对水域水深数据进行分类.因此,在实验之前需要对水域的水深数据进行人为划分,表3为水深数据分类表,将水域内的水深数据共分为15类.在对数据进行训练之前,将训练的标签数据进行标号.表4表示对数据进行训练后的预测结果.

表3 水深分类

表4 DT-NN模型实验结果

2.3 残差分析

为了进一步验证DT-NN组合模型的预测准确性和模型的预测能力,通过对预测时和实际值进行计算得到不同模型的残差值.残差值越小,说明模型的预测能力越强,模型对于整个训练的数据进行了充分的挖掘.通过两个模型残差值得到残差分析图,图5为残差分布图和残差统计直方图.

图5 DT-NN组合模型模型残差分析图

由图5可知,残差范围整体上在0附近波动,残差统计直方图基本符合正态分布,组合模型DT-NN模型的残差在合理的范围内.

2.4 模型性能分析

分别对深度神经网络模型和决策树模型进行比较分析,之后对模型进行性能评判,选择MSE作为衡量预测值和实际值偏差的指标,反映模型的预测能力.选择R2衡量模型对水深数据的预测和实际水深数据拟合程度.表5为两个模型的性能比较分析.

表5 模型性能比较

由表5可知,模型的MSE值中,深度神经网络比组合模型DT-NN模型要高,深度网络的R2值比DT-NN模型要低.因此,组合模型DT-NN模型比深度神经网络模型性能高.

2.5 预测结果分析

通过DT-NN组合模型对南通港水深进行预测后,得到水深预测结果.南通港预测水深和实际水深的对比结果见图6.

图6 南通港水深预测对比图

由图6可知,组合模型的预测效果较好,除了个别浅滩等位置的水深数据存在误差,总体上预测的准确度较高,能够比较准确地反映出南通港的水深分布情况.

防城港水深预测和实际水深的对比结果见图7.由图7可知,经过训练后的DT-NN组合模型在防城港段的水深预测结果具有较好的准确性,预测水深和实际水深基本吻合,表明经过训练的模型对于水深预测的准确度较高,模型的预测基本没有出现过拟合的状态,能够较好地完成未知航道的水深预测.

图7 防城港水深预测对比图

2.6 讨论

经过两种机器学习的模型对AIS数据进行处理后,通过水深预测结果和预测性能进行分析后可知,深度神经网络模型的预测准确率和网络结构参数关系较大,其中,当深度神经网络层数为7,epoch为600时预测准确率达到最大,此时网络性能达到最佳,此时深度神经网络的预测准确率为90.84%,在整个网络结构参数的范围内,深度神经网络的准确率随着网络结构的调整具有较大的提升空间.

DT-NN模型对水深数据进行预测是基于划分好的水深数据范围,通过对AIS数据进行处理后,生成最优特征参数后结合深度神经网络对航道水深进行预测.通过水深区域的预测实验结果能够得出,DT-NN对于水深预测的准确率最高为91.15%,相比深度神经网络进行相关性分析后选择最优特征,DT-NN通过和决策树相结合,通过设置的k值选出最优的特征组合,在一定程度上提高了水深预测的准确率.

通过决策树和深度神经网络结合的方法对水深的预测能够充分挖掘实时的AIS信息,快速构建水深预测模型.相比传感器获取水深数据的方法,DT-NN组合模型的方法更加实时,水深获取范围更广,在船舶航行密集的区域采集到的AIS数据更多,水深预测模型更加准确.

3 结 束 语

通过电子海图中的水深数据和AIS数据结合,通过深度神经网络算法、DT-NN决策树和深度神经网络组合模型算法对航道水深数据进行预测,通过对两种机器学习算法进行分析后,可以得出,DT-NN组合模型对于水深预测的准确率更高,能够更高效地完成航道水深预测.

然而,目前通过深度神经网络进行水深预测仍然存在参数过多的缺点,并且网络结构参数对于深度神经网络预测能力具有较大的影响,深度神经网络对于水深的预测方法仍然有很大的优化空间,未来的研究中,将会扩大水深数据源,优化预测方法,可以考虑深度神经网络和结合大规模流数据进行处理,优化网络结构参数,并且引入可视化模块,将预测到的水深数据进行实时显示,提高水上交通的安全性,为船舶航行提供参考.

猜你喜欢

水深决策树航道
信息时代基于决策树对大学生情绪的分类
简述一种基于C4.5的随机决策树集成分类算法设计
厦门港航道通过能力建模及应用
趣图
新航道
英语高能高分 就上新航道
决策树学习的剪枝方法
国内首套l0米水深海管外防腐检测装置研发成功
决策树在施工项目管理中的应用
航道水深计算程序的探讨