基于多头注意力机制和卷积模型的超短期风电功率预测
2022-08-02李俊卿胡晓东秦静茹张承志
李俊卿,胡晓东,秦静茹,张承志
(华北电力大学 电力工程系,河北 保定 071003)
0 引言
随着“碳达峰”和“碳中和”目标的提出,风力发电逐渐呈现出高增长的发展趋势[1,2]。截至2020年底,我国风电并网装机容量达到2.8153×1011W[3]。
由于风电具有较强的随机性,风电的大规模入网势必会影响电网的安全稳定运行[4,5]。准确的风电功率预测,可以降低电网备用容量和运行成本,有利于电网调度部门及时准确调整运行计划,避免大量弃风[6]。
按照时间尺度来划分,风电功率预测主要分为长期预测、短期预测和超短期预测[7];按照预测方法来分,主要包括物理建模方法和统计方法。
物理建模方法主要通过建立数学模型来研究气象的演变,根据风电转换模型进行预测。此种方法模型复杂、计算量大、抗干扰能力弱[8]。
诸如支持向量机(SVM)[9]、BP 神经网络[10]等统计方法已经在风电功率预测方面得到了广泛应用。由于风电功率的预测与当前和历史数据相关,而传统的机器学习模型难以处理长时间序列的数据,并且存在梯度爆炸、梯度消失等问题,所以其预测的效果尚有待提高。
近年来,深度学习方法因其强大的特征提取和拟合能力在包括风电功率预测的诸多领域得到了广泛应用[11,12]。常见的深度学习模型主要有卷积神经网络(convolutional neural networks,CNN)、循环神经网络(recurrent neural network,RNN)、长短期记忆网络(long-short-term memory,LSTM)等。文献[13]针对风电功率的预测提出了一种多尺度隐马尔可夫-RNN 模型,并取得了一定的效果;但是RNN 在处理较远时间序列时会产生梯度消失的问题,这将导致预测效果不佳。为解决传统RNN 所存在的问题,文献[14]考虑利用CNN 强大的特征提取能力,采用GRU 模型,建立了CNN-GRU 预测模型,取得了较高的预测精度;相比于LSTM,此模型大大缩短了预测时间。文献[15]将卷积神经网络CNN 应用于区域风电功率的预测,在一定程度上取得了良好的效果;但是,卷积神经网络的池化层会造成大量有价值的信息流失,并且会忽略整体和局部之间的关联性,这导致了预测结果不够准确。多头注意力机制(multi-head attention)算法能够捕获序列中的重要信息,并且能够实现并行计算。该算法已经在机器翻译[16]、文字识别[17]等领域得到了广泛应用。
本文提出超短期风电功率预测建模方法:先利用皮尔逊相关系数(Pearson correlation coefficient,PCC)从原始数据中挑选出与风电功率相关性程度高的特征;然后,将经过相关性分析之后的数据输入到多头注意力机制和CNN 中进行训练,从而获得高精度的风电功率预测模型。
1 模型原理
1.1 皮尔逊相关系数
用皮尔逊相关系数衡量X与Y这2 个变量的相关程度[18],其计算公式为:
式中:r为X与Y的相关性系数;N为样本数。
相关系数越接近于-1 或1,则相关度越强;相关系数越接近0,则相关度越弱。
相关程度与相关系数的对应关系如表1所示。
表1 相关系数和相关程度对应关系Tab. 1 Correspondence between correlation coefficient and degree of correlation
1.2 多头注意力机制
注意力机制模拟了人脑注意力的资源分配机制:通过概率分配的方式,对序列中的重要信息赋予足够的关注,从而突出重要信息,减少甚至完全忽略不重要的信息[19]。
自注意力公式为:
式中:Attention(Q,K,V)为得到的注意力的值;Q、K、V分别为查询量(query)、键(key)和值(value)。
自注意力中,Q、K、V通常通过将序列X分别乘以WQ、WK、WV得到。可以认为,查询Q是输入样本的特征,键K是信息的特征、值V是信息的内容。
多头注意力机制是注意力机制的一个变体。与单独使用一个注意力不同,多头注意力机制可以独立学习得到H组不同的线性投影来变换查询(query)、键(key)和值(value)。变换后的查询、键和值并行地进入注意力层,然后将H个注意力层的输出拼接起来,最后通过一个线性层得到最终输出。
多头注意力与单头自注意力的区别在于:多头是复制多个单头,但权重系数不同,类似于单个神经网络模型与多个同样的网络模型堆叠。由于初始化不同,其权重也势必有所差异。
给定查询Q∈R、键K∈R以及值V∈R,每个头hi(i=1,···,H)的计算方法为:
多头注意力机制函数为:
式中:WO为最后一层全连接层的权重。
在多头注意力机制中,本文采用的是缩放点积注意力。点积操作要求查询和键具有相同长度。假设查询和键都是相互独立的随机变量,且均值为0、方差为1,则这2 个向量点积均值为0,方差与键长度一致。假设Q、K、V∈R,则缩放点积注意力为:
式中:Softmax函数用于对注意力得分做归一化处理,以得到的每个键的权重。
1.3 CNN
CNN 主要包括输入层、卷积层、池化层、全链接层和输出层。卷积层中存在很多卷积单元,即卷积核。每个卷积单元的参数都通过反向传播算法不断优化得到。卷积核通过有规律地“扫描”提取特征,然后经过激活函数的作用来增强非线性的拟合能力,即:
式中:“*”表示卷积运算;b为偏差量;Zl和Zl+1分别表示第l+1 层的输入和输出;W为权重;б(•)为激活函数,一般采用ReLu 函数。
原始输入经过卷积层之后,仍然携带较多的特征;此时再进入池化层,将特征矩阵分块,取其最大值(即最大池化)或取其平均值(即平均池化)。该过程可以表示为:
式中:Ppool(•)表示池化层的输出。
经过池化层降维后的数据被整合成固定长的特征向量。然后,全链接层对提取的特征进行非线性组合以得到输出。该过程可表示为:
CNN 的输出层为一个线性层,最终输出一个向量。
1.4 损失函数
在模型训练过程中,使用随机梯度下降优化算法不断更新权重和偏置。
采用的损失函数为均方误差函数:
式中:N为样本数量;分别为实际值和预测值。
1.5 预测效果评估
本文选用均方误差和平均绝对误差对预测的结果进行评估。平均绝对误差的计算公式为:
2 模型设计
如图1 所示,本文提出的超短期风电功率预测模型主要包括数据相关性分析和功率预测2 个部分。首先将归一化后的数据通过皮尔逊相关性分析对原始样本中的特征进行筛选;然后构建多头注意力和CNN 模型;将筛选后的数据输入模型中进行训练,以此获得高精度的风电功率预测模型。
图1 本文方法的流程图Fig. 1 Flowchart of the proposed method
本文使用 Python 语言和 Pytorch 框架在Pycharm2021 中进行模型训练和验证。
CNN 各层的程序设计如下。
(1)一维卷积层1:卷积核大小设置为3;为了保持输入的形状,将填充设置为1,且定义10 台滤波器。
(2)最大池化层:池化层的大小设置为3,填充设置为1。
(3)一维卷积层2:卷积核大小为3,同样填充设置为1。
(4)全链接层、输出层:通过2 个线性层得到输出。
3 实验验证
3.1 数据准备和实验设计
本文采用的数据为某风电场2015 年01 月01日—2015 年05 月14 日的实测数据。数据中,包含压力、温度、速度、角度等多个连续监测项目,采样时间间隔为10 min。
采用与文献[20]相似的处理方法。经标准化并1 h 平均化处理后,共得到2 923 条数据。将数据按6:2:2 的比例分为训练集、验证集和测试集。
为了进一步考量本文模型的预测能力,将其在测试集上的预测结果分别与单一CNN 网络、单一LSTM 网络和CNN-LSTM 网络进行比较。
3.2 Pearson 相关性分析
共选取40个可能影响风电机组输出功率的变量,如风速、部件温度和转子速度等。
为了深入了解各个变量对风电机组输出功率的影响程度,在Pycharm 中对各个变量和风电机组输出功率进行皮尔逊相关性分析,按公式(1)计算数据集中各个监测项目与风电机组输出功率之间的相关系数。计算结果如图2 所示。
图2 Pearson 相关性程度Fig. 2 Degree of Pearson correlation
为了兼顾预测的准确性和计算速度,只保留相关系数大于0.4 的变量。最终保留的数据变量个数为20,包括风速、转子速度、发电机各相绕组温度、发电机轴承温度、机舱室外温度、机舱温度、塔底柜温度、机顶盒柜温度、主轴承转子侧温度、换流器功率和变频器电机速度等。
3.3 多头注意力头数的选择
由于要将输入的特征平均分配给多头注意力的每个头,因此多头注意力的头数必须能够被输入特征数整除。
由于筛选后特征仅剩下20 维,因此头数只能在1、2、4、5、10 或20 中选择。各种数量的头数预测结果如表2 所示。
表2 不同头数预测结果比较Tab. 2 Comparison of prediction results with different numbers of heads
当头数增加至20 时,注意力机制将关注更多的输入序列的特征,有可能会导致学习过多的冗余信息,从而造成模型预测效果大大降低。经过比较,当头数为10 时,模型的预测效果最优。
3.4 预测结果
本文方法和CNN、LSTM 和CNN-LSTM 预测结果对比如图3 所示。
图3 各模型的风电功率预测对比结果Fig. 3 Wind power forecasting results with the proposed method, CNN, LSTM and CNN-LSTM
3.5 各模型预测结果比较
本文方法、CNN、LSTM 和CNN-LSTM 的预测误差对比如表3 所示。
从表3 所呈现的预测结果来看,本文所提模型的预测精确度和预测时间明显优于CNN 模型、LSTM 模型以及CNN-LSTM 模型。本文模型的EMSE值对比CNN 降低了69%,比LSTM 模型降低了90%,比CNN-LSTM 模型降低了90%;EMAE也相应降低了43%、72%、74%。
表3 各模型预测误差和预测时间对比Tab. 3 Comparison of prediction errors and prediction time of models
综上所述,本文模型的拟合效果远比CNN、LSTM 和CNN-LSTM 的拟合效果理想得多,这说明:本文模型足够充分地提取了输入序列中的信息,预测精度达到了要求;本文提出的超短期风电功率预测模型能够比较精确地预测风电功率。
4 结论
本文所提模型的主要优势在于:
(1)充分考虑了与风电功率相关的变量,对输入序列的分析更细致,从而有效地提高了预测精度。
(2)采用注意力机制中的多头注意力机制,弥补了CNN 池化层会丢失信息的缺点,有效地增强了模型的非线性拟合能力。
(3)与CNN、LSTM、CNN-LSTM 模型相比,该模型的预测精度更高。