一种基于模块化循环神经网络的电力负荷预测方法

文档序号:24806468发布日期:2021-04-23 16:53阅读:134来源:国知局
一种基于模块化循环神经网络的电力负荷预测方法

1.本发明涉及一种基于模块化循环神经网络的电力负荷预测方法。


背景技术:

2.电力负荷预测对于确保智能电网的安全、稳定和高效运行具有重要作用。从电力生产的角度来看,精准预测有助于制定合理的生产计划,在提供充足电力供应的同时避免过度生产造成的资源浪费。从电力消费的角度来看,精准预测有助于实时电价的合理制定,以鼓励非高峰电力消费。近年来,智能电网中各种高精度数据采集设备(如智能电表)的不断出现,为电力负荷预测提供了强有力的支持。目前用于电力负荷预测的方法通常可以分为两类:基于统计分析的方法和基于数据驱动的方法。虽然基于统计分析的方法已经发展得非常成熟,但由于电力负荷序列的非线性、用户行为的随机性、外部因素的多样性等原因,其精准度仍有待进一步的提高。这使得基于人工智能的数据驱动方法逐渐成为该领域的研究热点。主要模型包括动态神经网络、极限学习机、深度信念网络、卷积神经网络等。然而,上述模型没有将数据的时序关系作为电力负荷的明确特征,当需要考虑当前负荷与历史负荷之间的复杂时间依赖关系时,可能会导致模型预测性能下降。因此,近年来,能够通过隐藏层状态连续传输早期输入信息的循环神经网络(recurrent neural network,rnn)被广泛应用于缺乏外部影响因素情况下的电力负荷预测问题。
3.由于传统rnn采用随时间反向传播算法进行网络参数训练,随着记忆深度的增加,模型容易出现梯度消失或爆炸的问题。为了改变传统rnn在长序列学习中表现不佳的现状,可采用训练算法替代、循环权重约束、门控机制和多时间尺度连接等改进措施。在训练算法替代方面,研究人员提出了hessian

free方法和储备池计算等,但上述方法存在着实施困难或学习能力有限等不足。在循环权重约束方面,研究人员提出在初始化或整个学习过程中约束循环连接权重,以保证矩阵多步连乘后的范数仍约等于1。然而,严格执行权重约束可能会影响模型的训练速度和泛化能力。以长短期记忆网络(long short

term memory,lstm)及其变体为代表的门控机制是最常见的一种措施,已成功应用于包括电力负荷预测在内的众多时间序列数据挖掘任务中。但该机制造成了隐藏层复杂的内部结构,其缺点在于需要训练的网络参数急剧增大。最后一种提高rnn长期依赖能力的常用方法是引入多时间尺度连接。其主要思想是隐藏层的循环连接不仅要存在于相邻的时间步长中,还要存在于更大的时间步长中。这样做的好处是长期依赖关系不需要一步一步的反向传播,而是可以用更少的时间步完成。例如:temporal

kernel rnn规定每个神经元的循环连接随着跳跃长度的增加呈指数衰减;skip rnn允许网络根据计算出的更新可能性决定当前时刻是否更新神经元。除了以神经元为单位之外,还可以将隐藏层划分为若干个模块来形成多时间尺度的连接,如clock

work rnn。最近,dilated rnn提出可以堆叠多个隐藏层,并让这些隐藏层在不同的跳跃长度上工作以关注不同的时间依赖。


技术实现要素:

4.本发明的目的在于提供一种基于模块化循环神经网络的电力负荷预测方法,该方法能够在有效降低网络训练参数量的同时,实现对电力负荷的精准预测。特别是基于自适应更新策略的模块化循环神经网络的表现最为突出。
5.为实现上述目的,本发明的技术方案是:一种基于模块化循环神经网络的电力负荷预测方法,包括以下步骤:
6.步骤s1、构建一个包含输入层、隐藏层和输出层的循环神经网络,并把隐藏层划分为若干个模块;
7.步骤s2、选择固定策略、随机策略、无序自适应策略和有序自适应策略中的任意一种更新策略用于隐藏层模块的更新;
8.步骤s3、选择与步骤s2的更新策略相匹配的循环连接剪枝策略,其中固定策略和有序自适应策略可选择单方向剪枝策略,而随机策略和无序自适应策略可以选择双方向剪枝策略;
9.步骤s4、根据选择好的隐藏层模块更新策略和循环连接剪枝策略利用训练集进行模块化循环神经网络的电力负荷预测模型训练,利用验证集进行参数优化,最后利用测试集评估预测性能,得到最终的模块化循环神经网络的电力负荷预测模型。
10.在本发明一实施例中,步骤s1中,循环神经网络的构建过程如下:
11.步骤s101、构建一个包含输入层、隐藏层和输出层的循环神经网络,其中输出层可在每个时间步都出现或仅出现在最后一个时间步,若输出层放置在最后一个时间步,则构建的循环神经网络用于预测在输入一段时长的信息后的下一个时刻的负荷值;时间步长可根据任务设定;输入层神经元的个数n
i
可以根据需要设定;隐藏层神经元的个数n
h
可利用验证集进行优化;输出层神经元的个数n
o
根据预测任务设定;
12.步骤s102、随机生成输入层到隐藏层的输入连接权重相邻时刻隐藏层之间的循环连接权重隐藏层到输出层的输出连接权重隐藏层偏置向量和输出层偏置向量利用上述参数,可得到模块化循环神经网络的计算方程如公式(1)

(3)所示:
13.h

t
=f
h
(w
ih
x
t
+(w
hh
*m)h
t
‑1+b
h
)
ꢀꢀꢀ
#(1);
14.h
t
=(1

u
t
)

h
t
‑1+u
t

h

t
ꢀꢀꢀ
#(2);
15.y
t
=f
o
(w
ho
h
t
+b
o
)
ꢀꢀꢀ
#(3);
16.其中,f
h
(.)和f
o
(.)分别表示隐藏层和输出层的激活函数,

和*分别表示向量间和矩阵间的元素级乘法运算,表示在时间步t隐藏层神经元的更新向量,表示循环连接权重w
hh
的剪枝标记矩阵;
17.步骤s103、将隐藏层划分为k个模块,其中每个模块的神经元个数如公式(4)所示:
[0018][0019]
在本发明一实施例中,步骤s101中,输入层神经元的个数n
i
若为1,可输入每天的最大或平均负荷值;输入层神经元的个数n
i
若为2,可输入当天的负荷值和温度;输入层神经元的个数n
i
若为24,可输入每天每小时的负荷值。
[0020]
在本发明一实施例中,步骤s2中,固定策略、随机策略、无序自适应策略和有序自
适应策略的具体实现方法如下:
[0021]
1)固定策略:
[0022]
步骤s201、首先为每个隐藏层模块预分配一个工作周期,各个隐藏层模块的工作周期可用公式(5)得到:
[0023]
t
i
=r
i
‑1(i=1,2,

,k)
ꢀꢀꢀ
#(5);
[0024]
式中,r是一个大于1的固定的整数;
[0025]
步骤s202、根据当前时间步t是否能够整除每一个模块的周期t
i
来获得每一个隐藏层模块的更新子向量如公式(6)所示:
[0026][0027]
当是一个全1向量时,意味着相应隐藏层模块内的所有神经元在时间步t参与更新,否则保持和上一个时刻的状态相同;
[0028]
步骤s203、将所有隐藏层模块的更新向量按模块号从小到大的顺序上下拼接,即可得到该时刻的隐藏层更新向量
[0029]
2)随机策略:
[0030]
步骤s201、在每个时间步为每个隐藏层模块随机设置一个更新概率
[0031]
步骤s202、设定一个更新阈值0<ε<1,则每一个隐藏层模块的更新子向量的获得方式如公式(7)所示:
[0032][0033]
步骤s203、将所有隐藏层模块的更新向量按模块号从小到大的顺序上下拼接,即可得到该时刻的隐藏层更新向量
[0034]
3)无序自适应策略:
[0035]
步骤s201、对每个时间步的隐藏层候选状态h
t

