基于深度学习的水质预测模型研究
2019-07-11涂吉昌陈超波王景成叶强强
涂吉昌,陈超波,王景成,2,王 召,叶强强
(1.西安工业大学 电子信息工程学院,西安710021;2.上海交通大学 自动化系,上海200240)
水质预测是水环境综合管理的重要一环。近年来,我国经济高速发展,工业及生活用水量剧增,水资源的短缺和水资源污染成为我国经济社会发展面临的重大问题[1]。研究水源地高精度水质预测模型,能够提前预测出水环境水质污染的可能性,有助于及时地发现区域内的水环境问题,积极地保护好水源地水质环境,为管理和维护当前水源地的水质状况提供重要依据。
目前,对于水质预测领域,国内外学者做了大量的研究。传统的水质预测模型主要有时间序列模型[2]、回归分析模型[3]、灰色系统理论模型[4]以及神经网络模型[5]等。传统的预测模型往往只关注数据本身的特点,而没有充分考虑到数据之间的相互关联性,预测精度普遍不高,难以对水环境水质参数进行精确的预测监控。随着智能硬件的计算性能不断提升,深度学习以及人工智能得到高速的发展,人工智能不断地渗透到国民生活以及工业控制的方方面面,深度学习也积极地应用于工业领域。循环神经网络等作为深度学习领域的重要组成成分,由于其充分考虑时序数据的长期依赖关系,能够很好地处理时序数据,如今在语音识别、机器翻译、推荐系统以及数据预测等方面都有了很好地应用[6]。
综上可知,深度学习的不断发展,为水质预测领域发展提供了新的预测思路以及巨大的机遇。但总体而言,在水质预测领域,深度学习方法的应用仍处于初步探索阶段。本文提出了一种基于深度学习的门控型循环神经网络水质预测模型,为精确地预测水质参数提供了新的方法与模型。
1 模型介绍
1.1 循环神经网络
循环神经网络RNN(recurrent neural network)是一种前馈型神经网络[7],通过引入状态变量,实现对时序数据中过去信息的存储。其隐含层的输入由两部分组成,既包括了本时刻上一网络层的输出,也包含了上一时刻隐含层的输出,即隐含层节点之间是相互连接的,当前隐含层输出受上一层影响,通过隐含层的存储单元,可实现对前面信息的记忆。因此,循环神经网络能够很好地对时序数据进行处理,循环神经网络的结构如图1所示。
图1 循环神经网络结构图Fig.1 Recurrent neural network structure
循环神经网络(RNN)的训练时前向传播的过程,如下式所示:
式中:Ht、Ot分别为隐含层和输出层的输出值;Wxh、Whh、Who分别为输入层到隐含层、上一隐含层到当前隐含层以及隐含层到输出层的连接权值;bh为隐含层偏置;bo为输出层偏置。
由式(1)可知,循环神经网络(RNN)的隐含层输出主要由相邻时间步的隐含状态变量Ht和Ht-1组成,与多层感知机(MLP)相比增加了Ht-1Whh一项,其隐含状态变量Ht捕捉存储了截至当前时间步的时序数据中的历史信息,对时序数据的相互依赖性有了很好的处理。
RNN 网络隐含层的结构特点使得RNN 网络能够对历史时刻信息进行“记忆”并影响本时刻的输出,有效地解决了时序数据存在的长期依赖的问题。但在训练过程中,RNN 网络利用随机梯度下降算法基于时间反向传播迭代优化参数时,如果时间步数较大或较小时,RNN 的梯度较容易出现衰减或爆炸的问题[8]。
1.2 门控型循环神经网络
门控型循环神经网络(gate recurrent neural network)是一种新型RNN 优化网络模型[9],它比当前流行的LSTM 网络缺少一个遗忘门,因此更容易收敛,目前也有了广泛的应用[10-12]。它通过3 个特殊的门结构来控制数据信息的流动,有效地解决了RNN 容易出现的梯度衰减或爆炸的问题。隐含层中的门控循环单元GRU(gate recurrent unit)通过引入重置门(reset gate)和更新门(update gate),来改变循环神经网络中隐含层状态变量的计算方式,实现对传统RNN 网络的优化。门控循环单元结构如图2所示。
图2 门控循环单元结构图Fig.2 Structure of the gated recurrent unit
其中,重置门Rt实现了对上一时刻状态信息的忽略程度的控制,其值越小则代表对上一时刻忽略的越多。更新门Zt实现了对上一时刻状态信息传递到当前时刻的程度的控制。其值越大则代表上一时刻的状态信息带入的越多。重置门用于捕捉时序数据中存在的短期依赖关系。更新门用于捕捉时序数据中存在的长期依赖关系。
GRU 循环网络训练时前向传播的计算步骤如下:
步骤一计算重置门的输出值,上一时刻隐含状态向量Ht-1和当前时刻输入值Xt一起输入到重置门,得到一个0~1 的重置门输出值,值越大,信息保留的越多。计算公式如式(3)所示;
步骤二计算更新门的输出值以及候选隐藏状态变量,当前输入Xt和上一时刻隐含状态Ht-1进入更新门的输出0~1 的数值,同时通过tanh 层创建一个候选隐含状态,计算公式如式(4)、式(5)所示;
步骤三计算当前时刻的隐含状态向量,将更新门输出值作为权重向量,候选隐含状态向量和上一时刻隐含状态向量通过加权平均得到当前时刻的隐含状态向量Ht,计算公式如式(6)所示;
步骤四计算网络输出值,将当前时刻隐含状态向量加权与输出层偏置相加,再共同输出最终值Yt,计算公式如式(7)所示。
式 中:σ 为激活函数;Wxr、Whr、Wxz、Whz分别为输入层到重置门、隐含层到重置门、输入层到重置门、隐含层到更新门的连接权值;br、bz分别为重置门和更新门的偏置;“◦”为矩阵按位相乘。从GRU 网络的前向传播过程可以看出,训练网络需要学习的参数主要有重置门、更新门以及输出层的连接权值及其偏置。
GRU 网络的训练过程,主要是结合实际情况,确定GRU 网络的最佳网络结构(即:输入神经元个数和隐含层神经元个数,以及隐含层层数),选择合适的激活函数和恰当的优化算法;根据误差损失函数,通过随机梯度下降算法,依次迭代更新直到误差损失收敛,获得最优参数;最后根据最优参数建立GRU 网络模型。流程如图3所示。
图3 GRU 网络训练流程Fig.3 GRU network training flow chart
2 水质预测
2.1 数据描述
本次实验仿真的水质数据,来自于上海市主要水源地上海金泽水库的2017年5月31日至2017年12月30日主要水质指标化学需氧量(COD)的真实监测数据,并按每分钟采集221 天的COD 水质数据,共有300520 个监测值数据。将数据集中前210天的监测值数据作为训练集,后3 天的监测值数据定义为测试集,通过训练集训练预测模型,利用测试集测试模型的性能。
图4 原始COD 数据测量值图Fig.4 Original COD data measurement value map
2.2 数据处理
由于本次实验仿真的数据直接来源于上海市金泽水库现场传感器采集的实测数据,因此会受到测量环境因素以及测量仪器的影响,如果直接进行实验仿真,可能存在较大的误差。为了保证实验仿真的科学性和预测模型的精确性,所以必须对原始监测数据进行一系列的处理,再利用处理后的数据进行模型训练以及实验仿真。
2.2.1 缺失值处理
为了保证数据集的连续性,减小不确定性,增强模型输出的可靠性,本文利用K 最近距离邻法对缺失值进行填充。
2.2.2 异常值处理
为了减小模型预测误差,增强模型预测精度,对于异常的水质数据,先利用阈值筛选法检测异常值的位置,再利用K 最近距离邻法对异常值进行替换清洗。
2.2.3 数据标准化
为了使得循环神经网络反向传播更容易收敛,对原始水质数据进行离差标准化,使数据映射到[0,1]区间,计算公式如下:
式中:xs为原始水质数据标准化后的数据值;x 为原始水质数据;xmax和xmin分别为原始水质数据中的最大值和最小值。
2.3 评价指标
本文采用平均绝对百分比误差MAPE、均方根误差RMSE 2 个指标来衡量与评估各种水质预测模型的性能,其计算公式如下:
式中:n 代表水质数据个数;xi代表第i 个水质数据的真实值;pi代表第i 个水质数据的预测值;MAPE、RMSE 代表水质预测模型的预测精度,其值越小,模型预测精度越高,预测模型性能越好。
2.4 实验仿真
本次实验基于Python 语言,在Python 库函数statsmodels、sklearn、thensorflow 以及keras 等的基础上,分别搭建并训练经典水质4 种预测模型。其中有基于统计理论的自回归移动平均模型(ARIMA)、基于传统机器学习的支持向量回归模型(SVR)、基于深度学习的传统循环神经网络模型(RNN)以及门控型循环神经网络(GRU)4 种水质预测模型,实现对水质数据的预测,通过交叉验证以及不断地试错,探究这几种预测模型的最佳参数,同时对比验证这几种预测模型在水质预测领域不同的性能表现。
基于统计理论的ARIMA 预测模型中,由于原始数据集时间间隔为1 min,数据集过大可能造成模型处理效率低,对原始数据进行每3 h 的重采样形成1707 个数据点,最终通过ACF、PACF 图确定模型的最佳参数,自回归项数p 为1,差分阶数d 为1,移动平均项数q 为1,预测结果如图5所示。
图5 基于ARIMA 模型的COD 预测结果图Fig.5 COD prediction results based on ARIMA model
基于传统机器学习的SVR 预测模型中,模型输入同样选择时间间隔为3 h 的数据进行输入训练,核函数选为径向基函数,惩罚因子C 为1,核函数参数gama 为0.1,预测结果如图6所示。
图6 基于SVR 模型的COD 预测结果图Fig.6 COD prediction results based on SVR model
基于深度学习的RNN和GRU 网络模型中,模型训练集的输入形式为滞后10 个数据点组成的10维向量,输出形式为1 维标量,网络包含1 个输入层、1 个输出层以及2 个隐含层,2 个隐含层存储单元个数为分别为50和100,激活函数为tanh 函数。两种模型的水质预测结果图分别如图7、图8所示。
图7 基于SimpeRNN 模型的COD 预测结果图Fig.7 COD prediction results based on SimpeRNN model
图8 基于GRU 模型的COD 预测结果图Fig.8 COD prediction results based on GRU model
表1 四种模型预测结果性能指标Tab.1 Performance index of prediction results of four models
通过对比4 种模型对COD 水质数据不同的预测结果,可以看出,基于统计理论的时间序列预测法ARIMA(1,1,1)模型的预测精度最差,RSME 达到了0.2522,MAPE 也达到了0.73%,只能粗略地估算出COD 水质数据具有稍微下降的趋势,在水质预测方面性能较差;基于传统机器学习的SVR 预测模型在本次水质预测方面性能也不是很高,RSME 仅为0.155,MAPE 也为0.58%,能够大体的拟合真实数据。两种基于深度学习的RNN 模型以及GRU 模型在水质预测方面都有较好的表现,RNN 模型的RSME 仅为0.098,MAPE 也只有0.26%,GRU 模型表现更好,RMSE 为0.0641,MAPE 为0.18%,具有更好的水质预测精度,可以很好地逼近水质数据真实值,是一种性能较高的水质预测模型。
3 结语
针对水环境水质参数具有非线性、随机性以及依赖性等特点,本文提出了一种基于深度学习的门控型循环神经网络的水质预测模型。通过构建最佳网络结构,探寻最佳网络参数,建立了基于GRU 网络的水质预测模型,很好地将深度学习理论引入到水质预测管理领域中。实验仿真表明,与传统的ARIMA 模型和SVR 模型相比,基于GRU 网络的水质预测模型具有更小的RSME 与MAPE 值,能够显著的提高水质预测的精确度,可以很好地逼近水质数据真实值,是一种新型的高精度水质预测模型。
根据目前的工作,对于水质预测领域,笔者认为可以进一步考虑建立结合多种因素指标共同影响下的水质参数预测,进一步提高模型的预测精度;同时也可以寻求更有效参数优化算法对GRU网络进行优化,提高模型的预测性能,也可以将GRU模型进行改进推广以适用于更多数据预测领域。