基于PSO算法优化GRU神经网络的短期负荷预测

2020-05-07 01:49王康龚文杰段晓燕张智晟
广东电力 2020年4期
关键词:权值梯度时刻

王康,龚文杰,段晓燕,张智晟

(1.青岛大学 电气工程学院,山东 青岛 266071 ;2.国网青岛供电公司,山东 青岛 266002 )

电力系统短期负荷预测是指对未来数小时至数天的负荷进行预估。由于电能具有无法大量存储的特点,并且电力需求不是固定不变的,要想实现系统的发电与电力负荷的动态平衡,就需要对电力系统进行短期负荷预测。高精度的电力系统短期负荷预测对电力系统的正常运行有着重要的作用,是电力系统制订发电及调度计划的重要依据,对实现电力系统的供求平衡、减少能源浪费具有重要的意义,并直接影响电力系统的后续工作。准确的电力系统短期负荷预测成为提高电力系统工作效率、降低运营成本的重要环节[1]。

电力负荷受多种因素的影响,导致负荷预测的难度增大[2]。近年来,以人工神经网络为代表的机器学习算法由于其预测精度高、计算能力强的优点得到了广泛关注,其中反向传播(back propagation,BP)神经网络由于模型简单、预测速度快等特点而应用较多;但是BP神经网络容易陷入局部最优解,而且无法考虑数据的时间相关性,使得预测精度下降。国内外许多专家对短期负荷预测模型进行了深入研究,提出了多种预测模型,如文献[3]提出了一种基于脊波递归神经网络的短期负荷预测模型,在一定程度上提高了预测精度,但是由于网络数据的增多使得训练速度下降。文献[4]提出了一种自编码器与粒子群优化(particle swarm optimization,PSO)算法优化卷积神经网络的短期负荷预测模型,用自编码器对卷积神经网络的输入数据进行处理,通过PSO算法对卷积神经网络进行优化,进而提高了预测精度。文献[5]提出了一种基于特征提取和广义回归神经网络的混合模型,有效提高了预测的准确性,但是预测过程中无法考虑数据的历史特征。文献[6]提出了一种基于PSO算法和循环神经网络(recurrent neural networks,RNN)的短期负荷预测方法,克服了RNN中权值初始值随机性较大的缺点,所提模型有较好的收敛特性,但是没有解决RNN中容易出现的梯度问题。RNN由于在时间序列预测方面有着十分理想的效果,在近年来得到广泛关注;但是传统RNN在处理长时间序列问题时容易出现梯度爆炸、梯度消失的问题,使得预测效果下降。针对RNN中的梯度问题,有学者提出了长短期记忆网络(long short-term memory,LSTM)[7]和门控循环单元(gated recurrent unit , GRU)网络预测模型来解决梯度问题,两者都是通过对RNN中的循环单元进行改进从而解决梯度问题。LSTM神经网络主要通过输入门、输出门和遗忘门来实现信息的保留与丢弃。GRU神经网络是对LSTM神经网络的改进,将LSTM中的3个门减少到2个,只通过更新门和重置门即可实现对信息的处理,从而减少了训练时间。本文通过PSO算法优化收敛速度较快的GRU神经网络[8],与传统GRU神经网络相比在解决梯度问题的同时,避免了训练过程中梯度下降算法容易产生的精度下降问题,进一步降低了预测误差。通过对某地区电网负荷数据进行算例分析可以验证,基于PSO算法优化GRU神经网络的电力系统短期负荷预测模型具有较高的准确度与稳定性。

1 GRU神经网络

1.1 循环神经网络

RNN允许不同隐含层循环单元之间进行信息交换,所以在时间序列预测应用方面效果较为理想[9]。在RNN中,前一时刻隐含层的输出作为下一时刻输入的一部分,从而可以保留数据的历史特征,具有较好的记忆功能[10],适合对时间序列进行预测。RNN结构如图1所示。

W—输入层到隐含层的权值;U—隐含层自身的权值;Wy—隐含层到输出层的权值。

图1 RNN结构
Fig.1 RNN structure

