李广儒,张 新,朱庆辉
(大连海事大学 航海学院,大连 辽宁 116026)
港口吞吐量体现港口的作业规模和经营成果,是衡量港口建设发展的重要指标。通过对港口吞吐量的预测,实现对港口未来短期及长期作业量的感知,可指导港口企业提前部署港口作业设施,有效衔接码头装卸和堆场作业,减少货物在港周转时间。随着港口智能化水平的不断升级,港口作业更加高效,对港口吞吐量预测的准确度提出了更高的要求。
目前,针对港口货物吞吐量的预测模型有很多,如灰色预测模型[1]、时间序列模型[2]、回归预测模型[3]、Logistic生长预测模型等。同时,由于神经网络具有很强的非线性拟合能力,有学者亦将神经网络算法应用于港口吞吐量的预测。例如,刘枚莲等[4]使用BP神经网络对广西北部湾港口吞吐量进行预测;刘长俭等[5]通过基于时间序列的BP神经网络,对天津港集装箱吞吐量进行了预测;李季涛等[6]通过RBF神经网络算法对大连港的吞吐量进行预测。以上各类方法虽采取了不同的预测模型,但均是将预测问题转化为静态建模问题求解,具有一定的局限性。
针对港口货物吞吐量基于时间序列动态变化的数据特点,杨珩等[7]采用Elman神经网络对港口货物吞吐量进行预测,取得了一定的预测效果。但由于Elman神经网络通常使用梯度下降法作为学习规则,导致进行模型训练和预测时,容易出现收敛过程不稳定、收敛速度慢、陷入局部最优值[8]等缺陷,导致预测误差增大。Adaboost算法将多个弱预测器组合形成强预测器,通过对弱预测器设置不同的权重,能够将预测误差大的样本分离出来,从而更加重视对误差较大的数据的训练,达到更高的精度。笔者将Elman神经网络作为弱预测器,进行港口吞吐量的预测,同时选择Adaboost算法将多个弱预测器组成Elman-Adaboost强预测器模型。然后采用该方法对宁波-舟山港的港口吞吐量进行预测,并将预测结果与相同数据及构建方式下的BP、BP-Adaboost以及Elman神经网络的预测结果进行比较。
Elman神经网络是J.L.ElMAN[9]在1990年提出的。Elman模型在前馈式网络的隐含层中加入了一个承接层作为一步延时的算子,以达到记忆目的,这使系统能更好适应时变特性,从而具有反映动态过程系统特性的能力。Elman神经网络由输入层、隐含层、承接层和输出层共4层组成,如图1。相比于BP神经网络的网络结构,Elman的承接层用于记忆隐含层单元前一时间的输出值,能够表达输入和输出间的时间延迟[10]。
图1 Elman神经网络的结构
Adaboost算法是“Adaptive Boosting”(自适应增强)的缩写,由Yoav Freund和Robert Schapire在1995年提出,属于一种迭代算法。算法通过合并多个“弱”分类器的输出,将训练数据样本进行有效分类。Adaboost算法首先给出弱学习算法和数据样本,在开始训练时,对每组数据样本赋予相同的权重,通过弱学习算法运算T次后,将运算结果分类并调整权重分布。对于预测误差大的样本,赋予其更大的权重,在下一次迭代运算时,系统将更加关注这些样本。在新的样本分布下,对弱分类器再次进行训练。经过T次反复迭代后,能够得到T个弱分类器,把这T个弱分类器加权叠加,得到最终的强分类函数[11-13]。
Elman-Adaboost强预测器模型首先将Elman神经网络作为弱预测器,用Elman神经网络对数据样本进行训练、预测,并使用Adaboost算法优化多个基于Elman的弱预测器,从而组成强预测器。由此构造的Elman-Adaboost强预测器港口吞吐量预测模型如图2。
图2 基于Elman-Adaboost的强预测器港口吞吐量预测模型
Elman-Adaboost强预测器的算法步骤如下:
1)选择数据、处理数据
选择原始的训练数据,对数据进行归一化处理。初始化测试数据的分布权值Dt(i)=1/m,根据数据样本的输入输出维数,确定神经网络的结构,初始化Elman神经网络的权值和阈值。
2)弱预测器预测
训练第t个弱预测器时,用训练数据训练Elman神经网络并且预测训练数据输出,能得到预测序列g(t)的预测误差之和et,计算如式(1):
et=∑iDi(i),i=1,2…,m。且(g(t)≠y)
(1)
式中:g(t)是预测分类结果;y是期望分类的结果。
3)计算预测序列的权重
根据预测序列g(t)的预测误差et计算预测序列的权重at,如式(2):
(2)
4)调整测试数据权重
根据预测序列的权重at,设置下一轮训练样本的权重,如式(3):
(3)
式中:Bt是归一化因子,目的在于使分布权值在权重比例不变的情况下和为1,即:
(4)
5)构建强预测函数
训练T轮后可以得到T个弱预测函数f(gt,at),组合得到强预测函数h(x),如式(5):
(5)
宁波-舟山港是中国第一大港口,是国内重要的铁矿石中转、液体化工储运基地和原油转运基地、及华东地区重要的煤炭、粮食储运基地。2017年,港口年货物吞吐量完成10.1×108t,是突破10×108t的超级大港。笔者以中国港口网数据为数据来源,收集整理2011年1月—2017年8月共计80 m的宁波-舟山港港口月吞吐量数据,数据按照时间顺序排列。在进行Elman神经网络的训练时,笔者使用连续6 m的吞吐量数据,递归预测下一个月的数据方式构建样本数据,即神经网络的输入节点数为6,输出节点数为1。以2015年的宁波—舟山港货物月吞吐量为例,原始数据如表1,构建形成的数据样本如表2。经过上述方法处理,可将原始的80 m的数据转换为74组数据样本。将前69组数据作为Elman-Adaboost强预测器预测模型的训练数据,后6组(2017年4月~8月)的数据作为Elman-Adaboost强预测器预测模型的测试数据。为更好适应该模型,所有数据在输入Elman神经网络前,均进行数据归一化处理。
表1 2015年宁波-舟山港的货物月吞吐量
表2 样本数据示例
使用MATLAB进行Elman-Adaboost强预测器预测模型仿真,根据港口吞吐量数据特点,确定模型隐层节点的个数和弱预测器的个数。经过多次试验,最终采用的Elman神经网络结构为6-7-1,即Elman神经网络的输入层节点数为6个,输出层节点数为1个,隐含层节点数为7个;训练生成的Elman弱预测器的数目设置为10个,即Adaboost算法中弱预测器数目K=10。
笔者选取绝对百分比误差最大值tMAX、平均绝对误差tMAE、平均绝对百分比误差tMAPE以及均方根误差tRMSE,作为检验模型预测结果的标准[14-15]:
(6)
(7)
(8)
(9)
式中:dfi是Elman-Adaboost强预测器的预测值;dmi是港口吞吐量的真实值。
上述4项评价指标值越小,则预测的精度越高。
为验证Elman-Adaboost强预测器预测模型的有效性,将预测结果与相同构建方式下的单一BP神经网络预测模型、单一Elman神经网络预测模型以及BP-Adaboost强预测器预测模型的预测结果进行比较分析。
首先用整理好的训练数据(69组)分别对以上4种预测模型进行训练,然后用训练好的预测模型对宁波—舟山港2017年4~8月的港口货物吞吐量进行预测,将各模型预测结果与真实值进行误差分析。4种预测模型得到的预测结果如图3,各预测模型对测试数据的预测结果的误差评价指标如表3、表4。
图3 4种预测模型的预测值与真实值
表3 4种预测模型的港口吞吐量预测值与预测误差
表4 四种预测模型的误差评价指标值
由表3和表4的各预测模型的预测结果及评价指标分析比较可知,使用Elman-Adaboost强预测器预测模型、BP-Adaboost强预测器预测模型、Elman神经网络预测模型、BP神经网络预测模型进行港口货物吞吐量的预测,均可以实现不同程度的预测效果。相比较而言,Elman-Adaboost模型的预测值的平均绝对误差、平均绝对百分比误差以及均方根误差最小,预测值与真实值的数据拟合程度更高,预测结果的相对误差最大值1.91%,最小值0.06%,可以将预测误差控制在2%以下,预测模型具有更好的精度。
1)使用Adaboost算法优化Elman神经网络构建Elman-Adaboost强预测器预测模型,并应用于港口货物吞吐量的预测,预测值的拟合效果好,预测精度高。
2)通过Elman-Adaboost强预测器模型与BP、Elman、BP-Adaboost模型的预测结果的百分比误差最大值、平均绝对误差、平均百分比绝对误差以及均方根误差的对比,发现Elman-Adaboost强预测器模型的预测结果的相对误差最大值1.91%,最小值0.06%,可以将预测误差控制在2%以下,预测模型具有更好的精度。
3)港口实际生产作业及发展规划中,使用该模型预测时,应结合各港口吞吐量数据的实际情况对模型进行训练,以达到更好的预测效果。