APP下载

基于循环扩张机制的ConvGRU-Transformer短期电力负荷预测方法

2022-06-01遆宝中李庚银武昭原王剑晓李瑞连

关键词:解码器编码负荷

遆宝中, 李庚银, 武昭原, 王剑晓, 周 明, 李瑞连

(新能源电力系统国家重点实验室(华北电力大学),北京 102206)

0 引 言

电力负荷预测作为电力系统重要工作之一,是智能电网规划管理和高效运行的重要基础。精准的短期电力负荷预测有助于指导电力系统优化调度和安排机组检修计划,有效降低发电机组的生产成本,保证电网的安全稳定和经济运行。随着电力市场的发展、新能源规模的扩大、信息物理系统的深度融合,短期电力负荷预测在需求响应管理、可再生能源消纳、信息安全防控等领域正发挥着越来越重要的作用[1]。

短期电力负荷预测主要分为以卡尔曼滤波[2]、多元线性回归[3]为代表的统计学方法和以决策树模型[4]、支持向量机(support vector machines,SVM)[5]为代表的机器学习方法。深度学习作为机器学习的延伸,进一步解决上述方法对于非线性系统存在时序信息丢失、多维特征挖掘不够充分的问题[6]。长短时记忆 (long short-term memory,LSTM)神经网络和门控循环单元(gated recurrent unit,GRU)在循环神经网络(recurrent neural network,RNN)结构基础上对隐藏层神经元间建立连接[7],适用于处理电力负荷数据的时序特征[8],在此基础上引入注意力机制,选择性关注重要的输入数据,可使模型更容易学习序列长期依赖关系[9]。文献[10]发现,对于多维输入特征的实际算例,双重注意力机制的GRU模型预测精度优于单重注意力机制的卷积神经网络(convolutional neural network,CNN)-GRU模型。文献[11]将注意力机制选择性关注隐性状态和双层LSTM对序列数据双向时序提取的优势相结合,提高了短期电力负荷预测模型的精度。

Google团队提出的Transformer网络摒弃了循环神经网络模型,完全依赖注意力机制提取序列间的关联性。相比较RNN顺序输入,Transformer方法可将数据并行输入和计算,其多头自注意力机制可将关联性信号的传播路径在理论上减少到最短的O(1)。不同于常规神经网络黑箱模型,自注意力机制具有较好的可解释性,在自然语言处理中大大提高了翻译精度[12]。文献[13]提出一种时间融合Transformer,在电力负荷、交通、零售、股票等预测领域实现显著的性能提升。文献[14]提出Informer作为Transformer的变体,采用稀疏注意力机制和对注意力层的卷积池化等压缩操作,提高了长时间序列的预测精度。

Transformer模型在提取长距离关联性上表现出优于RNN模型的性能[14,15],理论上当注意力层足够大时可处理大规模自然语言处理(NLP)等长距离相关性的序列预测任务,但需要占用大量计算资源[16],因此在训练时需将序列分割为固定长度并为每个片段添加相同的位置编码,导致各分段数据间碎片化,限制了其捕获长距离特征的能力。

针对上述问题,本文提出了一种基于卷积门控循环单元(Convolutional Gated Recurrent Unit, ConvGRU) -Transformer的短期负荷预测方法。首先提出一种循环扩张自注意力机制,解决Transformer的分段输入导致信息碎片化问题,扩大注意力的关注视野。利用ConvGRU对多特征时间序列进行相对位置编码,保持内容信息的一致性,提取时序数据的潜在特征。仿真表明,本文方法在长序列预测依然保持较高的精度,与现有典型方法相比具有更高的准确率。

1 循环扩张自注意力模型

1.1 自注意力机制原理

注意力机制模拟人脑的复杂认知功能,人类在关注图像信息时,会下意识地关注整个图像总体,并将更多注意力资源投入到更多可用的有利信息上,即注意力的焦点,以获得更加丰富的目标信息,同时进一步提升获取目标信息的效率与速度[15]。不同于传统的建立在循环结构基础上的注意力机制[17],Transformer引入了自注意力机制,可以显示捕捉序列间的位置关系。相较于传统RNN模型,自注意力机制具有参数少、计算速度快、效果更优的特点。