RNN由输入层、隐含层和输出层组成。在RNN中,隐含层自身的权值U主要实现数据的循环更新,将上一时刻隐含层的状态作为记忆状态,然后通过记忆状态与当前时刻的数据输入共同达到预测目的,将RNN按照时间维度展开后结构如图2所示。

图2 RNN按时间维度展开结构图Fig.2 Structure diagram of RNN in time dimension

由图2可以看出:RNN可以对以前时刻隐含层的状态加以记忆并应用于当前时刻的隐含层,即各时刻的隐含层之间是相互连接的,从而可以有效提高预测精度;但是RNN在训练学习过程中容易出现梯度问题,使得RNN模型的预测稳定性有所下降。

1.2 GRU神经网络模型

GRU神经网络是为解决RNN中的梯度问题而提出的网络模型,主要用2个由sigmoid函数和乘法操作组合成的GRU来控制信息的选择[11],利用sigmoid函数将记忆状态以及当前的输入数据变换到0到1之间,从而实现数据的记忆与丢弃[12],GRU的结构如图3所示。

图3 GRU结构
Fig.3 GRU structure

图 3中,rt和zt即为GRU网络模型的重置门和更新门,设计的这2个“门”可以实现对输入信息以及上一时刻隐含层状态信息的保留和更新[13],与提出时间较早的LSTM网络模型相比,GRU网络模型只需要通过一个更新门即可同时实现对数据的遗忘和记忆[14],在一定程度上节省了工作内存,提高了训练速度。

由图3可以看出,在GRU神经网络模型中,当前时刻隐含层状态为上一时刻隐含层状态与当前隐含层激活状态的和[15],即

(1)

重置门rt和更新门zt为当前时刻输入数据与上一时刻隐含层状态的组合,即:

rt=σ(wrxt+urht-1);

(2)

zt=σ(wzxt+uzht-1).

(3)

式中:σ为sigmoid函数,可以将rt和zt限制在0和1之间[16];wr、ur、wz、uz为神经网络权值。

(4)

nz=wxt+u(rt⊙ht-1).

(5)

式中:⊙表示Hadmard积运算;w、u为GRU神经网络权值。

ht的更新过程主要由更新门zt完成,zt的值越接近于0,说明当前时刻信息保留的程度越大,历史信息的遗忘程度越大[18]。与LSTM相比,GRU最大的改进就是可以通过zt以及1-zt同时完成对当前时刻以及历史时刻的信息的处理,从而节省了运行空间,加快了训练速度[19]。

由式(1)得出当前时刻的隐含层状态ht以后,即可进一步得到GRU网络模型的输出[20],即

y=σ(wyht).

(6)

式中:y为网络的输出;wy为隐含层到输出层的权值。

2 基于PSO算法优化GRU神经网络的短期负荷预测模型

由上述对GRU神经网络的描述可知,wr、wz、ur、uz、w、u、wy都是GRU神经网络模型需要训练的权值。传统的GRU神经网络采用随机梯度下降算法来训练权值,但随机梯度下降算法在梯度下降过程中容易出现预测精度降低的问题。为提高预测精度,本文采用可以实现全局寻优的改进粒子群算法对GRU神经网络进行优化,将GRU神经网络的权值看作空间中搜索粒子的属性,以输出误差作为目标函数,利用迭代取得最优解。

PSO算法是通过对大自然中鸟类觅食行为的模拟而得出的一种具有全局寻优能力的优化算法[21],它将全局变量中存在的每一个可能的解都看作一个粒子,而每一个粒子都有自己的运动方向和速度,使所有的粒子都朝着当前的最优位置进行移动[22],通过不断对粒子中的个体最优位置xbest和全局最优位置pbest进行更新,即可得到目标函数的最优解,从而实现全局寻优[23-24]。

将GRU神经网络的权值即wr,wz,ur,uz,w,u,wy归结为同一个粒子的属性,经过多个粒子的共同寻优不断对最优粒子进行更新,最终可以得到使得误差取得最小的粒子值,进而将最优粒子的值赋给各权值,即可得到所需权值。训练过程结束后,利用最优权值对预测日负荷进行预测,即可得到所需负荷。

