基于预训练GRU-LightGBM的电力负荷预测①

2021-09-10 07:32丁云峰
计算机系统应用 2021年8期
关键词:时序特征提取双向

张 晓,丁云峰,王 刚

1(中国科学院大学,北京 100049)

2(中国科学院 沈阳计算技术研究所 系统与软件事业部,沈阳110168)

3(国网辽宁省电力有限公司 调度控制中心,沈阳110004)

社会经济的发展离不开电网的可靠性保障.电负荷是电网运行状态的重要表征,因此电力负荷的预测是配电网规划的关键部分.在电网运行状态的评估以及电网故障的预警上都有重要意义,减少电网故障的发生对提高电力系统的社会效益和经济效益有重大意义.随着电网智能化的推进,电网中数据的智能化、信息化程度不断提高,这为电力系统负荷预测提供了海量数据样本,也为达成提高负荷预测准确性的目标奠定了基础.

短期电力负荷是对某一区域未来几个小时的用电负荷进行预测.目前,在海内外研究人员的探索、尝试下,取得了很大的进展.当下,短期电力负荷预测的方法主要有传统的统计学方法和基于机器学习的预测方法[1-3].其中统计方法包括时序预测法[4]、多元线性回归(MLR)[5,6]等.统计学方法取得了较好的成果,但是这些方法需要对电网领域的专业知识有比较深的理解才可以有效的建模并给出结果,使用起来学习成本较高.而近年来日渐崛起的人工智能方法降低了应用门槛,并且取得了更好的效果.其中陈振宇等[7]提出结合LSTM 及XBGBOOST 方法的电负荷预测,该方法的创新点在于两个模型的预测结果融合方法.但是在预测中两个模型单独起作用,实践表明单独的模型无法取得了比较好的结果.马煜等[8]提出使用CNN 及SVR结合的方法,其中CNN 网络主要用于特征提取.但是该提取方法,打乱了本身的时序特征.综上分析,人工智能方法崛起后,大家的主要研究方向集中在特征提取方法和是否单一模型工作上.本文提出的方法也是在充分分析了前辈的工作成果以及电网负荷的变化特点后提出的.

电荷影响因素有很多,诸如历史负荷数据,气象数据、电力设备使用时间以及峰谷电价等因素.文献[9]通过整理发现,这些因素主要可以分为时序因素和非时序因素,因此本文提出了一种同时对时序特征和非时序特征建模的电负荷预测方法——基于预训练GRULightGBM的电负荷预测方法.双向循环GRU 网络作为时序特征提取器,同时考虑历史时期和未来时期负荷影响因素对预测负荷的影响,充分提取负荷特征数据之间有效潜在关系.将提取到的时序特征与影响电力负荷的非时序特征(例如区域电价)相结合,放入到对回归预测问题有着不错效果且运算速度快的LightGBM模型中,进行模型训练与预测.

算例测试结果表明,本文的组合模型由于针对时序特征与非时序特征进行了归纳整理、综合预测,能够降低单一模型在极端场景下的误差,相比于其他组合模型,也具有更加稳定的预测效果.

1 算法总体结构设计

前文提出本文综合考虑电力负荷的实际特点我们提出了GRU与LightGBM 相结合的方法.算法的总体架构图如图1所示.

如图1所示,整个算法结构分为3 个阶段.图中阶段1 表示时序特征提取,通过双向GRU 网络提取电网时序特征中蕴含的时序依赖语义信息,该阶段分别输出语义的前向依赖和反向依赖信息,并将两个方向的信息进行组合.本文提出了两种组合方案拼接和取平均值.阶段2 表示特征融合,主要包括两部分特征,一部分是阶段1 双向循环GRU 作为特征提取器提取的时序信息,另一部分是非时序特征;阶段3 表示电负荷预测阶段.下面对3 个阶段进行详细介绍.

图1 预训练GRU-LightGBM的电力负荷预测方法整体架构图

1.1 GRU 网络设计

GRU (Gate Recurrent Unit)是循环神经网络(Recurrent Neural Network,RNN)的一种.与LSTM(Long-Short Term Memory)近似,是为了缓解长时序下的梯度消失或者梯度爆炸而设计的一种方案.在众多研究中LSTM 表现要略胜GRU,但是LSTM 参数多,训练起来耗时更长.并且本文GRU 网络用于提取序列特征,对实际预测效果依赖性弱.相比之下,时效性对整个系统更加重要.因此我们选用了消耗时间少并且效果也不差的GRU 作为主要结构.

