APP下载

多特征嵌入的Seq2Seq风速预测模型

2021-07-21杜宝祥李永利马志强王洪彬

计算机工程与设计 2021年7期
关键词:编码方法时刻风速

杜宝祥,李永利,马志强,3,王洪彬,张 立

(1.内蒙古工业大学 数据科学与应用学院,内蒙古 呼和浩特 010080;2.内蒙古自治区气象局 内蒙古自治区气象信息中心,内蒙古 呼和浩特 010051;3.内蒙古工业大学 内蒙古自治区 基于大数据的软件服务工程技术研究中心,内蒙古 呼和浩特 010080)

0 引 言

风速是气象预报的一项重要属性,在气象预报中通常以风力等级的形式表示。风速预测是风速预报的一种重要补充手段,指对未来一段时间内风速值的预测,根据时间间隔的长短可划分为短期预测(未来数分钟)、中期预测(未来数小时)和长期预测(未来数天以上)。由于风速的不可调节和控制,容易对人类的生活和生产造成不利影响,甚至产生灾难性后果,若能够较为准确地预测未来一段时间的风速变化情况,将为人类社会赢得宝贵的时间,使得人们能够提前做好防范措施,降低风速变化带来的负面影响。然而风速的变化会受到气压、温度、湿度、纬度、海拔和地形等诸多因素的影响[1],导致风速很不稳定,且会不间断地、随机性地发生变化,给风速预测带来很大困难,且现有的基于机器学习的方法很少将除风速以外的因素结合进来,缺乏对更多特征变化规律的分析建模研究。本文以内蒙古地区某站点的气象观测数据为基础,对未来数小时内不同时刻的风速进行预测,属于中期预测。针对风速形成因素复杂的特点,本文提出了风速多特征嵌入编码方法及基于序列到序列(sequence to sequence,Seq2Seq)的风速预测模型,不仅对风速的时间序列进行分析建模,还结合大量风速影响因素的多特征数据进行风速多特征嵌入编码,进而学习风速的多特征与变化规律,提高风速预测模型的预测效果。

1 相关理论

1.1 风速预测

目前,风速预测研究主要以风电场的短期风速预测为主,对于气象领域的中长期风速预测研究较少。文献[1-3]基于长短期记忆网络(long short-term memory,LSTM)分别开展了风电场短期和铁路附近超短期风速预测研究,取得了良好的预测精度。文献[4,5]基于时间序列分析对风能研究中心进行了非线性短期风速预测研究,验证了时间序列分析方法的有效性。文献[6]基于季节调整和时间序列相混合方法进行了长期风速预测研究,准确有效地实现了月平均风速的预测。在以上研究中,时间序列是风速预测分析建模的一种常用方法。时间序列分析建模只需有限的样本序列,依据序列本身的时序性和自相关性的信息,即可建立起相当高精度的预测模型,但存在着低阶模型预测精度低和高阶模型参数估计难度大的不足,而使用深度神经网络进行时间序列分析建模是比较理想的方法。

LSTM是一种典型的时间序列建模方法,已经被应用到短期风速预测中[1],实验结果表明其效果优于BPNN(BP神经网络)、SVM(支持向量机)、LSSVM(最小二乘支持向量机)和ARIMA(自回归滑动平均模型),但并未结合其它影响风速的多因素特征数据,效果仍有待提升。

1.2 Seq2Seq模型

Seq2Seq模型分别由Google Brain和Yoshua Bengio两个团队独立提出,在自然语言处理领域得到广泛应用,尤其在机器翻译中取得显著的效果。此外,Seq2Seq模型在电力负荷预测[7]、加油站时序数据异常检测[8]及云资源负载预测[9]等时间序列任务中也取得了良好的效果。

Seq2Seq模型由编码器和解码器构成,模型结构如图1所示。编码器将输入序列 [A,B,C,] 编码为固定长度的向量表示h,解码器将向量表示h解码为另一个目标序列输出 [X,Y,Z,]。 当给定一个源序列时,编码器和解码器共同训练来最大化目标序列的条件概率。

