基于注意力机制的CNN-BiGRU短期光伏发电功率预测

2022-07-09 06:45梁宏涛刘红菊郭超男
计算机测量与控制 2022年6期
关键词:出力预测值卷积

梁宏涛,王 莹,刘红菊,郭超男

(青岛科技大学 信息科学技术学院,山东 青岛 266061)

0 引言

传统的发电系统以化石燃料发电为主。然而,由于其对环境的负面影响,电力行业现在聚焦于绿色能源发电系统,因此,“十四五”规划提出要促进化石能源向可再生能源变革转型[1]。实现“碳达峰、碳中和”的重要举措是构建以可再生能源为主体的新型电力系统。近几年,太阳能、风电能、潮汐能、生物质能等可再生能源发电被大力部署,特别是小型和大型光伏电站发展迅速。截止到2020年末,全球光伏累计总装机容量达到760.4 GW,其中中国累计装机容量达到253.4 GW,位于世界第一[2]。由于光伏发电本身具有间歇性、波动性和周期性,因此,大量光伏并网会导致发电系统的不稳定性,可能会导致电力输出突然过剩或下降的情况,甚至会在电力生产和负荷需求之间的平衡方面产生重大问题。精确的光伏出力预测不仅有助于电网规划、平衡供需、能源管理,而且有助于调度负荷、电源和电池存储之间的能量[3]。

目前,光伏出力预测方法可分为4类,即:物理方法、统计方法、机器学习(ML,machine learning)[4]方法和深度学习(DL, deep learning)方法[5]。物理法不需要训练预测模型,其在中期预测甚至更长的时间尺度会有更好的表现,但严重依赖光伏的气象数据。与物理方法相比,统计方法具有相对简单的建模过程;ML和DL更适合短期和中期的预测尺度,具有较高的预测精度,但ML方法具有扩展性差、复杂度高的缺陷。DL方法在光伏出力预测中具有灵活性、鲁棒性和较高的准确性。深度神经网络能够自动学习从输入到输出的任意复杂映射,并支持多个输入和输出。常用DL光伏出力预测方法包括卷积神经网络(CNN,convolutional neural network)[6-7]、循环神经网络(RNN, recurrent neural network)[8-9]、长短期记忆神经网络(LSTM,long short-term memory)[10-11]、门控循环单元(GRU, gated recurrent unit)[12-13]网络和深度信念网络(DBN, deep belief network)[14-15]等。

文献[16]利用LSTM解决“长时间周期依赖”问题,从而进行光伏出力的中长期预测。文献[17]利用相似日匹配算法计算不同时刻气象因子权重,并对相似样本进行特征提取,采用广义回归神经网络(GRNN)对光伏发电功率进行短期预测,所提模型与Bp神经网络、以及未进行特征提取的GRNN相比,预测精度更高。文献[18]对相似日算法进行了改进,结合Attention-GRU机制预测不同天气类型的光伏出力。但以上三篇文献都没有考虑时间序列的双向信息流。文献[19-20]都是通过粒子群优化算法(PSO, particle swarm optimization)对DBN进行参数优化,只不过前者是通过Semi Boost算法对天气进行聚类,后者是通过选取相似日来预测光伏出力。

本文利用CNN提取光伏序列的空间特征,利用BiGRU提取光伏序列的双向时间特征,由于当光伏序列过长时,容易造成信息丢失、难以提取高维特征等问题,引入Attention机制,通过注意力权重合理地改变对信息的外部注意,放大强相关输入因素、减小弱相关输入因素的占比。以美国俄勒冈州本德市真实光伏出力数据为例,搭建基于Attention机制的CNN-BiGRU模型,将实验结果与BP、GRU、BiGRU、基于Attention机制的BiLSTM、基于Attention机制的BiGRU做对比,选择均方根误差(RMSE, root mean square error)、决定系数(R2,coefficient of determination )为评价指标。实验结果表明,文章所提模型Attention-CNN-BiGRU效果更好。

1 基于注意力机制的CNN-BiGRU模型及原理

1.1 CNN

