基于多层改进GRU神经网络的短期电力负荷预测方法与流程

文档序号:13446998阅读:5632来源:国知局
基于多层改进GRU神经网络的短期电力负荷预测方法与流程

本发明涉及一种基于多层改进gru神经网络的短期电力负荷预测方法。



背景技术:

电力负荷预测,是指对未来一定时期范围内的用电需求进行预测。作为电力部分的重要工作,准确的负荷预测,可以促进调度和供电公司经济合理地安排电网内部发电机组的发电计划和机组检修计划,保持电网运行的安全稳定性,确保社会的正常生产和生活。本案中,短期电力负荷预测是以30分钟或者1小时为间隔的日内负荷数据作为预测对象。对于电力部门来说,短期负荷预测的准确性直接影响着调度对次日发电计划的安排,有助于电网日内的稳定运行;对于用电企业来说,准确的负荷预测可以帮助其合理安排生产,从而最大限度地利用峰谷电价政策提高自己的经济效益。

传统的短期电力负荷预测法的主要有回归分析法、时间序列法、趋势外推法和专家系统法等,但是传统的方法由于模型较为简单以及预测者主观情绪等因素影响,往往难以达到较高的预测准确性。随着计算机信息技术、机器学习和大数据等大规模、高效计算技术的发展,目前常用的短期电力负荷预测方法主要有:支持向量机、小波变换算法、模糊预测法等方法。但支持向量机难以处理大规模训练样本;小波变换算法通常需要与人工神经网络相结合;模糊系统不具备自学习能力,建立模糊规则较多依赖专家经验。



技术实现要素:

本发明为了解决上述问题,提出了一种基于多层改进gru神经网络的短期电力负荷预测方法,本发明对传统gru网络结构中的状态单元进行了修改,使每个输出状态单元先进入selu激活函数后才能进行下一步的计算,从而防止了网络在训练过程中的梯度消失和梯度爆炸问题,使进一步增加网络深度成为可能,更深的网络显然更有利于提高预测的准确性,能够解决传统短期电力预测方法难以深入挖掘数据,以及现有深度学习算法训练时间过长并易产生梯度消失和梯度爆炸等方面的问题。

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

一种基于多层改进gru神经网络的短期电力负荷预测方法,包括以下步骤:

(1)周期性的构建样本数据集;

(2)对样本中的输入数据进行异常点识别和缺失值处理,对处理后的数据进行标准化变换,并将数据集分成训练集、验证集和待预测集;

(3)对gru网络结构中的状态单元进行修改,使每个输出状态单元先进入激活函数后再进行下一步的计算,以此构建改进的gru神经网络,将训练集数据输入该网络进行多轮训练,得到训练完成后的网络,并利用该网络对验证数据集进行多轮验证测试学习效果,记录并保存最优验证结果的模型权重;

(4)将待预测数据集输入训练后得到的最优gru模型,计算标准化预测结果;

(5)对预测结果进行逆标准化变换,得出最终预测结果。

所述步骤(1)中,对选取的给定时间段的样本数据进行整理、提取,形成输入、输出数据集,输入数据是指某个时间段内、以一定时间为间隔的电力负荷数据,输出数据是滞后于输入数据某个时期后的电力负荷数据。

所述步骤(1)中,以滚动窗口期内的一组数据作为单一输入单元,来预测未来某一期数据,得到的输入数据是一个以数据量为行、窗口期为列的矩阵。

所述步骤(2)中,采取垂直法进行数据异常点处理。

进一步的,所述步骤(2)中,如果有数据值与之前的数据平均值的差值大于设定阈值,则该数据值为数据异常点,将该数据值重新赋值,其大小为之前的数据平均值与设定阈值的和或差。

所述步骤(2)中,当发生数据缺失,且缺失的数量小于设定范围时,选择相邻数据取平均值替代缺失值,当缺失的数据大于设定范围时,采用垂直法利用历史同时期数据的平均值进行平滑代替缺失值。

所述步骤(2)中,利用归一化将数据的均值和向量统一到0和1上。

所述步骤(2)中,按照设定的比例将整个数据集依次划分为训练集、验证集和待预测集。