图1 Seq2Seq模型结构

编码器和解码器通常使用循环神经网络(recurrent neural networks,RNN)或LSTM。LSTM是RNN的一种优秀变体,包含输入门、输出门和遗忘门3个门控单元和记忆细胞。LSTM解决了RNN的梯度消失和梯度爆炸的问题,并且适合处理长距离依赖的问题,能够进一步提升Seq2Seq模型性能。另外,LSTM对气温预测的良好性能表现[10]也为其它气象预测研究提供了很好的借鉴。

1.3 注意力机制

注意力机制由Yoshua Bengio团队提出,用于对Seq2Seq模型进行改进,大大提高了基于Seq2Seq模型的机器翻译的效果,使机器翻译全面进入了神经机器翻译的时代,此外,基于注意力机制的深度神经网络还被广泛应用到图像识别、语音识别及自然语言处理等各种任务中[11]。注意力机制本质是在解码阶段通过对源序列中的每个元素分配不同的权重(注意力),使得解码器能够更有效地利用源序列的重要信息,以获得更好的解码效果。

注意力机制如图2所示,在解码生成第t个元素yt时,模型会根据不同的权重at,i, 对源序列的元素Xi对应的隐藏状态向量hi进行加权求和,作为此时的上下文向量。注意力机制能够避免Seq2Seq模型对源序列编码所造成的信息压缩问题,使得解码器在解码的每一步都能够回顾整个源序列,进而提升Seq2Seq模型的预测效果。

图2 注意力机制结构

2 风速预测模型

2.1 风速多特征嵌入编码方法

2.1.1 嵌入单元结构

由于风速的变化会受到多个因素的影响,因此进行风速预测时结合影响风速的其它多个因素的特征(本文中简称为:风速多特征)会提高预测效果,且文献[12]也验证了多特征结合分析方法的有效性。因此,本文提出风速多特征嵌入编码方法,利用多层深度神经网络对风速多特征进行嵌入编码,使风速在模型中能够得到更加合理的特征向量表示,进而提升预测效果。风速多特征嵌入编码方法通过基于深度神经网络的嵌入单元实现,结构如图3所示,其中嵌入层由多层非线性神经网络进行全连接得到。

图3 风速多特征嵌入单元结构

风速多特征嵌入编码方法是一种可扩展的方法,允许研究者根据支撑数据的丰富程度和重要程度增加或调整多特征的数量以及不同特征的权重,使得模型有更好的预测效果。该模型也是一种可移植的方法,允许其作为单独模块加入到各种风速序列预测的神经网络模型中,以增强模型的整体性能。该方法将影响风速的其它因素结合到时间序列建模中,使得模型不仅依赖于单一的风速时间序列,还能根据其它的气象信息,对未来的风速进行更加准确合理的预测。

2.1.2 嵌入编码原理

风速多特征嵌入编码方法使用深度神经网络对风速多特征进行嵌入及维度转换。由于不同特征数据有不同的单位和量级,所以,为了平衡不同因素特征的作用以及减小误差,编码过程中增加了特征数据归一化和标准化操作。

其工作原理是首先将某一时刻的风速值作为一个风速(wind speed,WS)标签,然后将该时刻的多个特征值 [ft,1,ft,2,…,ft,N] 进行线性函数归一化(min-max norma-lization),并按不同权重进行加权标准化(如式(1)所示),再将处理后的特征值fst进行神经网络嵌入编码(如式(2)所示),最终得到该时刻WS Embedding中M个维度的值 [et,1,et,2,…,et,M]

fst=Fnorm([ft,1,ft,2,…,ft,N])·[a1,a2,…,aN]

(1)

et=[et,1,et,2,…,et,M]=FCno_linear(fst)

(2)

