基于并行LSTM串联DNN的供水管网压力预测方法与流程

文档序号:15853608发布日期:2018-11-07 10:34阅读:727来源:国知局
基于并行LSTM串联DNN的供水管网压力预测方法与流程
本发明属于城市供水领域,具体是一种基于并行lstm串联dnn的供水管网压力预测方法。
背景技术
供水管网系统是一个结构复杂、规模庞大、用水随机性强的非线性动态系统,能否快速准确地模拟和预测出管网的运行工况,是进行供水管网优化调度的关键。供水管网生产运行中,调度人员一般以压力实测数据来观察管网的运行状况。因此,对监测点压力进行预测分析,有助于调度人员提前预判,做好生产指挥。目前供水管网压力预测方法一般分为时间序列法、结构分析法和系统方法三大类。其中时间序列法包括移动平均法、指数平滑法、趋势外推法等;结构分析法包括回归分析法等;系统方法包括灰色预测、人工神经网络等。时间序列模型预测精度较好、数据处理简单,但是只能利用测点短期时序数据,并不适用于变化较大的情况;回归分析法模型简单、方便但受多种因素综合影响时难以选择;系统方法具有自学习能力、非线性处理等优点,但是存在模型复杂、训练时间长等问题。上述方法均易受噪声干扰,预测精度难以保证。技术实现要素:针对供水管网的高度复杂非线性特性及现有技术方法的不足,本发明提出一种基于并行lstm(长短期记忆神经网络)串联dnn(深度神经网络)的深度学习模型进行管网压力预测,提高预测精度。由于供水管网的状态量和控制量是两种不同类型的特征信息,倘若简单采用一个lstm模型进行特征提取,两类特征信息对模型的不同影响将无法凸显,为此,将单一lstm模型扩展为并行lstm模型,分别提取、学习两类不同的特征信息。又由于lstm擅长处理基于时间序列的数据,dnn适用于将特征信息映射到更高的空间,利用lstm与dnn各自的优点,将lstm与dnn联合起来作为一个统一的架构,实现优势互补,即将两路lstm的输出结果融合后通过dnn输出,实现对下一时刻的测点压力进行预测。由此,本发明提供了一种基于并行lstm串联dnn深度学习模型的供水管网压力预测方法。为实现高抗干扰性、高预测精度高目的,本发明采取以下步骤:1、确定输入输出项,建立基于并行lstm串联dnn的预测模型鉴于供水管网系统是一个多输入多输出的非线性时滞系统,选择较长的历史状态量(测点压力信息)[x(t),x(t-1),…,x(t-ns)]和控制量(入水口压力和流量)[u(t-1),u(t-2),…,u(t-nu)]作为输入项,以补偿“供水管网状态量仅部分可知”的不足;确定输出项为压力测点t+1时刻的输出ym(t+1)。这里,ns、nu为历史时间窗口。建立基于并行lstm串联dnn的深度学习模型:a.分别采用lstm模型对状态量[x(t),x(t-1),…,x(t-ns)]和控制量[u(t-1),u(t-2),…,u(t-nu)]进行特征提取和学习。分别为供水管网的状态变量和控制变量经lstm模型的输出值。b.采用深层神经网络dnn模型将进行融合处理,得到输出ym(t+1),可用式(1)描述:ym(t+1)为深度学习模型的预测输出。[]表示将两种在时间维度上具有相同维数的矩进行合并,h()为dnn模型的激活函数。wdnn、bdnn分别为dnn模型的权值与阈值。2、数据预处理,建立压力预测数据库(1)数据预处理数据补缺:针对来自scada系统现场采集的数据存在数据丢失问题,采用线性、抛物线或三次曲线插值补全缺失的数据。如缺失数据过多,则放弃这一时段的历史数据。数据去噪:针对现场数据存在大量噪声干扰问题,采用小波变换去除噪声。小波变换能在时域和频域进行局部化信号分析,可实现多分辨率分析,判断噪声与突变信号,确定有效信号。无量纲处理:针对供水管网压力和流量具有不同的物理量纲和数量级问题,对数据作归一化处理,即将输入与输出都限制在[0,l],使它们以相同的等级参与模型训练与预测,具体公式如(2)所示式中,x表示需归一化数据,max(x)、min(x)分别代表最小值和最大值,xnor代表归一化后的数据。(2)建立压力预测数据库建立供水管网压力预测数据库:数据项除了时间戳、节点(监测点或入口)外,包括:(1)测点的压力、流量值,入口的压力、流量值等,从scada中实时抽取/清洗/转换,并存储,作为模型的输入项;(2)测点的预测压力,来自模型预测,是模型的输出项;(3)误差数据项,用来统计分析预测精度。3、训练预测模型(1)确定训练样本围绕大型供水管网的dma分区,或者小型供水管网,确定输入样本为{x(ns),u(nu),y},其中x(ns)为i维状态变量,u(nu)为2j维控制变量,i为监测点数,j为入口数,。为保证训练,输入样本数据时间跨度必须保证max(ns,nu)个时段连续,一般须保证1小时以上的连续有效的{x(ns),u(nu),y}数据,有效样本不少于12x24x15=4320个。(2)确定模型基本结构,设置其余参数初值,开始训练模型根据经验或者初步调参的效果确定参数的取值范围。nu、ns∈{1,2,…12},时间步长t=5分钟,即历史信息最大跨度为60分钟,由于较长的历史信息会使输入冗余,且对提高预测精度并无多大影响;隐含层个数layers∈{1,2,…,5},增加隐含层的层数可以提高特征提取与学习能力,但多层会使模型变得越来越复杂;相应神经元数量neurons∈[0,300],神经元的数量决定了网络训练的非线性程度。为了防止深度学习模型出现过拟合现象,本发明在每一层引入dropout后会随机地更新网络参数,增加模型的泛化能力。dropout技术具体做法是在模型训练时随机抛弃一定比例的隐含层节点(但权重会保存,仅暂时不进行更新),而在模型使用时恢复全连接。节点抛弃比例dropoutrate∈[01,0.5],对于节点抛弃比例的选取,如果比例太低则起不到效果,比例太高则会导致模型的欠学习。本发明采用小批量(mini-batch)梯度下降法来优化模型中的各个参数,这种方法把数据分为若干个批,按批(batch)来更新参数,这样,一个批中的一组数据共同决定了参数的更新,减少了随机性和计算量。小批量梯度下降法的样本大小mini_batch∈[5,50]。训练轮数epoch∈[100,200],训练次数太少达不到训练效果,过多并不会提高预测精度反而增加训练时间。激活函数在模型中两个部分使用,一是用于输入值计算lstm层,还有用于特征融合后的输出层。传统的饱和激活函数,如sigmoid和tanh会带来梯度消失问题,而relu等非饱和激活函数相对于饱和激活函数,能够加快模型收敛速度;使用relu的深度模型在有监督训练之前不需要预训练就能得到相近甚至更好的结果。本发明激活函数选取relu。(3)训练迭代在模型训练时,一般通过模型的预测值和实测值y求出均方根作为模型误差,如公式(3)所示。其中,n是输出层神经元节点个数。当loss<误差目标ε∈[0.2%,0.5%],达到训练要求,迭代结束。当误差较大时调整模型的各个参数,若误差不符合收敛条件且不再减小,则改变模型基本结构,即重新给定一个{nu,ns,layers},再根据各个基本结构调节其他参数,重新迭代训练。4、在线压力预测将压力预测数据库中测点的压力、流量值,入口的压力、流量值等连续有效数据,依次输入到模型,模型则给出t+1时刻的压力预测值ym(t+1),可以提前约t=5分钟提供给调度人员参考。同时,将压力预测值ym(t+1)存入数据库,与t+1时刻的实测值y(t+1)进行比较,计算δ=ym(t+1)-y(t+1)。设允许预测误差为σ∈[5%,10%],若连续三次δ>σ*y(t+1),则返回步骤3,重新训练模型,用新近数据,更新模型参数。本发明的有益效果:本发明提出一种基于并行lstm串联dnn的深度学习模型,实现lstm和dnn的优势互补,并用dropout技术防止模型过拟合,relu激活函数加快模型收敛速度,小批量梯度下降法减少了随机性和计算量,选择rmsprop作为随机梯度下降法的优化算法,提高了供水管网压力预测方法的抗干扰性和精度。附图说明图1:基于并行lstm串联dnn的预测模型;图2:供水管网监测点压力预测系统应用框架。具体实施方式为使本发明实现的技术手段与创作特征易于明白,下面结合附图和实施例,对本发明的实现方式进一步详述,并不限制本发明的权利范围。现以某市y区供水管网为实例,该区面积约合106.7km2,日供水量约为150000m3,监测点包括入水口流量计压力测点、管网压力测点、出水口流量测点、中间管道测点。具体的管网内部重要压力监测点信息见表1表1管网17个重要压力监测点信息1、确定输入输出项,建立基于并行lstm串联dnn的预测模型鉴于供水管网系统是一个多输入多输出的非线性时滞系统,选择较长的历史状态量[x(t),x(t-1),…,x(t-ns)]和控制量[u(t-1),u(t-2),…,u(t-nu)]作为输入项,以补偿“供水管网状态量仅部分可知”的不足;确定输出项为压力测点t+1时刻的输出ym(t+1)。其中,ns、nu为历史时间窗口。这里,以该市y区供水管网系统的4个入水口的供水压力、供水量的历史控制信息和17个测点压力历史和当前状态信息为输入项,以17个监测点下一时刻的压力作为输出项。建立基于并行lstm串联dnn的深度学习模型(如图1所示):a.分别采用lstm模型对状态量[x(t),x(t-1),…,x(t-ns)]和控制量[u(t-1),u(t-2),…,u(t-nu)]进行特征提取和学习。分别为供水管网的状态变量和控制变量经lstm模型的输出值。b.采用深层神经网络dnn模型将进行融合处理,得到输出ym(t+1),可用式(4)描述:ym(t+1)为深度学习模型的预测输出。[]表示将两种在时间维度上具有相同维数的矩进行合并,h()为dnn模型的激活函数。wdnn、bdnn分别为dnn模型的权值与阈值。2、数据预处理,建立压力预测数据库(1)数据预处理数据补缺:针对来自scada系统现场采集的数据存在数据丢失问题,采用线性、抛物线或三次曲线插值补全缺失的数据。如缺失数据过多,则放弃这一时段的历史数据。数据去噪:针对现场数据存在大量噪声干扰问题,采用小波变换去除噪声。小波变换能在时域和频域进行局部化信号分析,可实现多分辨率分析,判断噪声与突变信号,确定有效信号。无量纲处理:针对供水管网压力和流量具有不同的物理量纲和数量级问题,对数据作归一化处理,即将输入与输出都限制在[0,l],使它们以相同的等级参与模型训练与预测,具体公式如(5)所示式中,x表示需归一化数据,max(x)、min(x)分别代表最小值和最大值,xnor代表归一化后的数据。(2)建立压力预测数据库建立供水管网压力预测数据库:数据项除了时间戳、节点(监测点或入口)外,包括:(1)测点的压力、流量值,入口的压力、流量值等,从scada中实时抽取/清洗/转换,并存储,作为模型的输入项;(2)测点的预测压力,来自模型预测,是模型的输出项;(3)误差数据项,用来统计分析预测精度。3、训练预测模型(1)确定训练样本围绕某市y区供水管网,确定输入样本为为{x(ns),u(nu),y},其中x(ns)为17维状态变量,u(nu)为8维控制变量,17个监测点,4个入口,t为时间步长。为保证训练,输入样本数据时间跨度必须保证max(ns,nu)个时段连续,一般须保证1小时以上的连续有效的{x(ns),u(nu),y}数据,有效样本不少于12x24x15=4320个这里,样本数据集为2016年5月27日至2016年6月28日,共35天的数据,采样间隔为5分钟,连续有效,样本大小为10080。其中5月28日6月至26日的数据用于训练。(2)确定模型基本结构,设置其余参数初值,开始训练模型根据经验或者初步调参的效果确定参数的取值范围。nu、ns∈{1,2,…12},时间步长t=5分钟,即历史信息最大跨度为60分钟,由于较长的历史信息会使输入冗余,且对提高预测精度并无多大影响;lstm的隐含层个数layer=2,相应神经元数量neurons=100,dnn的layer=2,相应neurons=96。为了防止深度学习模型出现过拟合现象,本发明在每一层引入dropout后会随机地更新网络参数,增加模型的泛化能力。本实施例中,正则化的节点抛弃比例dropoutrate=0.3。本实施例采用小批量(mini-batch)梯度下降法来优化模型中的各个参数,小批量梯度下降法的样本大小mini_batch=32,训练轮数epoch=100。本实施例激活函数选取relu。(3)训练迭代在模型训练时,一般通过模型的预测值和实测值y求出均方根作为模型误差,如公式(6)所示。其中,n是输出层神经元节点个数。当loss<误差目标ε=0.3%,达到训练要求,迭代结束。当误差较大时调整模型的各个参数,若误差不符合收敛条件且不再减小,则改变模型基本结构,即重新给定一个{nu,ns,layers},再根据各个基本结构调节其他参数,重新迭代训练。4、在线压力预测压力预测数据库中测点的压力、流量值,入口的压力、流量值等连续有效数据,依次输入到模型,模型则给出t+1时刻的压力预测值ym(t+1),可以提前约t=5分钟提供给调度人员参考。同时,将压力预测值ym(t+1)存入数据库,与t+1时刻的实测值y(t+1)进行比较,计算δ=ym(t+1)-y(t+1)。设允许预测误差为σ=5%,若连续三次δ>σ*y(t+1),则启动模型重新训练(步骤3),用新近数据,更新模型参数。本实施例将6月27日至6月28日的数据用于测试,通过rmse(均方根误差)和mape(平均绝对百分误差)作为评价性能指标,表2给出各个监测点性能指标,具有很高的预测精度。表2各监测点预测性能指标为了与传统模型进行比较,分别试算了bp神经网络、svm支持向量机、varx、narx,得到了与传统预测方法比较结果(见表3)。表3与传统预测方法的比较预测方法bpsvmvarxnarx本发明方法rmse*100(各测点平均值)0.560.430.300.280.17由表3得,基于并行lstm串行dnn深度学习模型预测结果要明显好于传统预测模型。本发明方法,按照图2所示的供水管网监测点压力预测系统应用框架,可用于实际生产。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1