基于超参数优化和双重注意力机制的超短期风电功率预测
2022-06-09康田雨覃智君
康田雨,覃智君
(广西大学电气工程学院,南宁530004)
0 引言
可再生能源发电是当代能源革命的重要组成部分,在近十年间获得了国际社会的广泛关注。风力发电作为其中最具代表性的发电方式,因其清洁、易获取、分布广等优点获得了迅猛发展[1 - 2]。但由于风能的强波动性、强间歇性和弱周期性的特点,风电并网给电力系统的安全稳定运行带来了严峻的考验。超短期风电功率预测精度的提高对于电网制订合理的经济调度和机组组合计划起着至关重要的作用,也有助于减少系统弃风量,提高经济性。所以,提升风电功率预测准确度对确保电力系统运行的安全性、稳定性和经济性具有重大意义[3]。
国内外对于风电功率预测问题的研究方法可以分为基于物理建模的方法和基于数据统计的方法两类[4 - 11]。前者不需要历史数据,以风电场地形、地表粗糙度、气象条件和风机分布位置等为基础信息, 通过求解流体力学、热力学高维方程组进行功率预测[4 - 6]。该类方法建模复杂、求解难度高、计算量大,一般多应用于新建风场[7 - 9]。后者利用历史功率和天气数据样本挖掘潜在规律,建立历史数据和预测目标间的映射关系,应用较为广泛。数据统计方法可细分为传统统计方法和基于数据驱动的机器学习算法。近年来,人工神经网络(artificial neural network,ANN)、支持向量机(support vector machine,SVM)、极限学习机(extreme learning machine,ELM)等机器学习算法快速发展,在预测领域的优越性突显出来,逐步取代了移动平均法、自回归移动平均法等传统统计方法[10 - 11]。
早期机器学习算法难以处理时序数据相关性和动态特性,无法适应大规模训练数据[12]。长短时记忆网络(long short term memory, LSTM)是在循环神经网络(recurrent neural network,RNN)[13]的基础上发展而来的,拥有一定的长时记忆能力,可以解决RNN的梯度消失问题[14]。所以LSTM模型在负荷预测和风电功率预测领域得到了广泛的应用。常规LSTM模型只能挖掘正向时序信息,有学者提出了双向LSTM(bidirectional LSTM,BiLSTM)结构,它可以进行双向时序关系的挖掘。文献[15]使用LSTM网络对风电场功率进行超短期预测,取得了比ANN和SVM更精确的效果。文献[16]研究表明BiLSTM针对时间序列数据的预测效果优于单向LSTM。鉴于卷积神经网络(convolutional neural network,CNN)在图像处理领域上表现出的强特征提取能力,研究人员开始把CNN和LSTM组合使用。文献[17 - 18]使用CNN自动提取历史数据高维特征,使用LSTM网络对多变量时间序列进行建模,比使用单一网络具有更高的预测精度。
但CNN和LSTM的组合模型在风电功率预测的应用上仍存在以下不足:1)面对极端天气时数据中的隐藏特征比良好天气时更重要,功率波动时峰值隐藏的特征比平稳运行时更重要,而普通CNN结构无法辨别这些高维特征的差异性,导致重要特征有可能被忽略;2)LSTM和BiLSTM的时序信息挖掘能力,都是面对较短序列输入时展现出的优势,只适合处理时序数据中的局部相关性,当面对风电功率数据这种多维长序列时,存在容易忽略序列结构信息、难以解决长时依赖等问题[19 - 20]。
注意力机制[21]可以很好地解决上述问题,它本质上是一种加权机制,根据输入数据对结果产生的影响赋予不同的概率权重,使重要特征不会因时间步长的延长而被忽略。本文提出基于双重注意力机制的CNN-BiLSTM的风电功率预测模型,将注意力机制分别引入CNN和BiLSTM中,组成特征注意力模块和时间注意力模块。特征注意力模块通过对CNN输出结果进行加权分配实现对原始数据中重要特征的挖掘,并加强其影响。时间注意力模块根据BiLSTM的隐藏层状态中各时间节点对预测结果的影响提取重要的历史信息,加强了对中长步长中相互依赖关系的学习。
本文主要开展的研究工作如下:1)将双重注意力机制引入CNN-BiLSTM模型,以有效解决重要高维特征提取和时间序列长时依赖问题;2)使用贝叶斯优化对整个模型的超参数进行寻优,提高模型最优学习能力,避免人工调参依赖经验、耗时耗力以及稳定性差等不足;3)分别用单步预测结果和多步预测结果对模型性能进行验证,其中多步预测区别于常见的2步、3步预测,使用24步预测实现4 h前的超短期预测。
1 深度学习模型原理
1.1 CNN网络
CNN模型[22]是当前深度学习中最流行的模型之一,利用卷积运算实现对原始数据更高维的表示,可以有效提取原始数据中的内部特征[23]。
CNN结构图如图1所示,标准的CNN由卷积层、池化层、全连接层组成。CNN结构计算公式如式(1)—(3)所示。
(1)
P=δ(C)+bp
(2)
H=φ(P×ws+bs)
(3)
式中:C和P分别为卷积层和池化层的输出状态;H为CNN结构输出的特征向量;wc和ws分别为卷积层和全连接层的权重矩阵;bc、bp和bs分别为卷积层、池化层和全连接层的偏置向量;⊗为卷积运算;f(·)为卷积层激活函数,本文选取ReLU函数;δ(·)为池化方法,本文选取最大池化;φ(·)为全连接层激活函数,本文选取Sigmoid函数。
1.2 LSTM网络
LSTM在RNN的基础上增加了3个逻辑门控单元:遗忘门、输入门、输出门。LSTM可以保存数据状态,实现在多个时间步长上稳定学习,有效建模序列的时间依赖关系[24 - 25]。LSTM网络结构如图2所示。
图2 LSTM结构图Fig.2 Structure of LSTM
输入门负责选择需要被保留的当前时刻t的状态,遗忘门负责选择需要被忘记的上一时刻t-1的状态,输出门负责选择需要输出给隐藏状态ht的当前时刻状态。LSTM网络计算如式(4)—(8)所示。
it=Sigmoid(wixt+uiht-1+bi)
(4)
ft=Sigmoid(wfxt+ufht-1+bf)
(5)
ot=Sigmoid(woxt+uoht-1+bo)
(6)
St=tanh(wgxt+ught-1+bg)⊙it+St-1⊙ft
(7)
ht=tanh(St)⊙ot
(8)
式中:it、ft、ot、St和ht分别为输入门、遗忘门、输出门、记忆单元和输出单元的状态矩阵;wi、wf、wo、wg为不同逻辑单元对应本时刻输入xt的权重矩阵,下标i、f、o、g分别表示输入门、遗忘门、输出门和记忆单元;ui、uf、uo、ug分别为不同逻辑单元对应上一时刻输出ht-1的权重矩阵;bi、bf、bo、bg分别为不同逻辑单元的偏置向量;⊙表示矩阵中对应位置元素相乘。
1.3 BiLSTM网络
BiLSTM[26]网络本质上是一个双层LSTM网络,由正向LSTM层和反向LSTM层组合而成。在正向LSTM层中,输入序列以顺序形式输入网络进行训练,挖掘数据的顺序依赖关系。在反向LSTM层中,输入序列以逆序形式输入网络进行训练,挖掘数据的逆序依赖关系。这种结构可以对输入数据进行双向时序特征提取,进一步提高时序特征提取的全局性和完整性。BiLSTM的网络结构如图3所示。
图3 BiLSTM结构图Fig.3 Structure of BiLSTM
1.4 注意力机制
注意力机制模型[27]的核心思想是通过合理分配不同输入信息的注意力,为神经网络中的隐藏层状态赋予不同的权重,突出重要信息对结果的影响,提高模型预测准确率。注意力机制的权重分配计算可用式(9)—(10)表示。
et=uatanh(waht+ba)
(9)
(10)
式中:ht为t时刻神经网络隐藏层状态向量;et为注意力概率分布值;at为注意力得分;ua和wa为注意力权重向量;ba为注意力偏置向量。
2 基于双重注意力机制的CNN-BiLSTM风电功率预测模型
风电功率数据中不仅包含历史风电功率信息而且包含与之对应的历史天气信息,可将具有n个时段m种天气特征的风电功率数据表示为1个n×(m+1)的矩阵X=[x1,x2,…,xn]T, 其中x=[p,c1,c2,…,cm],p为功率数值,c为天气数据。作为典型的多维时间序列数据,风电功率数据内部蕴含着历史功率与未来功率的映射关系、历史天气与历史功率的映射关系、历史天气与未来功率的映射关系以及各天气特征的历史与未来的映射关系。
针对这些复杂映射关系,本文提出一种基于双重注意力机制的CNN-BiLSTM风电功率预测模型,具体结构如图4所示。此模型采用encoder-decoder框架,特征注意力模块作为编码器,时间注意力模块作为解码器。特征注意力模块由CNN网络和注意力机制组合而成,CNN网络凭借卷积操作和池化操作能够充分挖掘数据中的高维特征,注意力机制对高维特征的权重进行训练,确保关键特征发挥重要影响。时间注意力模块由BiLSTM网络和注意力机制组合而成。BiLSTM网络能更好地学习时间序列数据中的周期特征和趋势特征。注意力机制通过对隐藏状态权重的训练,自主选择重要的历史序列状态信息,克服了BiLSTM网络面对较长时间序列输入时容易出现的信息丢失和梯度消失问题,突出了时序状态对预测结果的影响。
图4 模型结构图Fig.4 Structure of model
2.1 特征注意力模块
特征注意力模块由CNN网络和注意力机制组合而成。输入数据经卷积层使其维度增加,然后经池化层压缩参数量,再由全连接层将特征转换为一维结构,最后经注意力机制分配权重完成重要特征的提取。此模块采用双层CNN结构,即由两个卷积层和两个池化层交替组成,将卷积层均设计为一维卷积结构。其结构可用式(11)—(17)表示。
C1=conv(X)
(11)
P1=pool(C1)
(12)
C2=conv(P1)
(13)
P2=pool(C2)
(14)
Hc=FC(P2)
(15)
af=Attention(Hc)
(16)
cf=afHc
(17)
式中:conv(·)表示卷积层计算,具体公式见式(1);pool(·)表示池化层计算,具体公式见式(2);FC(·)表示全连接层计算,具体公式见式(3);Attention(·)表示注意力机制计算,具体公式见式(9)—(10);af为特征权重向量;cf为特征注意力模块输出向量。
2.2 时间注意力模块
输入数据经特征注意力模块编码后得到隐藏状态cf, 在encoder-decoder框架中称其为中间语义。时间注意力模块作为整个模型的解码器,对中间语义cf进行解码操作:将蕴含关键特征信息的cf通过BiLSTM双向学习,捕获序列内部时间变化规律;注意力机制根据历史节点与结果的关联程度,赋予BiLSTM输出的隐藏状态不同权重;最后经输出层得到预测结果。其结构可用式(18)—(23)表示。
(18)
(19)
(20)
as,t=Attention(HB,t)
(21)
(22)
yt=Sigmoid(wrrt+br)
(23)
3 基于贝叶斯优化的预测模型超参数寻优
深度学习模型的超参数优化问题可以看作一个黑盒函数,我们只知道其输入和输出,不清楚其数学性质。深度学习模型的超参数优化问题与其他全局优化问题相比,其最大的特点是每一次函数评估都需要调用神经网络训练,每一次训练短则十几分钟,长则几个小时,所以训练成本非常高。目前广泛应用的群智能算法,例如粒子群算法、麻雀算法等,需要对优化函数进行初始化操作,并不断更新初始化矩阵,这就意味着需要大量调用神经网络进行训练,极大地增加了寻优模型的训练成本。因此,群优化算法并不适合深度学习模型的超参数寻优。贝叶斯优化(Bayesian optimization,BO)[28]使用贝叶斯定理可以充分利用之前函数的评估信息,根据目标函数的后验分布,选择下一个最有潜力的采样点。BO可以实现通过较少的评估找到函数的全局最优解,对黑盒函数同样可以达到很好的效果,适合深度学习模型的超参数寻优问题[29 - 30]。
贝叶斯优化算法通过概率代理模型对超参数的先验概率进行观测,从而获得后验概率分布。然后使用采集函数根据后验概率分布得到下一个较优的超参数评估点。该算法的核心内容参见文献[29]。预测模型的超参数优化流程如图5所示。
图5 贝叶斯超参数优化流程图Fig.5 Bayesian hyperparameter optimization flowchart
4 时间序列数据填充算法
由于新能源消纳策略不够完善,风电场实际运行时会接受电网调度产生弃风,这种人为不可预见因素的引入破坏了风电功率序列的规律性。本文采用文献[31]所提时序数据填充方法,使用生成对抗网络(generative adversarial network,GAN)对弃风数据进行填充。
生成对抗网络主要由生成器和判别器组成,生成器致力于将一个服从高斯分布的随机向量映射成一组逼真的新样本,而判别器致力于判别输入样本的真假,二者构成一个零和博弈问题。文献[31]所提方法采用WGAN结构,在搭建生成器和判别器的过程中使用一种针对时间序列的填充神经单元GRUI,能够有效处理缺失时序数据,获得其本质特征与缺失规律。将有缺失的时间序列数据和随机向量输入生成器,合成一份新样本数据送入判别器判断。当训练到判别器输出的准确率保持在50%时,说明生成器学习到了原始时间序列的规律,可以生成以假乱真的样本。
将问题描述为最小化原始数据x与新生成样本G(z)的差异,如式(24)所示。
(24)
式中:M为缺失标识矩阵;z为随机向量;G(·)表示生成器;D(·)表示判别器;λ为超参数。
缺失值填充方式如式(25)所示。
ximpute=x·M+(1-M)·G(z*)
(25)
式中:z*为最优输入向量。
5 算例分析
5.1 数据预处理
本文采用中国西北地区某风电场实际发电数据和天气数据,选取2014年全年实测数据,包括风电功率、风速、风向、温度,时间分辨率为10 min,风电场装机容量为49.5 MW。此数据集全年丢失或无效记录数据489条,数据完整率为99.07%,数据质量符合研究要求。
针对原始数据集中的完全弃风数据,采用第4节所述基于生成对抗网络的时间序列数据填充方法进行填充,模拟风场不接受调度的情况下最有可能的发电情况,可以有效保护风电数据的完整性和规律性。
为了方便神经网络的训练,通常需要将数据进行归一化处理,功率、风速、温度数据采用式(26)的max-min归一化方法将数据归一化至[0,1]区间。风向则采用三角函数归一化方法,即取风向的sin值和cos值共同表征风向信息[32]。
(26)
式中:x为实际值向量;xmax和xmin为x的最大值和最小值;x′为归一化向量。
5.2 误差指标
本文选取归一化均方根误差(normalized root mean square error, NRMSE)和确定系数(R-squared, R2)作为评估预测结果精度的指标,计算公式分别见式(27)和式(28)。NRMSE可以衡量预测的整体误差,其值越小预测结果越准确。R2可以表示两条曲线的相似程度,其值越近1则预测效果越好。预测领域常用的误差指标还有平均百分比误差(mean absolute percentage error,MAPE),但是风电功率预测与其他预测不同点在于风电功率的实际值存在功率为零的时刻,根据式(29)所示的MAPE计算公式,会出现分母为零的情况,故MAPE不适合作为风电功率预测的误差评价指标。
(27)
(28)
(29)
5.3 单步预测结果分析
本文将数据集的60%设置为训练集,20%设置为验证集,20%设置为测试集。采用时间步长为10步的单步预测方式,即输入t-10至t时刻的历史多维数据,预测t+1时刻的功率值。本小节首先进行了输入历史数据的单步预测实验,然后进行了历史数据结合数值天气预报(numerical weather prediction,NWP)信息的单步预测实验,从这两个角度对本文所提方法进行验证。为了验证每一层注意力机制和BO方法的有效性,将本文所提模型与BiLSTM、CNN-BiLSTM、加入时间注意力的CNN-BiLSTM-Attention以及未经BO超参数优化的CNN-BiLSTM-dual-Attention模型进行对比试验。每次实验均在训练集上训练模型,在验证集上调整模型超参数,固定超参数后,在测试集上验证结果。预测结果经反归一化后计算NRMSE和R2的值,实验结果如表1—2、图6—7所示。
表1 未结合NWP的各模型单步预测结果对比Tab.1 Single-step predication results of different models without NWP
表2 结合NWP的各模型单步预测结果对比Tab.2 Single-step predication results of different models with NWP
图6 未结合NWP的各模型单步预测结果对比Fig.6 Single-step predication results comparison of different models without NWP
图7 结合NWP的各模型单步预测结果对比Fig.7 Single-step predication results comparison of different models with NWP
本文所提基于BO超参数优化和双重注意力机制的CNN-BiLSTM模型比其他模型具有更高的预测精度。从表1的对比结果可以发现:相比普通的BiLSTM模型,具有特征提取功能的CNN-BilSTM预测模型的NRMSE值下降了0.016 9,R2值提升了0.092 5,这是由于CNN层能够对复杂的多维风电功率数据实现有效的特征提取;加入时间注意力后的CNN-BiLSTM-Attention模型的NRMSE值下降了0.004 4,R2值提升了0.021 8,可见时间注意力机制能够有效提取到重要的时间节点信息;具有双重注意力机制的CNN-BiLSTM-dual-Attention模型比仅具有时间注意力的模型的NRMSE值下降了0.006 1,R2值提升了0.020 9,这是由于注意力机制对CNN提取的高维特征进行筛选,突出了重要特征的影响;本文所使用的基于BO超参数优化和双重注意力机制的CNN-BiLSTM模型预测结果的NRMSE值下降了0.007 9,R2值提升了0.012 8,说明BO超参数优化可以寻找到一组最优的超参数,得到更好的预测效果。
从图6中可以更直观地发现:基准模型BiLSTM的预测结果(BiLSTM曲线)整体表现最差;其他模型的预测结果在风电功率平稳的区间表现较为接近, CNN-BilSTM模型预测结果(CNN-BilSTM曲线)和只具有时间注意力模块的预测模型结果(CNN-BilSTM-Attention曲线)在原始数据波动幅值较大的区间的预测结果偏差较大,而且对于极值的预测存在不同程度的滞后现象;基于双重注意力机制的CNN-BilSTM模型(CNN-BilSTM-dual- Attention曲线)对波动区间的预测效果更好,可以有效预测波动区间的极值,并且改善了滞后现象。这是由于所提模型的特征注意力模块和时间注意力模块解决了高维特征筛选问题和时间序列的长时依赖问题,这两个模块的配合使用可以有效预测下一个时间节点的趋势和波动幅度,有利于提高整体预测的精度。基于BO超参数优化和双重注意力机制的CNN- BilSTM模型(本文方法曲线)比未经超参数优化的模型(CNN-BilSTM-dual-Attention曲线)表现出了更好的效果,说明BO算法可以找到一组优秀的超参数。
从表1、表2和图7中可以发现:所有测试模型在结合NWP信息后均比未结合NWP信息时表现更好,说明所有模型均可以有效利用NWP信息。本文提出的基于BO超参数优化和双重注意力机制的CNN-BiLSTM模型在结合NWP的单步实验中的表现仍然是最优秀的,其NRMSE值为0.044 2,比未结合NWP的模型下降了0.007 2,R2值达到0.938 6,比未结合NWP的模型提升了0.023 4。
本文所提的基于BO超参数优化和双重注意力机制的CNN-BilSTM预测模型可以捕捉风电功率序列的波动性,对极值的预测更加准确,其单步预测效果比其他算法的预测精度更高。
5.4 多步预测结果分析
在用单步预测验证本文所提算法的有效性后,本节从实际应用角度出发,结合NWP信息进行4 h前的超短期风电功率预测。将未来4 h的NWP数据(包含风速、风向、温度)与历史风电数据共同输入模型,输入时间步长设为24,使用BO算法重新选择适应多步预测的超参数,预测未来4 h(24个预测点)的风电功率。将本文模型与CNN-BiLSTM模型进行对比实验,实验结果如表3和图8所示。
表3 结合NWP的各模型多步预测结果对比Tab.3 Multi-step predication results comparison of different models with NWP
图8 结合NWP的各模型多步预测结果对比Fig.8 Multi-step predication results comparison of different models with NWP
本文所提的基于BO超参数优化和双重注意力机制的CNN-BiLSTM模型的多步预测结果比CNN-BilSTM模型精度更高。从表3中可以发现本文模型比CNN-BilSTM模型预测结果的NRMSE下降了0.025 7,R2提升了0.118 3;从图8中可看出,CNN-BiLSTM模型(CNN-BilSTM曲线)对风电功率峰谷值预测能力较差,本文所提预测模型结果(本文方法曲线)对预测时段的风电功率波动情况预测效果更好。这是由于时间注意力模块在步长较长的预测模型中很好地加强了BiLSTM的长时记忆能力,并能更够筛选出更重要的时间节点进行预测。这个多步预测实验说明:在结合NWP信息的超短期风电功率预测方面,本文所提模型同样有效。
5.5 超参数优化结果分析
使用Python的Bayesian Optimization库实现对第2节所提基于双重注意力机制的CNN-BiLSTM预测模型的超参数寻优,并与常用的群智能寻优算法性能进行比较。
在验证集上对单步预测模型进行超参数寻优,以最小化预测结果的NRMSE为优化目标,针对学习率、迭代次数、卷积核大小和数量、BiLSTM神经元数量、全连接层节点数等超参数,分别使用BO、粒子群优化(particle swarm optimization,PSO)[33]、麻雀算法(sparrow search algorithm,SSA)[34]、平衡器优化(equilibrium optimizer,EO)[35]进行寻优实验,结果如表4所示。
表4 超参数寻优结果Tab.4 Results of hyperparameter optimizations
表4的实验结果表明使用贝叶斯优化算法对深度学习模型进行超参数优化具有训练成本小、收敛速度快的特点。在4种优化方法中误差最小的是PSO算法,BO算法精度位列第二。BO算法的误差仅比PSO算法高出了0.23%,但耗时却比PSO算法降低了86.6%。BO算法的精度在与常见的群智能优化算法保持在同一水准的情况下,极大地缩短了运算时间。
6 结语
为解决一般模型无法有效提取多维风电历史数据的重要特征以及时间序列的长时依赖问题,以提高风电功率超短期预测的精度,本文提出了一种基于超参数优化和双重注意力机制的CNN-BiLSTM风电功率超短期预测模型,模型使用CNN与注意力机制结合的特征注意力模块提取多维风电历史数据重要特征,再通过BiLSTM与注意力机制结合的时间注意力模块对特征向量进行动态时序建模,最后通过BO优化方法选择模型的最优超参数,以发挥模型的最佳性能。
通过算例分析发现本文模型很好地解决了多维数据重要特征的自动提取和时间序列的长时依赖问题,也解决了人工调参耗时长、效果不稳定的问题,验证了所提模型的有效性和稳定性,与其他方法相比本文所提模型具有更高的预测精度。
后续工作将研究不同模型在风电功率处于不同波动状态和不同出力水平下的预测效果,从而通过组合预测实现更高的预测精度。