APP下载

基于改进果蝇算法的LSTM在水质预测中的应用

2023-08-29郭利进许瑞伟

长江科学院院报 2023年8期
关键词:果蝇站点水质

郭利进,许瑞伟

(1.天津工业大学 控制科学与工程学院,天津 300387;2.天津市电气装备智能控制重点实验室,天津 300387)

0 引 言

城市化和工业化不断加速发展给水环境质量带来较大影响,影响着人与自然的健康发展。随着各类水质数据积累和预测技术发展,高效准确的水质预测可及时有效反映环境水的污染情况与变化趋势,以便采取保护措施,有效改善污染现状。其中,溶解氧(Dissolved Oxygen,DO)是衡量水质污染程度的一项重要指标,其浓度越高说明污染越严重;同时水质系统具有大时变、强耦合和非线性的特性,各项指标之间存在不同程度反应过程,导致单一预测精度不高。及时准确地预测溶解氧浓度有利于尽早做出决策。

围绕水质预测,国内外开展广泛研究,主要有机理模型[1]、灰色理论[2]、时间序列模型[3-4]、回归分析[5]等水质预测方法。近年来,随着大数据和深度学习的发展[6],人工神经网络(Artificial Neural Networks,ANN)处理非线性映射问题具有较高的能力而被广泛应用[7]。在ANN体系中,循环神经网络(Recurrent Neural Network,RNN)处理时间序列具有明显的优势[8],而传统RNN在训练过程中出现梯度消失导致无法更新神经元权重。因此长短时记忆网络(Long Short-Term Memory,LSTM)[9]被提出来解决这一问题,王嫄嫄[10]采用LSTM根据历史监测数据对太湖中的溶解氧进行预测;秦文虎等[11]通过缺失值填补算法将太湖水质缺失数据进行处理,利用LSTM进行多指标预测;Zhou等[12]改进灰色关联分析算法进行特征选择,建立LSTM对维多利亚湾水质预测模型。试验结果表明LSTM预测水质的可行性和有效性,LSTM模型是一种具有潜力的河流水质预测方法[13]。由于LSTM的超参数对预测模型的性能有较大影响,因此许多学者提出优化算法将超参数进行优化,主要有粒子群算法[14]、萤火虫算法[15]、果蝇算法[16]等。任燕龙等[16]提出了一种新的果蝇聚集方法对所建立的神经网络模型进行优化,避免其陷入局部最优解,搜寻解空间的最优解。但其未分析数据内部耦合关系,网络参数确定较为困难。

结合前人的工作,为分析数据内部耦合特性,论文将基于局部加权回归散点平滑法的周期性和趋势性分解(Seasonal and Trend decomposition using Loess,STL)[17]方法用于水质预测中,将水质数据时间序列分为三部分:趋势序列、周期序列和余项序列;同时针对网络易收敛于局部最优的缺点,本文通过高斯函数设计动态改变搜索半径改进果蝇算法,从而快速优化网络参数,分别建立周期、趋势和余项预测模型;最后将3个预测结果进行拟合,组合模型预测结果好。

1 组合预测模型构建

1.1 问题描述

环境溶解氧浓度预测可以视为利用溶解氧历史信息,并结合其他相关变量历史信息,进行下一时刻溶解氧浓度的多变量预测问题。记水质指标中DO浓度时间序列为Y=(y1,y2,y3,…,yT)且Y∈RT,其他相关变量的特征时间序列矩阵X为

(1)

1.2 模型构建

由于水环境中存在强耦合与非线性的关系,传统的检测技术具有滞后性,不能有效及时地得到DO的含量[18],为解决这些问题,本文提出的混合模型如图1所示,通过历史水质数据,对未来一段时间内的DO进行预测。

图1 GNFOA-STL-LSTM混合模型

(1)首先将原始水质序列进行预处理,增补缺失值和去除异常值后,得到一个9维的数组:X1,X2,X3,X4,X5,X6,X7,X8,Y。其中Y为DO浓度,Xm为其他8种水质。

(2)充分考虑数据的时序特性,减少同一指标内部趋势分量、周期分量和余项分量之间的相互耦合,降低预测误差,通过STL将水质数据进行分解重组,得到3个不同特性的9维的数组。

(3)为充分提取输入特征的特征相关性和时序相关性,通过3个独立LSTM模型分别对3个序列进行训练,得到3个预测结果YTp、YSp、YRp,进行拟合得到最终的DO浓度预测结果Yp。

Yp=YTpYSpYRp。

(3)

