袁咪咪,宮法明,李 昕
(中國石油大學(華東) 計算機科學與技術學院,青島 266580)
近年來,電力需求的增長使得包括風能在內的可再生能源變得越來越重要[1].風速變化具有很強的隨機性和間歇性,這種不穩定性會嚴重影響電力系統的安全,對及時可靠的風速預測提出了嚴峻的挑戰[2].
在過去的幾十年中,科學家們已經提出了各種方法以增強風速預測的性能.這些方法大致分為以下3 類[3]:物理方法、統計方法以及機器學習方法.物理方法主要通過利用氣象因素和地理因素等物理參數來預測風速.但是,物理模型的計算成本高且無法捕獲氣象因素復雜的動態變化關系,因此不適用于短期風速預測.統計方法利用歷史時間序列中各個變量的線性關系來構建統計模型,如時間序列方法[4]、自回歸移動平均(ARMA)方法[5]和卡爾曼濾波方法[6]等,這些方法克服了物理模型的缺點,但它們只能分析歷史時間序列中變量之間的線性關系,難以處理氣象要素之間的非線性關系.機器學習如支持向量機(SVM)[7]、多層感知器(MLP)[8]和極限學習機(ELM)[9]可以提取風速時間序列中的復雜非線性特征,并在一定程度上提高預報的準確性.但這些傳統的線性和非線性模型只能提取淺特征,并且需要進行大量的特征工程,無法自動提取時間序列特征.Wang 等[10]提出了一種基于集成方法的卷積神經網絡模型來實現概率性風電功率預測,并通過案例研究驗證了該模型的準確性和穩定性.Ghaderi 等[11]使用基于STC的長短期記憶網絡模型進行風速預測.Hu 等[12]成功設計了基于DBN和傳遞學習的有效風速模型.Zaytar 等[13]使用多個堆疊的LSTM映射相同長度的天氣值序列以預測未來24-72 小時的風力變化情況,但僅針對單個城市研究,并未考慮其相鄰地域的影響.
深度學習使用分布式的分層特征表示方法[14]自動提取數據中的從最低層到最高層固有的抽象特征和隱藏不變結構[15].為了充分利用單個模型的優點并提高預測性能,現已提出了許多組合模型.此外,最近的一項研究表明目標站點的風速與其相鄰站點之間存在顯著的互相關[16,17].因此,每個站點的時空相關數據量不斷增加,使用STC 時空相關模型探索風速預測的方法已成為研究的熱點.STC 模型可以有效利用每個站點的地理特征,解決某些站點缺少風速數據的問題,并獲得良好的預測結果.
如上所述,現有模型可以在一定程度上改善預報性能,但未考慮對氣象因素的處理也尚未具備同時提取時空特征的能力.因此,本文通過結合CNN和LSTM來構建MFSTC(多因素時空相關)模型,以克服上述缺點并實現更準確、可靠的風速預測.本文主要工作如下:
(1)構建了一種基于三維矩陣的數據表示方法,該矩陣包含每個站點在多個歷史時間點的全部特征氣象要素的值,可以有效解決某些站點缺少風速數據的困難;
(2)提出了一個MFSTC 模型,該模型同時考慮時間、地點和氣象因素之間的多種時空相關性,從多個方面提高風速預報的準確率;
(3)針對多個站點,綜合PCA-LASSO 兩種算法提取特征氣象要素集,避免了冗余因素對預測精度的不利影響,同時也簡化了模型計算量;
(4)為了同時提取風速數據的時空相關性特征,開發了具有多輸入單輸出組合結構的CNN-LSTM 模型.該組合模型不僅能夠充分利用CNN 良好的空間特征提取能力和LSTM 出色的時間序列特征提取能力,還可以有效地解決獲取不同站點的復雜地理特征的困難,從時間和空間上提高風速預報的準確性.
時空模型的基本思想是,目標站點的風速特征不僅與本站點的氣象要素密切相關,還與其周圍站點的氣象要素有關[18],周圍站點的氣象要素(如溫度、濕度、壓強等)變化會對目標站點的風速產生影響.因此,充分利用目標站點及其周圍站點的氣象信息有助于提高風速預報的準確性和可靠性.基于3D 矩陣的MFSTC模型的核心在于,同時考慮了時間和空間維度中站點和氣象因素的多重相關性,包括多個站點之間的相關性、多個因素之間的相關性以及站點和因素之間的相關性.模型結構如圖1所示,其中3D 矩陣可以用式(1)表示.