自注意力机制基于信息提取器将输入序列XT映射到一组查询向量QT、键向量KT和值向量VT的矢量输出中[18]。接着计算QT与KT的相似度作为权重,对所有的值向量进行加权求和。采用缩放点积法将上述过程表示为

[QT,KT,VT]=[WQXT,WKXT,WVXT]

(1)

(2)

式中:WQ∈dk×dmod、WK∈dk×dmod、WV∈dv×dmod为对应于QT∈dk×dt、KT∈dk×dt、VT∈dv×dt的训练参数矩阵,对于输入时间序列XT∈dmod×dt,dmod表示时刻t序列的特征维度,如负荷值、温度、日期等,dt表示输入多少个序列向量。dk为查询向量和键向量的维度,dv为值向量的维度,通过点积的方式将维度为dmod高维信息压缩到dk、dv以便进行相似度计算。ATTN为自注意力函数表示;softmax为归一化指数函数。除以是为了抵消较大输入导致softmax陷入极小梯度区域的现象。

多头注意力是指对输入设置NM个独立的注意力头并行操作,不同注意力头关注数据的不同特征维度,最后将输出结果拼接并乘以权重函数表示:

ATm=ATTN(QTm,KTm,VTm)

(3)

Mhead(XT)=Whead·[AT1;…ATm,…;ANM]

(4)

式中:ATm∈dv×dt为注意力头m的自注意力分布,即式(1)、(2)计算结果;Whead∈dmod×NMdv为线性映射矩阵,Mhead(XT)为输入XT对应的最终自注意力分布。

1.2 片段循环扩张机制

原自注意力结构只能处理固定长度的时间序列,即将一个长序列截断为固定长度的片段,在训练时对每个片段单独处理,这将导致第一个片段的首端序列与第二个片段的末端序列间将缺乏联系。在划分片段时,通常不考虑序列的潜在规律。例如对于以具有星期或月周期性特征的负荷曲线,数据分割的碎片化导致这种长时间尺度的特征被破坏。

受时序卷积网络(Temporal Convolutional Networks, TCN)扩张卷积结构启发,本文提出一种注意力循环扩张结构。训练期间,将之前时段编码器的计算结果缓存。后续输入时,扩张机制允许注意力存在间隔采样,采样率由扩张因子e控制,其结构如图1所示。扩张因子指的是为上层对下层层采样的间隔数,相当于在两个相邻的注意力层间加入一个固定步长。以分枝数为3为例,最底层输入e=1,表示将片段连续输入。中间层e=2,表示每个两个片段的固定步长做一次采样,层级越高e的大小越大。扩张机制使得有效窗口的大小随层数呈指数增长,以获得更大的学习视野。

图1 自注意力循环扩张结构Fig. 1 Recurrent and dilated structure of self-attention mechanism

对于序列X={x1,…,xt,…},扩张后的注意力视野为:

Ascan,e(X)=Concat(XT-(nb-i)e)

(5)

式中:e为扩张因子;nb为分枝数,e=[1,…,(nb-1)l-1];拼接函数Concat的功能是将输入矩阵合并。扩张计算相当于在相邻两次片段数据采集间加入固定的步长,e为增加的步长大小。

将l-1层的序列以上述扩张规则拼接后,可得到第l层的键向量Kl和值向量Vl。自注意力实际上是计算查询输入序列得到的Ql和历史序列得到的Kl之间的关联性,根据当前输入和与其对应的神经网络中记忆的规律预测后续的发展趋势,因此Ql通过未经拼接的片段直接计算求得,第l层注意力的计算公式为

(6)

(7)

(8)

2 考虑全局特征的位置编码模型

2.1 绝对位置编码模型

由于Transformer没有递归层与卷积层,单纯的自注意力机制无法捕捉输入的顺序。Transformer采用正余弦位置编码与自注意力机制结合使用[18],这种编码方式的优点在于扩展了编码长度,同时序列间的相对位置存在线性关系。

(9)

(10)

式中:t为输入的序列位置,i表示维度,即矩阵的每个维度都有对应的位置编码。式(9)、(10)分别为奇数列和偶数列的位置编码表示。

