基于混合GA优化LSTM的中小流域流量预测研究

2022-03-15 09:45张甲甲万定生
计算机仿真 2022年2期
关键词:适应度龙山遗传算法

张甲甲,万定生

(河海大学计算机与信息学院,江苏南京 211100)

1 引言

对流域径流变化趋势的模拟和预测是水文领域的一个重要研究课题[1]。随着近年来深度学习的发展,基于数据驱动的水文预测方法得以长足发展。然而这种模型大多用于大流域,很少用于小流域[2-3]。与大江大河相比,中小河流具有分布广、降水及下垫面空间异致性强、产汇流时间短、突发性强等特点[4-6]。如何利用智能算法提高中小河流水文预报的准确率,是一个重要的研究方向。

与支持向量机SVM[7],BP神经网络[8],极限学习机ELM[9]等模型相比,带有记忆功能的LSTM既可对连续的径流数据进行处理,又能考虑到长时间径流序列的季节性和周期性,因此能更合理处理序列信息,实现序列预测。不过与其它神经网络类似,LSTM模型参数难以确定,往往靠人为经验来选择。为了更好地确立LSTM的模型参数,提高流量的预测精度,本文提出一种混合遗传算法(SP_GA),用其优化LSTM后建立SP_GA-LSTM模型应用于漳州龙山站的时径流预报中。模型的输入数据考虑了流域内流量和降雨带来的影响,并通过实验分析以验证所提模型的有效性。

2 基于LSTM的流量预测模型

2.1 LSTM神经网络

长短时记忆单元(LSTM)属于递归神经网络(RNN)的一种,它具备 RNN 的递归属性,同时其具有的独特记忆和遗忘模式,可以解决递归神经网络(RNN)中的梯度爆炸和梯度消失问题[10]。LSTM由于可以完美地模拟多个输入变量的问题,十分适用于时间序列预测。LSTM基本单元结构如图1。

图1 LSTM单元结构

在LSTM神经网络中,历史信息通过遗忘门ft、输入门it、输出门ot的控制进行更新。遗忘门ft依据上一阶段的输入,来决定Ct-1里的丢弃。输入xt经过输入门it来筛选候选信息,再与遗忘门ft共同决定Ct里的更新。输出门ot与更新后的Ct经过tanh函数运算后输出。其基本过程按照式(1)-式(6)计算。

ft=σ(Wf·[ht-1,xt]+bf)

(1)

it=σ(Wi·[ht-1,xt]+bi)

(2)

(3)

(4)

ot=σ(Wo·[ht-1,xt]+bo)

(5)

ht=ot*tanh(Ct)

(6)

其中:xt和ht分别表示输入向量和输出向量,Ct-1和Ct分别表示上一时刻与当前时刻单元状态,Wf、Wi、WC、Wo是权重矩阵,bf、bi、bC、bo是对应权重的偏置。

2.2 基于LSTM的流量预测模型

2.2.1 数据选择及处理

本文选取龙山流域作为研究对象,龙山流域位于福建省漳州市,是典型中小流域。上游设有4个雨量站提供降雨信息,分别是月明、和溪、后眷、龙山。龙山水文站位于龙山流域的汇流出口处。龙山站及其周边地理位置如图2。

图2 龙山站及其周边地理位置示意图

本文选取2010年1月到2014年7月的龙山站小时流量数据和龙山流域内4个雨量站的时雨量数据共39998条数据作为实验数据。取前28000条数据作为训练样本数据,后11998条作为测试样本数据。

对于采用智能化预报方法对流量进行回归预测时,预报因子的选择尤为重要。运用相关系数分析法后,确定将前5小时的龙山水文站前期的流量值以及龙山流域内雨量站前期降雨量值选作预报因子,选择预见期为3h,即将前5小时的流量和雨量组成输入来预测未来3小时的流量。

Yt+3=f(Yt,Xt-5,Xt-4,Xt-3,Xt-2,Xt-1)