其中,STF表示一個“站點-時間-因素”的3D 矩陣,TF,TS和FS分別表示“時間-因素”,“時間-地點”和“因素-地點”的二維平面集.相應的平面分割操作如圖1(b)所示.Esft是一組3D 矩陣點,每個點都可以定義為e(s,f,t),代表在歷史時間點t處第s個站點的第f個特征氣象因子的值.同時,如圖1(c)所示,每個二維平面可以由二維矩陣表示.其中,TFs包含站點s在T個歷史時間點處隨時間變化的F個氣象因子的值,TSf包含第f個氣象因子在S個站點的T個歷史時間點處隨時間變化的值,FSt包含在歷史時間點t處S個站點的F個氣象因子的值.S,F和T分別代表站點、氣象因素和歷史時間點的數量.任意兩個點e1(s,f,t)和e2(s,f,t)之間的相關系數表示為:

圖1 基于3D 矩陣的MFSTC 模型結構

基于上述相關系數,可以根據每個站點在T個歷史時間點的全部氣象要素值計算出下一時刻目標站點的風速.該公式定義為:

其中,eg(s,f,t) 代表Esft中某一點的值,ea(q,wind,t+1)是目標站點q在t+1時刻的風速預測值,是ea(q,wind,t+1)和eg(s,f,t) 之間的相關系數,ξag是誤差項.
在本文中,為了提高風速預測的準確率,提出了一種MFSTC-CNN-LSTM 框架,如圖2所示.該方法同時考慮了風速與氣象因素、空間以及時間3 個維度方面的相關性,最終實現對多站點氣象因素之間相關特征的深層提取.MFSTC-CNN-LSTM 框架的實現過程描述如下:

圖2 風速預測流程圖
(1)針對多個站點,通過PCA-LASSO 提取特征氣象要素.
(2)將特征氣象要素的數據在3 個維度上進行重構.模型的每個輸入都是一個3D 矩陣,矩陣的3 個維度分別對應氣象因素F、空間S以及時間T.矩陣包含S個站點在T個歷史時間點的F個特征氣象因子的值.
(3)CNN的輸入是T個二維矩陣FSt,每個FSt包含在t時間點處S個站點的F個氣象因子的值.通過CNN的特征提取,可以獲得T個特征向量,代表在T個預報時次上各個站點的氣象因子之間的空間相關性.然后,將T個特征向量輸入LSTM 以提取和分析時間特征關系,最終獲得目標站點的風速預測結果.
原始氣象數據屬性復雜、形式多樣,然而并非所有要素都與風速變化是相關的,過多的預測要素將導致冗余信息并降低泛化性能.從原始氣象要素中進行特征選擇[19]以降低風速預測數據集的維度.經過特征提取,能夠有效減少模型的計算和存儲開銷并且明顯提高可解釋性.基于單個算法無法提取出有效的特征氣象要素的問題,本文結合PCA和LASSO 兩種算法以形成新的PCA-LASSO 技術.
PCA[20]的主要原理是找到適當的線性變換將相關變量轉換為彼此獨立的新變量,其中方差較大的變量可以反映原始多個變量中包含的主要信息,也就是更符合要求的氣象要素.為了進一步簡化模型計算量,同時避免冗余因素對預測精度帶來的不利影響,需要從PCA 篩選出的氣象要素中進一步提取出能夠對風速變化帶來顯著影響的特征氣象要素.LASSO[21]回歸是一種縮小變量集的壓縮估計方法,它通過構造一個懲罰函數將變量的系數進行壓縮并使某些回歸系數變為0,進而達到特征選擇的目的.在本文中,設定有m個氣象要素的特征向量x=(x1,x2,···,xm),其中x在第i個氣象要素上的取值為xi.LASSO 回歸將m個氣象要素進行線性組合來預測風速,公式如下:

式中,w=(w1,w2,···wm)是各氣象要素的權重值.損失函數定義為:

其中,y代表風速實際值.為防止過擬合和提高模型泛化性能引入正則化項α||w||.通過對損失函數loss(w)的最小值求解得到w,從而確定LASSO 回歸的相關參數.隨著超參數α變大,越來越多的變量系數被收縮為0,從而得到最終的特征氣象要素.
CNN是多層前饋神經網絡,已被證明在提取隱藏的空間特征方面具有突出的性能[22].CNN 具有稀疏連接和權重共享的性質,這大大減少了模型參數的數量.使用CNN 提取目標站點和其他站點的氣象因素之間的潛在空間關系,以減少風速的預測誤差.CNN的計算可以定義為[23]:

其中,u和v分別是特征圖行和列的索引,h和w分別是卷積濾波器行和列的索引,h′和w′分別是卷積濾波器的行列數,l是特征圖在第m-1 層的索引,bmn是第m層中第n個特征圖的偏差,是卷積濾波器(h,w)處的值,該卷積濾波器連接第(m-1)層的第l個特征圖和第m層的第n個新特征圖.是在第m層第n個特征圖的(u,v) 處的值.是第m-1 層第l個特征圖的(u+h,v+w)處的值,relu是卷積神經網絡中每層的激活函數,其相關定義如式(7)所示[24]:

本文需配置T個CNN 來處理T個空間風速矩陣,每個CNN 神經網絡結構如圖3所示,主要由卷積層、池化層以及全連接層3 種類型構成,通過卷積層和池化層的交替處理,最終由輸出層輸出得到的抽象特征.首先輸入10×10 個站點在t(t=1,2,…,T)預報時次的特征氣象要素數據,設CNN 輸入層有10 個卷積核,且每個卷積核的大小均為5×5,則輸入層將產生10 個尺寸為6×6的特征圖,每個特征圖中的元素與其對應的空間關聯域具有一致的排列順序.后續的網絡層在這些特征圖的基礎上繼續進行上述過程,CNN 逐層捕獲風速矩陣中的空間信息,最終得到各個預報時次上的空間特征向量,并傳遞給LSTM.
時間序列[25]是按照時間排序的一組隨機變量,它本質上反映的是某個或者某些隨機變量隨時間不斷變化的趨勢.在數值天氣預測模型中,氣象要素數據的后值與初值存在一定的依賴性與相關性.風速預測不僅依賴氣象要素的最新數據,較早的數據可以幫助模型得到風速變化的總體趨勢[26].
作為循環神經網絡的特殊變體,LSTM 具有自動存儲和刪除時間狀態信息的能力[27],可以提取長時間序列的復雜特征關系,解決傳統RNN 缺乏建立遠程結構連接能力的問題,從而避免“梯度爆炸”現象的發生[28,29],如圖4為一個“LSTM 細胞”單元[30],該細胞單元由輸入門i、輸出門o和遺忘門f組成.這3 種門控是控制信息流的關鍵,其對應的函數表達式為:

圖4 LSTM 細胞單元結構示意圖