1.3 水质STL分解重构模型

STL是利用鲁棒性局部加权回归作为平滑方法的时间序列分解方法[19],时间序列数据被分解为趋势分量Tt、周期分量St和余项Rt,即

Xt=f(Tt,St,Rt) 。

(4)

STL分为2个过程,内循环主要负责分解趋势分量和周期分量;外循环主要根据剩余数据为下一轮内循环分配稳健性权重,减少异常值的影响[17]。单一的模型对于时间序列预测存在一定的局限性,同时各个水质指标之间相互耦合、相互影响,水质数据在时间上具有一定周期性,将输入水质序列利用STL进行分解,得到水质数据的周期性、趋势性和余项分量,即

Y=Tt+St+Rt。

(5)

加法模型适合于随时间变化趋势较为单调的情况,由于水质序列有较大的波动,故本文选用乘法模型。由于STL仅能处理加法模式的分解,对于乘法分解需要将乘法转换为加法处理完后再逆变回去。本文使用lg函数进行转换,即

lgY=lgTt+lgSt+lgRt。

(6)

模型输入为数据中剩余8种元素经STL分解后的数据重构为周期序列St、趋势序列Tt和余项序列Rt,时间窗口大小为T,分别输入3个GNFOA-LSTM预测模型。周期序列St输入模型进行训练构建S-GNFOA-LSTM,趋势序列Tt输入模型进行训练构建T-GNFOA-LSTM,余项序列Rt输入模型进行训练构建R-GNFOA-LSTM模型训练,得到3个模型对DO分解的各分量预测结果Tt′、St′和Rt′,由式(7)拟合DO浓度最终预测结果Y′,即

(7)

1.4 水质分量预测模型构建

由如图2所示,LSTM在RNN基础上增加输入门、输出门和遗忘门3个门控单元,通过3个门控逻辑决定数据更新权重,保证在较长时间序列情况下维持时间相关性不会衰减,克服RNN权重过大、容易产生梯度消失和爆炸的特点,在处理具有时序特性的数据具有显著的优势[9],提高模型可靠性,使网络可以收敛更快速、效果更好。LSTM具体运算过程参见文献[20]。

图2 LSTM网络基本单元

式中:θt为更新后的参数;mt为一阶矩估计;vt为偏二阶矩估计;α为学习率;β1、β2为矩估计的指数衰减率;ε为接近0的正数。

1.5 模型优化

1.5.1 算法改进

上述模型需设置的初始化参数包括:LSTM循环次数L、窗口长度m与神经元个数r,记LSTM(L,m,r)为训练后的模型,由于不同的超参数对模型的预测精度有较大影响,为使模型效果达到最优,本文采用改进的果蝇算法进行参数搜索。

借鉴了粒子群算法的思想,可应用于求解全局最优解,典型果蝇优化算法(Fruit Fly Optimization Algorithm,FOA),公式参见文献[22],本文在此不做赘述。典型FOA算法中,果蝇个体按照固定半径R进行搜索,R的大小与优化精度有直接性的关系。文献[23]提出了改进FOA算法,该算法中搜索半径R满足

(9)

式中:Rmax为初始最大搜索半径;Iter为当前迭代次数;Itermax为初始最大迭代周期。

由于所搜半径R初期快速递减会导致优化过程陷入极小值无法到达全局最优,结合粒子群优化思想与高斯函数特性,本文采用基于高斯函数变半径的果蝇改进算法(Gaussian Network-based Fruit Fly Optimization Algorithm,GNFOA)对模型进行优化。如式(10)所示,将相应参数代入其中,实现对搜索半径R的非线性映射,得到最终的高斯递减函数调整半径。其中k为调整步长曲线的变化率,即步长的变化速度。k的取值在下一章节进行探讨。

(10)

1.5.2 模型优化过程

改进果蝇算法的模型优化过程如图3所示。

图3 模型优化过程

具体步骤如下。

步骤1:将模型参数的组合(L,m,r)设置为GNFOA的三维搜索空间,各超参数的取值范围不超过上下限。取果蝇数量为M,将其随机分布于参数的三维空间。

步骤2:赋予果蝇个体利用嗅觉搜寻食物的随机距离与方向,果蝇搜索半径为R并按照式(10)进行递减。

步骤3:设第i只果蝇与原点的欧式距离为di。味道浓度Si为欧式距离的倒数。

步骤4:通过浓度判定函数Fmse(Ytr,Ytr′)中求解果蝇个体的味道浓度。

