APP下载

引入BL-Seq2seq模型进行负荷预测

2021-11-17徐先峰王世鑫曹仰昱

计算机仿真 2021年8期
关键词:解码用电编码

徐先峰,王世鑫,龚 美,曹仰昱

(长安大学电子与控制工程学院,陕西 西安 710064)

1 引言

随着电力系统的建立和发展,电能已经成为人类不可或缺的能源形式,负荷预测作为电力系统调度中的关键一环,是电网用电、规划等管理部门的重要工作[1-2]。其中短期负荷预测可作为水电调度、发电机组控制、电厂、协调控制等电力计划调度的重要理论依据。负荷预测精度越高,越能保证电力企业正确地对供电项目进行实时、及时的供电调度。短期电力负荷预测的模型主要分为两类,经典统计模型[3]和数据驱动模型[4]。经典的统计模型由简单的回归函数构建,主要包括自回归移动平均(ARMA)、广义自回归条件异方差(GARCH)等。除此之外,由积分函数改进的自回归积滑动平均(ARIMA)[5]、自回归条件异方差(GARCH)[6]以及基于核方法的分位数回归[7-8]都用于电力负荷的预测。与经典统计模型相比,由人工智能算法建立的数据驱动模型更适合研究非线性关系。这些算法大大提高了电力负荷预测的准确性。例如,将双向长短期记忆神经网络(Bi-LSTM)[9]用于负荷预测时,可同时掌握历史和未来的时间序列的负荷信息,能更精确的刻画负荷预测曲线;序列到序列(Seq2seq)[10]网络结构的编码端能够接收长度变化的数据信息,使模型在接收数据信息时愈加灵活,进行负荷预测时精度更高。

综合上述优点,本文提出了一种基于多层Bi-LSTM的Seq2seq深度学习模型短期用电负荷预测算法,该算法结合了Bi-LSTM和Seq2seq的优点:对输入数据进行编码时,可在网络末端输出编码后的最终状态,其中Seq2seq的编码端由多层Bi-LSTM组成;解码时可将编码端的最终状态作为解码端初始输入状态,其中Seq2seq解码端为单层LSTM,同时将上一解码端的输出值作为下一解码端的输入值。基于实测数据的仿真结果表明,与深度信念网络(DBN)、长短期记忆神经网络(LSTM)以及门控递归单元(GRU)短期用电负荷预测模型相比,由双向长短期记忆神经网络构成的序列到序列模型(BL-Seq2seq)可以更好提升短期负荷预测精度。

2 BL-Seq2seq模型

基于多层Bi-LSTM的Seq2seq网络模型结构如图1。

图1 多层Bi-LSTM的Seq2seq网络模型图

根据图1可知,编码端由多层Bi-LSTM组成,可使输入数据进行编码,使模型在接受输入数据时更加灵活;BL-Seq2seq模型的解码端由单层LSTM组成,目的是将编码端的最终状态作为初始输入状态,同时每一步的输出值作为下一步的输入值,使模型具有较强的鲁棒性;最后在输出端选用线性整流函数(ReLU)函数,可减少梯度消失和梯度爆炸现象的发生。本文接下来将重点分析BL-Sq2seq模型。

2.1 BL-Seq2seq模型编码端

编码端和解码端结构由Cho等人在2014年提出名为Seq2seq的输入与输出不定长序列[11]。编码过程是将输入序列压缩成指定长度的特征向量通过编码器进行输入,并将特征向量作为序列的语义。本文所提出的BL-Seq2seq算法选用Bi-LSTM作为编码端。

Bi-LSTM是将一个前向的LSTM和一个后向的LSTM叠加在一起后连接到同一个输出层,可分别处理同一序列的两个方向[12]。利用Bi-LSTM作为短期用电负荷预测模型的编码端能够使输入的历史数据同时在一个正向的LSTM和一个反向的LSTM中进行,增加了LSTM模型对未来序列的学习能力,克服了LSTM只能处理历史信息的缺点,确保模型能够获得完整时间序列前后文信息。Bi-LSTM结构如图2。

图2 Bi-LSTM结构图

