一种高精度的短期潮汐预报模型
柳成 尹建川
摘要:
为提高潮汐预报的精度,提出一种基于支持向量机(Support Vector Machine,SVM)的模块化潮汐实时预报模型. 将潮汐分为受天体引潮力影响的天文潮和受环境因素和其他因素影响的非天文潮,分别使用调和分析法和改进的SVM对天文潮和非天文潮进行预报, 结合两种方法的输出构造最终的潮汐预报结果. 在对非天文潮的预测中,将SVM与灰色模型相结合,并利用粒子群优化(Particle Swarm Optimization,PSO)算法对SVM的参数进行优化以提高预报精度. 利用火奴鲁鲁港口的实测潮汐数据进行实时潮汐预报仿真.仿真结果表明该方法具有较高的短期预报精度.
关键词:
潮汐预报; 模块化方法; 调和分析法; 支持向量机(SVM); 灰色模型; 粒子群优化(PSO)
0引言
潮汐(海面周期升降运动[1])预报直接关系到船舶航行安全和港口营运效率,对军事、渔业、港口和近岸工程以及其他沿海生产活动都有重要的影响. 潮汐一直是船舶航行计划制定和港口作业调度的重要因素:准确的潮汐预报是航行安全的重要保障,并有利于港口水深资源的充分利用;相反,不准确的或误差较大的潮汐预报,则很可能导致船舶搁浅或撞桥等海上交通事故的发生.
传统的潮汐预报方法是调和分析法.它以潮汐静力学和动力学为基础,经过多年发展,已经能够实现对潮汐进行稳定、长期预报,但需要大量、长期的潮位观测数据才能得出准确的调和分析模型,且其平均预报误差约为20~30 cm,在许多场合达不到对潮汐预报精度的要求. 潮汐产生的原动力是天体的引潮力,但又受到如风力、风向、海水温度、气压等环境因素的影响,因此潮汐变化展现出强非线性和不确定性,难以对其确立固定的预报模型. 为满足现代航海的实际需求,急需一种能够提高潮汐预报精度的方法.
近些年发展起来的人工智能技术,如神经网络、模糊逻辑推理和进化计算等在航海领域得到了越来越多的应用,其中神经网络已被应用于潮汐预报研究中.PASHOVA等[2]使用时滞分析、径向基函数(Radial Basis Function, RBF)神经网络的方法对Burgas港的潮位进行了预测;JAIN等[3]
利用神经网络对印度洋西海岸New Mangalore潮位站的潮汐提前一天进行预报;YIN等[4]提出利用序贯学习算法建立变结构的径向基神经网络的潮汐预报模型以反映系统的时变动态.
支持向量机(Support Vector Machine, SVM)是建立在统计学理论[5]和结构风险最小化原理基础上的机器学习方法,它在解决小样本、非线性问题以及高维模式识别中表现出许多特有的优势[6].本文选用一种基于SVM的模块化预报模型对潮汐进行预报.模块化是在解决某个具体问题时,把系统划分为具有不同属性的若干个模块的过程.在本文潮汐预报中首先按潮汐形成原因通过模块化方法把潮汐分为天文潮和非天文潮两部分,将调和分析法用于预报潮汐中天文潮部分,而将SVM用于预测具有较强非线性的非天文潮部分. 这种分块方式能有效利用两种方法的优势,即调和分析法能够实现长期、稳定的天文潮预报,而SVM能够以较高的精度实现潮汐的非线性拟合与预报. 在本文研究中,将灰色模型预测方法应用于SVM预测中以减小环境要素的不确定性对潮汐预报精度造成的不利影响,同时应用粒子群优化(Particle Swarm Optimization, PSO)算法对SVM的参数进行优化,使其拥有较快的收敛速度并避免其陷入局部最优解.灰色预测和PSO在SVM预测模型中的应用能提高潮汐预报的精度. 最后,选取火奴鲁鲁等港口的实测潮汐数据进行港口潮汐的实时预报仿真.实验结果表明本文提出的方法可以有效地实现潮汐预报,并拥有较高的预报精度和较快的运算速度.
1基础知识
1.1SVM
1.1.1SVM的基本概念
SVM在1995首次由Vapnik提出,它是结构风险最小化的近似实现.[7] 与神经网络相比,SVM具有严格的理论基础和数学基础,不存在局部最小问题,能较好地解决小样本问题. SVM的体系结构见图1.图1中,K为核函数,x(n)为输入值。
1.1.2SVM回归理论
对于训练样本集{xi,yi}(其中:i=1,2,…,n; xi∈R,为输入变量; yi∈R,为对应的输出值),SVM的回归[8]是通过寻找一个非线性映射φ(x),将输入x映射到一个高维特征空间中.
在特征空间中通过下列估计函数进行线性回归:
1.2基于灰色系统的SVM
灰色系统理论是由我国学者邓聚龙教授于1982年提出来的,是用于研究数量少、信息贫瘠的不确定性问题的理论方法. 通过对“部分”已知信息的生成、开发,提取有价值的信息,实现对系统运行行为、演化规律的正确描述和有效监控.[9]
传统的实现序列预测的方法需要大量的数据用于预测,而灰色模型具有有效的算法来处理这些信息不完全和成因不明确的问题. 灰色模型处理数据须通过以下3个步骤:通过累加(Accumulated Generation Operation,AGO)处理原始数据集;利用SVM对累加的数据进行预测;通过反向累加运算(Inverse Accumulated Generation Operation, IAGO)进行数据还原. 基于灰色模型的SVM的预报流程见图2.
PSO是由Kennedy和Eberhart在1995年提出的,是一种模拟群体智能的优化算法.[10] 本文在使用SVM对潮汐进行预报时,通过PSO算法对SVM的参数c和g进行优化来获得最佳的训练效果,以提高潮汐预报的精度,其中c为SVM惩罚系数,g为核函数半径.
2潮汐预报模型
2.1天文潮预报的调和分析法
利用调和分析法计算某地实际潮位高度如下:
调和分析法用于潮汐预报时需要大量的实测潮汐数据,无法反映潮汐变化所受的环境因素的影响,在环境因素影响较大的情况(如大风和气压异常)下预报误差也非常大, 因此本文提出新的模块化SVM预测模型反映潮汐所受的时变因素的影响并进行实时潮汐预报.
2.2非天文潮预测模型
自回归(Auto Regressive, AR)模型是统计上一种处理时间序列的方法,它能够较为直观地描述潮汐的变化.
式中:φi(i=1,2,…,n)为模型参数;εt为白噪声. 用一个n阶AR模型描述潮汐序列:xt表示第t小时的潮汐高度,xt-n表示第t-n小时的潮汐高度.建立AR(n)模型的重点在于确定n,n决定模型的长度,通常由经验设定.在本文中,阶数n通过试凑法确定,通过不断增加模型阶数分别求得训练过程中预测值与真实值的残差,最终选择残差最小的AR(n)模型模拟预报潮汐.
一般需要提前几小时对潮汐进行预测,而单步预测的预见期短,所以在本文中将AR模型改写为非线性映射形式:
该式表示使用AR模型提前k小时进行潮汐预报的模型.
2.3模块化预测模型
按照成因的不同,潮汐预报可以分为两个部分,一为天文潮部分,二为非天文潮部分. 天文潮部分主要由天体引潮力引起,具有明显的时变特征;非天文潮部分受到气象水文因素影响,其变化没有明显规律,展现出很强的非线性. 因此,天文潮和非天文潮部分存在较大区别,仅使用调和分析法或SVM预测的单一方法可能无法体现潮汐的完整规律[11],含有相对较大的误差值.
针对以上情况,本文采用一种模块化潮汐预报模型,其由调和分析法和SVM两个模块组成. 该模型首先利用调和分析法预测潮汐的天文潮部分,获得潮汐的整体变化规律,再利用SVM对非天文潮部分进行预测,修正预测结果,达到精确预报潮汐的目的. 在SVM部分,灰色模型和PSO主要用于数据的预处理、数据的还原和SVM参数的优化上. 具体的模块化结构框图见图3.
图3中:y(t),y(t-1),…,y(t-N)为实测潮汐数据的时间序列;yM(t),yM(t-1),…,yM(t-N)为利用调和分析法得到的潮位时间序列,yM(t+k)为调和分析法提前k步预报的潮汐值; y
R(t),yR(t-1),…,yR(t-N)为非天文潮部分的时间序列,该部分作为输入用于非天文潮的预测;yG(t),yG(t-1),…,yG(t-N)为非天文潮部分输入序列经过灰色模型AGO处理后的时间序列;YI(t+k)为非天文潮部分预测值经过IAGO处理后得到的提前k步的预报值;Y(t+k)为最终多步预报的结果.
潮汐的主要成因是天体的引潮力,调和分析法考虑的对象是天体对潮汐的影响,所以实测值y与调和分析法预测值yM之间的差值可看作潮汐值受风力、风向、温度和气压等影响的非天文潮部分yR. 由于非天文潮部分展现出很强的非线性,采用灰色模型进行处理可以有效提取数据中的有效信息,缓解不确定性. 将处理后的数据yG作为非
天文潮预报模型的输入,通过SVM进行预测,预测的结果即为提前k小时的预测值,其中SVM通过PSO获取最佳的训练效果. 该部分值由于在预测前进行了AGO处理,所以在预测后还需要通过反向的操作IAGO才能得到非天文潮部分的预测值YI(t+k).将该预测值与用调和分析法得到的预测值相加即可计算出最终的潮汐预报值Y(t+k). 这样就用模块化方法实现了预见期为k小时的多步潮汐预报.
3模型检验
3.1调和分析法结果分析
为验证本文提出的潮汐预报模型的预报效果,选用美国火奴鲁鲁港从2015年7月1日GMT 0000到2015年8月11日GMT 1500的采样间隔为1 h的共1 000个潮汐实测数据进行仿真.潮汐数据来自美国国家海洋和大气管理局网站http://www.noaa.gov/.
图4为调和分析法预报值与实测值的对比,其中潮汐值单位为英尺(1英尺=0.304 8 m).由图4不难发现调和分析法预报的潮汐值与实测潮汐值基本吻合,但其误差也是较为明显的.这是因为调和分析法只考虑了天体引潮力而忽略了环境造成的影响,这也是调和分析法误差产生的主要原因.
3.2基于SVM的潮汐预报
本文以单步预测为主对潮汐进行预报,并进行预见期为2~24 h的多步预测以验证模型的准确性.在仿真中,一共选用200 h的潮汐实测数据作为初始输入用于训练网络,另外800 h的潮汐值用于比较和分析预报效果. 为求得仿真适宜的AR模型,首先利用前200 h的潮汐值作为训练数据求得1~8阶的AR模型,并将预报值与实际值进行对比分析,得到阶数为1~8的AR模型对应的残差值,见表1.
从表1可以看出,8个AR模型的精度相差不大,其中2阶模型的残差最小拟合精度最高.因此,在本次预报中选用2阶AR模型.
在SVM中几个比较重要的参数设置
还包括核函数以及c和g的选择. 适宜的参数选择会产生好的仿真结果,而不恰当的参数选择可能导致过拟合或欠拟合现象的发生,这些都将使仿真结果恶化.
为找到最佳的c和g,用PSO算法选取最佳参数,其中:粒子群进化最大数量为200;种群最大数量设置为20;参数局部搜索能力和参数全局搜索能力分别设置为1.5和1.7. c和g的范围均设定为[0.1,100].在SVM直接预测法中使用PSO算法的参数选取结果见图6.
表2中:t表示程序中调用4种核函数的标识;c和g为通过PSO算法选择的两个参数. 根据表2选择结果略好的径向基作为本次试验SVM的核函数. 此外,SVM选用的是εSVM,它适合于回归预测并具有较高的精确度.
图7为潮汐实测值与SVM预测值的对比;图8为应用SVM直接预测所得到的预测结果的误差值,预测总用时为32.41 s.
从图7中不难发现,直接使用SVM进行潮汐预测,预测值与实测值的吻合程度明显高于图4中使用调和分析法的吻合度,而且误差变化范围更小且更加稳定,其ERMS为0.091 4英尺. 这是由于SVM在进行直接预测时,输入的特征向量为实际测量所得到的潮位数据,这些数据包含天文潮和非天文潮两部分的信息,所以预测更准确,预测值与实测值的相关程度也更高.
3.3模块化潮汐预报
为便于比较模块化预测方法与调和分析法和SVM直接预测法的异同,模块化的参数设置及仿真环境与之前选取的完全一致. 图9为在模块化预测中使用PSO算法的参数选取结果.图10为采用模块化预测方法所得到的潮汐预测值与观测值对比结果. 图11是使用模块化预测方法的误差图.
从表4可以看出,在SVM的基础上添加灰色模型处理数据后,虽然仿真时间会略有提升,但预报精确度有较明显的提高. 使用PSO算法优化SVM,搜索范围更广,搜索速度也更快,而当遍历法范围为[0.01,100]时所用的时间就已远远大于PSO算法所用的时间,继续增加遍历范围必定导致时间成倍增长,因此使用PSO算法优化SVM对仿真时间和搜索精确度都有较大改善. 通过与BP和RBF神经网络的预测结果的比较可以看出,本文提出的模块化模型具有较好的预测效果,优于其他两种常用的神经网络.
此外表5给出了调和分析法、SVM直接预测法和模块化预测方法提前多步预测潮汐的ERMS.从表5可以看出:对于短期潮汐预报,模块化预测模型的预测精度要明显优于调和分析法和SVM直接预测法的预测精度;随着提前预测时间的增长,模块化预
测模型的预测效果更加稳定. 因此,采用的模块化预测方法能有效提高潮汐预报精度,适合实时的短期潮汐预报.
4结论
本文以支持向量机(SVM)网络作为基本工具,探索了将 SVM网络应用到潮汐预报领域的
方法.根据潮汐的成因,采用模块化形式分开处理天文潮部分和非天文潮部分,对非天文潮部分采用灰色模型进行数据预处理以缓解非线性程度,采用粒子群优化(PSO)算法对SVM进行参数选取和优化.实验结果证明,该模型在潮汐预报中具有较高的精度和相对较短的时间,明显优于传统方法. 然而,随着预报时间的延长,该模型预报精度会逐渐下降, 因此将该模型进行改进并应用于长期预报是今后的主要研究方向.
参考文献:
[1]郭禹, 张吉平, 戴冉. 航海学[M]. 大连:大连海事大学出版社, 2014: 215217.
[2]PASHOVA L, POPOVA S. Daily sea level forecast at tide gauge Burgas, Bulgaria using artificial neural networks[J]. Journal of Sea Research, 2011, 66(2): 154161.
[3]JAIN P, DEO M C. Realtime wave forecasts off the western Indian coast[J]. Applied Ocean Research, 2007, 29(1/2): 7279.
[4]YIN J C, ZOU Z J, XU F. Sequential learning radial basis function network for realtime tidal level predictions[J]. Ocean Engineering, 2013, 57(2): 4955.
[5]章永来, 史海波, 周晓锋, 等. 基于统计学习理论的支持向量机预测模型[J]. 统计与决策, 2014(5): 7274. DOI: 10.13546/j.cnki.tjyjc.2014.05.052.
[6]ZHANG X G, ZOU Z J. Application of wavelet denoising in the modeling of ship manoeuvring motion[J]. Journal of Ship Mechanics, 2011, 15(6): 616621.
[7]丁世飞, 齐炳娟, 谭红艳. 支持向量机理论与算法研究综述[J]. 电子科技大学学报, 2011, 40(1): 210.
[8]徐红敏, 王海英, 梁瑾, 等. 支持向量机回归算法及其应用[J]. 北京石油化工学院学报, 2010, 18(1): 6266.
[9]杨华龙, 刘金霞, 郑斌. 灰色预测GM(1,1)模型的改进及应用[J]. 数学的实践与认识, 2011, 41(23): 3946.[10]谷文成, 柴宝仁, 滕艳平. 基于粒子群优化算法的支持向量机研究[J]. 北京理工大学学报, 2014, 34(7): 705709. DOI: 10.15918/j.tbit10010645.2014.07.014.
[11]YIN J C, WANG N N. A variable multidimensional fuzzy model and its application to online tidal level prediction[J]. Journal of Computational and Theoretical Nanoscience, 2015, 12(7): 13841394. DOI: 10.1007/9783662450499_87.
(编辑贾裙平)
摘要:
为提高潮汐预报的精度,提出一种基于支持向量机(Support Vector Machine,SVM)的模块化潮汐实时预报模型. 将潮汐分为受天体引潮力影响的天文潮和受环境因素和其他因素影响的非天文潮,分别使用调和分析法和改进的SVM对天文潮和非天文潮进行预报, 结合两种方法的输出构造最终的潮汐预报结果. 在对非天文潮的预测中,将SVM与灰色模型相结合,并利用粒子群优化(Particle Swarm Optimization,PSO)算法对SVM的参数进行优化以提高预报精度. 利用火奴鲁鲁港口的实测潮汐数据进行实时潮汐预报仿真.仿真结果表明该方法具有较高的短期预报精度.
关键词:
潮汐预报; 模块化方法; 调和分析法; 支持向量机(SVM); 灰色模型; 粒子群优化(PSO)
0引言
潮汐(海面周期升降运动[1])预报直接关系到船舶航行安全和港口营运效率,对军事、渔业、港口和近岸工程以及其他沿海生产活动都有重要的影响. 潮汐一直是船舶航行计划制定和港口作业调度的重要因素:准确的潮汐预报是航行安全的重要保障,并有利于港口水深资源的充分利用;相反,不准确的或误差较大的潮汐预报,则很可能导致船舶搁浅或撞桥等海上交通事故的发生.
传统的潮汐预报方法是调和分析法.它以潮汐静力学和动力学为基础,经过多年发展,已经能够实现对潮汐进行稳定、长期预报,但需要大量、长期的潮位观测数据才能得出准确的调和分析模型,且其平均预报误差约为20~30 cm,在许多场合达不到对潮汐预报精度的要求. 潮汐产生的原动力是天体的引潮力,但又受到如风力、风向、海水温度、气压等环境因素的影响,因此潮汐变化展现出强非线性和不确定性,难以对其确立固定的预报模型. 为满足现代航海的实际需求,急需一种能够提高潮汐预报精度的方法.
近些年发展起来的人工智能技术,如神经网络、模糊逻辑推理和进化计算等在航海领域得到了越来越多的应用,其中神经网络已被应用于潮汐预报研究中.PASHOVA等[2]使用时滞分析、径向基函数(Radial Basis Function, RBF)神经网络的方法对Burgas港的潮位进行了预测;JAIN等[3]
利用神经网络对印度洋西海岸New Mangalore潮位站的潮汐提前一天进行预报;YIN等[4]提出利用序贯学习算法建立变结构的径向基神经网络的潮汐预报模型以反映系统的时变动态.
支持向量机(Support Vector Machine, SVM)是建立在统计学理论[5]和结构风险最小化原理基础上的机器学习方法,它在解决小样本、非线性问题以及高维模式识别中表现出许多特有的优势[6].本文选用一种基于SVM的模块化预报模型对潮汐进行预报.模块化是在解决某个具体问题时,把系统划分为具有不同属性的若干个模块的过程.在本文潮汐预报中首先按潮汐形成原因通过模块化方法把潮汐分为天文潮和非天文潮两部分,将调和分析法用于预报潮汐中天文潮部分,而将SVM用于预测具有较强非线性的非天文潮部分. 这种分块方式能有效利用两种方法的优势,即调和分析法能够实现长期、稳定的天文潮预报,而SVM能够以较高的精度实现潮汐的非线性拟合与预报. 在本文研究中,将灰色模型预测方法应用于SVM预测中以减小环境要素的不确定性对潮汐预报精度造成的不利影响,同时应用粒子群优化(Particle Swarm Optimization, PSO)算法对SVM的参数进行优化,使其拥有较快的收敛速度并避免其陷入局部最优解.灰色预测和PSO在SVM预测模型中的应用能提高潮汐预报的精度. 最后,选取火奴鲁鲁等港口的实测潮汐数据进行港口潮汐的实时预报仿真.实验结果表明本文提出的方法可以有效地实现潮汐预报,并拥有较高的预报精度和较快的运算速度.
1基础知识
1.1SVM
1.1.1SVM的基本概念
SVM在1995首次由Vapnik提出,它是结构风险最小化的近似实现.[7] 与神经网络相比,SVM具有严格的理论基础和数学基础,不存在局部最小问题,能较好地解决小样本问题. SVM的体系结构见图1.图1中,K为核函数,x(n)为输入值。
1.1.2SVM回归理论
对于训练样本集{xi,yi}(其中:i=1,2,…,n; xi∈R,为输入变量; yi∈R,为对应的输出值),SVM的回归[8]是通过寻找一个非线性映射φ(x),将输入x映射到一个高维特征空间中.
在特征空间中通过下列估计函数进行线性回归:
1.2基于灰色系统的SVM
灰色系统理论是由我国学者邓聚龙教授于1982年提出来的,是用于研究数量少、信息贫瘠的不确定性问题的理论方法. 通过对“部分”已知信息的生成、开发,提取有价值的信息,实现对系统运行行为、演化规律的正确描述和有效监控.[9]
传统的实现序列预测的方法需要大量的数据用于预测,而灰色模型具有有效的算法来处理这些信息不完全和成因不明确的问题. 灰色模型处理数据须通过以下3个步骤:通过累加(Accumulated Generation Operation,AGO)处理原始数据集;利用SVM对累加的数据进行预测;通过反向累加运算(Inverse Accumulated Generation Operation, IAGO)进行数据还原. 基于灰色模型的SVM的预报流程见图2.
PSO是由Kennedy和Eberhart在1995年提出的,是一种模拟群体智能的优化算法.[10] 本文在使用SVM对潮汐进行预报时,通过PSO算法对SVM的参数c和g进行优化来获得最佳的训练效果,以提高潮汐预报的精度,其中c为SVM惩罚系数,g为核函数半径.
2潮汐预报模型
2.1天文潮预报的调和分析法
利用调和分析法计算某地实际潮位高度如下:
调和分析法用于潮汐预报时需要大量的实测潮汐数据,无法反映潮汐变化所受的环境因素的影响,在环境因素影响较大的情况(如大风和气压异常)下预报误差也非常大, 因此本文提出新的模块化SVM预测模型反映潮汐所受的时变因素的影响并进行实时潮汐预报.
2.2非天文潮预测模型
自回归(Auto Regressive, AR)模型是统计上一种处理时间序列的方法,它能够较为直观地描述潮汐的变化.
式中:φi(i=1,2,…,n)为模型参数;εt为白噪声. 用一个n阶AR模型描述潮汐序列:xt表示第t小时的潮汐高度,xt-n表示第t-n小时的潮汐高度.建立AR(n)模型的重点在于确定n,n决定模型的长度,通常由经验设定.在本文中,阶数n通过试凑法确定,通过不断增加模型阶数分别求得训练过程中预测值与真实值的残差,最终选择残差最小的AR(n)模型模拟预报潮汐.
一般需要提前几小时对潮汐进行预测,而单步预测的预见期短,所以在本文中将AR模型改写为非线性映射形式:
该式表示使用AR模型提前k小时进行潮汐预报的模型.
2.3模块化预测模型
按照成因的不同,潮汐预报可以分为两个部分,一为天文潮部分,二为非天文潮部分. 天文潮部分主要由天体引潮力引起,具有明显的时变特征;非天文潮部分受到气象水文因素影响,其变化没有明显规律,展现出很强的非线性. 因此,天文潮和非天文潮部分存在较大区别,仅使用调和分析法或SVM预测的单一方法可能无法体现潮汐的完整规律[11],含有相对较大的误差值.
针对以上情况,本文采用一种模块化潮汐预报模型,其由调和分析法和SVM两个模块组成. 该模型首先利用调和分析法预测潮汐的天文潮部分,获得潮汐的整体变化规律,再利用SVM对非天文潮部分进行预测,修正预测结果,达到精确预报潮汐的目的. 在SVM部分,灰色模型和PSO主要用于数据的预处理、数据的还原和SVM参数的优化上. 具体的模块化结构框图见图3.
图3中:y(t),y(t-1),…,y(t-N)为实测潮汐数据的时间序列;yM(t),yM(t-1),…,yM(t-N)为利用调和分析法得到的潮位时间序列,yM(t+k)为调和分析法提前k步预报的潮汐值; y
R(t),yR(t-1),…,yR(t-N)为非天文潮部分的时间序列,该部分作为输入用于非天文潮的预测;yG(t),yG(t-1),…,yG(t-N)为非天文潮部分输入序列经过灰色模型AGO处理后的时间序列;YI(t+k)为非天文潮部分预测值经过IAGO处理后得到的提前k步的预报值;Y(t+k)为最终多步预报的结果.
潮汐的主要成因是天体的引潮力,调和分析法考虑的对象是天体对潮汐的影响,所以实测值y与调和分析法预测值yM之间的差值可看作潮汐值受风力、风向、温度和气压等影响的非天文潮部分yR. 由于非天文潮部分展现出很强的非线性,采用灰色模型进行处理可以有效提取数据中的有效信息,缓解不确定性. 将处理后的数据yG作为非
天文潮预报模型的输入,通过SVM进行预测,预测的结果即为提前k小时的预测值,其中SVM通过PSO获取最佳的训练效果. 该部分值由于在预测前进行了AGO处理,所以在预测后还需要通过反向的操作IAGO才能得到非天文潮部分的预测值YI(t+k).将该预测值与用调和分析法得到的预测值相加即可计算出最终的潮汐预报值Y(t+k). 这样就用模块化方法实现了预见期为k小时的多步潮汐预报.
3模型检验
3.1调和分析法结果分析
为验证本文提出的潮汐预报模型的预报效果,选用美国火奴鲁鲁港从2015年7月1日GMT 0000到2015年8月11日GMT 1500的采样间隔为1 h的共1 000个潮汐实测数据进行仿真.潮汐数据来自美国国家海洋和大气管理局网站http://www.noaa.gov/.
图4为调和分析法预报值与实测值的对比,其中潮汐值单位为英尺(1英尺=0.304 8 m).由图4不难发现调和分析法预报的潮汐值与实测潮汐值基本吻合,但其误差也是较为明显的.这是因为调和分析法只考虑了天体引潮力而忽略了环境造成的影响,这也是调和分析法误差产生的主要原因.
3.2基于SVM的潮汐预报
本文以单步预测为主对潮汐进行预报,并进行预见期为2~24 h的多步预测以验证模型的准确性.在仿真中,一共选用200 h的潮汐实测数据作为初始输入用于训练网络,另外800 h的潮汐值用于比较和分析预报效果. 为求得仿真适宜的AR模型,首先利用前200 h的潮汐值作为训练数据求得1~8阶的AR模型,并将预报值与实际值进行对比分析,得到阶数为1~8的AR模型对应的残差值,见表1.
从表1可以看出,8个AR模型的精度相差不大,其中2阶模型的残差最小拟合精度最高.因此,在本次预报中选用2阶AR模型.
在SVM中几个比较重要的参数设置
还包括核函数以及c和g的选择. 适宜的参数选择会产生好的仿真结果,而不恰当的参数选择可能导致过拟合或欠拟合现象的发生,这些都将使仿真结果恶化.
为找到最佳的c和g,用PSO算法选取最佳参数,其中:粒子群进化最大数量为200;种群最大数量设置为20;参数局部搜索能力和参数全局搜索能力分别设置为1.5和1.7. c和g的范围均设定为[0.1,100].在SVM直接预测法中使用PSO算法的参数选取结果见图6.
表2中:t表示程序中调用4种核函数的标识;c和g为通过PSO算法选择的两个参数. 根据表2选择结果略好的径向基作为本次试验SVM的核函数. 此外,SVM选用的是εSVM,它适合于回归预测并具有较高的精确度.
图7为潮汐实测值与SVM预测值的对比;图8为应用SVM直接预测所得到的预测结果的误差值,预测总用时为32.41 s.
从图7中不难发现,直接使用SVM进行潮汐预测,预测值与实测值的吻合程度明显高于图4中使用调和分析法的吻合度,而且误差变化范围更小且更加稳定,其ERMS为0.091 4英尺. 这是由于SVM在进行直接预测时,输入的特征向量为实际测量所得到的潮位数据,这些数据包含天文潮和非天文潮两部分的信息,所以预测更准确,预测值与实测值的相关程度也更高.
3.3模块化潮汐预报
为便于比较模块化预测方法与调和分析法和SVM直接预测法的异同,模块化的参数设置及仿真环境与之前选取的完全一致. 图9为在模块化预测中使用PSO算法的参数选取结果.图10为采用模块化预测方法所得到的潮汐预测值与观测值对比结果. 图11是使用模块化预测方法的误差图.
从表4可以看出,在SVM的基础上添加灰色模型处理数据后,虽然仿真时间会略有提升,但预报精确度有较明显的提高. 使用PSO算法优化SVM,搜索范围更广,搜索速度也更快,而当遍历法范围为[0.01,100]时所用的时间就已远远大于PSO算法所用的时间,继续增加遍历范围必定导致时间成倍增长,因此使用PSO算法优化SVM对仿真时间和搜索精确度都有较大改善. 通过与BP和RBF神经网络的预测结果的比较可以看出,本文提出的模块化模型具有较好的预测效果,优于其他两种常用的神经网络.
此外表5给出了调和分析法、SVM直接预测法和模块化预测方法提前多步预测潮汐的ERMS.从表5可以看出:对于短期潮汐预报,模块化预测模型的预测精度要明显优于调和分析法和SVM直接预测法的预测精度;随着提前预测时间的增长,模块化预
测模型的预测效果更加稳定. 因此,采用的模块化预测方法能有效提高潮汐预报精度,适合实时的短期潮汐预报.
4结论
本文以支持向量机(SVM)网络作为基本工具,探索了将 SVM网络应用到潮汐预报领域的
方法.根据潮汐的成因,采用模块化形式分开处理天文潮部分和非天文潮部分,对非天文潮部分采用灰色模型进行数据预处理以缓解非线性程度,采用粒子群优化(PSO)算法对SVM进行参数选取和优化.实验结果证明,该模型在潮汐预报中具有较高的精度和相对较短的时间,明显优于传统方法. 然而,随着预报时间的延长,该模型预报精度会逐渐下降, 因此将该模型进行改进并应用于长期预报是今后的主要研究方向.
参考文献:
[1]郭禹, 张吉平, 戴冉. 航海学[M]. 大连:大连海事大学出版社, 2014: 215217.
[2]PASHOVA L, POPOVA S. Daily sea level forecast at tide gauge Burgas, Bulgaria using artificial neural networks[J]. Journal of Sea Research, 2011, 66(2): 154161.
[3]JAIN P, DEO M C. Realtime wave forecasts off the western Indian coast[J]. Applied Ocean Research, 2007, 29(1/2): 7279.
[4]YIN J C, ZOU Z J, XU F. Sequential learning radial basis function network for realtime tidal level predictions[J]. Ocean Engineering, 2013, 57(2): 4955.
[5]章永来, 史海波, 周晓锋, 等. 基于统计学习理论的支持向量机预测模型[J]. 统计与决策, 2014(5): 7274. DOI: 10.13546/j.cnki.tjyjc.2014.05.052.
[6]ZHANG X G, ZOU Z J. Application of wavelet denoising in the modeling of ship manoeuvring motion[J]. Journal of Ship Mechanics, 2011, 15(6): 616621.
[7]丁世飞, 齐炳娟, 谭红艳. 支持向量机理论与算法研究综述[J]. 电子科技大学学报, 2011, 40(1): 210.
[8]徐红敏, 王海英, 梁瑾, 等. 支持向量机回归算法及其应用[J]. 北京石油化工学院学报, 2010, 18(1): 6266.
[9]杨华龙, 刘金霞, 郑斌. 灰色预测GM(1,1)模型的改进及应用[J]. 数学的实践与认识, 2011, 41(23): 3946.[10]谷文成, 柴宝仁, 滕艳平. 基于粒子群优化算法的支持向量机研究[J]. 北京理工大学学报, 2014, 34(7): 705709. DOI: 10.15918/j.tbit10010645.2014.07.014.
[11]YIN J C, WANG N N. A variable multidimensional fuzzy model and its application to online tidal level prediction[J]. Journal of Computational and Theoretical Nanoscience, 2015, 12(7): 13841394. DOI: 10.1007/9783662450499_87.
(编辑贾裙平)