步骤5:通过将浓度判定值Si代入浓度判定函数Fmse(Ytr,Ytr′)中求出果蝇个体的味道浓度,并找出该果蝇群体味道浓度为最大值的果蝇,保留其坐标,其余果蝇在该坐标周围继续搜索。

步骤6:重复步骤2—步骤5,若当前味道浓度优于前一迭代味道浓度,则执行步骤5,直到达到迭代次数最大为止。最后保留最佳参数模型,即最优预测模型。

2 案例分析

数据来自中国环境科学研究院环境专业知识服务系统(http:∥envi.ckcest.cn/environment/)公布天津市海河流域某3个断面2020年12月18日—2021年12月6日的水质监测信息,编号为站点1、站点2和站点3。数据隔4 h取样公布1次,主要包括溶解氧含量(DO)、化学需氧量(COD)、酸碱值(pH)、总磷含量(TP)、总氮含量(TN)、氨氮含量(NH3-N)、电导率(EC)、悬浮物浓度(SS)及水温(T)9个水质指标。

数据采集时有丢失或有异常造成预测误差,首先将采集到的数据进行预处理。对于数据缺失部分用插值法进行填补;对于异常值的处理主要采用拉依达准则。由于影响DO浓度的因素具有多种且不同数据具有不同范围,为消除量纲不同造成误差,将各个数据采取归一化处理[24]。

2.1 评价指标

为验证所提出模型的性能,使用两个损失函数作为评价的标准,包括均方根误差(Root Mean Square Error,RMSE)和平均绝对误差(Mean Absolute Error,MAE)。计算公式参见文献[24]。

图4 基于STL分解的部分序列

2.2 基于STL的水质数据分解

对于混合模型,需要将预处理后各水质数据进行分解,STL将数据分解成趋势序列、周期序列和余项序列。本文使用的数据为每隔4 h取1次,1 d取6次,1周取42次,故在STL分解的频率选为42即为1周。部分序列分解得到分解项St、Tt和Rt如图4所示,3个子序列乘积为原始序列,趋势序列描述各水质变化的总体趋势,周期序列描述水质数据的周期性变化。在分解过程完成后,将子序列看作新的时间序列。

2.3 基于混合模型预测仿真

2.3.1 模型参数寻优

在分析果蝇算法的搜索半径改进策略过程中,初步确定了k的取值范围为[0.1,0.3],为确定不同系数k选取效果的优劣,选取Sphere函数、Griewank函数和Ackley函数这3个测试函数进行仿真实验。设置果蝇数目M=20,最大迭代次数T=500,通过3种测试函数确定k的取值,进行3次重复独立实验,最终结果如表1所示。可得k=0.2时,对函数的寻优结果较好。

表1 不同k值时测试函数的优化结果

设LSTM循环次数L∈[1,16],窗口长度m∈[2,15],神经元个数r∈[5,60]。针对站点1数据按照果蝇改进算法进行超参数的优化,得到周期模型参数L=3,m=5,r=9,趋势模型参数L=6,m=6,r=12,余项模型参数L=6,m=6,r=26。

2.3.2 模型仿真

以站点1为例,共有2 214组数据,取前80%作为训练集,后20%作为测试集。选择水质指标中其余8个水质指标作为混合模型的输入特征,DO浓度作为混合模型的输出特征,利用STL将其进行分解为3个独立的特征分量分别输入3个独立混合模型进行训练。站点1预测结果如图5所示。

图5 站点1预测结果

从图5(a)—图5(c)可知,由于周期性有明显的规律性,预测分量与真实分量明显贴合,趋势项和余项的预测结果经过参数寻优后与真实结果较为贴合,可得本文提出模型可以较好的预测出信号的趋势,即训练得到的GNFOA-LSTM模型在非线性的时间序列具有较强的预测能力。为防止实验误差,预测结果均采用3次重复独立试验取均值。3个分量预测结果按照STL规则反向拟合得到的最终预测结果如图5(d)所示,预测结果与真实值贴合程度好,说明本文提出模型预测效果好,与实际值接近。

为验证时序分解和GNFOA算法参数寻优对溶解氧预测的效果,以站点1为例,本文设计5种模型进行对比分析,模型预测结果如图6所示。

图6 站点1模型预测结果对比

由图6可知,LSTM网络的预测值与真实值的误差最大;STL-LSTM网络在数据波动较大时预测效果较差;FOA-STL-LSTM网络的预测值与实际值曲线较为贴合,但其预测的精度相对较低;GNFOA-LSTM网络的预测误差较低,与实际值较为贴合;但考虑了时间序列的GNFOA-STL-LSTM网络的预测精度最高,与实际值的贴合度最高。