其中,ct為細胞間激活向量,b是矩陣偏置向量,σ是激活函數Sigmoid.it,ft,ot分別是t時間點輸入門、輸出門和遺忘門的計算方法.W代表權重矩陣,根據其下標分別具有不同的含義.
如圖5為LSTM 預測模型結構示意圖,由輸入層、隱藏層、輸出層以及網絡訓練層4 部分組成.將CNN的空間特征向量輸入LSTM 各節點,在中間的隱藏層使用多個 LSTM 細胞單元進行循環連接,輸出層提供預測結果,網絡訓練采用Adam 算法不斷調整參數以優化預測結果.損失函數的數學公式如式(13)所示.

圖5 LSTM 神經網絡處理層結構圖

其中,D為測試集中的樣本數量,yd為該時刻風速的真實值,為風速預測值.
在固定卷積層和池化層提取的特征信息不變的情況下,通過逐漸增加LSTM 網絡記憶單元數和隱含層數來測試不同隱含層的預測效果,如表1所示.可以看出適當的增加LSTM的隱含層數可以提高模型的預測能力,當隱含層數過多如隱含層數為4 時,會出現過擬合現象.此外,隨著隱含層的增加,模型的運行時間也會相應延長.最終確定LSTM 網絡設置3 層隱含層,其隱含層中LSTM 單元數分別為32、20、20.
本文數據集來自東營氣象中心提供的100 個站點在2009 至2018年共10年的風速相關記錄數據,通過在3 個站點數據集上的實驗驗證所提出MFSTC-CNNLSTM 模型的預測性能,對目標站點未來5 個預報時次的風速進行預測,并使用RMSE 作為衡量模型預測擬合度的指標.為了確保模型比較的公平性和實驗的有效性,對3 個站點的預測模型分配相同的超參數,學習率設置為0.01,dropout 設置為0.1,batch_size 設置為32,時間步長設置為4,通過多次訓練,迭代次數超過500 次時損失值趨于穩定.另外,為了提取相應區域中的不同風速特征,實驗分別利用不同的數據集來訓練和調整模型的內部參數.結果如表1所示.

表1 提前0 時預報時次不同LSTM 層數的實驗結果
數據集包括100 個站點10年間每天39 個氣象要素(HECA88,HHCA30,HHCA50,HHCA70,HHCA85,HHCA92,HHCA99,HRCA30,HRCA50,HRCA70,HRCA85,HRCA92,HRCA98,HRCA99,HTCA30,HTCA50,HTCA70,HTCA85,HTCA92,HTCA98,HTCA99,HUCA30,HUCA50,HUCA70,HUCA85,HUCA92,HUCA98,HUCA99,HVCA30,HVCA50,HVCA70,HVCA85,HVCA92,HVCA98,HVCA99,HTCA50,HTCA70,HTCA85,HTCA92,HTCA98,HTCA99,HUCA30,HUCA50,HUCA70,HUCA85,HUCA92,HUCA98,HUCA99,HVCA30,HVCA50,HVCA70,HVCA85,HVCA92,HVCA98,HVCA99,HOCA70,HOCA85,HOCA92,HPCA89)在5 個預報時次(0 時、6 時、12 時、18 時以及24 時)的觀測數據,在高度上涵蓋1000 hPa、地面、925 hPa、850 hPa、700 hPa、500 hPa、300 hPa 7 個不同的層次,在空間上包括100 個網格站點.3 個實驗的數據集大小均設置為13 340,模型的訓練集、驗證集和測試集的比例設置為6:2:2.
由于原始數據包含39 個氣象要素,根據前期實驗,利用單一方法提取的特征氣象要素并不準確,具有一定的片面性.因此,首先利用PCA 提取出反映原始變量中所包含主要信息的氣象要素,然后利用LASSO 回歸對這些要素進行進一步篩選,從而得到能夠真正影響風力變化的特征氣象要素.
通過PCA 得到各氣象要素的累計貢獻率如圖6所示.從圖6分析可得,當選擇其中的30 個氣象要素時,對風速變化的累計貢獻率高達99.496%,其他成分可以丟棄.利用LASSO 回歸進一步壓縮PCA 所得的30 個氣象要素.如圖7所示,橫坐標表示氣象要素的數量,縱坐標表示預測值與真實值的均方根誤差.通過對LASSO中超參數α的設置來控制橫坐標的大小.當LASSO 將特征要素的數量設定為21 左右時,可將RMSE 穩定在一個較小的值.