正余弦绝对位置编码方式主要考虑局部相对特征,缺乏考虑全局信息。前一个周期与本周期相同位置使用的是同样的位置编码,这使得注意力层不易捕捉序列的潜在变化。且经过线性变换和点积运算后将导致方向信息丢失[19]。为了保持内容与位置的一致性,一些文献在文献中在计算注意力权重时引入可训练参数表示相对位置提高了及其翻译质量[20],文献[13]负荷预测时用LSTM进行位置编码,考虑到需要对多元数据编码,本文采用卷积门控循环单元(Convolutional Gated Recurrent Unit,ConvGRU)进行位置编码。

2.2 基于ConvGRU的位置编码

GRU本身具有循环结构并采用顺序输入的方式,其隐藏层保留了序列的相对位置信息,本质上为一种可训练的相对位置编码,能够反映全局特性,提高预测精度。作为为长短期记忆网络LSTM的变体,只保留了更新门和重置门。更新门控制前一时刻的状态信息保留程度,重置门控制当前状态与先前信息的结合程度[21]。GRU虽然参数少、模型简单,但保持与LSTM相当的性能,具有更快的收敛速度。

ConvGRU在一维GRU基础上改进,将激活函数δ和tanh内的全连接运算改为卷积运算,捕获多维数据的基础空间特征,其结构如图2所示。将隐藏层输出接全连接层作为输入数据的位置编码结果,基本计算公式如下:

图2 ConvGRU结构Fig. 2 Schematic diagram of ConvGRU

(11)

RT=σ(WR*XT+UR*HT-1)

(12)

(13)

(14)

Ploc(XT)=ReLU(WHHT+bH)

(15)

3 基于ConvGRU-Transformer的负荷预测模型

3.1 输入、输出特征集设置

本文模型以影响负荷预测的各种属性组成的时间序列特征图作为网络的输入。出于电力负荷的日特性,负荷在每天不同时刻受外部因素影响的程度会有所不同,例如负荷在一些时刻受其他因素的影响显著,而在另一些时段则与历史负荷的相关性更大。从经济因素的角度,日前边际电价和实时电价将影响消费者的用电习惯[22]。此外如温度、湿度等气象因素对负荷的影响还存在累积效应和滞后效应[23]。季节的变迁也会影响用电类型比重,如夏季的降温负荷和农业灌溉负荷比重更大,冬季取暖负荷占比更多[22]。其他社会因素如节假日和工作日相比电力负荷有所降低。这都将导致在不同时间段下,影响负荷的最优特征集可能会有所差异。

综上所述,本文输入数据主要由以下特征组成:历史负荷、气象因素、电价、时间特征(月份、当月日期、小时)、节假日信息,共同组成该时刻的负荷特征dmod,数据结构如图3所示,负荷、气象数据采用连续变量,其余数据均为离散变量根据元素数采用one-hot编码,数据采样步长为1 h。采用滑动窗口的方式将时间序列数据生成特征图输入。为加快训练速度,对日负荷数据、温度、电价特征等连续变量采用min-max归一化到[0, 1]。对日期特征、节假日信息等离散变量采用虚拟变量编码。

图3 输入数据结构Fig. 3 Structure of input data

3.2 预测模型结构

本文提出的负荷预测模型结构如图4所示,包括输入层、Nen层编码器、Nde层解码器、输出层。

(1)输入层。输入层将各时间步的负荷数据和外部特征嵌入表示为Xen=[…,XT,en,…],XTen∈dmod×dt。采用ConvGRU生成全局位置编码,以加法的方式同嵌入表示合并得到作为编码器的输入:

(16)

(17)

(18)

图4 ConvGRU-Transformer结构示意图Fig. 4 Schematic diagram of ConvGRU-Transformer

(19)

(20)

(21)

式中:W1、W2分别为第一层、第二层可训练权重,b1、b2为偏置向量。

最终在经过一次层归一化,得到该层的输出:

(22)

(3) 解码器。解码器结构与编码器类似,由于用于序列预测,因此单独设置掩码注意力层。在序列预测过程中,仅考虑之前数据对当前的影响,后续信息作为未知数据利用函数掩码掉,不参与训练[18]。解码器注意力层的查询向量Q从下一层中获得,键向量K、值向量V来自编码器的输出。解码器的输入XTde如下:

XT,de=Concat(XT,de,token,XT,de,mask)∈dbmod×(dtoken+dmask)

(23)

式中:XT,de,token为标记序列;XT,de,mask为预测序列。为了不在预测时泄露后续信息,解码器需对XT,de,mask掩码运算[26],避免对预测数据的影响。解码器以编码器滑动片段为步长动态解码。

(4) 输出层。解码器输出的特征向量经过一个全连接层运算以及Sigmoid压缩函数,再经过逆归一化处理得到对应于输入序列的预测结果Y=[y1,…,yT,…]。

(24)

3.3 损失函数

本文在模型训练阶段采用Adam自适应矩估计方法[27]动态优化模型参数。损失函数采用均方误差(Mean square error, MSE),计算输出和真实值误差。

(25)

4 算 例

本文数据来源为2014年全球能源预测大赛(global energy forecasting competition,GEFCom)的GEFCom2014-E数据集[28],该数据取自美国新英格兰电力系统运营商2006年至2014年每小时电力负荷信息和2004年至2014年每小时温度信息。选取2012年1月1日至2013年6月30日为训练集,2013年7月1日至2013年12月31日为验证集,2014年1月1日至2014年6月30日为测试集,负荷数据和温度数据的整体分布情况如图5所示,可发现有较强的周期性规律。本文实验仿真环境包括Inter Core i5-8265U,内存:8 GB,主频:1. 6 GHz,操作系统:Windows 10,编译平台:Python 3. 6,TensorFlow 2. 4. 0。

本文选用平均绝对百分误差(Mean Absolute Percentage Error, MAPE)和均方根误差(Root Mean Square Error, RMSE)作为模型性能评价指标。MAPE作为回归模型常用性能指标,综合考虑了预测值与真实值的误差以及考虑了误差与真实值的比例;RMSE对偏离较大的值惩罚效果更强。

图5 负荷温度数据Fig. 5 Load and temperature data

为了兼顾训练速度与模型性能,参考Transformer标准结构,ConvGRU-Transformer的编码器和解码器均为6层。为在捕获长期特征与局部特征上取得均衡,扩张分枝数选3。待选变量集包括负荷、温度、趋势、日期和节假日变量。负荷、温度、趋势为连续变量,其余变量为离散变量并采用one-hot编码。趋势变量为从1开始累加的线性累加变量。日期变量包括1~24小时变量、1~7星期变量和1~12月份变量,节假日变量中周一至周五为工作日,周六、周日为节假日。表1总结了针对每个预测模型所发现的最佳参数配置,神经网络方法的批处理数一律设置为24。

表1 不同预测模型参数配置Tab.1 Parameter configuration of different model

4.1 模型训练分析

为直观反映本文改进方案对原模型训练的影响,采用MAPE作为指标反应训练效率,如图6所示。从图中可以发现,Transformer的训练速度更快,在训练3000次以后MAPE已降到2%以下,ConvGRU-Transformer下降速度要慢得多,且在训练初期波动幅度更大。这是由于ConvGRU-Transformer由于需要ConvGRU进行全局位置编码,训练参数更多;同时前期需要大量训练以填充扩张单元,曲线下降更为平缓。

图6 与原结构收敛性对比Fig. 6 The simulation convergence compared with the original model

4.2 注意力层可视化表征

由于自注意力机制直接描述序列之间的关联性,不需要将其映射到高维空间训练,因此具有良好的可解释性。这里将注意力矩阵表示为热图,如图7、8所示。纵轴范围为1~16 h,横轴范围为-31~16 h,由于仿真采用的时间窗口为16 h,采样片段为1~16 h,分枝数为3,拼接的2个片段对应的历史序列为-31~0 h。热图颜色深浅表示各时刻序列之间的相关性。

从图7可以发现对于注意力头1,解码器1主要关注第二片段特征,解码器3更关注第三片段,解码器6则在尾部分布了较大的权重,注意力分布呈现递进关系。编码器1、3、6的扩张因子分别为,视野分别为48 h、10天和84.67天,说明注意力头1主要关注的负荷、温度等连续数据在短周期内具有较多的局部特征,随着步长的增加,数据之间的关联性下降,分配的权重降低。同时注意力层具有以片段长度为单位的时序性规律变化,解码器3、解码器6的前两个片段均具有相同的分布趋势,说明循环扩张结构可有效提取序列的长期特征。