预测误差的分布都符合正态分布如图7所示。

图7 模型误差对比

由图7可知:

(1)图7(a)中LSTM预测误差均值与标准差较大,没有对输入特征进行处理,无法很好地拟合水质序列中存在的周期性,预测精度较低,预测结果与实际值差别较大。

(2)相比于LSTM模型,图7(b)中STL-LSTM模型误差均值相近,但标准差大大降低。在考虑数据序列的时序特性后,数据分解降低了不同部分之间耦合误差,使得预测误差波动较小,预测结果稳定。

(3) 图7(c)显示误差分布均值与标准差相较于STL-LSTM降低。FOA-STL-LSTM模型引入果蝇优化算法,通过优化模型参数,解决单一模型精度较低的问题。

(4)图7(d)中GNFOA-LSTM预测模型引入高斯函数改进果蝇算法,其误差相较于LSTM大大降低。但没有考虑数据内部时序耦合问题,预测精度提升较小。

(5)图7(e)误差均值与标准差均最低,GNFOA-STL-LSTM模型通过改变搜索半径提高了传统FOA算法优化效果较差的性能,对于长期预测具有较高的精度,同时模型对数据内部的时序耦合进行分解处理,相较于图7(d)GNFOA-LSTM模型误差的均值与方差都大幅度减小。

GNFOA-STL-LSTM即本文提出的混合模型的预测效果均优于其他4种模型。为进一步验证模型的泛化能力,对站点2和站点3进行多组仿真,预测结果如图8所示。可以看出本文所提模型对不同站点的溶解氧预测贴合程度好,说明该模型在保证预测精度高的条件下还具备一定的泛化能力,对于不同站点的溶解氧预测效果较为稳定。

图8 站点2和站点3预测结果

根据MAE公式与RMSE公式[24]计算各个预测模型的评价指标如表2所示。

表2 试验评估结果

以站点1为例:

(1)STL-LSTM比单一LSTM模型MAE和RMSE分别降低了25.8%和13.5%,说明时序分解可以有效降低预测误差。

(2) FOA-STL-LSTM预测模型与STL-LSTM模型相比MAE降低了20.7%,RMSE降低了9.9%,说明参数优化可以有效地改变网络拓扑结构,对预测精度有较大影响。

(3)GNFOA-LSTM预测模型与LSTM相比MAE降低了44.1%,RMSE降低了25.1%。说明通过高斯函数变半径的方法改进果蝇算法对模型的优化有显著作用。

(4) GNFOA-STL-LSTM预测模型与没有考虑时序耦合的GNFOA-LSTM模型相比,MAE和RMSE分别降低了7.5%和8.0%,说明经过STL分解,充分考虑数据内部时序耦合问题,可有效提高模型预测精度。与FOA-STL-LSTM模型性比MAE和RMSE分别降低了12.1%和11.6%,说明通过高斯函数改进优化算法可有效提高模型预测精度。

站点2与站点3模型的评价标准与站点1相同,GNFOA-STL-LSTM预测效果最好。由此表明,STL分解和改进优化算法的有效性,即本文提出的GNFOA-STL-LSTM模型在DO浓度预测中具有良好的预测效果。

3 结 论

本文提出一种基于分解的GNFOA优化LSTM水质预测模型,对环境水DO浓度进行预测,主要结论如下:

(1)针对传统果蝇算法搜索半径恒定导致优化效果不好的缺点,引入高斯函数动态改变搜索半径,可以有效地提高模型的优化效果,解决了传统优化算法容易陷入局部最优无法达到全局最优的缺点。

(2) STL分解可有效避免内部耦合对预测精度产生影响。对3种分量分别输入混合模型并将预测结果进行拟合,解决单一预测模型精度低、泛化能力差的问题。仿真结果表明所提出的混合模型与其他形式模型相比,预测精度提高、泛化能力增强。

猜你喜欢

果蝇站点水质
水质抽检岂容造假
果蝇遇到危险时会心跳加速
2021年大樱桃园果蝇的发生与防控
基于Web站点的SQL注入分析与防范
小果蝇助力治疗孤独症
一月冬棚养虾常见水质浑浊,要如何解决?这9大原因及处理方法你要知晓
2017~2018年冬季西北地区某站点流感流行特征分析
基于改进果蝇神经网络的短期风电功率预测
首届欧洲自行车共享站点协商会召开
怕被人认出