设计一个新的激活函数来得到每一个隐藏层模块的优先级如公式(8)所示:
[0036][0037]
式中sum
i
(.)表示将隐藏层模块i中所有神经元对应的softmax(.)的值进行累加;
[0038]
步骤s202、根据公式(9)可获得每一个隐藏层模块在时间步t的更新子向量步骤s202、根据公式(9)可获得每一个隐藏层模块在时间步t的更新子向量
[0039]
步骤s203、将所有隐藏层模块的更新向量按模块号从小到大的顺序上下拼接,即可得到该时刻的隐藏层更新向量
[0040]
4)有序自适应策略:
[0041]
步骤s201、与3)中无序自适应策略的步骤s201相同;
[0042]
步骤s202、根据公式(10)对每一个隐藏层模块的优先级进行模块间的累加,从而可以得到每一个隐藏层模块的累加优先级
[0043][0044]
步骤s203、设定一个更新阈值0<ε<1,则该时刻的隐藏层更新向量的获得方式如公式(11)所示:
[0045][0046]
在本发明一实施例中,步骤s3中,单方向剪枝策略、双方向剪枝策略的具体实现方法如下:
[0047]
1)单方向剪枝策略:
[0048]
步骤s301、将剪枝标记矩阵划分成k
×
k个子矩阵,每个子矩阵m
ij
∈r
m
×
m
,如公式(12)所示:
[0049][0050]
步骤s302、单方向剪枝策略规定前一个时刻的隐藏层神经元可连接到下一个时刻更新频率与之相等或者更快的神经元;考虑到固定策略和有序自适应策略均可保证模块号越小的隐藏层模块其更新频率更快,故可根据公式(13)得到每个子矩阵m
ij
∈r
m
×
m
的取值:
[0051][0052]
步骤s303、每个时间步均利用上述得到的相同的标记矩阵m对循环连接w
hh
进行剪枝操作;
[0053]
2)双方向剪枝策略:
[0054]
步骤s301、与1)中单方向剪枝策略的步骤s301相同;
[0055]
步骤s302、考虑到随机策略和无序自适应策略的隐藏层模块更新频率没有快慢之分,故必须通过概率确定其剪枝与否;首先保证每个时间步的是一个全1矩阵;然后在每个时间步为每个隐藏层模块随机设置一个剪枝概率最后设置一个剪枝阈值0<θ<1,并通过公式(14)得到每个时间步剩余子矩阵的取值:
[0056][0057]
步骤s303、每个时间步均利用上述得到的不同的标记矩阵m对循环连接w
hh
进行剪枝操作。
[0058]
在本发明一实施例中,步骤s4中,模块化循环神经网络的电力负荷预测模型的训练过程具体如下:
[0059]
步骤s401、将电力负荷数据集的数据进行z