1989“卷积”一词被LeCun在论述其网络结构时首次提到,卷积神经网络因此得名[21]。LeCun最早将CNN用于手写数字识别,并一直保持其在该问题的霸主地位。CNN多用于提取图像特征,其基于卷积核或过滤器的共享权重架构,这些架构沿着输入特征滑动。经典的CNN包含卷积层、激活层、池化层(汇聚层)、全连接层。具体的对CNN两大特点层(卷积层和池化层)进行描述。

1.1.1 卷积层

卷积层是CNN的核心构建模块,也是大部分计算发生的地方。卷积层的功能是通过卷积计算对输入层的数据进行特征提取。卷积层对输入应用卷积运算,将结果传递给下一层,卷积将其感受野中的所有像素转换为单个值,卷积层的最终输出是一个向量。卷积层参数包括卷积核大小、填充和步长,是CNN的超参数,共同决定了卷积层输出特征图的维度。卷积核(k)的大小可以一般指定为奇数,卷积核越大,可以提取的输入特征越复杂;填充一般分为有效填充、全填充、相同填充;步长越大,相应的输出特征图越小,在某一程度上完成了降维的操作;可以通过增加填充和增大步长使得输出的维度达到想要的需求。

1.1.2 池化层

池化层通常在卷积层之后,用于压缩数据和参数的量,减少过拟合,具有特征降维,保持特征不变性的作用。

卷积计算可用来有效地提取局部区域的特征,CNN计算的过程是:在卷积之后会引入非线性激活函数;池化层的作用是特征选择,用来减少参数数量,池化一般分为最大池化和均值池化;卷积神经网络提取完特征后,一般会送入全连接层。文章选用1维卷积(模型结构如图1所示)在光伏发电出力预测中提取空间特征。

图1 CNN模型结构

1.2 GRU

RNN在有时序信号的领域引起了变革性改变。时序信号的领域指的是语音识别、情感判断、DNA序列分析、命名实体实别等。RNN与其他神经网络最大的差别是RNN具有记忆功能,其把前一个时刻网络状态的输出作为当前时刻网络状态的输入。RNN中的循环核参数时间共享,循环层提取时间信息。但是RNN容易产生梯度消失和梯度爆炸,因此LSTM和GRU神经网络作为RNN的变体被提出的。

GRU是在2014年由C.Kyunghyun[22]等人提出的。GRU是LSTM进一步简化的一种变体。GRU在和弦音乐建模、语音信号建模和自然语言处理的某些任务上的表现与LSTM相似。LSTM有3个门,而GRU只有两个门。在LSTM中,其是输入门、遗忘门和输出门,而在GRU中,其是重置门和更新门;在LSTM中,有两种状态分别是细胞状态和隐藏状态,而在GRU的情况下,只有一种状态,即隐藏状态。GRU由于只有重置门和更新门两个门,控制要保留多少信息和哪些信息,所以其参数比LSTM少,更容易实现和计算,缓解了LSTM过拟合的问题。GRU 已被证明在某些更小的数据集上表现出更好的性能。

图2 GRU的模型结构

根据GRU的模型结构,其计算公式如下所示:

Rt=σ(XtWxr+Ht-1Whr+br)

(1)

Zt=σ(XtWxz+Ht-1Whz+bz)

(2)

(3)

(4)

式中,Xt表示t时刻的输入;Wxr、Whr、Wxz、Whz、Wxh、Whh为可训练的参数矩阵;Rt表示重置门;br、bz、bh偏置;Zt表示更新门。

1.3 BiGRU

1997年,M.Schuster和K.Paliwal提出了双向循环神经网络(BiRNN,bidirectional RNN),并利用BiRNN进行了语音识别实验[23]。单向RNN只能从先前的输入中提取以预测当前状态,但双向RNN会提取未来数据以提高其准确性。BiRNN在预测的时候,将前向和后向的值均作为输入。BiRNN对BiLSTM和BiGRU同样适用。在PV出力预测中,此时的输出和前一时刻的信息以及后一时刻的信息都密切相关,所以本文选取BiGRU模型,学习光伏特征的动态变化规律。BiGRU模型结构如图3所示(实线为前向传播,虚线为反向传播)。图中Xi代表i时刻的输入值,hi代表i时刻隐藏层的值,而yi代表i时刻输出层的值。BiGRU是GRU的改进,它是由前向传播的GRU和反向传播的GRU组成。