所述步骤(3)中,改进gru模型在计算门的过程中使状态先进入一个激活函数,同时在输出端也需要通过一个激活函数,才能完成最后的输出。

优选的,所述步骤(3)中,激活函数选择selu函数,以使神经元的激励值自动收敛到零均值和单位方差。

所述步骤(3)中,采用选取随机梯度下降法作为多层改进gru网络更新参数的算法。

进一步的,所述步骤(3)中,多层改进gru网络更新时,利用上一次的参数与迭代时梯度选取的步长和损失函数的乘积的差值,得到更新后的对应参数。

所述步骤(4)中,将待预测数据输入多层改进gru神经网络,计算得出与标准化处理后同量纲的电力负荷预测结果。

所述步骤(5)中,对预测的结果按照训练时计算的标准化变换系数进行逆变换,得出最终预测结果。

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

(1)本发明运用gru神经网络模型能够发挥循环神经网络对时间序列数据挖掘的作用,同时与lstm相比减少了网络中的参数数量,提升了训练的速度和训练的效率;

(2)本发明通过对传统gru神经网络的改进,引入了selu激活函数,实现了隐层状态变量和输出变量的自归一化过程,从而有效避免了多层神经网络在使用梯度下降法进行参数寻优过程中出现的梯度消失和梯度爆炸问题;

(3)本发明搭建了多层改进gru神经网络,同时采取了sequence2one训练和预测方式,进一步提升了网络的数据挖掘能力和效率,gru网络控制门的减少还可以使网络在训练过程中的效率得到大大提高;

(4)由于短期电力负荷数据具有数据量大,短时变化相对较为平稳以及时间序列相关性较强的特征。因此,采用多层改进gru神经网络模型对电力负荷数据进行挖掘可以充分发挥网络本身的优势,是针对短期电力负荷预测的合适方法。

附图说明

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

图1是传统gru单元内部结构图;

图2是本发明的改进gru网络神经元结构图;

图3是本发明的短期电力负荷预测流程图;

图4是本发明的多层改进gru网络结构图。

具体实施方式:

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

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

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

在本发明中,术语如“上”、“下”、“左”、“右”、“前”、“后”、“竖直”、“水平”、“侧”、“底”等指示的方位或位置关系为基于附图所示的方位或位置关系,只是为了便于叙述本发明各部件或元件结构关系而确定的关系词,并非特指本发明中任一部件或元件,不能理解为对本发明的限制。

本发明中,术语如“固接”、“相连”、“连接”等应做广义理解,表示可以是固定连接,也可以是一体地连接或可拆卸连接;可以是直接相连,也可以通过中间媒介间接相连。对于本领域的相关科研或技术人员,可以根据具体情况确定上述术语在本发明中的具体含义,不能理解为对本发明的限制。

正如背景技术所介绍的,现有技术中存在传统短期电力预测方法难以深入挖掘数据,以及现有深度学习算法训练时间过长并易产生梯度消失和梯度爆炸等方面的不足,为了解决如上的技术问题,本申请提出了一种基于多层改进gru的短期电力负荷预测方法。

近年来,以卷积神经网络(cnn)和长短期记忆神经网络(lstm)为代表的深度神经网络在图像识别、自然语言处理、情感分析以及无人驾驶等领域取得了一系列成果,其预测精度和可靠性得到了显著提升。其中:循环神经网网络(rnn)因其网络结构具备环状特征而在时间序列预测方面表现突出,特别是lstm通过引入输入门、遗忘门和输出门同时解决了rnn在长时间序列中的梯度消失问题,从而在序列预测领域开始被广泛使用。gru和lstm均为rnn模型的扩展,但与lstm不同的是gru将输入门和遗忘门进行了合并,把控制单元从三个减少到了两个,得到的模型更加简单,具有更高的效率。与lstm相比,gru模型能取得与其相当的结果,同时由于参数数量得到了降低,因此整个网络的训练效率发生了明显提高。

缩放指数线性单元(selu)是近期刚刚出现的一种新型激活函数。通过引进了自归一化属性,selu能够自动地将经过其函数的神经元归一化为0均值和单位方差,以帮助挖掘高层次的抽象表征,使网络学习的鲁棒性增强。此外,由于使用selu能够确保其输出方差存在上下确界,因此完全避免了梯度消失和梯度爆炸的问题。