score标准化处理,并按照时间的先后
顺序划分为训练集、测试集和验证集三个部分;
[0060]
步骤s402、设置网络的相关配置参数,包括时间步长、各层神经元个数、隐藏层模块数、优化器、学习率、批处理大小、迭代次数、更新阈值、剪枝阈值;
[0061]
步骤s403、将划分好的训练集的数据加入到循环神经网络中进行训练,在验证集上进行参数优化,最后利用测试集上得到的电力负荷预测值与实际的电力负荷值进行比较,来评估训练后的模块化循环神经网络的电力负荷预测模型的有效性。
[0062]
相较于现有技术,本发明具有以下有益效果:在真实电力负荷数据集的实验结果表明,相对于目前广泛应用的门控循环神经网络而言,本发明方法能够在有效降低网络训练参数量的同时,实现对电力负荷的精准预测。特别是基于自适应更新策略的模块化循环神经网络的表现最为突出。
附图说明
[0063]
图1为模块化循环神经网络的框架图,其中表示模块的状态保持不变的时间长度,该值由模块的更新向量决定。
[0064]
图2为模块化循环神经网络的循环连接剪枝示意图。
具体实施方式
[0065]
下面结合附图,对本发明的技术方案进行具体说明。
[0066]
如图1所示,本发明提供了一种基于模块化循环神经网络的电力负荷预测方法,包括以下步骤:
[0067]
步骤s1、构建一个包含输入层、隐藏层和输出层的循环神经网络,并把隐藏层划分为若干个模块;
[0068]
步骤s2、选择固定策略、随机策略、无序自适应策略和有序自适应策略中的任意一种更新策略用于隐藏层模块的更新;
[0069]
步骤s3、选择与步骤s2的更新策略相匹配的循环连接剪枝策略,其中固定策略和有序自适应策略可选择单方向剪枝策略,而随机策略和无序自适应策略可以选择双方向剪枝策略;
[0070]
步骤s4、根据选择好的隐藏层模块更新策略和循环连接剪枝策略利用训练集进行模块化循环神经网络的电力负荷预测模型训练,利用验证集进行参数优化,最后利用测试集评估预测性能,得到最终的模块化循环神经网络的电力负荷预测模型。
[0071]
本实例中,步骤s1中,循环神经网络的构建过程如下:
[0072]
步骤s101、构建一个包含输入层、隐藏层和输出层的循环神经网络,其中输出层可在每个时间步都出现或仅出现在最后一个时间步,若输出层放置在最后一个时间步,则构建的循环神经网络用于预测在输入一段时长的信息后的下一个时刻的负荷值;时间步长可根据任务设定;输入层神经元的个数n
i
可以根据需要设定;隐藏层神经元的个数n
h
可利用验证集进行优化;输出层神经元的个数n
o
根据预测任务设定;
[0073]
步骤s102、随机生成输入层到隐藏层的输入连接权重相邻时刻隐藏层之间的循环连接权重隐藏层到输出层的输出连接权重隐藏
层偏置向量和输出层偏置向量利用上述参数,可得到模块化循环神经网络的计算方程如公式(1)

(3)所示:
[0074]
h

t
=f
h
(w
ih
x
t
+(w
hh
*m)h
t
‑1+b
h
)
ꢀꢀꢀ
#(1);
[0075]
h
t
=(1

u
t
)

h
t
‑1+u
t

h

t
ꢀꢀꢀ
#(2);
[0076]
y
t
=f
o
(w
ho
h
t
+b
o
)
ꢀꢀꢀ
#(3);
[0077]
其中,f
h
(.)和f
o
(.)分别表示隐藏层和输出层的激活函数,

和*分别表示向量间和矩阵间的元素级乘法运算,表示在时间步t隐藏层神经元的更新向量,表示循环连接权重w
hh
的剪枝标记矩阵;
[0078]
步骤s103、将隐藏层划分为k个模块,其中每个模块的神经元个数如公式(4)所示:
[0079][0080]
本实例中,步骤s101中,输入层神经元的个数n
i
若为1,可输入每天的最大或平均负荷值;输入层神经元的个数n
i
若为2,可输入当天的负荷值和温度;输入层神经元的个数n
i
若为24,可输入每天每小时的负荷值。
[0081]
本实例中,步骤s2中,固定策略、随机策略、无序自适应策略和有序自适应策略的具体实现方法如下:
[0082]
1)固定策略:
[0083]
步骤s201、首先为每个隐藏层模块预分配一个工作周期,各个隐藏层模块的工作周期可用公式(5)得到:
[0084]
t
i
=r
i
‑1(i=1,2,

,k)
ꢀꢀꢀ
#(5);
[0085]
式中,r是一个大于1的固定的整数;
[0086]
步骤s202、根据当前时间步t是否能够整除每一个模块的周期t
i
来获得每一个隐藏层模块的更新子向量如公式(6)所示:
[0087][0088]
当是一个全1向量时,意味着相应隐藏层模块内的所有神经元在时间步t参与更新,否则保持和上一个时刻的状态相同;
[0089]
步骤s203、将所有隐藏层模块的更新向量按模块号从小到大的顺序上下拼接,即可得到该时刻的隐藏层更新向量
[0090]
2)随机策略:
[0091]
步骤s201、在每个时间步为每个隐藏层模块随机设置一个更新概率
[0092]
步骤s202、设定一个更新阈值0<ε<1,则每一个隐藏层模块的更新子向量的获得方式如公式(7)所示:
[0093][0094]
步骤s203、将所有隐藏层模块的更新向量按模块号从小到大的顺序上下拼接,即可得到该时刻的隐藏层更新向量
[0095]
3)无序自适应策略:
[0096]
步骤s201、对每个时间步的隐藏层候选状态h
t