以上各式中各个参数含义如下:fst:t时刻标准化后的多特征数据;Fnorm:归一化函数;N:特征个数;ft,N:t时刻多特征数据第N个特征的值;aN:第N个特征所占权重;et:t时刻的风速嵌入向量;M:嵌入维度;et,M:t时刻风速嵌入向量第M维的值;FCno_linear:神经网络非线性全连接层。其中FCno_linear的网络深度可在训练过程中进行调整优化。

2.1.3 嵌入单元学习算法

风速多特征嵌入编码方法不需要复杂的人工干预,仅需要对各项特征进行简单的权重分配,模型将在训练时自动优化嵌入层参数。其中,各项特征根据重要程度分配不同的权值,以提高重要特征的数值波动对预测结果的影响,降低非重要特征对模型的过度影响。同深度神经网络的其它超参数类似,多特征权重在模型训练前进行配置,无需后续的调整。各项特征的权值默认是相等的,可根据实验数据的丰富程度对不同特征的权值进行个性化的配置。风速多特征嵌入单元学习算法见表1。

表1 风速多特征嵌入编码单元学习算法

2.2 多特征嵌入的Seq2Seq风速预测模型

2.2.1 模型架构

根据内蒙古气象信息中心的研究需要,本文的中期风速预测任务为:当给定当前时刻之前24个小时的真实风速数据时,通过风速预测模型,生成未来9个小时的预测风速值。本文以带有注意力机制的Seq2Seq模型为基础,结合风速多特征嵌入编码方法,设计了包括风速多特征嵌入单元、编码器、注意力机制以及解码器的风速预测模型,架构如图4所示。

图4 多特征嵌入的Seq2Seq风速预测模型架构

多特征嵌入的Seq2Seq风速预测模型在Seq2Seq的基础上,结合多个影响风速的特征因素,对风速的时间序列进行建模,并进行多特征嵌入编码,最终逐步进行未来风速值的解码预测,生成未来若干小时的预测风速值序列。本文的方法不仅从技术方面采用更适合处理时间序列问题的Seq2Seq作为建模主体,还从理论角度嵌入影响风速的多特征气象数据作为信息补充,从而得到更准确合理的风速预测模型。

2.2.2 模型原理

多特征嵌入的Seq2Seq风速预测模型将风速的多特征数据作为输入,通过风速多特征嵌入单元得到相应的风速多特征向量序列E={e1,e2,…,em}。 风速多特征向量依次通过编码器单元的编码得到对应的隐藏向量hj(如式(3)所示),经过注意力机制的计算(如式(4)~式(6)所示)和解码器单元的逐步解码(如式(7)所示),输出最终的预测风速值序列W={w1,…,wn} (如式(8),式(9)所示)

hj=LSTM(ej,hj-1)

(3)

rtj=fno_linear(wt-1,hj)

(4)

(5)

(6)

st=LSTM(wt-1,st-1,ct)

(7)

p(wt|{w1,…,wt-1},E)=Fout(wt-1,ct-1,st)

(8)

(9)

以上各式中各个参数含义如下:hj:源序列第j个元素对应的隐藏向量;LSTM:编码器和解码器的基本单元;ej:源序列第j个元素对应的WS Embedding;rtj:t时刻输出与源序列第j个元素的匹配得分;fno_linear:神经网络非线性层;αtj:t时刻对应源序列第j个元素的权重;ct:t时刻的上文信息向量;wt:t时刻风速的预测值;st:t时刻解码器隐藏向量;Fout:神经网络输出层。

2.2.3 风速预测算法

多特征嵌入的Seq2Seq风速预测模型需要经过大量风速多特征数据训练后,才能对未来的风速进行预测。在每一次模型迭代训练时,将给定的一段连续风速多特征数据,根据需要的序列长度分成前后两段:前段风速值以WS Embedding的形式作为输入序列,后段的风速值作为目标序列。通过大量数据的不断迭代训练,深度神经网络模型将逐渐拟合真实的风速分布,最终得到最优的风速预测模型。通过当前时刻之前的风速多特征数据和训练好的模型即可预测未来的风速。

多特征嵌入的Seq2Seq风速预测模型的详细预测算法过程见表2。

