刘可真,阮俊枭,赵现平,刘 果
(1.昆明理工大学电力工程学院,昆明 650500;2.云南电网有限责任公司电力科学研究院,昆明 650217)
负荷预测是以系统负荷本身的波动变化及负荷所在地的外界因素(例如气象因素等)变化为依据,采用特定的方法或模型对负荷历史数据进行分析以估测电力系统需求[1]。负荷预测数据是电力系统调度的依据,其准确性的提升对电力系统的发展有重要的推动作用。
短期负荷预测历经几十年的研究发展,主要可分为3类预测方法。
(1)传统统计学方法,包括线性回归LR(linear regression)[2]、自回归AR(auto regression)[3]和自回归移动平均 ARMA(auto regressive moving average)[4]等。统计学方法结构简单易于建模,但输入数据的分布特性对模型输出有较大的影响。
(2)机器学习方法,包括灰色系统、支持向量机SVM(support vector machine)[5]、人工神经网络ANN(artificial neural network)[6]等。其中,SVM算法可用于线性/非线性问题,泛化错误率低,能解决传统算法中高维问题,但在处理大数据量时间序列时收敛慢、精度低。ANN方法中的反向传播BP(back propagation)神经网络具有较强非线性映射能力,且能在训练过程中自动提取数据输入输出特征并调整网络权值适应,但其收敛速度慢,容易陷入局部最小化,针对时间序列数据时特征需要人工指定,破坏了时序的完整性。
(3)组合模型预测法,通过结合优化算法或数据预处理方法对模型中存在的多个超参数进行优化。例如经验模态分解EMD(empirical mode decomposition)[7]等对原始时序数据进行处理以提高预测准确度。
短期电力负荷数据通常是包含负荷自身波动与相关因素的复合时间序列,具有时序性与非线性。统计学方法难以针对非线性时序建模,传统机器学习方法虽然能解决这一难点,但输入信息的时序完整性难以保存[8]。近年来,随着硬件算力的提升,深度学习得以高速发展并成为负荷预测研究热点[9],例如深度信念网络DBN(deep belief network)[10]、深度神经网络DNN(deep neural network)[11]等的应用相比传统算法提高了预测准确度。循环神经网络RNN(recurrent neural network)通过使用带自反馈的神经元使网络具有短期记忆,原理上能处理任意长度的时间序列,通常使用梯度下降的算法,但当输入序列较长时会出现梯度爆炸和消失的问题。长短期记忆LSTM(long short-term memory)网络通过引入门控机制以改善前述问题,在时间序列处理问题上得到了广泛的应用[12-14],但其网络结构略为复杂,在处理高维大量数据时收敛速度较慢。门控循环单元GRU(gated recurrent unit)[15-17]在LSTM的基础上简化了门控结构,减少了可训练参数总量使得训练速度提升。然而LSTM、GRU等循环神经网络在实际运用中存在两方面的不足:①当输入的时间序列较长时,网络易出现丢失序列信息、难以建模序列间结构信息的问题;②模型的构建训练中存在4个关键超参数,包括学习率l、隐层神经元数m、训练输入批量bs及训练轮次k。学习率l影响模型的收敛状态,神经元数m影响模型的拟合能力,输入批量bs影响模型的泛化性能而训练轮次k影响模型训练程度。超参数通常由人工经验进行选择,通用性差、不确定性高。
鉴于此,本文提出一种基于注意力机制(attention mechanism)[18-19]的麻雀搜索算法SSA(sparrow search algorithm)[20]优化GRU组合预测方法,该方法首先利用注意力机制对输入信息进行权重分配以突出重要信息贡献度,同时使用SSA对Attention-GRU关键参数(l、m、bs、k)进行组合优化。此模型旨在从负荷预测多步信息中突出关键信息对预测结果的贡献度,并结合最优化模型结构,达到短期负荷的精准预测。实验证明,与传统统计学及机器学习方法相比,本文所提出的预测模型有更高的预测准确率。
SSA是一种受鸟类觅食行为启发提出的新型群智能优化算法,其原理可抽象为加入预警机制的鸟类成员发现者(Producer)和加入者(Scrounger)的互动模型,服从以下行动原则:
(1)发现者负责寻找食物,同时为所有加入者提供觅食区域和行动方向;
(2)因为随时可能遭遇捕食者,种群随机选择10%~20%比例的侦察者,当遭遇捕食者时整个种群迅速进行反捕食行为,行动行为由发现者主导;
(3)加入者利用发现者获取食物,同时一部分加入者会监控发现者能量水平状态,当发现者能量水平较高时主动争抢食物资源;
(4)当加入者本身能量水平过低时,可能会前往其他区域觅食;
(5)处于边缘位置的麻雀在意识到捕猎危机时会迅速向安全区域移动,而处于种群中心区的麻雀随机移动以靠近其他同伴。
假设种群麻雀数量为n,搜索空间维度为d维,则麻雀的位置信息可抽象为n×d的矩阵。
发现者更新位置的公式为
加入者更新位置的公式为
侦察者更新位置的公式为
注意力机制通过借鉴人脑的注意力,增强对关键信息的注意程度以提高关键信息对结果的贡献,在神经网络中引入注意力机制可以提高神经网络的训练效率。经典注意力机制原理是设有N个输入向量x=[x1,x2,…,xN],为选出与特定任务相关的信息,引入查询向量q与打分函数s,具体公式为
式中:αn为注意力分布,表示第n个输入向量与查询向量的相关程度,n=1,2,…,N;softmax为多项的Logistic回归;W、U、V为可学习参数。打分函数通常使用加性模型如式(5)。注意力机制的结构如图1所示,其中e为根据注意力分布分配权重比的输入信息汇总。
图1 注意力机制结构Fig.1 Structure of attention mechanism
为提升模型训练效率,对经典注意力机制进行简化,去掉查询向量打分过程,使用多分类逻辑回归的思想实现输入信息的权重分配,原理如图2所示,其中cnn为两神经元间连接权重。
图2 多分类逻辑回归结构Fig.2 Structure of multi-class logistic regression
模型的整体输出为
式中:α为注意力分配权重向量;C为连接权重矩阵;b为偏置向量。f使用softmax函数,则对第n个输入向量的分配权重计算公式为
式中:cn为第n个输入向量与其余向量的连接权重向量;bn为第n个输入向量的偏置。皆通过神经网络反向传播算法优化。
LSTM网络可以捕获时间序列中的长期依赖关系,通过引入遗忘门、输入门、输出门来动态控制对历史信息的遗忘、新信息的输入及信息的输出。LSTM网络中的输入门和遗忘门是互补关系,但是具有一定冗余性。为改进这一不足,GRU网络引入更新门(update gate)来控制需要从历史信息中保留的信息数量。GRU结构如图3所示。
图3 GRU结构Fig.3 Structure of GRU
设x(t)为输入,h(t)为隐藏层输出,则GRU计算流程可表示为
式中:rk(t)为重置门值;zk(t)为更新门值,为输入与上一层合并值;h()t为隐藏层输出;σ为Sigmoid函数;f为激活函数,通常使用双曲正切函数tanh;Wr、Ur、Wz、Uz、Wh、Uh为可训练参数向量;°表示向量元素乘。
在短期电力负荷预测中,负荷的历史序列包含了大量潜在信息,对预测未来数据起着至关重要的作用。传统机器学习方法通常是从负荷历史序列中人为选取时间特征,这种方法客观性不足,容易破坏历史序列的时序特性和潜在规律。GRU网络引入门控机制,自动从历史信息中提取时间特征,简化了人工选取这一步骤,同时也提高了预测精确度。为捕捉输入序列之间的依赖关系,提高重要信息对预测结果的贡献度,采用前置注意力机制建模输入信息结构,对输入信息按时间戳赋予不同权重,使包含对准确预测结果贡献度高的时间戳得以强调。短期负荷预测的输入数据是高维多序列的,模型的超参数选择对学习拟合能力起着十分重要的作用,使用人工经验进行选择,通用性差、不确定性高。为使模型形成对应输入数据的最佳超参数结构,使用SSA对模型超参数进行迭代选优。
Attention-GRU模型如图4所示,由输入层、注意力层、GRU层、全连接层及输出层构成。模型的描述如下。
图4 Attention-GRU模型结构Fig.4 Structure of Attention-GRU model
(1)输入层:将负荷历史数据与相关因素数据进行合并作为模型的输入。设合并数据长度为N,则合并数据可表示为x=[x1,x2,…,xN]T。
(2)注意力层:注意力层的输入为经过输入层的合并数据,通过训练迭代更新输入特征的权重,使重要输入信息贡献度提高。注意力层权重计算公式见式(7),第n个序列的输出yn可表示为
(3)GRU层:GRU层接收注意力层的新输入进行学习。使用单层GRU对新输入进行学习,捕获序列内部变化规律。设GRU层的输出为h,即
(4)全连接层:搭建全连接层以提高模型对提取特征的学习程度,激活函数使用ReLU函数,可表示为
式中:H为全连接层的输出序列;L、d分别为本层中的权重矩阵与偏置向量。
(5)输出层:输出层通过全连接层进行计算输出预测结果,输出Ypredict可表示为
式中,DNN()为全连接网络运算。
SSA结构如图5所示,具体步骤如下。
图5 SSA结构Fig.5 Structure of SSA
步骤1设置最大迭代次数、参与搜索麻雀数目、发现者数量、侦查者数量及预警值。
步骤2根据麻雀数目与优化参数(l、m、bs、k)形成搜索空间矩阵并初始化相关参数。
步骤3计算并排列适应度值,找出最优适应度个体及最劣适应度个体。
步骤4根据式(1)~(3)更新发现者、加入者、侦察者位置,比较全局最优解并更新最优适应度值。
步骤5判断终止条件(适应度趋于稳定或迭代次数达到最大),若满足则输出最优解,否则返回步骤3。
模型训练过程中使用自适应矩估计算法ADAM(adaptive moment estimation algorithm)对网络可训练参数进行优化,在训练过程中通过迭代更新神经元的权重及偏差,降低损失函数输出值。模型训练过程中的损失函数使用均方误差MSE(mean squared error),其表达式为
式中:n为样本个数;yi为实际值;为模型预测输出值。
基于SSA-Attention-GRU预测模型求解过程如图6所示,具体步骤如下。
图6 SSA-Attention-GRU模型求解过程Fig.6 Solving process of SSA-Attention-GRU model
步骤1将经过预处理的负荷历史数据与相关因素数据合并,输入张量形状为(input_length,timestep,input_dim),其中第1维为参与训练的整个数据集包含数据长度;第2维为时间戳(时间步),代表1次批量输入所包含的前置历史日数量;第3维为输入特征维度,为1个历史日中负荷历史数据时点与相关因素合并后的特征总量。
步骤2训练样本集划分为训练输入与训练标签,将训练输入输入模型获取训练输出,用式(16)衡量训练输出与训练标签的损失值,再如图(6)过程所示,根据ADAM反向传播算法优化模型可学习参数向量。
步骤3将验证集划分为验证输入与验证标签,输入验证输入获取验证输出,SSA目标函数为验证损失最小,迭代更新模型超参数组。
步骤4将最优化结构的模型保存,输入测试数据集,获取预测时间点对应预测值。
为验证本文所提出预测模型的准确性,算例分析采用瑞士电网公开数据及相关气象数据集,选取2019年1月1日—2019年12月21日的负荷数据,1 d采集24点,时间间隔为1 h。预测输入特征包含历史负荷、日最高温度、最低温度、平均温度、星期日类型、节假日类型。以数字0~6对应星期一至星期日。对于节假日,以1/0分别对应是否为节假日。为提高模型训练效果,采用min-max归一化法将原始数据置于(-1,1)区间内,计算公式为
式中:x为原始数据;x*为归一化的数据;xmin、xmax分别为样本数据的最小值与最大值。
结果评价标准选取平均绝对百分误差MAPE(mean absolute percentage error)、根均方误差RMSE(root mean squared error)和拟合精度FA(fitting accuracy),计算式分别为
式中,n为预测结果数目。评价标准为MAPE、RMSE值越小、FA值越大,则模型预测效果越好。
为科学验证本文模型的有效性,选择LR、SVR、MLP、LSTM、GRU模型与本文所提方法进行结果对比。
样本数据集时间为2019年1月1日—2019年12月21日,以2019年1月1日—2019年11月15日数据为训练集;以2019年11月16日—30日数据作为验证集,参数优化目标为验证集损失值最小。为测试模型泛化能力,以2019年12月3周数据集为测试集。
对SSA参数设置包括参与搜索的麻雀数量n为20,对l、m、bs、k等4个参数进行优化,初始化形成20×4的搜索矩阵;最大迭代数Tmax为30;m、bs、k的搜索范围为[1,1 000],l的搜索范围为[10-5,10-3];将验证集上预测结果的平均绝对百分比作为麻雀适应度,适应度5轮迭代不变时算法中止。优化结果如表1所示。
表1 SSA-Attention-GRU参数优化结果Tab.1 Optimization results of SSA-Attention-GRU parameters
构建模型输入为预测日前7日的复合数据,输出为预测日24 h预测值。设置GRU输入数据结构时间戳(时间步)为7,分别对应预测日前7日所包含的信息,使用注意力机制对时间步进行权重分配优化。对2019年12月1日(星期日)、2019年12月11日(星期三)、2019年12月21日(星期六)的权重分配优化结果如图7所示。由优化结果可知,注意力机制对时间步为1及7的重视程度最高,对应为预测日一周前的的历史日及相邻日,说明这两个时间步中包含对预测结果更为重要的信息。
图7 Attention机制权重分配优化结果Fig.7 Optimization results of weight distribution based on Attention mechanism
对连续3周的负荷预测的评价指标如表2所示。分析可知,所提模型相比于LR、SVR、MLP、LSTM、GRU等模型,MAPE分别降低了3.432%、2.110%、1.260%、0.738%和0.488%,RMSE分别降低了54.36%、38.34%、28.45%、18.96%和13.96%,说明所提模型相对传统预测方法具有较佳性能。
表2 不同预测模型对比Tab.2 Comparison among different predictive models
SSA-Attention-GRU连续3周拟合结果与真实负荷的对比如图8所示。可见,模型在工作日的拟合曲线与真实负荷曲线吻合度较高,在周末的吻合度比工作日略有降低。进一步分析模型对不同日类型的拟合效果,以日为基础的误差分析如表3所示。所提模型对比5种传统模型工作日MAPE分别下降了3.714%、1.998%、1.357%、0.513%和0.369%;周末、节假日MAPE分别下降了2.726%、2.390%、1.017%、1.301%和0.784%。预测结果无论是平均误差还是最大误差均优于其他预测方法,预测精度更高。
图8 SSA-Attention-GRU拟合结果Fig.8 Fitting results of SSA-Attention-GRU
表3 逐日预测结果MAPETab.3 MAPE of daily forecasting results
本文结合当前计算机算力、算法的快速发展,以及电力负荷预测精度提高的要求,提出了一种基于注意力机制与SSA门控循环单元模型实现负荷的短期预测,所提模型具有如下优点。
(1)通过前置注意力机制对输入信息进行权重分配,使时间戳中包含对准确结果贡献度更高的序列得到强调。结果表明,引入注意力机制对输入信息进行权重分配后,比同权重输入信息预测准确度有提升,且前置注意力机制可解释性更好。
(2)使用SSA对网络超参数进行迭代优化,克服由人工经验进行选择通用性差、不确定性高的缺点。
(3)与传统的LR、SVR、MLP、LSTM 和GRU预测模型相比,本文方法在工作日、节假日、最大误差与平均误差上均取得了更佳的效果。
对本文方法进行对比发现,节假日与工作日预测效果上存在一定差异,后续将通过分析用户行为,进一步提取负荷变化规律提升预测精确度。