1. 引言
随着新能源技术的发展,风力发电作为一种绿色的可再生能源有着巨大的发展潜力。然而风力发电的数量与风速有着密不可分的关系,因此,风速预测技术至关重要。有许多学者对风速预测模型的统计方法开展了很多研究,预测风速的统计方法的模型包括差分整合移动平均自回归模型(ARIMA) [1]-[3]、季节性ARIMA (SARIMA) [4] [5]和其他模型。由于现实中的风速数据具有非线性、周期性和随机性,这些统计方法在实际运用中预测的结果与现实数据会有较大的误差。在最近几年,由于智能学习方法的迅速发展,人工神经网络(ANN)、支持向量机(SVM)和支持向量回归(SVR)等对非线性数据拟合性更好的优点,智能学习方法成为了风速预测的主要方法之一[6]-[8]。其中长短期记忆神经网络(Long Short-Term Memory, LSTM)被提出用来解决RNN的长期依赖性引起的梯度问题[9] [10]。李亚蒙等[11]采用LSTM对海面风速进行预测并与其他模型对比;涂佳黄等[12]采用LSTM模型对风速数据进行预测。以上实验证明了LSTM在处理风速数据中具有很高的准确性和泛化能力。
但LSTM模型通常利用经验设置超参数的值,有时候会不适用于某一问题,不合适的超参数将会大大影响到模型的预测精度。大量研究表明,可以通过引入智能优化算法来对LSTM的超参数进行自动调节,将超参数调节到最优的组合来提高模型的预测精度。例如,Bilin Shao等[13]使用烟花算法对LSTM的Look Back和神经元数量进行寻优并进行风速预测,实验得到优化后的模型效果更好,表明了智能优化算法能对LSTM超参数优化。
灰狼优化算法(Grey Wolf Optimization, GWO)是在2014年由Mirjalili S [14] [15]提出的一种智能优化算法,灵感源自于灰狼群体捕食行为,具有结构简单、需要调节的参数少,全局优化与收敛速度快的特点,经常被用于智能模型的超参数优化。Aufa等提出了一种使用灰狼优化算法来优化LSTM模型超参数的语言模型[16];王立辉等[17]采用了灰狼优化算法优化LSTM网络的神经元数量和初始权重及阈值,并对丹江口水库入库径流量进行预测;Bao-Jian Li等[18]使用灰狼优化算法优化LSTM模型的隐藏层神经元个数、学习率以及迭代次数,并对径流数据进行预测;Hossain M A等[19]采用灰狼优化算法对LSTM的批大小、Dropout、输入窗口大小和神经元个数进行超参数优化并使用优化后的模型进行超短期风速预测,取得更准确的预测结果。以上实验证明使用灰狼优化算法调节超参数后的LSTM模型具有良好的预测效果。
本文构建了一个LSTM风速预测模型,然后使用灰狼优化算法来对LSTM模型的神经元数量、学习率及批大小等参数进行优化,模型命名为GWO-LSTM,为验证模型的有效性,使用Halifax市的风速序列数据集进行实验。同时为了证明算法的优越性,本文算法与常用的风速预测模型如未优化的LSTM、GRU、Simple RNN [20]等模型进行对比分析,证明GWO-LSTM在风速预测问题上的可行性。
2. 模型与方法
2.1. 长短期记忆神经网络(LSTM)
LSTM是一种基于RNN的变体,其基本思想在于细胞状态和“门”结构中,特点就是可以选择性的记忆或遗忘无关信息,相比普通RNN在更长的时间序列模型上要表现得更好。理论上,需要保留的信息可以由模型中的细胞传输。因此,短期记忆对模型训练的影响被规避了,即使是早期的数据的信息也可以被传送到后来的细胞状态中。通过“门”结构,LSTM被训练来理解哪些信息需要保留或遗忘,哪些信息被添加或删除,LSTM的内部结构如图1所示,其更新方法如公式(1)~(6):
(1)
(2)
(3)
(4)
(5)
(6)
Figure 1. LSTM structure diagram
图1. LSTM内部结构图
2.2. 灰狼优化算法(GWO)
灰狼优化算法是由Mirjalil等[14]在2014年提出的一种智能优化算法,灰狼群体是一种有社会等级区分的食肉动物群体。为了在设计GWO时对狼的社会等级进行数学建模,认为最合适的解决方案是
,第二和第三最优解分别被命名为
和
,其余的候选方案被认为是
。在GWO算法中,狩猎是由
、
和
指导的,
狼跟随这三只狼。算法主要包括了包围猎物和狩猎两个过程:
1) 包围猎物:灰狼在狩猎过程中利用公式(7)、(8)对猎物进行包围:
(7)
(8)
其中
和
用公式(9)、(10)计算:
(9)
(10)
其中t表示当前的迭代次数,
为灰狼与猎物的距离,
和
是系数向量,
表示猎物的位置向量,
表示灰狼的位置向量,
表示在下一次迭代的灰狼位置向量,
和
为[0, 1]区间中的随机数。
2) 狩猎:灰狼有能力识别猎物的位置并将其包围起来。狩猎活动通常由头狼
引导,
和
也偶尔参与狩猎。优化过程中保存迄今为止获得的前三个最优位置,并根据三个最优位置
、
、
搜索并更新代理(包括
),根据最佳搜索代理的位置更新其位置。根据上述条件,提出了以下公式(11~17)对灰狼位置进行更新。
(11)
(12)
(13)
(14)
(15)
(16)
(17)
其中
、
、
分别是
、
、
与其他狼的距离。
、
、
分别为
、
、
在当前迭代次数下的位置向量。
、
、
分别为狼群中的某个灰狼向
、
、
移动的向量。
2.3. 基于灰狼算法的LSTM风速预测模型(GWO-LSTM)
LSTM神经网络的训练结果受超参数选择的影响很大,通过设置正确的超参数,可以提高模型预测的精度。由于当今大多数的超参数选择过程都依赖于经验来取值,若通过群智能优化算法来将各种超参数的值转换为一个多维空间中的寻优问题,那么超参数选择的随机性就可以达到更小,因此提出基于灰狼优化算法GWO的LSTM的风速预测模型(GWO-LSTM),算法流程如图2所示,具体步骤如下:
1) 将风速数据归一化,并按比例分为训练集、验证集和测试集。
2) 设置灰狼优化算法的超参数,如种群总数N、最高迭代次数等。设置LSTM除神经元数量、学习率和批大小以外的超参数,如最高迭代次数等。
3) 将LSTM的神经元数量、学习率和批大小编码为灰狼位置,随机初始化N个灰狼位置,选择训练样本数据集训练N个LSTM模型到指定步数或30代最优解没有更新。
4) 计算各灰狼个体对应LSTM在验证集下的适应度。本文采用预测值与真实值之间的误差平方和为适应度函数。
5) 根据适应度值,通过公式(11)~(17)来更新各灰狼个体的位置。当迭代次数达到最大或全局最优位置满足要求时,就从灰狼优化算法中输出最优灰狼位置,即得到LSTM的最优超参数组合。
6) 选择测试集对最优超参数GWO-LSTM进行测试,得到结果。
Figure 2. Flowchart of the GWO-LSTM algorithm
图2. GWO-LSTM算法流程图
3. 数据集
本研究采用2021年5月1日至6月20日加拿大哈利法克斯(Halifax)的风速数据集作为实验数据(https://climate.weather.gc.ca/historical_data/search_historic_data_e.html) [21],该数据集记录着该地区每小时的风速特征,数据如图3所示。将数据集划分为训练集和测试集,前60%作为训练集,中间10%作为验证集,其余30%作为测试集,来测试和验证GWO-LSTM风速预测模型。
Figure 3. Datasets of Halifax
图3. Halifax数据集
4. 结果与分析
本实验基于编程语言Python3.7,使用Anaconda3环境下的Tensorflow2.0深度学习库进行模型构建。Adam算法用于训练LSTM的内部网络参数,隐藏层使用的激活函数为Tanh函数。灰狼优化算法用于优化LSTM的批大小、学习率、神经元数量三个超参数,最优超参数组合可以使网络训练达到更好的效果,使测试结果精度更高。
4.1. 评价指标
对于网络模型的预测结果,本文用三个误差分析指标来验证预测的准确性,即均方根误差(RMSE)、平均绝对误差(MAE)及相关系数R2,它们计算方法如公式(18)、(19)和(20)所示,RMSE和MAE越小越好,R2的值越大越好。
(18)
(19)
(20)
其中N为样本数量,
为模型的预测值,
表示测试集的真实数据,
表示真实数据的均值。
4.2. 结果分析
为了验证GWO-LSTM模型的性能,采用了经验取值超参数的LSTM、GRU、Simple RNN来作为基准模型和GWO-LSTM对比。LSTM、GRU和Simple RNN的神经元个数、批大小数分别为32和16,这些都是常用的参数。Elsaraiti M等[21]通过实验得到时间步长为24和学习率为0.01时普通LSTM的RMSE最低,因此本次实验的基准模型均使用相同的时间步长24和学习率0.01。
本实验将神经元个数、学习率和批大小设置为狼群的位置坐标,设置最大迭代次数为15,狼群数量设置为20。设置GWO-LSTM的神经元个数寻优范围是[4, 256]、学习率在[0.001, 0.05]、批大小在[2, 32]中寻找最优的参数。在数据集中GWO-LSTM找到的最优神经元个数是226,最优的学习率是1.80798762e − 2,最优的批大小是8。
Figure 4. Comparison of predicted and true values for each model
图4. 各模型的预测值与真实值对比
图4为GWO-LSTM与经验取值LSTM预测结果对比图。从图4可看出,在非波峰和波谷的区域,GWO-LSTM与经验取值的LSTM效果比较接近,都能较好的预测风速,而在波峰及波谷上,GWO-LSTM的预测效果比经验取值的LSTM稍好,同时,GWO-LSTM在大部分情况下能更好的拟合原始数据,且GWO-LSTM在波谷更拟合。但由于风速数据存在较强的波动性,两个模型的预测结果与实际数据都有一定的滞后现象,后期可以考虑对风速数据进一步进行处理来提高模型的预测精度。
本文绘制了误差箱形图,以图示的方式来呈现预测误差,如图5所示,从图5中可以看到GWO-LSTM的中位线较其他模型更接近于0,且GWO-LSTM的波动更小。
Figure 5. Box plots of prediction errors for different models
图5. 不同模型的预测误差箱形图
为了进一步验证本文提出的模型GWO-LSTM的预测精度,本文采用三个常用的风速预测模型LSTM、GRU和Simple RNN进行比较,并使用三个评价指标RMSE、MAE和R2对预测性能进行评价。表1给出了在相同的时间步长下,各模型之间的预测结果精度分析,其中每个模型的RMSE、MAE和R2均为5次实验后的平均值。从表1可以看出,GWO-LSTM的预测效果最好,其RMSE为3.02,MAE为2.33,R2为0.668;LSTM的表现次之,GRU第三,Simple RNN效果最差。在RMSE与MAE等评价指标上,GWO-LSTM比经验的LSTM分别降低了1.4%和1.7%,而相关系数R2提高了一些。综合上述,GWO-LSTM模型在预测性能上优于传统的预测模型,可为解决风速预测问题提供了更好的选择。
Table 1. Accuracy analysis of prediction results of different models with GWO-LSTM
表1. 不同模型与GWO-LSTM的预测结果精度分析
Model |
Hyper-parameters |
RMSE |
MAE |
R2 |
LSTM |
神经元数量 = 32,学习率= 0.01, 时间步长 = 24,批大小 = 16。 |
3.06 |
2.37 |
0.660 |
GWO-LSTM |
神经元数量 = 226,学习率=1.80798762e − 2, 时间步长 = 24,批大小 = 8。 |
3.02 |
2.33 |
0.668 |
GRU |
神经元数量 = 32,学习率 = 0.01, 时间步长 = 24,批大小 = 16。 |
3.08 |
2.37 |
0.656 |
Simple RNN |
神经元数量 = 32,学习率 = 0.01, 时间步长 = 24,批大小 = 16。 |
3.10 |
2.41 |
0.651 |
5. 结论
为了解决风速预测中LSTM超参数最优问题,本文提出了利用灰狼优化算法对传统的LSTM参数进行优化的算法GWO-LSTM。该算法在传统的LSTM基础上,利用灰狼算法对LSTM的神经元个数、学习率、批大小数量进行优化。为评价所提算法GWO-LSTM的性能,与常用的三种算法进行比较,研究结果表明,相比经验的LSTM,GWO-LSTM的预测值更接近真实值,特别是在波峰和波谷地带。同时,三个评价指标表明,GWO-LSTM的RMSE和MAE低于经验取值超参数的LSTM和Simple RNN,这也说明在一定程度上,使用灰狼优化算法得到的超参数组合模型GWO-LSTM,对于短期风速序列可以更准确地预测风速,一定程度上避免了人工调整参数产生的误差。由于风速具有非平稳和波动性的特点,当出现风速波动变大时,模型的预测精度会有所下降。GWO-LSTM在本文仅在短序列风速数据简单应用,尚未涉及影响风速的湿度、温度、密度等因素。同时对其他风速序列数据的普适应还未分析。在接下来的研究中,将考虑这些因素,结合GWO-LSTM得到更为精确风速的预测,并讨论其他智能优化算法对LSTM超参数优化在风速预测的适用性以及分析同一算法在不同风速数据的普适应性。