表2 多特征嵌入的Seq2Seq风速预测模型预测算法

表2(续)

3 实验与分析

3.1 实验设置

本文实验数据由内蒙古气象信息中心提供。研究抽取了内蒙古某气象观测站点2018年1月1日0时到2019年1月1日0时的实时风速数据作为原始数据集。表3展示了原始气象观测数据情况。

表3 原始气象观测数据示例

由表3可知,原始数据采样间隔为1小时,数据内容包括影响风速的多项数据(气压、变压、温度、湿度)和风速。全年的风速情况如图5所示,其中,横坐标为时刻(单位:h),纵坐标为风速值(单位:m/s)。本文将原始数据处理为包含源序列和目标序列的样本集,并按照8∶2划分训练集和测试集。

图5 原始数据的全年风速序列

根据内蒙古气象信息中心的研究需要,各模型数据的源序列长度设置为24,目标序列长度设置为9,以实现通过过去24小时的数据对未来9小时的风速进行预测。实验中的Seq2Seq模型采用2层双向LSTM作为编码器,2层单向LSTM作为解码器,均包含32个隐藏单元。Embedding维度为5,表示影响风速的5个特征。模型训练的batch size=8,使用Adam优化算法,学习率为0.01,模型最终经过65轮训练后收敛。

本文使用Seq2Seq模型和多特征嵌入编码方法,分别与基于LSTM、GRU和BP神经网络的风速预测模型进行对比,并使用风速多特征数据,通过准确性和稳定性两个方面的实验,验证Seq2Seq模型和风速多特征嵌入方法对中期风速预测的有效性。

3.2 评价指标

本文使用准确率和预测评分来评价模型预测的准确性,并使用平均绝对误差评价模型预测的稳定性。

准确率(acc):计算各个序列中预测准确的次数占预测总次数的比例(比较各个风速值对应的风力等级,风力等级相同即认为预测准确),准确率的计算如式(10)所示

(10)

上式中各个参数含义如下:acc:准确率;total_count:预测总次数;ac_count:预测准确次数。

预测评分(score):对每次预测结果进行评分,将风速值转换为相应的风力等级,风力等级预测正确得1分,相差1级得0.6分,相差2级得0.4分,其它情况不得分。预测评分的计算如式(11)~式(13)所示

(11)

(12)

(13)

以上各式中各个参数含义如下:t_scorei:第j个序列中第i个时刻的得分;predict_leveli:第j个序列中第i个时刻的预测等级;real_leveli:第j个序列中i第个时刻的真实等级;seq_scorej:第j个序列的得分;L:第j个序列的长度;score:得分;N:序列个数。

平均绝对误差(mean absolute error,MAE):计算预测值与真实值的绝对误差,进而评价预测值与真实值的波动程度,值越小表示模型预测越稳定。平均绝对误差的计算如式(14)、式(15)所示

(14)

(15)

以上各式中各个参数含义如下:seq_MAEj:第j个序列的平均绝对误差;L:第j个序列的长度;predict_va-luei:第j个序列中第i个时刻的预测值;real_valuei:第j个序列中第i个时刻的真实值;MAE:平均绝对误差;N:序列个数。

3.3 实验结果与分析

本文分别对未来3小时、6小时、9个小时的风速进行了预测实验,平均绝对误差分别表示为MAE-3、MAE-6和MAE-9。各模型最终的风速预测准确性实验结果见表4,稳定性实验结果见表5。

表4 风速预测准确性实验结果对比

表5 风速预测稳定性实验结果对比

表4从风速预测的准确性方面,分别对比了Seq2Seq模型和其它几种常见的神经网络模型在准确率及预测评分指标下的效果,并进行了是否使用风速多特征嵌入编码方法的对比实验。分析表4的实验结果可知:①在不使用风速多特征嵌入编码方法时,Seq2Seq模型已经取得了高于其它模型的准确率和预测评分,序列的整体准确率达到0.5以上,表明了Seq2Seq模型对于风速预测任务的优越性;②使用风速多特征嵌入编码方法后,准确率提升了8.1%,预测评分突破0.8,显著提升了预测效果,表明了风速多特征嵌入编码方法对于预测准确性方面的有效性。