图2是GRU 结构示意图.每一个GRU 结构中,有一个当前时刻的输入xt,及上一个节点传递下来的隐状态ht-1,ht-1中蕴含了之前各个时刻的依赖信息.结合xt和ht-1,GRU 会得到当前隐藏节点的输出yt和传递给下一个节点的隐状态ht.

图2 GRU 结构示意图

每个GRU中有重置门rt和更新门zt,如式(1)和式(2)所示.两个门的计算逻辑都是拼接当前时刻的输入xt,以及上一时刻的隐状态ht-1,并通过Sigmoid 函数将输出控制在[0,1]之间.当输出趋向0 时表示抑制,当趋向1 时表示激活,这两种状态对应表示成门的开闭.重置门和更新门的构建如下:

得到门控信号后首先使用重置门来重置信息rt·ht-1,然后将重置后信息通过一个tanh 函数将数据缩放到[-1,1]的范围内得到.如式(3),中包含当前时刻要加入的信息,相当于记忆了当前时刻的状态.

最后一个阶段输出最终的隐藏信息.这一步的操作就是忘记传递下来的某些维度信息,并加入当前节点输入的某些维度信息.并根据这些隐藏信息输出当前时刻的输出yt,如下:

本文的GRU 网络是时间步长为6的双向GRU 网络,正向GRU 网络主要提取正向时间(相当于历史时期)步间的依赖信息.反向GRU 网络则主要提取反向时间(相当于未来时期)步的依赖信息,这样保证提取到更加全面的特征信息.

1.2 组合特征

阶段2 主要融合双向GRU 网络的隐藏单元特征.其中在GRU 网络的训练阶段,我们尝试了拼接和取均值的两种融合方式.经过训练对比后发现拼接要比取均值效果更好,具体的训练细节以及原因分析在后面章节进行详细说明.最后我们给出如式(6)所示的方案:

其中,表示向量拼接操作,举例来说h1t=|x|r*c,h2t=|x|r*e,则F=|x|r*(c+e).

F输出了时序特征向量.将时序特征与离散特征共同作为最终预测模型的特征输入,此时的时序特征在数据形态上与离散特征相同.

1.3 预测算法

本文核心算法使用LightGBM,LightGBM 训练效率高、低内存使用、准确率更高、并且支持并行学习等优势,非常适合处理特征维度大,数据量大的电力数据.

LightGBM是GBDT的一个变种.基于boosting增强策略的加法模型,训练的时候采用前向分布算法进行贪婪学习,每次迭代都学习一颗CART 树来拟合前t-1 棵树的预测结果与训练样本真实值的残差.Light-GBM 提出了基于梯度的单侧采样GOSS 算法.GOSS算法的算法思想是去掉很大一部分梯度很小的数据,只使用剩下的去估计信息增益.由于梯度大的数据在计算信息增益的时候更重要,所以GOSS 在小很多的数据上仍然可以取得相当准确的估计值.具体做法是保存梯度绝对值较大的a的数据,然后对剩下的(1-a)的数据,再随机选取b的量.最终使用a+(1-a)b的数据量参与下一轮训练.但是这样会引起分布变化,所以对随机选择的那部分样本要乘以(1-a)/b.

1.4 模型评价标准

模型选用均方根误差(Root Mean Square Error,RMSE),均方根误差亦称标准误差,是观测值与真值偏差的平方和与观测次数N比值的平方根,是用来衡量观测值同真值之间的偏差.RMSE的公式如下:

其中,N为样本数,yi为第i条样本的真实值,pi为第i条样本的预测值.

2 模型的训练方案

根据第1 节对模型结构的阐述,本文模型属于多个子模型的嫁接.一次训练整个模型比较困难,加上RNN 网络本身收敛难度大因此整个网络一起训练比较困难.所以在模型训练上本文使用fine-turning的思想.首先训练双向GRU 网络,训练后的双向GRU 网络作为时序特征提取器.本文算法基于Tensorflow 框架编写完成,选用了内置ADAM 优化算法作为GRU 网络的优化器.并在输出层中添加DROPOUT 层,比率选择0.5.在实际测试中dropout 层加入在预测准度和运行时间上都有所优化.

