基于CNN-LSTM-Attention的短期风向预测研究
韩星晖1, 何永玲1, 蒙占彬1, 胡文睿1, 廖彬杰2     
1. 北部湾大学机械与船舶海洋工程学院,广西钦州 535011;
2. 广西电网钦州新区供电局,广西钦州 535011
摘要: 风向预测对提高风能转化率、保障风力发电机偏航系统安全运行及增加风力发电效益具有重要意义。为准确预测风向,提出一种基于CNN-LSTM-Attention的短期风向预测模型。首先,利用卷积神经网络(Convolutional Neural Network, CNN)提取风向数据动态变化特征,然后将所提取的特征向量构成时间序列作为长短期记忆(Long Short-Term Memory,LSTM)网络的输入,最后使用注意力机制(Attention mechanism)分配LSTM隐含层不同权重,增强重要特征的作用,完成风向预测。采用北部湾海域历史风向数据,通过实验与其他神经网络预测模型进行对比,结果显示,CNN-LSTM-Attention模型的相对平均误差(MAPE)值为3.2119%,R2为0.982 6, 优于其他对比模型。所得结果为广西北部湾海域海上风电探索发展提供参考。
关键词: 偏航系统    风向预测    注意力机制    CNN    LSTM网络    
Short-Term Wind Direction Prediction Based on CNN-LSTM-Attention
HAN Xinghui1, HE Yongling1, MENG Zhanbin1, HU Wenrui1, LIAO Binjie2     
1. College of Mechanical and Marine Ocean Engineering, Beibu Gulf University, Qinzhou, Guangxi, 535011, China;
2. Guangxi Power Grid Qinzhou New District Power Supply Bureau, Qinzhou, Guangxi, 535011, China
Abstract: Wind direction prediction is of great importance to improve the conversion rate of wind energy, ensure the safe operation of wind turbine yaw system and increase the benefits of wind power generation. In order to accurately predict wind direction, a short-term wind direction prediction model based on CNN-LSTM-Attention is proposed. Firstly, the Convolutional Neural Network (CNN) is used to extract the dynamic change features of wind direction data. Then, the extracted feature vectors are used to form a time series as the input of the Long Short-Term Memory (LSTM) network. Finally, attention mechanism is used to allocate different weights of the LSTM hidden layer to enhance the role of important features and complete the wind direction prediction. The historical wind direction data of Beibu Gulf waters are used to compare with other neural network prediction models through experiments. The results show that the MAPE value of CNN-LSTM-Attention model is 3.2119%, and R2 is 0. 982 6, which is better than other comparison models.The results provide a reference for the exploration and development of offshore wind power in Beibu Gulf of Guangxi.
Key words: yaw system    wind direction prediction    attention mechanism    CNN    LSTM network    

对于可再生能源——风能,我国正加快海上风电建设,有助于建设清洁低碳、安全高效的能源体系。风力发电技术中的偏航系统是风力发电机组特有的伺服系统,它使风轮稳定跟踪变化的风,保证捕获最大的风能[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 CNN

CNN是一种具有卷积架构的深度神经网络,在语音识别、人脸识别、自然语言处理等领域都有着广泛的应用。由于CNN同时具备共享权值及局部连接的功能,因而在降低模型的复杂度、减少建模参数的同时,还可以更高效地提取特征信息[11]

CNN相对于普通的神经网络,区别主要在于卷积层和池化层,结构如图 1所示。卷积层对所有输入信息进行卷积计算,同时对数据特征进行有效提取,通过池化层对输入特征进行压缩,简化网络计算复杂度,提取主要特征。卷积层与池化层共同组成的特征提取器,既能够最大限度地对输入值的潜在信息加以合理提取,又能降低人为抽取数据时产生的偏差。因此,本文先采用CNN对归一化后的数据进行特征提取,然后通过LSTM网络进行分析预测。

图 1 CNN结构 Fig.1 Structure of CNN

1.2 LSTM网络

由于循环神经网络(RNN)存在较为严重的问题,即梯度消失、梯度爆炸的问题[12],LSTM网络算法在RNN的基础上进行了一些改进,通过特殊的方式存储“记忆”,从而解决RNN存在的问题。图 2为LSTM网络记忆单元结构图。与RNN结构不同的是,LSTM通过特殊的方式存储“记忆”,即设置“门”结构,达到对“细胞状态”信息的舍弃和增添,代替了RNN中的隐含层,实现记忆中的信息取舍。“门”结构将sigmoid函数作为激活函数,sigmoid层输出的元素都是(0, 1)之间的实数。3个门分别是输入门、输出门和遗忘门。通过对历史输入、当前输入和历史输出进行加权学习,进而实现对历史输入、历史输出的记忆功能[13]

图 2 LSTM网络记忆单元结构 Fig.2 Structure of LSTM network memory cell

当输入时刻为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)