基于上述内容,本发明提出基于多层改进gru的短期电力负荷预测方法。该方法对传统gru网络结构中的状态单元进行了修改,使每个输出状态单元先进入selu激活函数后才能进行下一步的计算,从而防止了网络在训练过程中的梯度消失和梯度爆炸问题,使进一步增加网络深度成为可能,更深的网络显然更有利于提高预测的准确性。此外,gru网络控制门的减少还可以使网络在训练过程中的效率得到大大提高。因此基于多层改进gru的短期负荷预测方法能够显著提升了电力负荷预测工作水平。

本申请的一种典型的实施方式中,如图3所示,具体包括:

步骤一:对选取的给定时间段的样本数据进行整理、提取,形成输入、输出数据集。其中输入数据是指某个时间段内、以30分钟为时间间隔的电力负荷数据;输出数据则是滞后于输入数据某个时期后的电力负荷数据。其中:输入数据可以设置滚动窗口期,就是以滚动窗口期内的一组数据作为单一输入单元,来预测未来某一期数据。比如:可以设置窗口期为n预测未来1期数据,那么一次性输入的数据就是xt-n,xt-n-1,…,xt,输出数据xt+1。这样输入数据集就是一个以输入单元为行数,窗口期为列数的矩阵了。

具体的,以当前时点为起始,选取过去2个月的电力负荷数据进行整理、提取,作为训练数据、验证和测试数据。其中:数据是以15分钟为时间间隔进行提取的,按照每月30天计算,则数据总量为5760个。把数据集进一步分成输入数据和输出数据,其中输入数据的窗口设置为12,输出数据为窗口期后下一个时点的数据。也就是说以过去3个小时的数据作为输入数据对三个小时以后的15分钟数据进行预测。因为是通过滚动窗口进行计算,所以最初的12个数据不能被计算在内,输入数据集就是一个5747(=5760-12-1)行、12列的矩阵,输出数据集是一个5747行的列向量。

设置完输入数据和输出数据后,对整个数据集进行训练集、验证集和测试集的划分。训练集的比例为60%,验证集的比例为20%,测试集的比例为20%。

步骤二:具体是对输入和输出数据进行异常值处理,并进行标准化处理。

(1)异常点的处理。调度在采集用电负荷信息时,难免会受到意外因素的影响。因此,某些时点的数据可能会发生巨大波动,从而偏离正常值,这将对模型的训练结果产生显著的负面影响。为了对异常点进行平滑,本发明采取垂直法进行数据异常点处理。

垂直法进行异常点处理的公式如下所示:

如果:

那么:

其中:是t时刻过去n天的平均值,ε(t)是t时刻的阈值。

(2)缺失值的处理。当发生数据缺失,且缺失的数量较少时,本发明选择相邻数据取平均值进行处理;当缺失的数据较多时,采用垂直法利用历史同时期数据的平均值进行平滑代替。

如果同一时刻仅有一个y(d,t)缺失,即y(d-1,t)和y(d+1,t)存在,那么有如果同一时刻有多个y(d,t)缺失,那么就取在该时刻下与缺失值相邻最近的两个负荷数据,在它们之间依次平滑地用加权平均值进行代替。比如:不同的日期d在t时刻有连续的m个值缺失,且与其临近的上下两个值为y(d+m,t)和y(d,t),那么缺失值的数据就为其中:i≤m-1。

(3)数据的标准化处理。归一化的作用常常是为了消除数据不同维度之间的量纲影响。在本发明中,考虑到历史时期内的电价政策带来的系统性影响,因此也需要对输入数据进行标准化处理。此外,标准化可以将数据的均值和向量统一到0和1上,这将使目标函数在学习的过程中不会因某一维度偏离过大而受到影响。归一化数据的公式为:

其中:是给定范围内的均值,std(x)是计算的标准差。

本发明中,由于输入数据是一个以数据量为行、窗口期为列的矩阵,因此需要对每列进行标准化操作。具体地,以训练数据为标准化对象计算标准化系数,同时该系数在验证集和测试集的标准化过程中也被使用。