特征提取器训练完成后组合LightGBM 算法,进行模型的整体训练.在模型的整体训练阶段,将特征提取器每个GRU 单元的输出结构移除然后模型整体参与训练.在训练阶段使用反向传播,更新LightGBM的参数及双向GRU 网络的参数.

2.1 特征提取网络预训练

首先训练双向GRU 网络,通过分析电负荷在一天中变化发现<这个地方为贴那张负荷变化图,然后解释一下>每4 个小时为一个变化趋势,所以使用4 个GRU时间步.t=1时的输入,预测t=2刻的电负荷,以此类推最后一个时刻t的输入预测t+1时刻的电负荷.

特征提取双向GRU 网络的训练效果如图3所示.

图3 F 函数使用拼接方案的训练过程图

2.2 模型整体训练

模型整体训练,首先将双向GRU 网络的y 输出删掉,如图4所示.预训练的特征提取网络最后一个状态的只输出对应的隐状态.之所以这样做是因为双向GRU 网络只负责时序特征的提取,并且在整个网络训练阶段参与训练.如果保留原GRU 网络的y输出,在反向传播时GRU 网络也会根据自身y的输出进行参数的更新,这与从lightGBM 产生的梯度信息产生重合,导致更新量过多,最终导致模型效果不佳.

图4 模型整体训练

模型从前向后一次经过预训练的GRU 网络,输出双向的隐状态.然后拼接隐状态输入LightGBM中最终由LightGMB 输出预测的电负荷值.然后训练过程中,直接使用梯度下降法依次更新LightGBM和GRU的内部参数.在超参数的调整上只调整LightGBM的参数,不对预训练的模型以及超参数做任何修改.我们调整的LightGBM 参数有:(1)学习率.学习率对树模型的调参非常重要,最终选择了比较大的学习率0.1.(2)树的深度和叶子结点数目.使用网格搜索的方法最终得到7和80 两个值.其他参数我们使用了默认值.

本文在训练中对F函数的两种方案进行了分别测试.其中使用均值方案训练过程图如图5所示.观察图5发现在迭代7 万次后整个模型还没有收敛状态,并且RMSE值较高.而拼接方案的效果则比较好,已经收敛并且RMSE值较低.F函数使用拼接方案的训练过程图如图6所示.

图5 F 函数使用均值方案的训练过程图

图6 双向GRU 网络的训练效果

3 实验仿真

3.1 数据集准备

本文的数据集来自辽宁省某市区的2013 至2019年的电力数据.数据选取的时序特征主要包括:上一小时电力负荷、温度、湿度、风力、降雨量等,非时序特征为:区域电价、是否为节假日、是否发生重大社会事件、社会事件影响程度等级、电力设备使用年限等.

我们首先从数据集中使用2013~2014年一年的数据训练双向GRU 网络.然后使用后面的数据训练整个算法模型.前文提到我们进行模型的整体训练时,也要更新GRU 网络的参数的另一个原因是我们训练的GRU 网络所使用的数据时间比较早.电负荷环境会随着社会进步发生变化,直接使用较早时间训练的预训练网络可能对特征的提取产生偏差.为了缓解这种偏差考虑对GRU 网络的参数进行更新.

3.2 不同模型对比

我们主要对比了前文提到的LSTM、XGBoost 以及CVR与CNN 结合的方法.如表1所示.

表1 不同模型之间不同指标结果对比

4 结论与展望

通过实验结果表明,预训练GRU-LightGBM 模型与其他模型相比在负荷预测的精度上有很大提高.本文方法即考虑历史负荷数据、温度等时许特征对电力负荷的影响,也考虑到社会、特殊事件等非时序特征对短期电力负荷预测的影响.总的来说,针对时序特征进行预训练再与非时序特征相结合放入预测模型训练的方法是切实有效的.

猜你喜欢
时序特征提取双向
顾及多种弛豫模型的GNSS坐标时序分析软件GTSA
同步定位与建图特征提取和匹配算法研究
基于双向特征融合的交通标志识别
人才与企业“双向奔赴”——咸阳市激发人才创新力
清明
基于GEE平台与Sentinel-NDVI时序数据江汉平原种植模式提取
混凝土泵车用双向液压锁故障探讨
你不能把整个春天都搬到冬天来
完善刑事证据双向开示制度的思考
基于MED—MOMEDA的风电齿轮箱复合故障特征提取研究