上式中,Wb分别表示权重矩阵以及偏置量,(Wfbf)、(Wtbt)、(WCbC)、(WObO)分别对应遗忘门、输入门、状态单元以及输出门的权重矩阵和偏置量,σ表示sigmoid函数,ft、itOt为对应门输出的激活函数,CtCt分别表示即时状态和状态单元的向量,ht表示当前时刻LSTM单元格的输出[14]

1.3 注意力机制

注意力机制是机器学习中的一种数据处理方法,广泛应用在自然语言处理、图像识别及语音识别等各种类型的机器学习任务中[15]。注意力机制本质上与人类对外界事物的观察机制相似。通常来说,人们在观察外界事物的时候,首先会比较倾向于观察事物某些重要的局部信息,然后再把不同区域的信息组合起来,从而形成一个对被观察事物的整体印象。在神经网络中引入注意力机制,可以在众多输入信息中关注对当前任务更重要的信息特征,降低对其他信息的关注度,甚至过滤掉无关信息,解决信息过载问题,并提高任务处理的效率和准确性。注意力机制模型结构如图 3所示。其中,X1X2,…,Xt-1Xt表示风向数据的输入特征;h1h2,…,ht-1ht表示LSTM的隐藏层状态的输出值;a1a2,…,at-1at表示Attention机制对LSTM隐藏层输出的注意力权重值。

图 3 注意力机制模型结构 Fig.3 Structure of attention mechanism model

2 基于CNN-LSTM-Attention的网络风向预测 2.1 CNN-LSTM-Attention风向预测网络模型结构

本文建立的CNN-LSTM-Attention风向预测网络模型如图 4所示。此模型将具有高效提取特征能力的CNN与处理时间序列能力优异的LSTM网络相结合,并且使用注意力机制进行优化,通过概率分配权重,增强关键特征的作用,进一步提高风向预测的准确性。此模型主要分为5层:输入层、CNN层、LSTM层、注意力(Attention)层和输出层。

图 4 CNN-LSTM-Attention风向预测网络模型 Fig.4 CNN-LSTM-Attention wind direction prediction network model

模型中的每层具体叙述如下。

① 输入层。对长度为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)

式中,etat分别表示在t时刻风向数据不同特征所对应的注意力分数和权重, ht表示LSTM层在t时刻的输出,b是偏置系数,uw是权重系数,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在神经网络中的应用。

图 5 有无Dropout的神经网络模型 Fig.5 Neural network model with or without Dropout

3 实验验证与结果分析 3.1 样本处理

本文使用北部湾海域的原始风向数据,所收集到的风向数据间隔为10 min。考虑到不同指标之间存在量纲影响,为了消除影响,对数据进行归一化处理。归一化后可以加快模型的收敛速度,并且在一定程度上提升预测模型的精度。本模型使用MinMaxScaler函数进行输入数据归一化,区间为[0, 1]。时间序列原始风向数据与归一化后的数据如图 6所示。

图 6 风向序列曲线 Fig.6 Wind direction sequence curve

本次实验所使用的设备均在带有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 各模型预测结果 Fig.7 Prediction results of each model

通过图 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种模型。

表 1 风向预测性能对比 Table 1 Comparison of wind direction prediction performance
模型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.