基于串联长短期记忆循环神经网络的供热负荷预测方法与流程

文档序号:11217044阅读:646来源:国知局
基于串联长短期记忆循环神经网络的供热负荷预测方法与流程

本发明属于采暖供热负荷预测领域,具体涉及一种基于串联长短期记忆循环神经网络的供热负荷预测方法。



背景技术:

燃煤热电联产机组的主要特征是发电机组既生产电能,又利用汽轮发电机做过功的蒸汽对用户进行供热。因此,在北方的采暖季中,燃煤热电联产机组主要承担着对特定地区内居民集中供暖的主要工作。目前,国家规定的热电联产电厂的运行原则是“以热定电”,即:热电厂应根据热负荷的需要,确定最佳运行方案,并以满足热负荷的需要为主要目标。地区电力管理部门在制定热电厂电力调度曲线时,必须充分考虑供热负荷曲线和节能因素,不得以电量指标限制热电厂对外供热。因此,对地区采暖供热负荷(简称“供热负荷”)进行准确预测,既有助于电网公司合理安排电厂发电,优化分配当地电源资源,提升机网协调水平,也有助于电厂优化发电管理,提高发电效率。

供热负荷主要受当地气温、气候、风速等天气因素影响,且具有数据量大、随机性高、变化快的特点。目前,已有供热负荷预测的方法主要有回归、时间序列,小波分析、灰色模型、bp神经网络预测法以及支持向量机法等。这些方法都属于浅层学习方法,无法深入挖掘供热负荷数据的随机性和非线性特征。

长短期记忆循环神经网络(以下简称“lstm”)是近些年深度学习领域中的一项重要研究成果。lstm的隐藏层输出不仅与当前的末端神经元输出有关,同时还作为下一个时间周期的隐藏层的输入进而影响未来的输出结果。此外,与传统rnn不同,lstm通过引入记忆神经元(它的主要特征是设置了输入门、遗忘门和输出门三个判断条件)解决了训练时间周期过长时反向传播的梯度消失问题。因此,lstm能够对长周期的时间序列数据进行深入挖掘。目前,这种神经网络已经在自然语言处理和机器翻译方面表现出了良好的效果。

参数寻优的自适应矩估计算法(adam)能够对传统的梯度下降算法进行优化,它通过估计梯度的期望值避免了梯度本身的随机游走,也降低了模型收敛到局部最优解的风险。同时,adam通过对每一次迭代的学习步长设置上限,使每一步迭代过程中参数的取值比较稳定。



技术实现要素:

本发明为了解决上述问题,提出了一种基于串联长短期记忆循环神经网络(concatenatedlstms)的供热负荷预测方法,本发明能够解决传统供热预测方法难以深入挖掘数据使预测精度不高的问题。

为了实现上述目的,本发明采用如下技术方案:

一种基于串联长短期记忆循环神经网络的供热负荷预测方法,包括以下步骤:

(1)选取给定时间段的气温气候、供热量数据,构建样本数据集,对样本数据集中的输入数据和输出数据分别进行标准化处理;

(2)将输入数据分成两部分,使其分别进入两个独立的长短期记忆循环神经网络(lstms),然后对其进行合并,输出数据再进入下一层长短期记忆循环神经网络,最后进入两个全连接层;

(3)对构建的串联长短期记忆循环网络进行训练,利用参数寻优的自适应矩估计算法进行优化;

(4)将待预测数据输入串联长短期记忆循环网络,计算得出供热负荷预测结果。

所述步骤(1)中,对选取的给定时间段的样本数据进行整理、提取,形成输入、输出数据集,其中输入数据包括:各个时点下的气温、气压、风速、湿度数据和供热负荷数据;输出数据是滞后于输入数据时间若干个周期后的输出数据。

所述步骤(1)中,数据集中的输入数据和输出数据在结构上采取矩阵的形式。

所述步骤(1)中,对输入和输出数据使用最小最大值归一化方法进行归一化,同时使归一化后的结果映射到[0,1]以内。

所述步骤(2)中,将归一化后的数据分成两组,气温、气压、风速和湿度数据为一组,供热负荷为另一组,构建concatenatedlstms。

所述步骤(2)中,lstm对神经元引入输入门、遗忘门和输出门三个判断条件,输入门表示允许信息加入到记忆单元中的比例;遗忘门表示保留当前状态节点中存储的历史信息的比例;输出门表示将当前状态节点的信息作为输出的比例。

所述步骤(2)中,lstm的致密层的激活函数选择relu函数。

所述步骤(3)中,训练过程中,选取均方差为目标损失函数,选取adam作为梯度下降的优化算法。

所述步骤(3)中,adam具体过程包括:

(3-1)计算各个时刻的损失函数计算该时刻的梯度;

(3-2)计算一阶矩估计和二阶矩估计,并对其进行无偏修正;

(3-3)更新相应的参数。

所述步骤(4)中,归一化待预测数据,并将其输入到训练得出的串联短期记忆神经网络层中计算出归一化的预测结果,计算出归一化的预测结果。

与现有技术相比,本发明的有益效果为:

1、将lstm应用于供热负荷分析,有助于利用神经网络的多隐层神经元实现对大数据的深度挖掘;同时由于lstm能够通过输入门、遗忘门和记忆门来控制历史信息的取舍,解决了参数优化的反向传播过程中梯度消失问题,促进了参数的收敛,提高了数据预测的准确性和预测的速度,也优化了系统资源的使用。最后,在本lstm模型中的输出门表达式使用了t时刻下的状态信息ct,这样可以在对输出值进行判断时使用最新的状态信息,进一步提高准确率。

2、运用adam能够对传统的梯度下降算法进行优化,它通过估计梯度的期望值避免了梯度本身的随机游走,也降低了模型收敛到局部最优解的风险。同时,adam通过对每一次迭代的学习步长设置上限,使每一步迭代过程中参数的取值比较稳定,避免了梯度爆炸的问题。

3、设计的concatenatedlstms能够有效地甄别输入数据,加速学习速度,提高学习效率,提高预测精度。

附图说明

构成本申请的一部分的说明书附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。

图1是本发明的concatenatedlstms示意图;

图2是本发明的供热负荷预测流程示意图;

图3是本发明的lstm神经元结构图。

具体实施方式:

下面结合附图与实施例对本发明作进一步说明。

应该指出,以下详细说明都是例示性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。

需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。

正如背景技术所介绍的,现有技术中存在传统供热预测方法难以深入挖掘数据使预测精度不高的不足,为了解决如上的技术问题,本申请提出了一种基于concatenatedlstms的供热负荷预测方法。

一种基于concatenatedlstm和adam优化的供热负荷预测方法,其特征在于包括以下步骤:

步骤一、选取特定地区,收集气温气候、供热量数据,构建样本数据集;

步骤二、对样本中的输入数据和输出数据分别进行标准化处理;

步骤三、将输入数据分成两部分,使其分别进入两个独立的lstm神经网络,然后对两个lstm进行合并,输出数据再进入下一层lstm,最后进入两个全连接层;

步骤四:将待预测数据输入concatenatedlstms,计算得出供热负荷预测结果。

步骤一具体是对选取的给定时间段的样本数据进行整理、提取,形成输入、输出数据集。其中输入数据包括:某个时点下的气温、气压、风速、湿度数据和供热负荷数据;输出数据是滞后于输入数据时间n个周期后的输出数据。输入输出数据在结构上采取矩阵的形式。

步骤二具体是对输入和输出数据使用最小最大值归一化方法进行归一化,同时使归一化后的结果映射到[0,1]以内。归一化的目的是消除输入数据量纲差异对预测结果产生的影响。

最小最大值归一化方法的函数可以表示为:

步骤三具体是将步骤二中的归一化后数据按照(气温、气压、风速、湿度数据)和(供热负荷)分成两组输入数据,构建concatenatedlstms。

其中:lstm通过对神经元引入输入门、遗忘门和输出门三个判断条件,解决了时间步长过长时反向传播的梯度消失问题。其中:输入门表示允许信息加入到记忆单元中的比例;遗忘门表示保留当前状态节点中存储的历史信息的比例;输出门表示将当前状态节点的信息作为输出的比例。三个门的激励函数使用sigmoid函数来表示,取值范围在0到1之间,表达式如下:

在lstm结构中,令输入序列为x=[x1,x2,x3,.....,xt],其中t表示时间序列的长度,xt表示t时刻的输入值;输出序列为y=[y1,y2,y3,.....,yt],yt表示t时刻的输出值;状态序列为c=[c1,c2,c3,.....,ct],ct表示t时刻的状态值。那么第t时刻,输出门it、遗忘门ft和输出门ot的表达式分别为:

it=sig(wi·[yt-1,ct-1,xt]+bi)(3)

ft=sig(wf·[yt-1,ct-1,xt]+bf)(4)

ot=sig(wo·[yt-1,ct,xt]+bo)(5)

这里,wi、wf、wo分别表示输入门、遗忘门和记忆门的权重矩阵;bi、bf、bo分别表示输入门、遗忘门和记忆门的常量;sig表示三个门的激励函数,见式(2)。此外,这里的输出门表达式使用了t时刻下的状态信息ct,这样可以在对输出值进行判断时使用最新的状态信息,提高准确率。

根据输入门、遗忘门和记忆门的表达式,可以得出ct和yt的表达式,如下:

其中:表示矩阵中元素的逐点相乘,wc和bc分别表示神经网络的状态权重和状态常量;tanh表示从状态节点到输出节点的激励函数,其表达式为:

tanh(x)=2sig(x)-1(8)

致密层(dense)的激活函数选择relu函数,表达式为:

f(x)=max(x,0)(9)

这里,使用致密层函数的优点是使训练过程中的梯度下降法收敛速度加快。