编码使用如下方法

ht=f(xt,ht-1);c=∅({h1,…hr})

(1)

式中:ht前时刻隐藏层状态,ht-1一时刻隐藏层状态,f活函数,xt前时刻输入,c为特征向量。编码过程如图3。

图3 编码过程图

2.2 BL-Seq2seq模型解码端

BL-Seq2seq算法的解码端将接收端最后状态定义为初始状态,并将解码后的输出值作为下一步的输入值。解码端由单层LSTM构成。

LSTM(Long Short Term Mermory Network)是由循环神经网络(RNN)改进而成,改进后的LSTM解决了RNN模型无法应用于长序列的缺点,避免了梯度消失问题的发生,LSTM在RNN的基础上给神经元增加了三个门,分别是遗忘门、输入门和输出门[13]。结构如图4。

图4 LSTM模型结构图

每个LSTM单元包含一个在时间t内的存储单元,该存储单元通过输入门、遗忘门和输出门对数据进行存储和修改。同时LSTM在每个时间步长内通过四个端子(即三个门和输入端)接收两个外部源(当前输入和同一层中所有LSTM单元的先前隐藏状态)的输入。

LSTM的更新可以使用如下方法[14]

it=σ(WxiXt+Whiht-1+WciCt-1+bi)

(2)

式中,Wxi、Whi和Wci分别为输入门当前输入、同一隐藏层输入和存储单元权重矩阵,bi为入门偏置。

ft=σ(wxfXt+Whfht-1+WcfCt-1+bf)

(3)

式中:Wxf、Whf和Wcf分别为遗忘门当前输入、同一隐藏层输入和存储单元权重矩阵,bf为遗忘门偏置。

ct=ftct-1+ittanh(WxcXt+Whcht-1+bc)

(4)

式中:Wxc、Whc为储单元当前输入、同一隐藏层输入权重矩阵,bc储单元偏置。

Ot=σ(WxoXt+Whoht-1+WcoCt+bo)

(5)

式中:Wxo、Who和Wco分别为输出门当前输入、同一隐藏层输入和存储单元权重矩阵,bo为输出门偏置。

ht=ottanh(ct)

(6)

解码过程如图5。

然而由于指定长度的特征向量C对信息的数量有限制要求,当源序列长度增加时会导致Seq2seq模型的性能降低。为了解决此问题,本文选用Bahdanau等人提出的关注机制[15]。在关注机制中,解码器可以尝试在编码器序列里寻找重要信息所处位置,并利用该信息同之前解码的数据来预测该序列中的下一个标记,过程如图6。

2.3 激活函数

根据文献[16]可知,ReLU函数具有如下特点:

1)可有效解决梯度饱和问题;

2)使模型具有更好的鲁棒性;

3)能够训练多层深度神经网络。

为了避免模型产生梯度消失和梯度爆炸现象,本文在模型的输出层选用ReLU函数,ReLU函数表达式使用如下方法

f(x)=max(0,x)

(7)

3 实例验证

3.1 实验运行环境及数据处理

本实验基于美国洛杉矶的历史用电负荷实测数据,利用深度学习算法对未来负荷进行预测。负荷数据为每1小时采样一次,即一天24个数据采样点[17]。输入的数据因素包括日期和用电负荷量,采样数据长度为自2016年1月1日0:00至2016年12月31日23:00,共8784个数据采样点,并将最后5天,共计120个数据取出作为测试集,其余8664个数据作为训练集[18]。本次实验在Keras2.2.4,python3.6环境下运行。

由于通信故障或数据缺失等因素会导致用电负荷实测数据异常,进而影响预测精度。因此本文采用均值补缺失值的方法,来修正不良数据,补足缺失数据。

将数据修正后,采用min-max标准化方法将原始用电负荷实测数据进行线性变化,使数据范围在[0,1]之间以保证数据的有效性,消除数据间量纲差异,提升负荷预测精度,具体使用如下方法

(8)

式中,x表示还未被处理的输入值,y表示归一化后的输入值,max是输入数据的最大值,min是输入数据的最小值。

3.2 实验性能评价指标