图7 不同注意力层权重热力图Fig. 7 Weighted heatmap of different attention layers

结合图7 (b)和图8可以发现,解码器3注意力头1和头3 的权重主要分布在第三段,注意力头2则分布更均匀。注意力头1包含的数据和注意力头3包含的星期、月份数据的注意力权值仅在近期较为集中,说明电力负荷的预测与邻近星期的负荷、温度等数据关联性较大,例如上周数据将对本周数据预测的影响与更早历史数据相比更为重要。注意力头2包含的小时、节假日数据的权重分布更加均匀,说明在同一时刻的不同日负荷之间、不同星期的周末之间的数据有较强的关联,即这些数据具有较长的周期规律,例如每周间的周末数据虽在时间序列上不连续,但因其关联性较强预测时需着重考虑。

图8 不同注意力头权重热力图Fig. 8 Weighted heatmap of different attention heads

4.3 与其他方法对比

为验证ConvGRU-Transformer模型在电力负荷预测上的科学性和有效性,本文将常用于电力负荷短期预测的SVR、LSTM、CNN-LSTM作为对照模型,对2014年1月至6月负荷进行日前短期预测。记录每种模型多次实验后的最优结果如表2所示。

表2 不同方法预测结果对比Tab.2 Prediction results of different algorithms

从表中可以发现,ConvGRU-Transformer预测精度优于其他方法,MAPE相比其他4种方法分别降低了0.192 %、2.275%、0.877%、0.184%,RMSE相较于其他方法分别降低了 30.151 MW、116.823 MW、50.734 MW、24.946 MW,证明本文方法可有效捕捉多输入特征和预测负荷间的非线性关系。循环扩张结构和ConvGRU相对位置编码在不降低效能的前提下,大幅度降低了原模型的训练时间。日负荷预测时间为0.501 s,适用于电力负荷短期预测。

图9为各方法对一周连续日负荷预测曲线对比。从图中可以看出,SVR预测误差最大,由于仅将负荷和温度作为特征输入,在周特性等长距离相关性上表现较差,LSTM在负荷剧烈波动区域预测结果较差,在周六、周日表现出了较大的波动,其余三种方法由于可提取数据的多元相关性,曲线的平滑性得到改善。ConvGRU-Transformer由于注意力视野的提升以及位置编码的连贯性,相较于原方法有效提升了在波峰、波谷处的预测精度。

图9 不同方法从2014年1月6日到1月12日负荷预测对比Fig. 9 Comparison of load forecasting from 2014/1/6 to 2014/1/12 by different learning methods

5 结 论

本文提出了一种基于ConvGRU-Transformer电力负荷预测方法,首先采用循环扩张机制扩大模型的注意力视野,再采用ConvGRU网络有效提取序列的相对位置信息。算例仿真结果表明:循环扩张结构可有效捕获多维特征输入数据的长距离特征,结合对前序计算片段隐层状态的缓存机制,在大幅缩短了原模型的训练时间的同时有效提高预测精度;自注意力机制较好的可解释性可直观反应序列的周期性规律,注意力头对不同类型数据的采集可分别捕获其潜在特征,为多元数据的相关性分析、模型的扩展提供参考。

与常规的神经网络方法相比,Transformer及其改进模型在深度增加时存在梯度消失的问题,增加了训练难度,且在注意力矩阵稀疏化处理及特征高效提取方面有较大的发展空间。未来将从信息传递、自适应学习率等角度出发,增加深度模型训练的稳定性与收敛速度。

猜你喜欢

解码器编码负荷
HEVC对偶编码单元划分优化算法
人造革合成革拉伸负荷测量不确定度评定
3项标准中维持热负荷要求对比分析
住院病案首页ICD编码质量在DRG付费中的应用
MIV-PSO-BP神经网络用户热负荷预测
生活中的编码
基于Android环境下的数据包校验技术分析
生如夏花
浅谈SCOPUS解码器IRD—2600系列常用操作及故障处理
做一个二进制解码器