基于PSO算法优化GRU神经网络的短期负荷预测模型流程如图4所示。

由图4可以看出:预测过程首先对输入的历史负荷数据进行归一化处理,然后初始化神经网络权值以及各粒子速度,计算得出各个粒子的初始适应度,并通过改进粒子群算法对粒子的个体最优和全局最优位置进行迭代更新;取得最优解之后,按照所得权值利用GRU神经网络对负荷进行预测,将所得结果进行反归一化处理,最终得到预测结果,达到负荷预测的目的。

图4 PSO算法优化GRU神经网络负荷预测模型流程图Fig.4 Flow chart of load forecasting model based on PSO algorithm to optimize GRU neural network

粒子群算法的基本迭代式为:

(7)

xi,k+1=xi,k+vi,k.

(8)

式中:vi,k为第k次迭代时第i个粒子的速度;p为惯性权重;c1,c2为学习因子;r1、r2为0到1之间的随机数;xbest,k,i为第k次迭代时第i个粒子经历过的最优位置;xi,k为第k次迭代时第i个粒子的位置;pbest,i,k为第k次迭代时全部粒子经历过的最好位置。

为进一步提高预测效果,用惯性权重法对PSO算法进行改进,所引入的惯性权重

(9)

式中:pmax为惯性权重的最大值;pmin为惯性权重的最小值;e为当前迭代次数;emax为最大迭代次数。

惯性权重越大,粒子群算法的全局搜索能力越强;而惯性权重越小,粒子群算法的局部搜索能力越强。采用惯性权重法改进PSO算法使得惯性权重p随迭代次数的改变而不断更新,有助于平衡PSO算法的全局搜索能力和局部搜索能力,使得寻优性能得以提升,提高了收敛速度与精度。

3 算例仿真

3.1 数据处理

为检验本文所提模型的预测效果,应用所提模型对某地区电网进行负荷预测,负荷数据来源于某地区电网。为了提高预测精度,需综合考虑影响负荷的多种因素,主要包括气温因素(最高温度、最低温度、平均温度)和日类型因素(工作日、休息日)。

将历史负荷数据以及外界的气温因素和日类型因素同时作为GRU神经网络的输入,导致输入数据的量纲无法统一。为了解决量纲问题,更准确地表示各因素对负荷的影响程度,首先需要对输入数据进行归一化处理,即

(10)

式中:X为归一化之后的输入数据;x为真实输入数据;xmax为同类输入数据最大值;xmin为同类输入数据最小值。

训练数据选择与预测日相关性最大的前3 d数据,主要包括对应预测日预测时刻t前3 d的第t-1时刻、第t时刻、第t+1时刻的共9维负荷数据。气温因素主要包括预测日前3 d以及预测日当天的最高温度、最低温度和平均温度共12维数据;日类型因素主要包括预测日前3 d以及预测日当天的日类型共4维数据。日类型分为工作日和休息日2种,工作日的日类型取值为1,休息日的日类型取值为0。预测模型共计25维输入变量。

预测过程中,将模型所需的25维训练数据组成特征矩阵,对PSO算法中的各粒子进行初始化,并将初始粒子赋权值。按照GRU神经网络对负荷进行预测,将所得结果与实际负荷值进行对比,根据实际负荷值与预测值之间的误差大小不断更新粒子的个体最优位置与全局最优位置,并通过PSO算法的多次迭代得到最优权值;然后按照预测数据组成的特征矩阵以及最优权值,利用GRU神经网络进行预测,即可得到所需负荷。

3.2 仿真结果分析