图3 BiGRU网络结构

1.4 Attention机制

Attention模仿生物观察行为的内部过程,是一种模仿认知注意力的机制。例如,人类的视觉在处理一张图片时,会通过迅速扫描全局图像,获得注意力焦点,然后对这一区域投入更多的注意力资源,并抑制其他无用信息。简单的说Attention机制就是从大量信息中快速筛选出高价值信息。2017年A.Vaswani等人[24]在自然语言领域发表的《Attention is all you need》引起了轰动。注意力的用途包括可微神经计算机中的推理任务、感知器中的多感官数据处理(声音、图像、视频和文本)以及转换器中的语言处理。Attention机制(模型结构如图4所示)强化输入数据的重要部分,弱化输入数据的无关部分;其思想是,网络应该将更多的注意力放在数据中较小但重要的部分。学习哪一部分数据比其他部分更重要取决于上下文,并通过梯度下降法进行训练。

图4 Attention机制结构

其中,X1、X2、…、Xt-1、Xt表示光伏数据集的输入特征;h1、h2、…、ht-1、ht表示BiGRU的隐层状态的输出值,a1、a2、…、at-1、at表示Attention机制对BiGRU隐含层输出的注意力权重值。

2 基于Attention机制的CNN-BiGRU算法

文章提出一种基于Attention的CNN-BiGRU短期光伏出力预测模型。单一的BiGRU算法预测精度不高,且时序过长时容易造成信息的丢失,引入Attention机制为BiGRU的隐藏层输出赋予权重,来强调关键特征对模型预测的重要性。在此基础上,引入CNN来提取光伏出力数据集的空间特征,捕捉数据集动态变化规律,进一步提高光伏发电功率的准确性。Attention机制的CNN-BiGRU的网络模型结构如图5所示。

图5 基于Attention的CNN-BiGRU机制结构

模型结构具体描述如下:

1)输入层:把经过相关性分析筛选后得到的光伏发电出力数据集特征作为预测模型的输入,设时间步滑动窗口大小为T,经过预处理后在t时刻输入到预测模型中的输入序列如公式以下所示:

X=[x1…xt-1,xt…xT]T

(5)

2)CNN层:CNN主要用于对光伏序列进行空间特征的提取。由2个卷积层、1个池化层构成。由于光伏序列的特点,2个卷积层都设计为1维卷积。卷积层选取的激活函数为sigmoid,填充为same。为保留更多波动信息,池化层选取的最大池化。经过卷积层和池化层进行特征提取,然后送入BiGRU神经网络。

3)BiGRU层:利用前向和反向的BiGRU层对CNN层提取的特征进行学习。通过搭建两层的BiGRU,对提取特征充分学习。

4)Attention层:Attention层的输入为经过两层BiGRU的隐层状态ht,其注意力权重计算公式如下:

ei=vtanh(Whi+b)

(6)

at=softmax(ei)

(7)

(8)

式中,et、at分别表示第t时刻光伏数据不同特征所对应的注意力分数和权重,Ct表示Attention层在t时刻的输出。

5)全连接层:全连接层的输入为Attention机制的输出。选用Sigmoid为激活函数,预测出第t时刻的光伏发电出力值,预测公式为:

yt=Sigmoid(WoCt+bo)

(9)

式中,yt表示为第t时刻的光伏发电出力预测值,Wo为权重矩阵,bo为偏置项。

6)输出层:选用没有激活函数的全连接层作为输出层。

3 数据预处理及相关性分析

为了验证本文提出的基于Attention机制的CNN-BiGRU短期光伏出力预测模型的性能,采用美国俄勒冈州本德市(Bend)[25]为光伏数据集。光伏组件在早上和晚上的输出功率明显较低,大部分时间接近于零或为零[26],所以Bend数据集截取5~19点的数据,数据集的采样间隔为5 min,一天共选取168个点;Bend数据集选取的训练集是2018年8~10月、2019年8~10月,测试集选取的是2020年8月~10月。数据集的信息如表1所示。