圖6 氣象要素累計貢獻率

圖7 基于LASSO 模型的風速預測
氣象要素的特征權重的大小與其對風速預測的影響程度成正比.本文在5 個預報時次分別進行特征選擇,結果如表2所示.表中數值是LASSO 回歸得到的各氣象要素在5 個預報時次中特征權重的平均值,本文選取其中前21 個作為特征氣象要素.根據先驗知識,海拔越低的氣象要素(氣象要素英文簡稱后綴數字越大)對風速變化的影響越大,而提取到的特征氣象要素也符合這個特點,從而說明PCA-LASSO 能夠有效篩選出與風速有關的特征氣象要素.

表2 各氣象要素的特征權重分布圖
為了驗證方法的有效性,選擇了CNN、LSTM、ARIMA 以及BP 神經網絡與提出的MFSTC-CNNLSTM 模型對比并在3 個站點的測試集上進行了5 個預報時次(共24 小時)的預測測試.為直觀展示不同模型間的效果與差異,本文在3 個站點(第21,61,91 站點)的測試集上隨機選取了100 個記錄點,并對5 個預報時次的模型預測值與真實值進行對比.如圖8所示,分別為MFSTF-CNN-LSTM、CNN、LSTM、ARIMA以及BP 神經網絡5 種模型分別在5 個預報時次的預測值與真實值的預測效果對比圖.整體來看,所有模型誤差都隨預測時間增長呈增大趨勢.由圖可知,在預測時效較短時,各個模型的預測值與真實值都有較好的擬合度,但隨著預測時效的延長,CNN、LSTM、ARIMA以及BP 神經網絡預測效果都呈現明顯下降態勢,而MFSTF-LSTM-CNN 模型的預測結果與真實值依然能夠保持較好的擬合度.

圖8 不同預測模型在5 個時次的預測效果對比圖
實驗結果將預測值和真實值的均方根誤差RMSE用作評分函數以評估模型的預測性能.表3中的數據為各模型在3 個站點測試集RMSE的均值.隨著預報時間的推移,所有模型的均方根誤差均呈現上升趨勢.從總體的預測效果來看,表現最好的是MFSTF-LSTMCNN,它能使模型獲得最小均方誤差值,證明了提出方法的有效性.

表3 各模型在5 個預報時次的RMSE
結合數據挖掘和神經網絡技術,本文提出了一種基于多因素時空相關性和深度學習算法的風速預測模型,實現了對研究地區站點的風速預測,提高了預報的時效性和精確度.提出的PCA-LASSO 算法有效減少了參與計算的氣象要素的數量,提高了模型的計算效率.MFSTC-CNN-LSTM 模型有效地融合了多種神經網絡算法,具有更強的泛化能力和更高的預測精度,因此該模型能夠在不同站點的具有不同波動程度的風速數據集上依然保持出色的預測質量和穩定性.同時,為使數據能夠更好的適應模型,還提出了一種基于三維矩陣的數據重構方法.
與僅考慮單個站點的氣象屬性之間關系的模型相比,MFSTC 模型充分考慮了不同站點上各種氣象因素的時空耦合關系,并為預測下一時刻的風速提供了更加完整和可靠的基礎.CNN-LSTM 組合策略在MFSTC模型的基礎上,充分利用了CNN 強大的空間特征提取能力和LSTM 強大的時間特征提取能力的優勢.通過對兩個模型優勢的充分利用,實現了對時空關系特征的深層提取.在后續研究中,將數值模型和圖像識別模型(例如衛星圖像)相結合構成新的天氣預報系統的基礎是進一步研究的主要目標.