为了评估算法的性能,本实验选取了三个性能评价指标,分别是平均绝对百分比误差(MAPE)、标准均方根误差(NRMSE)和平均绝对误差(MAE)[19]。各评价指标表达式使用如下方法

(9)

式中:y~为负荷预测值,y为实测负荷值,N为测试数据集大小。

(10)

(11)

3.3 BL-Seq2seq参数设置和结构选取

对于BL-Seq2seq负荷预测模型来说,准确设置隐藏层层数和每个隐藏层单元数可提升预测精度,减少运算耗时,因此本文重点分析这两个参数。

为了确定BL-Seq2seq最佳网络结构模型,本文选用枚举法逐层对隐藏单元数进行选取,首先确定第1层隐藏层单元数的最优值并保持不变;然后增加1层隐藏层,确定2层隐藏单元数的最优值并保持不变;依次类推,直到预测精度不再提升为止。不同网络结构下BL-Seq2seq网络结构的预测性能见表1。

表1 BL-Seq2seq模型编码端不同结构时预测性能

在确定编码端每层隐藏单元数时,分别设置为20、40、60、80四个级别。隐藏层的层数依次设置为1,2,3层,选用MAPE作为性能评价指标,由表1可知,当第1层隐藏单元设置为40个时,MAPE取得最小值为0.0193,当第2层隐藏单元设置为60个时,MAPE取得最小值为0.0188,当第3层隐藏单元设置为60个时,MAPE取得最小值0.0190。由此可知,对于该数据集,BL-Seq2seq模型编码端采用2层Bi-LSTM结构,解码端由经过选取由单层LSTM组成。

针对上述不同模型结构所得到的负荷预测结果对比图如图8、图9和图10。

图8 第一层结构对比局部放大图

图9 第二层结构对比局部放大图

图10 第三层结构对比局部放大图

同时,为了防止模型训练中出现过拟合现象,本文引入Dropout机制,以增强模型的泛化律,在某种程度上达到正则化效果,阻止了过拟合现象的发生[20]。为了使模型呈现最优效果,选用Adam优化器自动寻找学习率的值,找出最优解。相应的参数设置见表2。

表2 参数设置

3.4 结果对比

为了突出BL-Seq2seq算法的优势,本文选用3.1节所有数据集,并将后5天,共计120个点的数据用作测试集,依次选取DBN网络[21]、LSTM网络[22]、GRU网络[23](DBN、LSTM、GRU模型参数选取参照文献[21-23])展开对比实验(其中Observed为用电负荷实测数据,Predicted-DBN为DBN网络预测结果,Predicted-LSTM为LSTM网络预测结果,Predicted-GRU为GRU网络预测结果,PredictedBL-Seq2seq为BL-Seq2seq网络预测结果),预测结果如图11,预测数据见表3。

图11 四种网络模型预测结果对比图

表3 模型预测结果对比表格

根据表3可以直观的看出,与DBN、GRU和LSTM模型相比,BL-Seq2seq模型的MAPE分别降低了0.049、0.01和0.007,NRMSE分别降低了0.038、0.011和0.009,MAE分别降低了24.88、0.96和0.95,预测精度最高。此外,结合图11可以发现,DBN、LSTM、GRU等模型在峰谷值预测点、时间序列突变点处拟合程度较低,而BL-Seq2seq模型能够在很大程度上改善这一缺陷,展示出较好的预测效果。

4 结论

本文利用深度学习方法实现了短期电力负荷预测,将历史用电负荷实测数据通过Bi-LSTM神经网络输入,并与Seq2seq模型相结合,最终得到了高精度负荷预测模型。结果显示,当针对MAPE、NRMSE及MAE等性能指标进行评估时,性能明显提升,证实所提算法可更好的提升负荷预测精度。

猜你喜欢

解码用电编码
HEVC对偶编码单元划分优化算法
住院病案首页ICD编码质量在DRG付费中的应用
生活中的编码
解码 四十五度仰望天空
文化解码
文化 解码
文明 解码
第12讲 家庭电路与安全用电专题复习
学习用电小知识
论纪录片影像中的组合编码运用