(7)

其中,Xt表示t时刻的龙山站雨量值、月明站雨量值、和溪站雨量值、后眷站雨量值、龙站雨量值山组成的向量,Yt表示t时刻的龙山站流量值。

数据规范化就是把数据根据比例投射至某一区间内,以缩短数据在训练过程中的收敛时间。本文采用Max-Min归一化,使经过归一化后的数据位于0~1之间。Max-Min归一化公式如下

(8)

2.2.2 模型评价指标

本文采用均方根误差、确定性系数和纳什系数对预测结果进行评价。

均方根误差反映了预测值与真实值之间的偏差程度,值越小越优,其计算公式为:

(9)

确定性系数反应了模型预报过程与实测过程之间的吻合程度,其取值范围为[0,1],其结果越接近1,准确率越高,计算公式为:

(10)

2.2.3 单预测模型建模

为了测试 LSTM 单模型的流量预测性能,选取不同基础模型进行比较。分别选用 BP、SVM 和 LSTM 单预测模型进行预测。并对2013年7月13日3时到2013年7月15日4时和2013年9月22日17时到2013年9月24日16时的预测结果进行对比分析。

相关参数设置为:BP与LSTM的结构设置为25-50-1,学习率为0.001,训练次数为100;SVM选择径向基(RBF)核函数,惩罚因子C=100,核函数参数σ=5。预测结果如图3,预测误差见表1。

表1 各模型预测误差

从图3和表1可以看出,SVM的预测误差在三者中最大,预测曲线具有明显波动,且峰值预测效果最差;BP的预测精度较SVM有所提高,预测曲线与真实值贴合程度也更好;LSTM的均方根误差和确定性系数为7.95和0.909,在三个模型中最优,并且整体预测曲线和峰值预测最贴合真实值,说明LSTM模型更具优势

3 LSTM模型参数优化及其预测模型

3.1 TM模型参数优化

LSTM模型的非线性建模性能与3个主要参数密切相关:隐含层节点数hidden_size、学习率lr、训练次数epoch。本文将通过混合遗传算法来确定这三个参数。

3.1.1 遗传算法

遗传算法(GA)是由美国Michigan大学的Holland J教授于1975年首先提出,它是一种借鉴生物界自然选择机制的随机化搜索算法[11]。遗传算法的基本思想是基于达尔文进化论和孟德尔的遗传变异理论。其主要步骤包括编码、种群初始化、选择、交叉、变异等操作。通过这些步骤使得种群内个体适应度越来越高,最终收敛到一群最适应环境的个体,从而求得问题的最优解。

3.1.2 混合遗传算法

作为一种典型的群体智能算法,遗传算法在搜索全局最优解方面具有独特的效率,但在局部搜索能力方面明显不足。通过在遗传算法过程中融合其它优化方法(爬山法、粒子群算法、蚁群算法、模拟退火算法等),从而构成混合遗传算法是提高遗传算法运行效率和求解质量的一个有效手段。

本文提出的SP_GA算法将PSO公式引入作为变异算子,让种群内个体可以根据自身迄今最优解和种群内最优解以及个体进化的速度来确定变异的方向和幅度,使变异操作具有方向指导作用,不再是简单的随机变异[12]。

(11)

那么引入的粒子群算法的粒子更新公式为

(12)

模拟退火算法(SA)是一种迭代更新可行解时,以一定的概率来接受一个比当前解要差的解,从而有效避免陷于局部极小并最终趋于全局最优的优化算法[13-14]。模拟退火算法包含Metropolis算法和退火过程两个部分。算法步骤如下:

1)参数初始化:包括初始解S,初始温度T,迭代次数L,计数器M;

2)计算增量ΔT=E(n+1)-E(n),E(n)为评价函数,其中n+1为新解;

3)ΔT判断:以概率P接收n+1为当前解,其中