表1 实验数据集的详细信息

文章采用Python3.8,tensorflow2.7.0编程实现基于注意力机制的CNN-BiGRU短期光伏出力预测。计算环境为2 GHz 四核Intel Core i5处理器、16 GB 内存的计算机。

3.1 数据预处理

数据的准确性是保证预测精度的前提。由于设备检修或网络问题,容易造成数据在采集阶段和传输过程中丢失或异常。且不同数据的量纲不同,范围不同,为进行精确的光伏发电预测,统一量纲和范围是非常有必要的。

3.1.1 缺失值异常值处理

缺失数据一般用NaN表示,代表空值,其填充的方法有很多,常用的数据插补方法有均值填充、众位数填充、中位数填充、固定值填充和拉格朗日插值法。文章利用python中df.isnull().sum()函数检测光伏发电数据集的空缺值。如表2所示。

表2 每个特征的空缺值

为防止破坏数据的时间特性,文章选择利用datetime.timedelta()函数获取前一天同一时刻的特征值来填充。比如缺失的是2019-10-26 05∶00∶00的GHI的值,用2019-10-25 05∶00∶00的GHI值填充;缺失的是2019-10-27 08∶00∶00的Wind_Speed的值,用2019-10-26 08∶00∶00的Wind_Speed值填充。由于光伏发电的间歇性,其发电功率不可能为负值,所以当PV_Power属性小于0时视为异常值,此时用0值替换。

3.1.2 数据归一化与反归一化

在本数据集中,水平面总辐射度、电流、电压、风速、温度的单位总是不一致的。数据标准化就是消除不同单位特征之间的量纲,将数据缩放为通用格式,以分别在0和1处建立平均值和标准差。常用的归一化的方法有最大-最小值(Max-Min)规范化和0均值(z-score)标准化两种。本文选用0均值标准化。

其公式为:

(10)

其中:μ表示样本的均值,σ表示为样本的标准差。

由于最终需要的是光伏发电功率的预测值,并且需要把真实值和预测值做误差分析,所以需要进行反归一化。其公式如下所示:

x=x′*σ+μ

(11)

3.2 相关性分析

利用皮尔逊(pearson)系数对数据集进行输入特征的选择。pearson系数衡量两组数据之间的相关性,其本质上是标准化后的协方差,因此,pearson系数介于-1~1之间。利用Pearson系数选取后的输入变量如表1所示。其计算公式为:

(12)

Bend数据集的相关性分析如表3所示。其中电流、水平面总辐射、倾斜总辐射度、地外辐射度的pearson系数大于0.7,属于强相关;太阳方位角的pearson系数小于0.1,属于弱相关。文章在光伏发电功率预测时舍去弱相关,保留强相关和其他中等相关特征,所以文章选取的输入变量是太阳天顶角、地外辐照度、地外法向辐照度、水平面总辐射度、倾斜总辐射度、电流、光伏出力、电压、风速、天气温度、组件温度。

表3 数据集特征的相关系数

3.3 评价指标

选取的模型评价指标是RMSE和R2。RMSE越小说明模型精确度越高;R2越大说明模型拟合度越高。其中RMSE、R2的公式如下:

(13)

(14)

3.4 优化器及损失函数的选择

Adamax是Adam的变体,其对学习率的上限提供了一个更简单的范围,故本文选取Adamax作为模型优化器。采用平均绝对误差(MAE,mean absolute error)作为模型loss函数,其计算公式为:

(15)

式中,Ppredict、Ptrue分别为光伏发电出力的预测值和真实值,N为数据样本数。

4 实验结果分析

文章所提Attention-CNN-BiGRU模型与BP、GRU、BiGRU、Attention-BiLSTM、Attention-BiGRU做对比(如表4、表5所示,其都是各个模型最佳表现时的值)。

表4 各模型超参数的值

表5 不同预测模型的评价指标