为了验证本文所提出的基于PSO算法优化GRU神经网络的短期负荷预测模型(模型2)的预测效果,与传统的BP神经网络预测模型(模型1)以及基于随机梯度下降法的GRU神经网络模型(模型3)进行对比分析。3个预测模型的神经网络都采用25-10-1的结构。对于模型1,训练次数取20 000,训练的精度误差为0.01;对于模型2,粒子数取30个,最大迭代次数为700次,学习因子c1取1.795,c2取1.795,速度最大值vmax取0.4,最小值vmin取-0.4,惯性权重由0.9降至0.4,训练的精度误差为0.01;对于模型3,训练次数取8 000,梯度步长取0.001。采用某地区电网负荷数据进行仿真,每隔15 min取一个负荷点,即1 d内共96个负荷点。由于PSO算法本身特征的影响,模型2需要设置的参数有所增加,但预测结果表明,参数的增加没有影响到模型2的预测过程。3个预测模型的预测效果对比如图5所示。

图5 3个模型预测的负荷曲线Fig.5 Load curves predicted by three models

为了评价所提模型的预测性能,用平均绝对误差Emape和最大相对误差Emax来表示预测误差,其中

(11)

式中:n为负荷点的个数;Yj为第j个负荷点的实际值;yj为第j个负荷点的预测值。

所得预测结果的Emape及Emax越小,说明所提模型的预测效果越好。

表1给出了3种预测模型的误差对比。

由表1可以看出:与模型1相比,模型2的平均绝对误差降低了2.18%,最大相对误差降低了7.45%;与模型3相比,模型2的平均绝对误差降低了0.9%,最大相对误差降低了2.08%。由图5可以看出:模型2和模型3在负荷的波谷处所提模型的拟合程度较好,说明GRU神经网络在负荷波谷处的预测精度较高,能得到较为理想的预测效果,且预测过程中不会出现RNN中容易出现的梯度消失、梯度爆炸问题。

表1 3种预测模型的误差对比Tab.1 Error comparison of three prediction models %

为了验证本文所提出的基于PSO算法优化GRU神经网络的短期负荷预测模型的预测稳定性,采用模型2和模型3分别对该地区电网进行连续1周的负荷预测,利用2种模型进行预测所得到的误差比较见表2。

表2 2种预测模型周预测误差对比Tab.2 Comparison of weekly prediction errors of two prediction models %

由表2可以看出:模型2在对电力负荷进行连续1周的预测过程中,对休息日的预测误差相对于工作日有较大上升,主要原因是休息日的训练数据相对较少,使得对休息日的预测效果有所下降;模型2在预测精度上与模型3相比,在1周内的预测效果上均有明显优势,平均绝对误差的平均值和最大相对误差的平均值分别降低了0.98%和2.13%,表明利用PSO算法优化GRU神经网络可以有效提高传统GRU神经网络的预测精度,避免了传统GRU神经网络中的梯度下降算法带来的精度下降问题,而且所提模型具有较好的预测稳定性。

4 结束语

本文针对RNN中容易出现的梯度问题,提出了一种基于PSO算法优化GRU神经网络的短期负荷预测模型。该模型保留了RNN在时间序列预测中记忆能力强的优点,解决了梯度问题,并且PSO算法对传统GRU神经网络的改进较好地解决了GRU神经网络传统训练方法中容易出现的精度下降问题。通过对与预测日相关性最大的负荷数据进行归一化处理,并利用PSO算法可以有效寻找全局最优解的特点对GRU神经网络进行优化,经过实际算例分析与仿真可以得出,与BP神经网络以及传统的GRU神经网络相比,基于PSO算法优化GRU神经网络的短期负荷预测模型能达到较高的预测精度。将本文所提模型与传统GRU神经网络模型连续1周内负荷预测的误差进行对比可以得出,本文所提模型有较高的精确度、稳定性和应用价值。

猜你喜欢
权值梯度时刻
一种融合时间权值和用户行为序列的电影推荐模型
一个带重启步的改进PRP型谱共轭梯度法
冬“傲”时刻
一个改进的WYL型三项共轭梯度法
捕猎时刻
CONTENTS
一种自适应Dai-Liao共轭梯度法
一个具梯度项的p-Laplace 方程弱解的存在性
基于MATLAB的LTE智能天线广播波束仿真与权值优化
基于权值动量的RBM加速学习算法研究