基于GWO-ELM算法模型的水体含沙量预测
2022-02-24何洋李丽敏温宗周魏雄伟张明岳
何洋, 李丽敏, 温宗周, 魏雄伟, 张明岳
(西安工程大学电子信息学院, 西安 710600)
水土流失是水体中泥沙的根本来源,由于自然灾害以及不合理的开发利用水土资源,导致中国水土流失情况愈发严峻,且呈现出分布广、面积大、侵蚀类型多的特点,目前中国是水土流失最严重的国家之一[1-3]。据水利部公开资料显示,中国每年流失的土壤总量达5×109t,造成大量泥沙进入江河。每年进入长江流域的泥沙多达2.4×109t,其中中上游地区达1.56×109t[4-5]。泥沙导致河道、水库、塘堰淤塞已严重影响生态系统的平衡及国民经济的持续发展,河流泥沙问题越来越受到国家重视。实现水中泥沙含量的高精度预测不仅可为泥沙治理以及合理利用水土资源减小下游地区的洪涝灾害提供理论依据,促进流域生态系统的恢复;而且对土壤侵蚀研究起至关重要的作用,对航运和河道治理具有重要的应用价值[6]。
该领域研究学者们针对水中泥沙含量演变的特点展开了系统的研究,随着智能算法的发展,各种数学模型开始在这一研究领域中得以广泛应用,并提出了多种预测泥沙含量的方法。方馨蕊等[7]依据中分辨率成像光谱仪(medium-resolution imaging spectrometer,MODIS)卫星遥感反射率数据针对泥沙浓度构建了随机森林回归预测模型并且进行了实验验证,然而这一方法虽然效果较好,但由于所需数据的获取需要借助卫星遥感,因此不具有普适性;姬厚德等[8]基于声学原理使用多普勒剖面仪(acoustic doppler current profilers,ADCP)现场测得的回波强度,利用回归公式反演泥沙含量与水体平均体积散射强度的关系进行了泥沙含量的预测,然而未深入考虑其他相关影响因素仅将回波强度作为判定标准,在一定程度上会对预测精度产生影响,误差较大;王帅[9]提出了使用灰色马尔柯夫模型对水中泥沙含量进行预测,并将灰色预测模型与马尔柯夫模型相结合,经实验验证,虽然较好地解决了预测精度问题,但并未对多种影响因子进行相关性分析,易导致输入数据出现维数灾难问题;杨加璐等[10]使用人工蜂群算法优化BP(back propagation)神经网络建立了年均含沙量预测模型,对黄河流域潼关站的输沙量进行了预测,但仅将气候要素作为预测因子,预测结果具有很大的偶然性,因此该方法精度不高;张向东等[11]采用模糊观测数据和模糊状态划分的Markov模型实现了对辽河流域含沙量变化趋势的预测,这种方法虽然精度得到了保证但模型建立过程复杂,计算量较大;曹爱武等[12]提出了使用小波神经网络模型进行泥沙含量的预测,并且使用梯度修正法对模型的权值及小波基函数进行了寻优,但模型所训练的样本在多维输入的情况下呈指数增长,增加了模型的计算复杂度,使得网络收敛速度较慢。
针对以上预测方法中存在的数据维度过大导致计算复杂、模型学习速度慢且精度低的问题,提出结合主成分分析(principal component analysis,PCA)算法、灰狼优化(grey wolf optimizer,GWO)算法和极限学习机(extreme learning machine,ELM)算法模型的水体泥沙含量预测方法。利用PCA算法对原始多维数据进行数据降维,提取出与泥沙含量演变相关性最高的主成分因子,其目的是为了避免出现维度灾难问题;采用ELM算法模型对水体中的泥沙含量进行预测,改善传统神经网络模型的学习速度慢、泛化性能差的缺陷;利用GWO算法对ELM模型进行优化,目的是为了得到ELM算法模型的最优输入权值矩阵和隐含层偏差,进一步提高预测模型精度。最后通过实验验证该方法在泥沙含量预测中的预测性能,为水体中泥沙含量的高精度预测提供新的思路。
1 研究方法介绍
1.1 主成分分析算法(PCA)
PCA是常用的高维数据降维方法之一,旨在降维的过程中分离提取出几个互相正交、可完全反映原各组数据差异性的几个特征变量,从而达到最大化原数据方差的作用,在减少需要分析的指标同时,尽量减少原指标包含信息的损失[13-15]。
PCA进行数据降维的原理是将原始N维特征映射到K维上,映射后得到的K维特征即提取出的主成分变量,是在原始N维特征的数据基础上按照主成分因子表达式重新构造出来的全新特征。设向量X=[x1,x2,…,xm]T为m个影响因子构成的m维向量,λ=λ1,λ2,…,λm(λ1≥λ2≥…≥λm)为X的协方差矩阵特征值,L=[L1i,L2i,…,Lmi]T(i=1,2,…,m)为特征值λ的正交特征向量,F=[F1,F2,…,Fm]T为新构建的综合向量,则向量F可由向量X表示,具体表达式为
Fi=L1ix1+L2ix2+…+Lmixm
(1)
式(1)中:为保留大部分原数据特征,通常取方差最大的前n个主成分因子,且定义前n个主成分因子的累计贡献率大于等于85%为筛选出来的n(n ELM是一种全新的单隐含层前馈神经网络算法[16]。其相比于传统神经网络算法的最大优势在于输入层和隐含层的连接权值、隐含层的阈值在模型训练过程中随机产生,且设定完成后不需要进行再次调整;隐含层和输出层之间的连接权值β是通过解方程组的方式确定出来的唯一解,不需要对其进行迭代调整[17]。因此ELM算法模型具有结构简单以及泛化性能较好的特点,在确保学习精度的同时运算速率比传统的神经网络算法更快。其算法模型结构如图1所示。 xj为网络的输入;n为输入层的输入因子个数;l为隐含层的神经元个数;bi为第i个隐层单元的偏置,βl为输出权重,oj为网络的输出 对于有l个隐含层神经元个数和激活函数为g(x)的单隐层神经网络,当样本为(xi,ti)∈Rn×Rm时,其数学模型可以表示为 (2) 式(2)中:wi=[wi1,wi2,…,win]T为连接第i个隐含层神经元节点和输入节点的输入权重;βi=[βi1,βi2,…,βim]为输出节点的输出权重。 由于ELM隐含层与输出层之间的权重矩阵是伪逆矩阵,因此可将式(2)简写为 Hβ=T (3) H= (4) (5) (6) 式中:H为隐含层节点输出矩阵;β为输出权重;T为训练集目标矩阵。在ELM算法中,当激活函数g(x)无限可微时,输入权重wi和偏置bi可以被随机确定。此时ELM的优化模型为 (7) (8) GWO算法是受灰狼捕猎启发提出的一种智能仿生优化算法,该算法以系统化、递进化、层次化思想为框架,因其具有较强的收敛性能以及参数较少的特点,因此优化性能较其他仿生算法相比效果更好[18]。 GWO优化过程包含灰狼的狩猎、围捕、攻击等步骤。狩猎时第一步是包围猎物,数学模型为 H=|MXP(t)-X(t)| (9) X(t+1)=XP(t)-NH (10) 式中:t为当前迭代次数;M和N为系数;XP为猎物的位置向量;X(t)为灰狼的当前位置向量;M和N运用动态搜索进行更新,计算方式为 M=2r2 (11) N=2ar1-a (12) 在整个迭代过程中,a由2降至0,r1和r2是[0,1]的随机数。 灰狼包围猎物后便开始捕猎活动,该步骤灰狼分为α、β、δ、ω4个等级进行围猎。ω根据α、β、δ的位置信息进行更新,α、β、δ3个等级对应的搜索单位围捕方式为 Rλ=|MλXλ| (13) Xi=Xλ-Nλ(Rλ) (14) (15) 式中:搜索单位λ=α、β、δ;X(t+1)为更新后的潜在最优解向量。 最后便是攻击猎物,即搜索到GWO优化得到的最优解,该步骤通过a的线性下降完成。 ELM算法模型在训练学习过程中可以随机确定输入层与隐含层间的连接权值及隐含层神经元阈值,只需要确定出模型的最优隐含层神经元节点数,便可得到模型的全局最优解[19]。与传统的神经网络算法相比,虽然ELM模型运算速率快、泛化性能好,但和传统的神经网络一样容易陷入局部最优,对预测精度产生一定的影响。因此引入GWO算法对ELM算法模型进行优化组合,结合ELM的多层算法深度学习特性以及GWO较强的收敛性能,通过ELM模型的误差反馈更新灰狼位置信息,达到全局最优解的效果。其算法流程如图2所示。 图2 GWO-ELM算法流程图 研究区位于长江口北槽,长江口水域全长约232 km,平面呈上窄下宽型,江面宽度逐渐变宽,最宽处宽度达到了90 km,窄口处宽度不足6 km,黄浦江、练祁河、浏河等是汇入长江口水域的较大水系,江口主要由北港、南港、南槽、北槽等构成[20]。 北槽长江口处于九段沙与铜沙滩之间,N31°05′~31°18′,E121°48′~122°17′,全长68 km,槽宽250 m,是长江流域水沙入海的主要通道,同时也是深水航道所在河段,是万吨级船只进出长江口的主要航道[21]。在人类活动的干扰下,1979—2019年的40年期间,北槽河段的泥沙来源以河槽侵蚀为主,总体上呈现出主槽侵蚀,两岸淤积和深水航道泥沙回淤严重的特征。净冲刷的泥沙体积达3.6×107m3,平均每年冲刷9×105m3,造成了大量泥沙在江口的沉积,逐渐抬高河床,对航运和江口治理造成了很大的影响[22]。 水体中泥沙含量演变呈现出复杂的非线性特征,具有运动形式复杂、监测建模较难等特点。只有对流域自然地理特征及与泥沙演变相关的特征数据进行整理、分析、研究,打下良好的数据基础,选取合适的影响因子,并建立泥沙含量预测模型,才能更有效地为泥沙测验项目提供科学依据,为相关部门开展流域治理工作以及修建大型水利设施奠定理论基础。 根据《河流悬移质泥沙测验规范》(GB/T 50159—2015),参考相关文献以及相关监测站点和部门的资料,通过对研究区泥沙含量演变的地理特征和泥沙来源情况的分析,本文中选取2001年4月长江口北槽国家重点水文监测项目监测站的历史数据作为数据集,数据摘自《中国河流泥沙公报》,收集得到8种初始影响因子的原始数据共76组样本(表1),类型分别为悬移质颗粒级配A1(mm)、径流量A2(m3/s)、降水量A3(mm)、蒸发量A4(mm)、植被覆盖率A5(%)、平均水深A6(m)、平均流速A7(m/s)、平均流向A8(°)。将数据集中前60组样本数据作为训练集进行网络模型训练,后16组样本作为测试集数据用于预测及验证,利用PCA算法对8种初始影响因子进行数据降维,设定累计贡献率大于85%为主成分,将提取出来的主成分因子数据输入到GWO-ELM模型中进行训练学习并验证,最后输出预测结果。经多次实验与仿真分析,最终选择出了4种影响因子,其提取后的变量如图3所示。 表1 影响因子列表 由图3中PCA主成分提取变量结果可得,前4个成分的累计贡献率为39.914%、66.272%、78.429%、88.807%,且到第4个成分时的累计贡献率达到了88.807%大于定义主成分临界值85%。因此利用PCA主成分分析法时前4个成分较为全面的反映出原始指标体系,能够将初始的8维变量数据降至4维,由4个公因子表征出来,降低了模型数据结构复杂度且消除了数据之间的相关冗余度,同时又保证了数据在实际应用中的相对合理性。所得到的主成分系数矩阵如表2所示。 图3 PCA主成分提取变量 表2 主成分系数矩阵 根据表2中主成分系数矩阵可得,重构的4个主成分因子表达式为 Z1=0.573A1-0.72A2+0.57A3+0.796A4- 0.403A5+0.516A6+0.69A7+0.866A8 (16) Z2=0.758A1-0.113A2+0.684A3+0.16A4+ 0.269A5-0.69A6-0.488A7-0.266A8 (17) Z3=-0.091A1-0.093A2+0.614A3+0.589A4- 0.066A5-0.011A6-0.265A7+0.057A8 (18) Z4=-0.038A1+0.12A2+0.01A3+0.075A4+ 0.025A5+0.253A6-0.238A7+0.952A8 (19) 将原始8维影响因子数据A1~A8按照式(16)~式(19)进行计算,得到重构的4维主成分变量Z1~Z4,取代初始影响因子作为GWO-ELM预测模型的输入。 由于研究区情况复杂,在恶劣环境下用于监测特征数据的传感器会不可避免地受到环境因素的影响,因此需要对整理得到的数据进行预处理。 (1)加权平滑处理。为了避免偶然数据对模型预测精度的影响,对所有的样本数据进行加权平滑降噪处理,均衡样本数据。 (2)缺失值处理。对遗漏的传感器数据按属性对其进行整理,得到累计缺失率q,若q≥90%,则可将该部分数据全部去除;若40%≤q<90%,则采用相邻属性加权对其进行填充;若20%≤q<40%,使用均值作为填充值补全数据;若q<20%,采用众数对数据进行填充。 (3)归一化。由于不同种类的数据量纲不同,数据的多样化会增加模型的计算复杂度,对模型的预测准确率会产生很大的干扰,所以对得到的原始数据进行归一化处理是不可或缺的一个环节,将所有数据归一化至[0,1]区间。归一化处理公式为 (20) 式(20)中:R′为进行了归一化处理后的数据;R为原始数据;Rmax和Rmin为原始数据中的最大值和最小值。分别对预处理之前和预处理之后的数据,在相同实验条件下分别输入GWO-ELM预测模型进行实验,经多次实验验证,得到的数据预处理前后的结果对比如图4和表3所示。 图4 数据预处理前后GWO-ELM模型预测结果对比 表3 数据预处理前后GWO-ELM模型预测结果对比 从图4和表3可以看出,对于未经过预处理的数据,由于数据存在遗漏、缺失等现象,因此预测准确率仅有75.52%,平均误差为11.438%,数据未进行归一化处理,各类数据量纲不同,不仅影响到了测试集预测准确率,且增加了模型对数据的训练难度和时间,训练时间为2.508 s。然而,对于经过预处理的数据,输入模型之后,其预测准确率达到了91.26%,训练时间为0.905 s,平均误差仅为3.137%。仿真结果表明,对数据进行预处理是及其具有必要的,不仅可以减小模型的平均误差和缩短训练时间,而且该数据预处理方式可以有效提升模型的预测准确率。 3.3.1 隐含层神经元节点数的确定 在ELM算法中,隐含层神经元节点数对算法模型的计算速率和预测准确率会产生很大影响,节点数过少会使模型出现“欠拟合”,过多则会导致“过拟合”,因此确定模型的最优隐含层节点数是预测模型建立前的重点工作。为了确定模型的最优隐含层神经元节点数,分别以PCA算法分析后重构的Z1~Z44组数据、原始A1~A88组数据以及经过PCA分析但未进行重构的A1~A44组原始数据分别作为ELM算法模型的输入,进行了3组在相同实验条件下的预测实验,实验结果如图5所示。每组实验中分别设置了隐含层神经元节点数为0~100的独立实验,对每组实验分别重复进行10次,消除偶然性和随机性对实验结果产生的影响。 图5 隐含层神经元节点数与测试集准确率对比 由图5可知随着隐含层神经元节点数的增加,ELM模型的测试集准确率在逐步增长。在进行了PCA分析后重构的数据中,当隐含层神经元节点数为23时模型的预测准确率逐渐趋于稳定。而原始8组变量数据和经过PCA分析但未进行重构的4组原始数据当隐含层神经元节点数分别为30和36时模型的预测准确率才逐渐稳定。并且在隐含层神经元节点数相同的情况下,经过PCA分析的测试集预测准确率最高,说明PCA不仅可以数据降维,减小模型的运算复杂度,而且能减少模型所需的隐含层神经元节点数,简化了模型网络结构,可在相同的实验条件下提高模型预测精度。 3.3.2 GWO-ELM模型的泥沙含量预测 将76组样本通过PCA主成分因子表达式重构的数据作为模型的输入。设定组号1~60的样本为训练集,用来训练模型;设定组号61~76的16组样本为测试集,用来模型预测及验证。使用GWO对ELM进行参数优化,寻找ELM模型最优的输入权值和隐含层偏置,最大程度上提高模型预测精度。考虑到算法的运算复杂度及最优解精度等问题,经过多次反复实验,GWO算法的相关参数设置如下:狼群大小40,最大遗传代数100,狼所在位置对猎物影响的权重为[0,2]。 由上述分析可知当隐含层神经元节点数为23时ELM模型测试集准确率逐渐趋于稳定,考虑到预测模型的复杂度和计算速率问题,因此将GWO-ELM模型的隐含层神经元节点数同样设置为23。将ELM算法随机产生的输入权值矩阵和隐含层偏置矩阵作为GWO的初始种群,然后创建GWO-ELM网络,以经过PCA分析后重构的数据进行训练测试,计算得到预测准确率。将预测准确率的倒数作为个体适应度函数,以最小适应度函数为标准选择最优解,然后对初始种群进行围捕、识别、攻击猎物等操作,重复以上步骤使模型迭代至最大遗传代数,最后得到最优权值矩阵和偏置矩阵。 为了验证本文所提方法的预测效果,在同等实验条件下将ELM预测模型、灰色马尔科夫预测模型和BP算法预测模型与GWO-ELM模型进行多次实验分析对比,对比结果如图6所示。 图6 实际泥沙含量值与4种预测模型结果对比 从图6预测曲线可得,本文所提方法的预测结果较其他3种算法更接近实际泥沙含量,有较好的预测性能。 为了进一步对比本文所提方法的预测效果,引入了以下3种性能评价指标进行验证。 (1)均方根误差(root mean square error,RMSE): (21) (2)平均绝对误差(mean absolute error,MAE): (22) (3)判定系数R2: (23) 表4为本文方法与其他3种方法的预测性能指标对比结果。 表4 模型性能评价结果 从表4模型性能评比结果可得出,本文方法预测精度优于其他3种预测模型,在RMSE与MAE评价指标中,得到的均方根误差与平均绝对误差分别为0.229和0.183,相比于其他3种模型更接近实际泥沙含量值且误差最小,判定系数R2=0.938,高于其他3种模型,表明预测值与实际值拟合效果最好,精度最高,预测结果具有相对可靠性。 以水体中泥沙含量为研究对象,基于预测中影响因子维数灾难问题与传统极限学习机预测性能部分缺陷的问题,提出了PCA数据降维和GWO-ELM预测模型算法,采用长江口北槽研究区监测点数据进行实验验证。同时将本文方法与未进行参数优化的ELM预测模型、灰色马尔科夫预测模型、BP神经网络预测模型的预测输出结果进行了对比。 (1)由于考虑到研究区影响泥沙含量演变的因素较多且各影响因素权重分布不均,因此提出利用PCA进行数据降维,将原始8维影响因子降维至4维,根据主成分矩阵赋予各类原始影响因子合理权重,减小了模型的计算复杂度,缩短了运算时间,同时又保证了数据在应用中的相对合理性,而且在相同隐含层神经元节点数的情况下预测准确率得到了显著的提高。 (2)由于研究区环境复杂,传感器采集到的数据存在缺失、设备损耗等现象,对预测结果会产生一定程度的影响,因此对数据进行了预处理,将预处理前和预处理后的数据分别输入到所提出的模型中,经过结果对比验证了数据预处理的必要性,数据处理后模型的准确率得到了很大的提高,达到了91.26%,同时模型的训练时间以及平均误差均得到了改善。 (3)将GWO-ELM模型应用于区域泥沙含量预测中,以GWO优化ELM的最优权值矩阵和偏置矩阵参数,平衡模型的学习速率与泛化能力,提高了模型的预测准确率。同时与其他3种预测模型在相同实验条件下进行了多次实验对比,对比结果表明本文方法效果更好,预测值与实际值拟合效果最好且误差最小。因此将该方法用于对水体中泥沙含量进行预测是可行的,为泥沙测验项目的高精度预测提供了新的思路和理论依据。 ⑷由于泥沙的演变形成与自然环境和地区有较大的联系,因此,本文方法在后期研究中还需要做出进一步的优化和完善,使之能应用于其他流域地区。1.2 极限学习机算法(ELM)
1.3 GWO-ELM算法模型
2 研究区概况
3 建模过程和结果分析
3.1 确定影响因子及数据来源
3.2 数据预处理
3.3 仿真验证及结果分析
4 结论