在步骤三的训练过程中,需要定义目标损失函数和梯度下降的优化算法。这里,选取均方差(meansquareerror)为目标损失函数,选取自适应矩估计adam作为梯度下降的优化算法。adam利用梯度的一阶矩估计和二阶矩估计动态调整每个参数的学习率,其优点主要在于通过估计梯度的期望值避免了梯度本身的随机游走,也降低了模型收敛到局部最优解的风险;同时,通过对每一次迭代的学习步长设置上限,使每一步迭代过程中参数的取值比较稳定,避免了梯度爆炸的问题。

adam算法主要过程是:

第一步:计算t时刻的梯度:

其中ft为t时刻的损失函数。

第二步:计算一阶矩估计:

mt=β1mt-1+(1-β1)gt(11)

这步的目的是加速学习过程同时摆脱局部最优解。

第三步:计算二阶矩估计:

这步的目的是为了估计e[g2],给出学习步长上限,避免出现过大的学习步长。由于因此,当参数是以方式更新时,学习步长的上限就是α。

第四步:计算无偏修正的一阶矩估计:

第五步:计算无偏修正的二阶矩估计:

第六步:更新参数:

步骤四具体是归一化待预测数据,并将其输入到训练得出的lstm中计算出归一化的预测结果,计算出归一化的预测结果。最后,对预测结果进行逆归一化,得出预测结论。

本申请的一种典型的实施方式中,步骤一:选取3个月的气温、气压、风速、湿度数据和供热数据,数据时间周期为每10分钟取一个数值;输出数据是滞后于输入数据时间144个周期的供热量。这是为了使模型可以一次性输出未来24小时的供热负荷数据。

步骤二:具体是对输入和输出数据使用最小最大值归一化方法进行归一化,同时使归一化后的结果映射到[0,1]以内。归一化公式选择如下:

特别地,需要对全部训练数据进行归一化,归一化的量纲是分别针对输入数据每一列的数值进行设定的。这是因为,每一列数据代表一个指标,只有针对属于本指标范围内的数据进行归一化才是有意义的。

步骤三:将步骤二中归一化完成后的数据划分成2类,分别为即:气温、气压、风速、湿度数据以及即:供热负荷。

分别针对两类输入数据设置lstm_1、lstm_2层输出维度为200;将以上两个层的神经网络进行合并输入到lstm_3层网络输出维度为100;将lstm_3与第一层致密层dense_1连接,同时为该致密层设置激活函数relu,且输出维度为32;将dense_1与第二层致密层dense_2连接,不设置激活函数,但输出维度与时间步长(见下段)一致。

输入数据的批处理数量(batch_size)设置为5。设置批处理数量的目的是为了分批传入训练数据来提高内存的使用效率。时间步长设置为6,步长设置的目的是为了利用lstm的记忆功能,从历史数据中提取规律性的特征信息。为了避免反向传播过程中的梯度消失问题,使用lstm的网络结构,其中:输入门、遗忘门和输出门三个的激励函数使用sigmoid函数来表示,取值范围在0到1之间,表达式如下:

在lstm结构中,令输入序列为x=[x1,x2,x3,.....,xt],其中t表示时间序列的长度,xt表示t时刻的输入值;输出序列为y=[y1,y2,y3,.....,yt],yt表示t时刻的输出值;状态序列为c=[c1,c2,c3,.....,ct],ct表示t时刻的状态值。那么第t时刻,输出门it、遗忘门ft和输出门ot的表达式分别为:

it=sig(wi·[yt-1,ct-1,xt]+bi)(18)

ft=sig(wf·[yt-1,ct-1,xt]+bf)(19)

ot=sig(wo·[yt-1,ct,xt]+bo)(20)

这里,wi、wf、wo分别表示输入门、遗忘门和记忆门的权重矩阵;bi、bf、bo分别表示输入门、遗忘门和记忆门的权重的常量;sig表示三个门的激励函数。此外,这里的输出门表达式使用了t时刻下的状态信息ct,这样可以是在对输出值进行判断时使用最新的状态信息,提高准确率。

根据输入门、遗忘门和记忆门的表达式,可以得出ct和yt的表达式,如下:

其中:表示矩阵中元素的逐点相乘,wc和bc分别表示计算当前状态节点时所用神经网络的状态权重和状态常量;tanh表示从状态节点到输出节点的激励函数,其表达式为:

tanh(x)=2sig(x)-1(23)

设定lstm的训练代数(epoch)为150次,同时在每一代结束后都对最后一个时间对状态信息cepoch进行记录,并传递至下一代训练直到完成所有训练。

在步骤三的训练过程中,选取均方差(meansquareerror)为目标损失函数,选取自适应矩估计(adam)算法作为梯度下降的优化算法,具体步骤是:

设置初始值:α=0.001,β1=0.9,β2=0.999,ε=10-8

第一步:计算t时刻的梯度:

其中ft为t时刻的损失函数。

第二步:计算一阶矩估计:

mt=β1mt-1+(1-β1)gt(25)

第三步:计算二阶矩估计:

第四步:计算无偏修正的一阶矩估计:

第五步:计算无偏修正的二阶矩估计:

第六步:更新参数:

步骤四:归一化待预测数据,并将其输入到训练得出的concatenatedlstms中计算出归一化的预测结果。最后,对预测结果进行逆归一化,得出预测结论。

以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1