设计一个新的激活函数来得到每一个隐藏层模块的优先级如公式(8)所示:
[0097][0098]
式中sum
i
(.)表示将隐藏层模块i中所有神经元对应的softmax(.)的值进行累加;
[0099]
步骤s202、根据公式(9)可获得每一个隐藏层模块在时间步t的更新子向量步骤s202、根据公式(9)可获得每一个隐藏层模块在时间步t的更新子向量
[0100]
步骤s203、将所有隐藏层模块的更新向量按模块号从小到大的顺序上下拼接,即可得到该时刻的隐藏层更新向量
[0101]
4)有序自适应策略:
[0102]
步骤s201、与3)中无序自适应策略的步骤s201相同;
[0103]
步骤s202、根据公式(10)对每一个隐藏层模块的优先级进行模块间的累加,从而可以得到每一个隐藏层模块的累加优先级
[0104][0105]
步骤s203、设定一个更新阈值0<ε<1,则该时刻的隐藏层更新向量的获得方式如公式(11)所示:
[0106][0107]
如图2所示,本实例中,步骤s3中,单方向剪枝策略、双方向剪枝策略的具体实现方法如下:
[0108]
1)单方向剪枝策略:
[0109]
步骤s301、将剪枝标记矩阵划分成k
×
k个子矩阵,每个子矩阵m
ij
∈r
m
×
m
,如公式(12)所示:
[0110][0111]
步骤s302、单方向剪枝策略规定前一个时刻的隐藏层神经元可连接到下一个时刻更新频率与之相等或者更快的神经元;考虑到固定策略和有序自适应策略均可保证模块号越小的隐藏层模块其更新频率更快,故可根据公式(13)得到每个子矩阵m
ij
∈r
m
×
m
的取值:
[0112][0113]
步骤s303、每个时间步均利用上述得到的相同的标记矩阵m对循环连接w
hh
进行剪枝操作;
[0114]
2)双方向剪枝策略:
[0115]
步骤s301、与1)中单方向剪枝策略的步骤s301相同;
[0116]
步骤s302、考虑到随机策略和无序自适应策略的隐藏层模块更新频率没有快慢之分,故必须通过概率确定其剪枝与否;首先保证每个时间步的是一个全1矩阵;然后在每个时间步为每个隐藏层模块随机设置一个剪枝概率最后设置一个剪枝阈值0<θ<1,并通过公式(14)得到每个时间步剩余子矩阵的取值:
[0117][0118]
步骤s303、每个时间步均利用上述得到的不同的标记矩阵轐对循环连接w
hh
进行剪枝操作。
[0119]
本实例中,步骤s4中,模块化循环神经网络的电力负荷预测模型的训练过程具体如下:
[0120]
步骤s401、将电力负荷数据集的数据进行z

score标准化处理,并按照时间的先后顺序划分为训练集、测试集和验证集三个部分;
[0121]
步骤s402、设置网络的相关配置参数,包括时间步长、各层神经元个数、隐藏层模块数、优化器、学习率、批处理大小、迭代次数、更新阈值、剪枝阈值;
[0122]
步骤s403、将划分好的训练集的数据加入到循环神经网络中进行训练,在验证集上进行参数优化,最后利用测试集上得到的电力负荷预测值与实际的电力负荷值进行比较,来评估训练后的模块化循环神经网络的电力负荷预测模型的有效性。
[0123]
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd

rom、光学存储器等)上实施的计算机程序产品的形式。
[0124]
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0125]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0126]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或
其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0127]
以上所述,仅是本发明的较佳实施例而已,并非是对本发明作其它形式的限制,任何熟悉本专业的技术人员可能利用上述揭示的技术内容加以变更或改型为等同变化的等效实施例。但是凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与改型,仍属于本发明技术方案的保护范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1