2. 广西电网钦州新区供电局,广西钦州 535011
2. Guangxi Power Grid Qinzhou New District Power Supply Bureau, Qinzhou, Guangxi, 535011, China
对于可再生能源——风能,我国正加快海上风电建设,有助于建设清洁低碳、安全高效的能源体系。风力发电技术中的偏航系统是风力发电机组特有的伺服系统,它使风轮稳定跟踪变化的风,保证捕获最大的风能[1]。目前广西北部湾海域正处于海上风电建设探索阶段,北部湾海域的风速较低,结合历史风向数据对风向进行预测,有助于提高风能利用率,提增风力发电效益。
当前, 有不少国内外学者对预测模型、预测方法进行研究,但是大多是对风速、风功率、负荷等的预测,关于风向预测的研究较少。张东东等[2]通过误差反向传播(Back Propagation, BP)建立BP神经网络模型对风向进行预测,通过预测未来风向,使偏航系统可以提前执行动作。卓泽赢等[3]将经验小波变换与核极限学习机相结合对风电功率进行预测,使风电功率预测精度得到提高。Lynch等[4]使用卡尔曼滤波器(Kalman Filtering, KF)对风速进行预测并与实际风速对比,结果表明该方法具有较好的预测效果。然而,浅层神经算法在对输入数据特征信息提取挖掘上,能力略显不足,从而影响了建立预测模型的精度。为提高网络模型性能,深度学习算法受到广泛应用。Wang等[5]利用卷积神经网络(Convolutional Neural Network, CNN)模型对输入数据进行特征提取,对负荷进行预测,发现模型在非线性序列上有较高的准确率。李亚蒙等[6]利用长短期记忆(Long Short-Term Memory,LSTM)深度神经网络在处理时序数据上的优异性能,对未来的短期风速进行预测,通过实验对比分析表明,LSTM预测方法具有较好的预测效果。但在时间序列输入过长时,LSTM网络容易丢失时序的信息,会使模型的精确度降低[7, 8]。陆继翔等[9]使用CNN和LSTM混合网络模型进行短期负荷预测,将具有高效提取数据特征能力的CNN和处理时间序列表现优异的LSTM网络结合,有效避免了因输入序列过长造成的精度低的问题。但CNN只能对输入的时序数据提取局部信息,无法选择性地关注输入中对结果影响最大的部分,从而影响了模型的精确度。为有效增强主要特征的作用,提高模型精确度,本文引入注意力机制(Attention mechanism)[10]。注意力机制是一种资源分配机制,通过给输入的特征分配权值,增强重要特征的作用,使模型更容易处理时间序列的依赖关系。
基于此,本文将注意力机制应用在风向预测领域,提出基于CNN-LSTM-Attention的风向预测模型,将具有高效提取数据特征能力的CNN和在处理时间序列方面表现优异的LSTM网络相结合,并且通过注意力机制的分配概率权重补足CNN只能捕捉局部信息的短板。通过实验对比分析其他的预测模型,验证所提出的方法在风向预测方向的可行性,为后续广西北部湾海域海上风电的探索建设提供参考。
1 CNN-LSTM-Attention模型原理 1.1 CNNCNN是一种具有卷积架构的深度神经网络,在语音识别、人脸识别、自然语言处理等领域都有着广泛的应用。由于CNN同时具备共享权值及局部连接的功能,因而在降低模型的复杂度、减少建模参数的同时,还可以更高效地提取特征信息[11]。
CNN相对于普通的神经网络,区别主要在于卷积层和池化层,结构如图 1所示。卷积层对所有输入信息进行卷积计算,同时对数据特征进行有效提取,通过池化层对输入特征进行压缩,简化网络计算复杂度,提取主要特征。卷积层与池化层共同组成的特征提取器,既能够最大限度地对输入值的潜在信息加以合理提取,又能降低人为抽取数据时产生的偏差。因此,本文先采用CNN对归一化后的数据进行特征提取,然后通过LSTM网络进行分析预测。
1.2 LSTM网络
由于循环神经网络(RNN)存在较为严重的问题,即梯度消失、梯度爆炸的问题[12],LSTM网络算法在RNN的基础上进行了一些改进,通过特殊的方式存储“记忆”,从而解决RNN存在的问题。图 2为LSTM网络记忆单元结构图。与RNN结构不同的是,LSTM通过特殊的方式存储“记忆”,即设置“门”结构,达到对“细胞状态”信息的舍弃和增添,代替了RNN中的隐含层,实现记忆中的信息取舍。“门”结构将sigmoid函数作为激活函数,sigmoid层输出的元素都是(0, 1)之间的实数。3个门分别是输入门、输出门和遗忘门。通过对历史输入、当前输入和历史输出进行加权学习,进而实现对历史输入、历史输出的记忆功能[13]。
当输入时刻为t时,LSTM单元的计算过程如下。
遗忘门的值为
$ f_t=\sigma\left(W_f \cdot\left[h_{t-1}, x_t\right]+b_f\right) \text { 。} $ | (1) |
输入门的值为
$ i_t=\sigma\left(W_t \cdot\left[h_{t-1}, x_t\right]+b_t\right) 。$ | (2) |
候选记忆单元状态值为
$ \widetilde{C}_t=\tanh \left(W_C \cdot\left[h_{t-1}, x_t\right]+b_C\right) 。$ | (3) |
当前记忆单元状态值为
$ C_t=f_t \times C_{t-1}+i_t \times \widetilde{C}_t C_t=f_t \times C_{t-1}+i_t \times \widetilde{C}_t \text { 。} $ | (4) |
输出门的值为
$ O_t=\sigma\left(W_O \cdot\left[h_{t-1}, x_t\right]+b_O\right) 。$ | (5) |
最终得到输入时刻为t时, LSTM单元格的输出:
$ h_t=O_t \times \tanh \left(C_t\right) 。$ | (6) |
上式中,W和b分别表示权重矩阵以及偏置量,(Wf,bf)、(Wt,bt)、(WC,bC)、(WO,bO)分别对应遗忘门、输入门、状态单元以及输出门的权重矩阵和偏置量,σ表示sigmoid函数,ft、it和Ot为对应门输出的激活函数,Ct和Ct分别表示即时状态和状态单元的向量,ht表示当前时刻LSTM单元格的输出[14]。
1.3 注意力机制注意力机制是机器学习中的一种数据处理方法,广泛应用在自然语言处理、图像识别及语音识别等各种类型的机器学习任务中[15]。注意力机制本质上与人类对外界事物的观察机制相似。通常来说,人们在观察外界事物的时候,首先会比较倾向于观察事物某些重要的局部信息,然后再把不同区域的信息组合起来,从而形成一个对被观察事物的整体印象。在神经网络中引入注意力机制,可以在众多输入信息中关注对当前任务更重要的信息特征,降低对其他信息的关注度,甚至过滤掉无关信息,解决信息过载问题,并提高任务处理的效率和准确性。注意力机制模型结构如图 3所示。其中,X1,X2,…,Xt-1,Xt表示风向数据的输入特征;h1,h2,…,ht-1,ht表示LSTM的隐藏层状态的输出值;a1,a2,…,at-1,at表示Attention机制对LSTM隐藏层输出的注意力权重值。
2 基于CNN-LSTM-Attention的网络风向预测 2.1 CNN-LSTM-Attention风向预测网络模型结构
本文建立的CNN-LSTM-Attention风向预测网络模型如图 4所示。此模型将具有高效提取特征能力的CNN与处理时间序列能力优异的LSTM网络相结合,并且使用注意力机制进行优化,通过概率分配权重,增强关键特征的作用,进一步提高风向预测的准确性。此模型主要分为5层:输入层、CNN层、LSTM层、注意力(Attention)层和输出层。
模型中的每层具体叙述如下。
① 输入层。对长度为n的历史风向数据进行预处理,将其作为该模型的输入时间序列,表示为
$ X=\left[x_1 \cdots x_{t-1}, x_t \cdots x_n\right]^{\mathrm{T}} 。$ | (7) |
② CNN层。该层主要对输入的序列数据进行特征提取。该模型设置2个卷积层,2个最大池化层。卷积层的激活函数为ReLU函数,填充设置为same。数据经过卷积层以及池化层提取,输入LSTM神经网络。
③ LSTM层。该层主要是对CNN层提取的特征进行学习。该模型搭建了4层LSTM网络层,对提取的特征进行充分学习,并且设置3层Dropout,防止在训练过程中出现过拟合现象。
④ Attention层。该层的输入是LSTM层的输出,使用概率分配权重的方式计算权重矩阵,计算公式如下所示:
$ e_t=u \tanh \left(w h_t+b\right), $ | (8) |
$ a_t=\operatorname{softmax}\left(e_t\right), $ | (9) |
$ C_t=\sum\limits_{t=1}^i a_t h_t, $ | (10) |
式中,et、at分别表示在t时刻风向数据不同特征所对应的注意力分数和权重, ht表示LSTM层在t时刻的输出,b是偏置系数,u与w是权重系数,Ct表示Attention层在t时刻的输出。
⑤ 输出层。该层的输入是Attention层的输出。输出层的计算公式如下所示:
$ y_t=\operatorname{sigmoid}\left(w_o C_t+b_o\right), $ | (11) |
式中,yt表示在t时刻的输出, wo表示权重系数, bo表示偏置项。
2.2 Dropout神经网络的训练容易出现过拟合现象,当出现过拟合现象时,得到的模型几乎不可用,因为该模型虽然在训练集上损失函数(loss)值小,准确率高,但是应用在测试集上,不仅loss值大,而且预测的准确率低,模型没有实际的意义。为解决该问题,在网络中加入Dropout层,通过阻止特征检测器的共同作用进而提高神经网络的性能,即在进行前向传播时,让某一个神经元的激活值以一定概率p停止工作,并让其他神经元以概率q=1-p保留,每个神经元被关闭的概率相同[16]。这样可以提高模型的性能,使模型具有更好的鲁棒性,通过减少隐藏节点间的相互作用,降低对局部特征的依赖性。图 5为Dropout在神经网络中的应用。
3 实验验证与结果分析 3.1 样本处理
本文使用北部湾海域的原始风向数据,所收集到的风向数据间隔为10 min。考虑到不同指标之间存在量纲影响,为了消除影响,对数据进行归一化处理。归一化后可以加快模型的收敛速度,并且在一定程度上提升预测模型的精度。本模型使用MinMaxScaler函数进行输入数据归一化,区间为[0, 1]。时间序列原始风向数据与归一化后的数据如图 6所示。
本次实验所使用的设备均在带有Windows 10 64位操作系统的个人计算机(PC)上进行,设备主要参数为CPU i7-10750H (2.60 GHz),六核十二线程的处理器,运行内存为16 GB。
3.2 模型参数设置为了验证本文的CNN-LSTM-Attention模型的相关性能,分别使用卷积-长短时记忆网络(CNN-LSTM)[17]、长短时记忆(LSTM)网络[18]、卷积神经网络(CNN)[19]和BP神经网络[20],在相同历史数据下进行风向预测,并与本文的预测模型进行对比分析。CNN-LSTM-Attention预测模型时间步长为5,即将5个历史风向数据作为输入,预测出后一位风向数据。该模型参数依靠经验进行设置,并根据所得结果不断调整参数。具体参数设置:设置2层卷积层,激活函数使用ReLU函数,第1层和第2层卷积层的卷积核均有64个,大小设置均为5×5;设置2层最大池化层,其pool_size设置均为1;设置1层flatten层;设置4层LSTM网络层,其单元数分别为100、110、90和90;设置3层Dropout函数,p均为0.1,加入注意力层,最后连接全连接层作为输出,batch_size设置为16,each_epoch设置为200次,使用均方误差作为目标函数,优化算法采用学习率自适应的Adam算法。
3.3 评价指标在各模型性能评比上,本文使用常用的评价函数进行评价。ytrue表示测试集,即该时刻输出的实际值;ypre表示通过模型预测出的预测值;n为测试集的测试样本数;y表示样本均值。
绝对平均误差(MAE):
$ \mathrm{MAE}=\frac{1}{n} \sum\limits_{i=1}^n\left|y_{\text {ture }}-y_{\text {pre }}\right| 。$ | (12) |
相对平均误差(MAPE):
$ \mathrm{MAPE}=\left(\frac{1}{n} \sum\limits_{i=1}^n\left|y_{\text {ture }}-y_{\text {pre }}\right|\right) \times 100 \% / y_{\text {true }} 。$ | (13) |
均方根误差(RMSE):
$ \mathrm{RMSE}=\sqrt{\frac{1}{n} \sum\limits_{i=1}^n\left(y_{\text {true }}-y_{\text {pre }}\right)^2} 。$ | (14) |
相关系数(R2):
$ R^2=1-\sum\limits_{i=1}^N \frac{\left(y_{\text {true }}-y_{\mathrm{pre}}\right)^2}{\left(y_{\text {true }}-\bar{y}\right)^2} 。$ | (15) |
其中,MAE、MAPE、RMSE越小,说明模型的精确度越高;R2的取值范围为(0, 1),R2越大表示模型的拟合效果越好。
3.4 实验结果分析将BP模型、CNN模型、LSTM模型、CNN-LSTM模型和CNN-LSTM-Attention模型的预测结果和实际值进行对比,其结果如图 7所示。
通过图 7可以看出,本文提出的CNN-LSTM-Attention模型比CNN-LSTM模型、LSTM模型、CNN模型以及BP模型预测效果更优。其中,BP神经网络预测结果与真实值有明显差异,效果并不理想[图 7(a)];相对于BP模型,CNN模型提高了预测精度,但是在风向变化较大的位置误差较大[图 7(b)];在风向变化较大的位置,LSTM模型相对于CNN模型误差变小,预测效果提高[图 7(c)];相对于LSTM预测值分布于真实值下方,CNN-LSTM模型的预测值比LSTM更接近于真实值[图 7(d)];相对于CNN-LSTM模型,CNN-LATM-Attention模型的预测值曲线拟合程度更为理想,预测精度提高[图 7(e)]。
5种预测模型的评价结果如表 1所示。通过对5种模型预测结果的误差对比分析可知,在北部湾海域的风况下,本文提出的CNN-LSTM-Attention模型的MAPE、RMSE以及MAE都是最小的,R2值最大,预测效果最好。其中,CNN-LSTM-Attention预测模型的MAPE为3.2119%,相对于BP、CNN、LSTM、CNN-LSTM模型分别减少1.4741%、0.5700%、0.2928%、0.2096%;RMSE为6.496 9,相对于BP、CNN、LSTM、CNN-LSTM模型分别减少2.116 6、0.768 4、0.285 6、0.183 5;MAE为4.470 5°,相对于BP、CNN、LSTM、CNN-LSTM模型分别减少2.652 2°、1.203 2°、0.624 2°、0.408 1°;R2为0.982 6,相对于BP、CNN、LSTM、CNN-LSTM模型分别提高0.012 5、0.003 9、0.002 3、0.001 5。因此本文模型预测性能优于其他4种模型。
模型Model | MAPE/(%) | RMSE | MAE/(°) | R2 |
BP | 4.686 0 | 8.613 5 | 7.122 7 | 0.970 1 |
CNN | 3.781 9 | 7.265 3 | 5.673 7 | 0.978 7 |
LSTM | 3.504 7 | 6.782 5 | 5.094 7 | 0.980 3 |
CNN-LSTM | 3.421 5 | 6.680 4 | 4.878 6 | 0.981 1 |
CNN-LSTM-Attention | 3.211 9 | 6.496 9 | 4.470 5 | 0.982 6 |
4 结论
针对我国广西北部湾海域处于海上风电建设探索阶段,北部湾海域风速较低的现象,准确预测风向,有助于优化偏航控制系统,提高风资源利用率,提增风力发电的经济效益。本文提出基于CNN-LSTM-Attention的深度学习神经网络模型,结合北部湾海域的风况条件,对未来风向进行预测。通过设置对比分析实验可知:
① 结合北部湾海域历史风向数据,本文提出的CNN-LSTM-Attention预测模型相对于CNN-LSTM、LSTM、CNN以及BP网络模型具有更高的预测精度,与实际风向具有较好的拟合性,从而验证了所提出的方法在风向预测方面的有效性,可为广西北部湾海域海上风电建设探索发展提供参考决策。
② 由于风的随机性,在风向变化幅度较大时,预测精度会有些许降低。后续进一步研究可以考虑添加一些影响风向变化的数据,如温度、湿度等,以提高波动点的预测精度。
[1] |
张磊, 李继影, 李钦伟, 等. 风力机偏航系统控制策略研究现状及进展[J]. 发电技术, 2021, 42(3): 306-312. |
[2] |
张东东, 崔新维. BP神经网络在风力发电机风向预测中的应用[J]. 太阳能, 2015(3): 47-49. DOI:10.3969/j.issn.1003-0417.2015.03.011 |
[3] |
卓泽赢, 曹茜, 李青. 基于EWT-KELM方法的短期风电功率组合预测[J]. 电测与仪表, 2019, 56(2): 83-89. |
[4] |
LYNCH C, OMAHONY M J, SCULLY T. Simplified method to derive the Kalman Filter covariance matrices to predict wind speeds from a NWP model[J]. Energy Procedia, 2014, 62: 676-685. DOI:10.1016/j.egypro.2014.12.431 |
[5] |
WANG Y, CHEN Q X, GAN D H, et al. Deep learning-based socio-demographic information identification from smart meter data[J]. IEEE Transactions on Smart Grid, 2019, 10(3): 2593-2602. DOI:10.1109/TSG.2018.2805723 |
[6] |
李亚蒙, 孙宝楠, 丁军航, 等. 基于LSTM的海洋表面短期风速预测研究[J]. 海洋科学, 2022, 46(11): 55-66. |
[7] |
CINAR Y G, MIRISAEE H, GOSWAMI P, et al. Period-aware content attention RNNs for time series forecasting with missing values[J]. Neurocomputing, 2018, 312: 177-186. DOI:10.1016/j.neucom.2018.05.090 |
[8] |
MEDENNIKOV I, BULUSHEVA A. LSTM-based language models for spontaneous speech recognition[C]//International Conference on Speech and Computer, Switzerland: Springer, Cham, 2016: 469-475.
|
[9] |
陆继翔, 张琪培, 杨志宏, 等. 基于CNN-LSTM混合神经网络模型的短期负荷预测方法[J]. 电力系统自动化, 2019, 43(8): 131-137. |
[10] |
苏雅茜, 崔超然, 曲浩. 基于自注意力移动平均线的时间序列预测[J]. 南京大学学报(自然科学版), 2022, 58(4): 649-657. |
[11] |
简定辉, 李萍, 黄宇航, 等. 基于CNN-LSTM网络的短期电力负荷预测[J]. 电工电气, 2022(9): 1-6. |
[12] |
赵兵, 王增平, 纪维佳, 等. 基于注意力机制的CNN-GRU短期电力负荷预测方法[J]. 电网技术, 2019, 43(12): 4370-4376. |
[13] |
唐振浩, 赵赓楠, 曹生现, 等. 基于SWLSTM算法的超短期风向预测[J]. 中国电机工程学报, 2019, 39(15): 4459-4468. |
[14] |
陈海鹏, 周越豪, 王趁录, 等. 基于改进的CNN-LSTM短期风功率预测的系统旋转备用经济性分析[J]. 高电压技术, 2022, 48(2): 439-448. |
[15] |
刘柏霆, 管卫利, 李陶深. 基于XLNet+BiGRU+Att(Label)的文本分类模型[J]. 广西科学院学报, 2022, 38(4): 412-419. |
[16] |
王宇辉, 帖云, 王峰, 等. 基于希尔伯特曲线-卷积神经网络的肿瘤类型预测[J]. 郑州大学学报(理学版), 2021, 53(4): 89-94. |
[17] |
王朝阳, 李丽敏, 温宗周, 等. 基于时间序列和CNN-LSTM的滑坡位移动态预测[J]. 国外电子测量技术, 2022, 41(3): 1-8. |
[18] |
叶峻峣, 苏敬勇, 王耀威, 等. 基于LSTM的语言学习长期记忆预测模型[J]. 中文信息学报, 2022, 36(12): 133-138, 148. |
[19] |
LIU T Y, HUANG Z K, TIAN L, et al. Enhancing wind turbine power forecast via convolutional neural network[J]. Electronics, 2021, 10(3): 261. |
[20] |
HUANG Y, XIANG Y X, ZHAO R X, et al. Air quality prediction using improved PSO-BP neural network[J]. IEEE Access, 2020, 8: 99346-99353. |