4)若连续M个新解都没被接受,那么输出当前解作为最优解。否则进行降温操作,降温公式为:Tw=γTw-1。

5)重复上述过程,完成所有个体的抽样。

SP_GA算法在种群进化过程中引入模拟退火算法,算法内加入SA判断函数

fave-fmin

(13)

3.2 基于SP_GA-LSTM的流量预测模型

基于SP_GA-LSTM的神经网络水文预测模型建立步骤如下:

1)选择水文时间序列样本数据,划分整理数据后,归一化数据;对隐含层节点数hidden_size、学习率lr和训练次数epoch进行二进制编码处理;适应度函数采用式(10)确定性系数r2;

2)对种群个数、最大迭代次数Tmax、c1、c2、模拟退火初始温度T进行初始化;

3)判断是否满足终止条件,若达到最大迭代次数Tmax则终止迭代并用该最优解进行SP_GA-LSTM神经网络的流量预测模型的建立,否则进入4);

4)对个体进行解码,把解码参数代入训练与测试样本,计算得到每个个体的适应度值;

5)更新种群最优个体和历史最优个体。分别用一个变量把每个个体的当前解码后的值保留下来,把每一代的最优解也用单独的变量保留下来。从第二代迭代开始,如果产生的新个体的适应度值比前一次保留的个体的适应度值大,则把新个体存储在变量中并替换前一代的个体,否则不替换。同样地,如果这一代的历史最优个体适应度值比前一代的大,则更新每一代的最优解,否则不更新;

采用9种已知辣度的辣椒红果果实,建立应用电子鼻评价加工型辣椒果实辣度的方法,所用辣椒果实取自山东省青岛农业大学辣椒栽培基地(见表1);应用所建立的辣度评价方法分别检测11种辣椒红果及辣椒绿果,检测的11个辣椒加工基地的原料见表2。将试验材料于常温、避光保存,待测定。

6)用赌轮盘算法进行选择,即按照适应度值对应的选择概率进行随机选取,直到选出满足设定数量的个体数;

7)种群交叉;然后用式(11)、(12)进行变异。在变异之前要先解码,在变异完成之后再重新编码;

8)判断是否满足式(13),如果满足,则说明种群进化到了后期趋于同一,进行模拟退火操作,否则直接转3)。

根据上述步骤,SP_GA-LSTM神经网络

的水文预测模型建立算法如下:

输入:种群个数n,交叉概率cp,解的维度dim,pso学习因子c1,c2,初始温度T,最大迭代次数iter_time,样本集合S。

输出:预测结果集合fore。

1)初始化种群chrosXi(i=1,2,…,n)

2)for i in range(iter_time):

3)种群解码values

4)for j in range(0,len(values)):

5) fore=LSTM(values[j],S)

6) 计算适应度fitness[i]=r2_score(S,fore)

7)更新种群最优个体pbest=values[np.less(pbest,fitness)]

8)更新种群历史最优个体gbest=values[np.argmax(fitness)]

9)种群复制cocs=copy(chros,values)

10)种群交叉crcs=cross(cp,cocs)

11)种群变异ms=psomut(crcs,pbest,gbest,c1,c2)

12)if(np.average(fitness)-np.min(fitness)

13) 对种群模拟退火

14) 保留最好的解Xi

15)比较取得最优解Xbest

16)用最优参数建模预测fore=LSTM(Xbest,S)

4 仿真与分析

下面从两个角度进行对比分析SP_GA优化算法的有效性。

1)不同优化算法之间的对比

将GA算法、PSO算法和SP_GA算法分别应用于优化LSTM模型参数(hidden_size,lr,epoch)。寻优过程按照3.2节步骤进行,其中,LSTM模型的隐含层节点数hidden_size的范围为[10,150],学习因子lr范围为[0.001,0.01],训练次数epoch范围为[10,100]。