表5从风速预测的稳定性方面,使用MAE评价指标分别对比了不同模型和使用风速多特征嵌入编码方法的效果。表5的实验结果表明:①Seq2Seq模型在未来3小时、6小时、9小时均取得了最优的MAE结果,验证了Seq2Seq模型在风速预测的稳定性方面也具有相当的优势;②使用风速多特征嵌入编码方法后,虽导致未来3小时、6小时的MAE值上升,但显著降低了未来9小时的MAE值,且表现出预测时间越长MAE值越低的趋势,表明风速多特征嵌入编码方法虽然对较短期风速预测的稳定性没有明显帮助,但可显著提升较长期风速预测的稳定性。

4 模型应用与分析

为评估多特征嵌入的Seq2Seq风速预测模型的实际应用效果,除表4和表5的实验结果外,本文还从测试集中随机抽取了4组该模型的预测样例,从而直观地展示一段时间内各个时刻风速的真实值与预测值情况。

图6描绘了4组根据过去24小时的真实风速数据预测未来9小时风速值的结果。其中,横坐标为时刻(单位:h),纵坐标为风速值(单位:m/s),菱形实线为过去风速的真实值,三角形实线为未来风速的真实值,圆形虚线为模型对未来风速的预测值。每幅图上方分别标注了预测评分、准确率和平均绝对误差的值,并按照预测评分值的降序进行了展示。

图6(a)和图6(b)为预测效果相对较好的样例,预测评分达到0.8以上,准确率达到0.6以上,平均绝对误差低于0.6,预测曲线的拟合程度也比较高,可见模型能够较为准确地预测未来的风速情况。图6(c)和图6(d)则为效果相对较差的样例,预测评分不足0.6,准确率不足0.4,平均绝对误差,高于2.0,预测曲线也几乎完全不拟合真实曲线,表明模型对于某些情况的预测还存在着一些不足。

图6 多特征嵌入的Seq2Seq风速预测模型预测样例

综合分析不同模型的风速预测实验对比结果和预测样例,多特征嵌入的Seq2Seq风速预测模型能够取得比其它模型更优秀的预测效果,但还存在一些不足。由于风速序列的较大波动以及预测时间的较大跨度等潜在因素的影响,不同序列的预测效果差别很大,同时存在较好和较差的两极化预测结果,模型预测的稳定性还需进一步提高。

5 结束语

为了提高风速预测的准确性,本文提出了一种风速多特征嵌入编码方法及基于Seq2Seq的风速预测模型,结合风速影响因素的多特征数据,对未来若干个小时的风速进行预测。

实验结果表明,①在预测的准确性和稳定性方面,Seq2Seq模型均比LSTM模型取得了更好的预测效果,验证了Seq2Seq模型对于风速预测任务的优越性;②使用风速多特征嵌入编码方法后,显著提高了Seq2Seq模型的预测准确性,验证了风速多特征嵌入编码方法的有效性。

然而,目前对于风速预测模型的研究仍然存在很多不足。模型对不同序列的预测效果差别很大,同时存在较好和较差的两极化的预测结果,如何避免较差预测结果的出现仍是目前研究的难点。未来将使用更大规模和更多特征的数据,对风速预测的稳定性进行进一步的研究,使得风速预测模型能够在生活和生产中得到真正应用。

猜你喜欢

编码方法时刻风速
冬“傲”时刻
捕猎时刻
基于Kmeans-VMD-LSTM的短期风速预测
基于最优TS评分和频率匹配的江苏近海风速订正
可变摩擦力触感移动终端的汉语盲文编码设计
基于GARCH的短时风速预测方法
毫米波大规模MIMO系统中低复杂度混合预编码方法
考虑风速分布与日非平稳性的风速数据预处理方法研究
一天的时刻
一种新的星载InSAR直接地理编码方法