基于深度学习框架SSA-BiLSTM 网络的风速预测∗
2020-12-23丁仁强周武能程航洋刘佳伦
丁仁强 周武能 程航洋 刘佳伦
(东华大学信息科学与技术学院 上海 200051)
1 引言
随着化石能源的大量消耗和世界性能源危机的加剧,越来越多的目光聚焦在新能源的发展和利用上[1~2]。据统计,全球70%以上的电力需求是通过燃烧化石燃料,如石油,煤炭和天然气[3]。与此同时,化石燃料会产生有害气体,包括温室气体(greenhouse gasses,GHGs),会导致全球变暖[4~5]。作为解决温室效应的一种有效方法,可再生风力发电受到了越来越多国家和地区的关注。2017 年全球 风 能 委 员 会(Global Wind Energy Council,GWEC)发布的全球风能报告指出:2016 年世界风电市场需求超过54.6GW,由中国、美国、德国和印度引领了全球接近487GW的总装机容量[6]。
风电发展迅速,对风电预测提出了更高的要求,风电预测涉及对风速(风能)的预测以及对风能转换为电能的预测。先预测风速,再预测风电转换,与利于提高风电的预测精度[7]。由于风速的高度随机性特点,不稳定和不可控的风速严重影响了风电预测的精度和风力发电的稳定性,影响了风力发电机组控制和微电网的调度,破坏了电力供需的平衡[8]。同时,这也给大规模风电并网带来了严峻的挑战[9~10]。迫切需要一种精确度高的风速预测方法,作为保证风力发电和电力系统运行稳定的一个基础[11]。针对风电预测涉及到的风速预测和风能转换为电能的预测,本文仅对风速预测进行研究。
目前,已经存在很多风速预测算法和模型,包括物理模型,统计模型和人工智能模型等[12]。其中,物理模型以风向、气压、温度、湿度等关键气象数据以及实际风电场的地形地貌为依据,涉及微观气象学理论、流体力学理论等。求解方程包括动量方程、热量方程、水汽方程等,同时还涉及云层参数及运动轨迹、边界层参数化等[13]。其他的预测方法还包括小波变换法、卡尔曼滤波法[14](Kalman filters)、自回归滑动平均模型[15](Auto-Regressive and Moving Average Model,ARMA)、人工神经网络法[16](Artificial Neural Network,ANN)、K-最近邻算法(K-Nearest Neighbor,KNN)、支持向量机算法[17](Support Vector Machine,SVM)等。其中,神经网络法(ANN)如BP 神经网络[18]、多层感知机神经网络、径向基函数神经网络[19]、贝叶斯神经网络等已经应用于风速预测。
各个模型因自身问题存在不同的缺陷。统计模型因不同时期数据需要建立不同模型,工作量大,存在模型推广难的问题;BP 神经网络模型存在输入参数和网络结构选择困难,以及容易陷入局部极小值的缺点。人工智能模型由于侧重于风速的随机性等表面特征,存在对历史数据要求较高的问题。
随着近几年深度学习的发展,越来越多的学者开始关注深度学习的模型。循环神经网络[20](Recurrent Neural Network,RNN)是深度学习领域用于解决时间序列问题的有效方法,RNN 可以实现长时间的记忆。然而RNN 反向求导会出现梯度弥散的缺点,导致网络很难训练,对于长时间的记忆总是不尽人意。长短期记忆网络[21](Long Short Term Memory,LSTM)是RNN的一种突破变体,可以深入的从时间序列数据中学习时间和长期相关性,同时解决了传统模型无法兼顾数据的时序性和非线性关系的问题。
考虑到风速的高度随机性同时又蕴含着规律性的特点,提高风速预测精度,本文提出一种基于深度学习框架SSA-BiLSTM 网络的风速预测新方法。采用双向长短期记忆网络(Bi-directional LSTM),并集成了奇异谱分析法[22](Singular Spectrum Analysis,SSA)作为数据的预处理方法。仿真实验部分将本文方法与支持向量机回归算法(Support Vector Regression,SVR)风速预测模型、K-最近邻算法(KNN)风速预测模型和典型LSTM 算法风速预测模型进行比较,结果证明本文所提方法的有效性。
2 SSA-BiLSTM模型原理及构建
2.1 SSA模型
SSA 是一种适用于非线性、非平稳、含噪声时间序列的分析方法。由Colebrook[23]提出并先应用于海洋学的研究当中,随后被推广到气象学、地质学、非线性动力学以及社会科学等其他领域[24]。当SSA 用于对时间序列进行预测时,相当于对原始时间序列进行低通滤波,从包含高频噪声的有限长观测序列中提取主要信息用于建立模型[25]。
1)嵌入:选择适当的窗口长度L(2 <L <T),构造轨迹矩阵如下:
其中,K=T-L+1,L 的取值小于整个序列长度的1/3。
2)奇异值分解(SVD):对XXT进行奇异值分解,从而得到L 个特征值λ1≥λ2≥…≥λL≥0 及对应的 特 征 向 量U1,U2,…,UL。 令Vi=XTUi/(i=1,2,…,L),d=rank(X)=max{i:λi>0},则有:
3)分组:将式(2)中的Xi(i=1,2,…,d) 划分成M 个不同的组,则X 可划分为不相交的M 组矩阵之和,下标{i=1,2,…,d} 被分割成子集I1,I2,…,IM。记Ii={i1,i2,…,ip}为第Ii组对应的下标,有:
4)对角平均化:将矩阵XIi=(yij)L×K取对角平均,并转化成长度为T 的序列RCIi=(rc1,…,rcT),RCIi中第k 个元素为矩阵XIi中满足i+j=k+1 的所有元素的均值。对角平均化的公式如下:
2.2 RNN模型
如图1所示,是一个典型的循环神经网络RNN单元,RNN 网络基础结构和传统浅层神经网络模型的区别在于多了循环递归。
图1 典型RNN单元
用公式将图1中t 时刻隐含层神经元激活值和输出层神经元激活值表示为
其中,xt表示的是t 时刻的输入,st表示的是t 时刻隐含层的状态,ot表示的是输出,f(·)是激活函数,W,U,V 是参数。从图1 可以看出RNN 的隐含层有两个输入来源,一个是上一个状态隐含层的输出st-1,另一个是当前的输入xt。
双向RNN 是在图1 所示的典型循环神经网络单元的基础上同时使用前向层(Forward layer)和反向层(Backward layer)来实现的,这两层之间没有链接,它的神经元单元如图2所示。
图2 双向RNN单元
2.3 LSTM模型
典型LSTM 细胞单元结构如图3 所示,由三个门和一个核心计算节点组成。输入门(Input gate):控制信息输入;输出门(Output gate):控制信息输出;遗忘门(Forget gate):控制细胞历史信息是否需要自我更新并保持;核心计算节点(Cell):用来记录细胞当前时刻的状态信息。
图3 典型LSTM细胞单元结构
用公式可以将图3表示为
其中,xt表示输入,ht表示输出,it表示输入门的输出,ft表示遗忘门的输出,ot表示输出门的输出,ct表示当前t 时刻的细胞单元状态,σ 表示sigmoid 激活函数,Wix,Wih,Wic,Wfx,Wfh,Wfc,Wox,Woh,Woc,Wcx,Wch是相应的权值矩阵,bi,bf,bo,bc是相应的偏差向量。
典型LSTM 模型训练过程采用BPTT 算法,与经典反向传播算法(Back Propagation,BP)类似,大致分为四个步骤:1)按照前向计算方法(式(7)~(11))计算LSTM 细胞的输出值;2)反向计算每个LSTM 细胞的误差项,包括时间和网络层级两个反向传播方向;3)根据相应的误差项,计算每个权重的梯度;4)应用基于梯度的优化算法更新权重。
双向LSTM(Bi-directional LSTM)是在经典LSTM 模型的基础上使用两层相互分离的细胞单元。在前向细胞单元中,顺序输入输入层是数据,得到第一组状态输出{ }h1,h2,…,hk;在反向细胞单元中,反序输入输入层的数据,得到第二组状态输 出;将 两 组 状 态 输 出 拼 接 成{[h1,h1],[h2,h2],…,[hk,hk]};最后得到输入xt对应的状态输出Ht=[ht,ht]。后续的处理方式和经典LSTM模型相同,双向LSTM原理如图4所示。
图4 双向LSTM原理
2.4 SSA-BiLSTM预测模型搭建
SSA-BiLSTM 风速预测模型流程如图5 所示,结合流程图,对SSA-BiLSTM 风速预测模型步骤和具体细节进行如下说明:1)对历始风速数据序列进行SSA 分析,包括奇异值分解和重构等;2)根据深度学习[26]所述,深度学习模型没有特定的层数和节点数,所以本文在实验基础上,确定BiLSTM模型的层数为3 层、训练次数为500 次、隐含层节点为20、学习率为0.0006 和其他参数等,然后将步骤1)经过SSA分析得到风速数据作为BiLSTM 模型的训练数据;3)利用训练好的BiLSTM 模型进行直接式风速预测,得到风速的预测值。特别地,为了验证风速预测值的准确性,有必要将风速预测值和风速真实值进行误差分析。
图5 SSA-BiLSTM预测模型
3 实验说明
3.1 数据说明
据中国气象局风能太阳能资源中心最新发布数据,内蒙古自治区风能资源储量约为15 亿kW,居全国首位[27]。本次实验采用的风速数据来自于我国内蒙古地区风电场2012年冬季11月采集的数据,采样高度为60m,采样时间间隔为10min,共1008 个风速数据点。为了训练本文所提出的SSA-BiLSTM 风速预测模型和验证它的有效性,将采集到的风速数据划分为训练数据集和测试数据集。其中训练数据集占全部数据的70%,用于训练风速预测模型;测试数据集占全部是数据的30%,目的在于验证本文所提模型预测风速值与真实风速值之间的误差。
为了避免数据采集过程中,由于设备故障、采样间隔噪声等因素造成的实测数据缺失,本实验采用平均插值法对缺失数据进行填补,最终的实验风速数据如图6 所示,风速数据集的统计最小值、最大值和均值如表1所示。
表1 数据统计
图6 风速数据
3.2 平台说明
本次实验所使用的计算机配置如下:处理器为英特尔酷睿CPU i5-4210,CPU 频率为1.70GHz;内存4.00GB;操作系统为Windows 10(64-bit);集成开发环境为PyCharm Community Edition 2017.3.4;程序设计语言为Python 3.6.4。
3.3 评价指标说明
为了验证本文提出的SSA-BiLSTM 风速预测模型的有效性,实验采用了四个评价标准来评估风速预测模型的预测精度,分别是均方误差、均方根误差、平均绝对百分比误差和相关系数,数学表达式如式(12)~(15)所示。
1)均方误差(Mean Absolute Error,MAE):
2)均 方 根 误 差(Root Mean Square Error,RMSE):
3)平均绝对百分比误差(Mean Absolute Percentage Error,MAPE):
其中N 表示电价序列数据的全部个数,h(i)表示真实电价值,表示预测电价值,真实电价的平均值,̂是预测电价的平均值。
4 仿真实验
为了验证本文所提SSA-BiLSTM 风速预测方法的有效性,在仿真实验部分进行了多种风速预测方法的试验,并对实验结果进行对比和分析。
4.1 预测结果
图7是本文所提SSA-BiLSTM风速预测方法与其他四种风速预测方法对风速数据进行仿真实验,得到的预测结果图;图8 是各个风速预测模型的误差图。
图7 风速预测结果
图8 风速预测误差
表2给出了本文所提SSA-BiLSTM风速预测方法与其他四种风速预测方法的4种评价指标MAE、RMSE、MAPE和R,见式(12)~(15)。
表2 评价指标
图9 未来4h风速预测结果
图10 未来24h风速预测结果
图9 和图10 分别是预测未来4h 和未来24h 的风速结果图。
从图7、图8 可以看出,本文所提SSA-BiLSTM风速预测方法具有更好的曲线拟合度,同时误差较小。从表2 可以看出,本文所提SSA-BiLSTM 风速预测方法在四种评价指标上均取得更好效果,MAE=0.351(m/s)、RMSE=0.511(m/s)、MAPE=2.237(%)、R=0.967。
4.2 结果分析
对结果图表进行分析,可以得出本文所提SSA-BiLSTM 风速预测方法对比其他四种风速预测方法在预测图拟合效果和评价指标上有明显提高。
1)就平均绝对百分比误差(MAPE)指标:对比SVR、KNN、LSTM、BiLSTM 风速预测方法,本文所提出的SSA-BiLSTM 风速预测方法在指标上分别减小0.420、0.390、0.367 和0.062;性能上分别提高提高54.5%、52.6%、51.1%和15.0%。
2)就均方误差(MAE)指标:对比SVR、KNN、LSTM、BiLSTM 风速预测方法,本文所提出的SSABiLSTM 风速预测方法在指标上分别减小0.599、0.574、0.535 和0.121;性 能 上 分 别 提 高54.0%、52.9%、51.1%和19.1%。
3)就均方根误差(RMSE)指标:对比SVR、KNN、LSTM、BiLSTM 风速预测方法,本文所提出的SSA-BiLSTM 风速预测方法在指标上分别减小2.631、2.407、1.988 和0.119;性 能 上 分 别 提 高54.1%、51.8%、47.1%和5.1%。
4)就相关性系数(R)指标:对比SVR、KNN、LSTM、BiLSTM 风速预测方法,本文所提出的SSA-BiLSTM 风速预测方法在指标上分别增加0.057、0.072、0.063和0.010;性能上分别提高6.3%、8.0%、7.0%和1.0%。
通过对上述评价指标的分析和对仿真结果图的观察,验证了本文所提SSA-BiLSTM 风速预测方法的有效性。
5 结语
本文提出一种基于深度学习框架SSA-BiLSTM网络的风速预测方法,结合我国内蒙古地区风电场2012年冬季11月采集到的风速数据进行风速预测仿真实验。其中风速数据采样高度为60m,采样时间间隔为10min,共计1008 个风速数据点。根据风速预测仿真实验结果,可以得出以下结论。
1)将奇异谱分析法(SSA)和双向长短期记忆网络(BiLSTM)结合进行风速预测,使用奇异谱分析对风速数据序列进行趋势信息提取和去噪声预处理,然后通过双向长短期记忆网络进行风速预测,可以有效提高风速预测的精确度。
2)双向长短期记忆网络(BiLSTM)比长短期记忆网络(LSTM)的优势在于可以获得风速数据序列点过去和将来的信息,从而可以提高风速预测的精确度。
3)与双向长短期记忆网络(BiLSTM)单独进行风速预测相比,本文所提SSA-BiLSTM 风速预测模型具有数据趋势信息提取和去噪能力,从而提高了风速预测的精确度。