各模型超参数的值如表4所示,其中num_epochs代表迭代次数、batch_size代表批数据、lr代表学习率、fc代表全连接层节点个数。BiGRU、Attention-BiGRU、Attention-CNN- BiGRU预测模型中h1、h2分别表示第一层、第二层BiGRU的隐藏节点个数,GRU中h1、h2分别表示第一层、第二层GRU的隐藏节点个数,Attention-BiLSTM中hidden1、hidden2分别表示第一层、第二层BiLSTM的隐藏节点个数。Attention-CNN- BiGRU预测模型中还有两个超参数,分别是CNN卷积核数量filters取值为32,CNN卷积核大小filter_size取值为3。

通过表格数据可看出BP神经网络预测效果最差,其RMSE高达0.7以上,R2是负值。Attention-CNN-BiGRU预测模型表现最佳,其RMSE为0.272 3,R2为0.805 7。Attention-CNN-BiGRU与GRU、BiGRU、Attention-BiLSTM、Attention-BiGRU相比,RMSE分别提高了3.13%,1.11%,0.26%,0.1%;R2分别提高了4.73%,1.61%,0.38%,0.14%。

各神经网络模型在2020年8月11日预测值和真实值的拟合情况由图6所示。

图6 不同模型的拟合程度

图6(a)为真实值和BP模型预测值的拟合图,可看出BP神经网络模型不适合此光伏出力数据集,误差较大;图(b)为真实值和GRU模型预测值的拟合图,由其可知,GRU模型相对与BP模型极大程度的提高了预测精度;图(c)为真实值和BiGRU模型预测值的拟合图,相比较于GRU模型的预测值在真实值的下方分布,BiGRU模型的预测值分布在上方;图(d)为Attention-BiLSTM模型的预测值;图(e)为Attention-BiGRU模型的预测值,相比较Attention-BiLSTM模型,其预测值分布在真实值的两侧;图(f)为Attention-CNN-BiGRU的模型预测值与真实值的拟合图,相较于其他5种预测模型,Attention-CNN-BiGRU模型的预测值曲线拟合程度是最贴切的。

图7展示了利用Attention-CNN-BiGRU模型对2020年8月11日到2020年8月15日的光伏发电功率的预测曲线。从图中可看出总体的预测效果,第一天的拟合效果最好。但是当第二天天气状态不好的情况下,Attention-CNN-BiGRU预测效果不理想。

图7 8月11日~8月15日光伏出力预测值

5 结束语

大规模光伏发电并网给我国电力系统运行的稳定性带来了巨大挑战,因此,光伏发电出力的精确预测至关重要。有效的光伏出力预测降低了储备需求、系统运行成本、市场失衡的风险,提高了系统的稳定性、增加了市场收入;同时也帮助电力运营商做出更有利的决策。

针对短期光伏出力预测研究现状,文章提出了一种基于Attention机制的CNN-BiGRU光伏出力预测模型。通过CNN提取光伏数据集的空间特征,然后送入到与Attention机制相结合的BiGRU网络,完成对未来一天(5:00~19:00)光伏发电功率预测。这里引入Attention机制是为了减少因时序过长造成的信息丢失,对重要信息赋予较高的权重,忽略无关信息,放大所需信息。在美国俄勒冈州本德市数据集上做了验证,实验结果表明,BP神经网络预测效果最差,不适合本数据集,Attention-CNN-BiGRU预测模型与GRU、BiGRU、Attention-BiLSTM、Attention-BiGRU预测模型相比RMSE分别提高了3.13%,1.11%,0.26%,0.1%;R2分别提高了4.73%,1.61%,0.38%,0.14%。

通过对未来5天的预测,可知在天气状态不好的情况下,所提模型预测精度较低。下一步工作将提高模型在坏天气的预测精度,增加模型的普适性。

猜你喜欢
出力预测值卷积
基于全卷积神经网络的猪背膘厚快速准确测定
基于图像处理与卷积神经网络的零件识别
AI讲座:ML的分类方法
自体荧光内镜对消化道肿瘤诊断临床应用分析
基于深度卷积网络与空洞卷积融合的人群计数
卷积神经网络概述
一种可控震源出力的近似计算方法
季节模型在某医院月门诊量预测中的研究与应用
“止”字变合体