[0004] 针对供水管网的高度复杂非线性特性及现有技术方法的不足,本发明提出一种基于并行LSTM(长短期记忆神经网络)串联DNN(深度神经网络)的深度学习模型进行管网压力预测,提高预测精度。
[0005] 由于供水管网的状态量和控制量是两种不同类型的特征信息,倘若简单采用一个LSTM模型进行特征提取,两类特征信息对模型的不同影响将无法凸显,为此,将单一LSTM模型扩展为并行LSTM模型,分别提取、学习两类不同的特征信息。又由于LSTM擅长处理基于时间序列的数据,DNN适用于将特征信息映射到更高的空间,利用LSTM与DNN各自的优点,将LSTM与DNN联合起来作为一个统一的架构,实现优势互补,即将两路LSTM的输出结果融合后通过DNN输出,实现对下一时刻的测点压力进行预测。由此,本发明提供了一种基于并行LSTM串联DNN深度学习模型的供水管网压力预测方法。
[0006] 为实现高抗干扰性、高预测精度高目的,本发明采取以下步骤:
[0007] 1、确定输入输出项,建立基于并行LSTM串联DNN的预测模型
[0008] 鉴于供水管网系统是一个多输入多输出的非线性时滞系统,选择较长的历史状态量(测点压力信息)[x(t),x(t‑1),…,x(t‑ns)]和控制量(入水口压力和流量)[u(t‑1),u(t‑2),…,u(t‑nu)]作为输入项,以补偿“供水管网状态量仅部分可知”的不足;确定输出项为压力测点t+1时刻的输出ym(t+1)。这里,ns、nu为历史时间窗口。
[0009] 建立基于并行LSTM串联DNN的深度学习模型:
[0010] a.分别采用LSTM模型对状态量[x(t),x(t‑1),…,x(t‑ns)]和控制量[u(t‑1),u(t‑2),…,u(t‑nu)]进行特征提取和学习。 分别为供水管网的状态变量和控制变量经LSTM模型的输出值。
[0011] b.采用深层神经网络DNN模型将 进行融合处理,得到输出ym(t+1),可用式(1)描述:
[0012]
[0013] ym(t+1)为深度学习模型的预测输出。[]表示将两种在时间维度上具有相同维数的矩进行合并,H()为DNN模型的激活函数。WDNN、bDNN分别为DNN模型的权值与阈值。
[0014] 2、数据预处理,建立压力预测数据库
[0015] (1)数据预处理
[0016] 数据补缺:针对来自SCADA系统现场采集的数据存在数据丢失问题,采用线性、抛物线或三次曲线插值补全缺失的数据。如缺失数据过多,则放弃这一时段的历史数据。
[0017] 数据去噪:针对现场数据存在大量噪声干扰问题,采用小波变换去除噪声。小波变换能在时域和频域进行局部化信号分析,可实现多分辨率分析,判断噪声与突变信号,确定有效信号。
[0018] 无量纲处理:针对供水管网压力和流量具有不同的物理量纲和数量级问题,对数据作归一化处理,即将输入与输出都限制在[0,l],使它们以相同的等级参与模型训练与预测,具体公式如(2)所示
[0019]
[0020] 式中,X表示需归一化数据,Max(X)、Min(X)分别代表最小值和最大值,Xnor代表归一化后的数据。
[0021] (2)建立压力预测数据库
[0022] 建立供水管网压力预测数据库:数据项除了时间戳、节点(监测点或入口)外,包括:(1)测点的压力、流量值,入口的压力、流量值等,从SCADA中实时抽取/清洗/转换,并存储,作为模型的输入项;(2)测点的预测压力,来自模型预测,是模型的输出项;(3)误差数据项,用来统计分析预测精度。
[0023] 3、训练预测模型
[0024] (1)确定训练样本
[0025] 围绕大型供水管网的DMA分区,或者小型供水管网,确定输入样本为{X(ns),U(nu),Y},其中X(ns)为i维状态变量,U(nu)为2j维控制变量,i为监测点数,j为入口数,。
[0026] 为保证训练,输入样本数据时间跨度必须保证Max(ns,nu)个时段连续,一般须保证1小时以上的连续有效的{X(ns),U(nu),Y}数据,有效样本不少于12x24x15=4320个。
[0027] (2)确定模型基本结构,设置其余参数初值,开始训练模型
[0028] 根据经验或者初步调参的效果确定参数的取值范围。nu、ns∈{1,2,…12},时间步长t=5分钟,即历史信息最大跨度为60分钟,由于较长的历史信息会使输入冗余,且对提高预测精度并无多大影响;隐含层个数Layers∈{1,2,…,5},增加隐含层的层数可以提高特征提取与学习能力,但多层会使模型变得越来越复杂;相应神经元数量Neurons∈[0,300],神经元的数量决定了网络训练的非线性程度。
[0029] 为了防止深度学习模型出现过拟合现象,本发明在每一层引入Dropout后会随机地更新网络参数,增加模型的泛化能力。Dropout技术具体做法是在模型训练时随机抛弃一定比例的隐含层节点(但权重会保存,仅暂时不进行更新),而在模型使用时恢复全连接。节点抛弃比例dropout rate∈[01,0.5],对于节点抛弃比例的选取,如果比例太低则起不到效果,比例太高则会导致模型的欠学习。
[0030] 本发明采用小批量(Mini‑batch)梯度下降法来优化模型中的各个参数,这种方法把数据分为若干个批,按批(batch)来更新参数,这样,一个批中的一组数据共同决定了参数的更新,减少了随机性和计算量。小批量梯度下降法的样本大小Mini_batch∈[5,50]。训练轮数epoch∈[100,200],训练次数太少达不到训练效果,过多并不会提高预测精度反而增加训练时间。
[0031] 激活函数在模型中两个部分使用,一是用于输入值计算LSTM层,还有用于特征融合后的输出层。传统的饱和激活函数,如sigmoid和tanh会带来梯度消失问题,而ReLU等非饱和激活函数相对于饱和激活函数,能够加快模型收敛速度;使用ReLU的深度模型在有监督训练之前不需要预训练就能得到相近甚至更好的结果。本发明激活函数选取ReLU。
[0032] (3)训练迭代
[0033] 在模型训练时,一般通过模型的预测值 和实测值y求出均方根作为模型误差,如公式(3)所示。其中,n是输出层神经元节点个数。
[0034]
[0035] 当loss<误差目标ε∈[0.2%,0.5%],达到训练要求,迭代结束。当误差较大时调整模型的各个参数,若误差不符合收敛条件且不再减小,则改变模型基本结构,即重新给定一个{nu,ns,Layers},再根据各个基本结构调节其他参数,重新迭代训练。
[0036] 4、在线压力预测
[0037] 将压力预测数据库中测点的压力、流量值,入口的压力、流量值等连续有效数据,依次输入到模型,模型则给出t+1时刻的压力预测值ym(t+1),可以提前约t=5分钟提供给调度人员参考。
[0038] 同时,将压力预测值ym(t+1)存入数据库,与t+1时刻的实测值y(t+1)进行比较,计算Δ=ym(t+1)‑y(t+1)。设允许预测误差为σ∈[5%,10%],若连续三次Δ>σ*y(t+1),则返回步骤3,重新训练模型,用新近数据,更新模型参数。
[0039] 本发明的有益效果:本发明提出一种基于并行LSTM串联DNN的深度学习模型,实现LSTM和DNN的优势互补,并用Dropout技术防止模型过拟合,Relu激活函数加快模型收敛速度,小批量梯度下降法减少了随机性和计算量,选择RMSprop作为随机梯度下降法的优化算法,提高了供水管网压力预测方法的抗干扰性和精度。