基于TCN-GRU模型的短期负荷预测方法
2021-06-17郭玲徐青山郑乐
郭玲,徐青山,郑乐
(1. 东南大学网络空间安全学院,江苏 南京 210096;2. 东南大学电气工程学院,江苏 南京210096)
0 引言
短期负荷预测是能源管理系统的重要组成部分,是市场机制下制定供电计划、电力调度计划和电力交易计划的重要基础,也为电力系统的经济、安全、稳定运行提供了有力保障[1—2]。传统的短期负荷预测方法主要有以自回归移动均值(auto regressive moving average,ARMA)[3—4]、线性回归方法(linear regression,LR)[5]和卡尔曼滤波法[6]为代表的统计学方法和以支持向量回归方法[7—8]、贝叶斯方法[9]和随机森林方法[10]为代表的机器学习方法。统计学方法具有模型简单、训练速度快的优点,但是对于非线性的负荷预测问题,该方法拟合能力不足,预测精度较低。传统机器学习方法虽然具有较强的非线性拟合能力,但是大多数模型参数寻优困难,容易陷入局部最优的困境。近年来随着深度学习的不断发展,很多学者也开展了利用深度学习模型进行短期负荷预测的研究,主要有基于反馈神经网络(back propagation,BP)[11]、基于循环神经网络(recurrent neural networks,RNN)[12—13]和基于卷积神经网络(convolutional neural network,CNN)的负荷预测方法[14]。文献[15]中利用BP神经网络的特征提取和非线性拟合能力,实现了短期负荷的有效预测,但该模型未考虑负荷特征之间的时序关系,预测精度不高。RNN模型具有记忆单元,可以实现对电力负荷数据时序关系提取,但在训练过程中容易产生梯度消失或爆炸的问题。基于RNN模型改进的长短期记忆网络[13,16](long short-term memory,LSTM)模型引入门控制单元,解决了RNN模型训练过程中梯度消失或爆炸的问题。文献[17]中采用了基于LSTM模型改进的门限循环单元(gated recurrent unit,GRU)模型,能以更快的收敛速度取得与LSTM模型相近的预测效果。CNN模型具有可并行计算的优点,但是无法很好提取时间序列数据的时序依赖特征。针对此问题,文献[18]中提出了时间卷积网络(temporal convolutional network,TCN),并在多种数据集上验证了其预测性能。
为了进一步提高短期负荷预测精度,文中基于负荷预测影响因素时序特征的分析,提出了一种基于TCN-GRU的短期负荷预测方法。利用时间卷积网络对时序数据的特征提取能力和GRU神经网络的非线性拟合能力,搭建TCN-GRU模型,并基于我国广东省佛山市某工业负荷数据进行短期负荷预测。预测结果表明,TCN-GRU模型的负荷预测能力明显优于其他单预测模型。
1 深度学习模型
1.1 TCN神经网络结构
TCN模型是一种简单通用的解决时间序列问题的卷积神经网络架构[18]。TCN模型由一组残差单元组成,每个残差单元是一个具有残差连接[19]的小型神经网络,通过残差连接可以加快深层网络的反馈与收敛,解决随着网络层次增加造成的“退化现象”。TCN的残差单元如图1所示。
图1 TCN残差单元Fig.1 Residual unit of TCN
残差连接是将残差单元的输入x添加到输出f(x),网络被强制模型化为:
f(x)=h(x)-x
(1)
残差单元中包含2个卷积单元和非线性映射。卷积单元中首先进行一维扩张因果卷积,通过扩张系数调整采样间隔,实现更大的感受野(receptive field,RF),即卷积层上的特征能看到的区域范围,让网络可以记忆足够长的历史信息,并且只对t时刻之前的输入进行卷积以得到t时刻的输出,保证不会泄露未来的信息;然后对权重进行归一化处理,使用ReLU函数作为激活函数;最后采用Dropout操作,按照一定的概率随机丢弃神经元,达到防止过拟合和加速模型训练速度的目的。非线性映射是在残差单元的输入和输出具有不同的维度时,对高维度的数据进行降维。一维扩张因果卷积的运算式为:
(2)
式中:x为输入序列;f为过滤器;d为扩张系数;k为卷积核大小;s-di确保只能对过去的输入做卷积操作。
1.2 GRU神经网络结构
GRU是LSTM的一个简化版本,其将LSTM的输入门和遗忘门整合为一个更新门,没有输出门,但增加了一个重置门。更新门控制前一时刻状态信息的保留程度,更新门的值越大说明前一时刻状态信息对当前状态的影响就越大[20]。重置门控制当前状态与先前信息的结合程度,值越小说明忽略的信息越多[21]。GRU单元结构如图2所示。
图2 GRU单元结构Fig.2 GRU structure
GRU单元中h(t)的计算公式为:
(3)
(4)
(5)
ht=(-zt)⊗ht-1+zt⊗gt
(6)
式中:xt为t时刻的输入;ht为t时刻的输出或状态;ht-1为t-1时刻的状态;w为权重;σ为激活函数sigmoid(·);tanh(·)为激活函数。
2 基于TCN-GRU的负荷预测模型
电力负荷预测是一个非线性的时间序列预测问题[22]。时间序列数据是指随时间变化的数据,而影响电力负荷的因素不单单有电力负荷数据等时序序列数据,也有温度、日期等非时间序列数据。如果将所有数据无差别的输入到单模型中进行训练,不能有效提取出原始数据内部蕴含的时序关系和非时序关系。
2.1 TCN-GRU模型结构
TCN模型通过一维因果卷积对过去的数据进行提取,保证时序性,残差连接加快收敛速度,扩张卷积实现时序特征提取。GRU模型作为循环神经网络的变种,具有非线性拟合能力,能够有效提取数据特征,且在保障得到与LSTM相近预测效果的同时获得更快的收敛速度[23]。文中将两者结合搭建了TCN-GRU模型,如图3所示。
图3 TCN-GRU模型结构Fig.3 TCN-GRU model structure
图3中,TCN-GRU模型结构包括:
(1) 输入1。输入为连续7 d的电力负荷数据样本。每日的电力负荷数据是按照24 h设置96个采样点,时间间隔为15 min,获取得到96维电力负荷数据。
(2) 时间卷积网络层。设置2层的残差单元。每层残差单元包含2个卷积单元和1个非线性映射。其中卷积单元使用ReLU函数作为激活函数,对卷积核的权重进行归一化操作。卷积核大小为2;并设置Dropout系数为0.4,Dropout设置可以随机选取部分神经元失活,防止训练过拟合,同时加快模型的收敛速度;设置扩张系数为(1,2,4,8,16,32);过滤器为128。残差单元的输入和输出具有不同的维度,不能直接做加和操作,将残差映射中增加了一个1×1的卷积层进行降维。
(3) 输入2。输入为连续7 d的非时序数据。每日的非时序数据包含日平均温度、日平均电价和日期类型经过one-hot编码后产生的7维的数据,一共9维数据。
(4) 门限循环单元层。设置3层的GRU单元。首先将TCN模型的输出g与输入2的输出x2进行连接,需要保证数据的维度和样本个数相同,得到数据ct。
ct=f(x(2,t),gt)
(7)
式中:f表示连接操作,利用keras模型的concatenate函数实现,将时间卷积网络和输入2连接起来,作为门限循环单元的输入。
(5) 输出层。输出为预测日一天96个时间点的电力负荷预测结果y。输出层神经元个数设定为96。该层网络以Sigmoid函数作为激活函数。t时刻的输出式为:
yt=σ(wht+b)
(8)
式中:b为偏差向量。
2.2 优化器
文中提出的TCN-GRU模型中采用Adam[24]优化器对模型的参数进行优化以减小损失。Adam是一种对随机目标函数执行一阶梯度优化的自适应优化算法,结合了AdaGrad优化器和RMSProp优化器的优点。损失函数L选取了平均绝对误差(mean absolute error,MAE)。
(9)
2.3 实验评估标准
实验选取平均绝对百分误差(mean absolute per-centage error,MAPE)、均方误差(root mean square error,RMSE)、测试时间和决定系数R2作为模型衡量指标。MAPE可以衡量预测模型的精确度,RMSE可以体现预测平均误差的大小,R2可以表征预测模型的拟合程度。在进行负荷预测中,MAPE和RMSE的值越小,R2的值越接近于1表示模型的拟合效果越好。
(10)
(11)
(12)
(13)
3 算例分析
3.1 实验环境
文中运算使用的计算机配置为Window10系统,16 G运行内存,GTX1650显卡;采用的编程环境为PyCharm2017.1;搭建的神经网络模型为深度学习框架TensorFlow和Keras框架。
3.2 数据的选择
文中选取广东省佛山市某行业2017年12个月的真实历史负荷数据作为数据集。每日设置了96个采样点,时间间隔为15 min,数据集获取96维电力负荷数据。考虑到工业用户用电情况受天气,工作日和非工作日以及电价的影响较大[14],选取了每日平均温度、日期类型、电价[25]作为其他输入。根据时序特征的特点,认定电力负荷为时序特征,每日平均温度、日期类型、电价作为非时序特征[22]。
3.3 数据预处理
3.3.1 数据补全
对于数据集中的数据缺失情况,文中采用均值填充的方式进行缺值填充,补全效果如图4所示。
图4 数据补全示例Fig.4 Example ofdata completion
3.3.2 数据标准化
数据集中的样本数据衡量的是不同尺度的数据特征,如果直接放入模型中进行训练操作,会使模型偏向于数值较高的指标,而降低数值水平较低的指标在模型中的作用。因此,将历史负荷数据和温度数据进行归一化处理,归一化后的数据处于[0,1]范围内。归一化x′i,j可表示为:
(14)
式中:xi,j为矩量阵x的i行,j列元素值;x(i,j)min为输入数据x的最小元素值;x(i,j)max为输入数据x的最大元素值。
对于离散型数据,采用one-hot编码的方式进行预处理。比如日期类型中的周一类型可以表示为0000001。
3.3.3 数据集划分
将数据集划分为训练集、测试集和验证集,其中训练集和验证集以9∶1比例分配,并选取2017-12-30的数据作为测试集。
3.4 TCN-GRU模型参数
首先通过对比实验确定TCN-GRU模型中TCN残差单元的个数和GRU神经网络的网络层数。设定模型迭代次数均为500次,GRU模型中每层神经元个数为256个,TCN中扩张系数以2的倍数叠加。在设置不同残差单元的个数和GRU神经网络的网络层数时,模型的预测效果如表1所示。
表1 TCN-GRU参数比较Table 1 Comparison of TCN-GRU model
由表1中数据可以得出:当残差单元的个数设置为2,GRU神经网络的网络层数设置为3时,预测效果最好。
3.5 预测结果对比
为了验证模型的性能,实验将TCN-GRU模型与GRU模型、LSTM模型、TCN模型、深度神经网络(deep neural networks,DNN)模型进行了对比训练,其中GRU模型、LSTM模型、TCN模型、DNN模型的网络层数统一设置为3层。利用广东省佛山市的电力负荷数据集对模型进行训练,并利用训练好的模型对2017-12-30广东省佛山市某行业的电力负荷进行预测,预测效果如表2所示。
表2 模型对比Table 2 Comparison of five models
由表2可知,TCN-GRU模型的MAPE值为1.75%,和现有的常用于负荷预测的深度学习模型相比,取得了更好的预测精度,对比单模型TCN模型和GRU模型,准确度也得到了提升。DNN模型和LSTM模型的预测效果与文中模型进行对比,如图5所示。
图5 预测结果对比Fig.5 Comparison of load forecasting results
由图5可以发现,文中预测曲线更加贴近真实负荷数据曲线,特别是几个高峰点和低谷点拟合效果更佳。
图6对比了文中TCN-GRU预测模型和单模型之间的预测曲线。从图中可以得出文中提出的TCN-GRU模型预测效果要优于单模型TCN和GRU。
图6 预测结果对比Fig.6 Comparison of load forecasting results
4 结语
对电力负荷的短期预测往往只考虑输入数据的时序特性或者不考虑输入数据之间的时序关系。文中提出的基于TCN-GRU模型的短期负荷预测方法兼顾数据的时序特性和非时序特征。首先该方法通过TCN模型提取时序数据的时间序列特征;然后结合非时序特征以组成新的数据集;最后利用GRU模型的非线性拟合能力以及深度学习能力对电力负荷进行预测。相较于经典的深度学习模型GRU、LSTM等模型,文中提出的TCN-GRU模型取得了更高的预测准确率,为电网系统提供了更加精确的预测结果,也为电网系统灵活调节供电量提供了更加可靠的依据。
未来将在以下几个方面进行深入研究:(1) 文中研究目标为单一的电力负荷数据,考虑将该模型应用于综合能源的负荷预测之中;(2) 文中研究输入数据为单一的负荷数据,考虑将空间特征引入短期负荷预测。