相关参数设置为:GA、PSO和SP_GA中的最大进化代数均为40,种群规模为20。基本GA中,变异概率是0.05,交叉概率是0.8;基本PSO中惯性权重ω=0.5,学习因子c1=0.2,c2=0.5;SP_GA中交叉概率是0.8,pso学习因子c1=0.2,c2=0.5,初始温度T是100。寻优程中三种优化算法的适应度变化曲线如图4。

图4 LSTM寻优适应度变化曲线

图4中,在控制使用模型相同的情况下,分别使用不同的优化算法对LSTM进行参数寻优,通过寻优结果来分析各优化算法的优劣。其中GA-LSTM通过20次迭代可以收敛到最佳适应度值0.921,PSO-LSTM通过19次迭代可以收敛到最佳适应度值0.92,SP_GA-LSTM通过13次迭代可以收敛到最佳的适应度值0.93。从全局看SP_GA算法在LSTM的优化中表现出的局部搜索能力和全局部搜索能力更强,收敛速度也更快。这是因为SP_GA算法引入了PSO公式作为变异算子,使变异操作具备了学习的能力,增强了算法的局部搜索能力,不易陷入局部最优。并且在迭代后期进行的模拟退火判断,进一步提升了算法跳出局部最优的能力。因此在三者对比中,改进后的混合GA算法寻优能力表现更强。最终经SP_GA寻找到的最优LSTM模型参数为:hidden_size=116,lr=0.00875,epoch=55。

2)SP_GA作用在不同模型上的对比

用上述寻优得到的参数建立SP_GA-LSTM模型和SP_GA-SVM模型,将其与未优化的LSTM、SVM模型进行对比,对比结果见图5。各模型预测误差见表2。

表2 各模型预测误差比较表

通过表2的预测结果评估可以得知,针对SVM模型,SP_GA-SVM比未经优化的SVM的DC系数高出4个百分点,均方根误差rmse降低1.524;针对LSTM模型,SP_GA-LSTM比未经优化的LSTM的DC系数高出2.2个百分点,均方根误差rmse降低0.94。结合图5的两处细节展示分析,在两侧真实值本就较为平缓的数据上,四种模型的预测精度都与真实值相差无几,但对于波峰和拐点处,经SP_GA优化过后的模型预测值都仅围绕真实值上下小幅度波动,表现地更加贴合原始数据,总体上均优于未优化的两种模型。

另外从峰值处看预测曲线,并联合评价指标综合分析,对预测效果进行排序分别为SP_GA-LSTM>LSTM>SP_GA-SVM>SVM。可以看出,经过SP_GA优化后的SVM和LSTM模型预测精度都有明显提升,而SP_GA优化后的LSTM模型预测精度最高。由此可见,针对不同的模型SP_GA算法都能发挥自身的寻参优势,将各模型本身的预测效果都进一步提升,从而也进一步的验证了SP_GA的有效性和泛用性。

5 结语

针对复杂的中小流域流量预测问题,本文提出了一种改进的混合遗传算法SP_GA,用其优化 LSTM后建立SP_GA-LSTM模型进行预测。从优化算法的分析过程和实验仿真结果可以看出:SP_GA算法在参数寻优过程中有更强的全局搜索能力和更快的收敛速度,能进一步提高模型的预测精度。本文建立的SP_GA-LSTM模型在中小流域流量预测方面有较高的预测精度,也可适用于其它领域的预测,可待后续进一步的研究。

猜你喜欢
适应度龙山遗传算法
古越龙山5家专卖店同开
改进的自适应复制、交叉和突变遗传算法
基于改进遗传算法的航空集装箱装载优化
浪淘沙·岳阳龙山行
夏季从阿龙山开始
基于遗传算法对广义神经网络的优化
基于遗传算法对广义神经网络的优化
基于遗传算法的临床路径模式提取的应用研究
基于遗传算法的临床路径模式提取的应用研究
物流配送车辆路径的免疫遗传算法探讨