步骤三:构建改进的gru网络模型,运用训练集数据对网络进行训练,运用验证集数据对训练完成的网络进行验证。在本发明建立的网络模型中,为了提升网络对数据的挖掘能力,搭建了多层改进gru神经网络层和dropout层,每层的神经元个数为100。此外,按照本文的滚动窗口和单一预测值的预测思路,以及发挥神经网络在挖掘数据时间序列关系方面的优势,采用sequence2one的方式进行数据训练,设置最后一个dense层的输出维度为1。

传统的神经网络模型在相邻的网络层之间是全连接的,但层内的各个神经元彼此独立,这就意味着传统神经网络无法挖掘到不同输入值之间的关系,从而使其在时间序列问题上难以发挥优势。rnn网络结构则考虑了神经元乃至神经网络在不同时期内的自相关关系,因此专门被用来处理诸如外文翻译、视频和音频解析等带有时间序列特征的任务。

gru神经网络是rnn神经网络模型的一种,与rnn模型中的lstm网络模型类似,也引入了门控制机制。但与lstm不同的是,gru省去了单独进行遗忘门的设置,而是在输入门和遗忘门之间建立了一个硬约束关系,即遗忘门等于1减去输入门,表达式为:ft=(1-it)。因此,状态表达式就写成了:通过这样的设置方式,状态st就可以被限制在一定的范围内。传统gru神经网络的单元结构如图1所示:实心箭头表示这条连线上需要乘以一个权重,箭头表示实线的初始端是末端的自变量,其中表示新输入的变量引起的信息输入状态。rt表示重置门,it表示更新门。用公式表示图1为:

rt=σsig(wrst-1+urxt+br)(1)

it=σsig(wist-1+uixt+bi)(2)

这里,⊙表示对应元素的表示矩阵中元素的逐点相乘;st表示t时刻的状态值,同时在传统的gru网络中,st也是t时刻的输出值;σ表示重置门和更新门的激活函数,通常使用sigmoid函数作为激活函数;φ表示新增信息状态的激活函数,通常用tanh函数作为激活函数。从上式可以看出,当重置门rt接近于0时,表示忽略之前状态st-1的信息,只将当前时刻的新增信息xt作为输入计算当前状态st。更新门it则控制了之前时刻的信息被带入到当前状态的程度,it越小,之前时刻的状态st-1提供的信息越多。

网络结构如表1和图2所示。

表1多层改进gru神经网络参数结构

改进的gru神经网络单元如图2所示,是对传统的gru网络在激活函数方面的改进。基于对激活函数的最新研究成果,改进gru模型在计算门的过程中使状态st先进入一个激活函数,同时在输出端也需要通过一个激活函数,才能完成最后的输出。这里,激活函数选择selu函数。这样的改进可以使网络在优化过程中确保各层级梯度是以稳定的方式进行传递。而selu函数具有使神经元的激励值自动收敛到零均值和单位方差的功能,从而达到自归一化的目的。此外,selu的归一化限制了方差的范围,也能够确保在多层级的训练中都保持鲁棒性,从而有效避免了训练过程中的梯度消失和爆炸问题。

改进gru网络神经元的表达式如下所示:

rt=σsig(wrφselu(st-1)+urxt+br)(14)

it=σsig(wiφselu(st-1)+uixt+bi)(15)

rnnt=φselu(st)(18)

selu激活函数的表达式为:

其中:λ=1.0507009873554804934193349852946

α=1.6732632423543772848170429916717。

在步骤三的训练过程中,本发明采用选取随机梯度下降法(stochasticgradientdescent简称sgd)作为多层改进gru网络更新参数的算法。

设损失函数为:

其中:

sgd算法中参数更新的主要过程是:

其中:η是每次迭代时,梯度选取的步长,也就是学习速率。在使用sgd进行参数更新的算法开始时,设置学习速率为0.01、学习速率递减率1e-6。

5.步骤四具体是将待预测数据输入多层改进gru神经网络,计算得出与标准化处理后同量纲的电力负荷预测结果。

6.步骤五具体是对预测的结果按照训练时计算的标准化变换系数进行逆变换,得出最终预测结果。这里,在进行逆变换计算的时候都是使用了训练集的标准化系数。

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

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

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