劉家輝,梅 平,劉長征,劉劍南
(1. 南京信息工程大學(xué)自動化學(xué)院,江蘇 南京 210044;2. 國家氣候中心,北京 100081)
氣候預(yù)測對于指導(dǎo)人類的生產(chǎn)生活具有重要的意義[1]。現(xiàn)階段我國比較常見且危害比較大的氣象災(zāi)害有霜凍、干旱、高溫和陰雨災(zāi)害等[2],這其中最高最低氣溫對農(nóng)業(yè)生產(chǎn)和出行出游又有著重要的影響。在這樣的背景下,如何遴選合適的預(yù)測工具并提高氣溫預(yù)測的準確度和可靠性就成了氣候預(yù)報領(lǐng)域亟待解決的重要問題。
目前,國內(nèi)外有以下幾種針對氣溫預(yù)報常用的預(yù)測方法,這些方法也都在不同的問題中得到了應(yīng)用,比如利用周期函數(shù)對小時級別的氣溫數(shù)據(jù)進行經(jīng)驗方程的擬合[3],通過日較差分類方法對北京地區(qū)的氣溫進行預(yù)測[4],利用卡爾曼濾波算法預(yù)測極端氣溫[5]等。最近幾年來,深度學(xué)習(xí)算法發(fā)展迅猛,在各個領(lǐng)域中的應(yīng)用愈發(fā)廣泛,常用的深度學(xué)習(xí)算法有人工神經(jīng)網(wǎng)絡(luò)(ANN),卷積神經(jīng)網(wǎng)絡(luò)(CNN),循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN),長短時記憶神經(jīng)網(wǎng)絡(luò)(LSTM)和門控循環(huán)單元網(wǎng)絡(luò)(GRU)等。這其中CNN算法可以有效地捕捉數(shù)據(jù)的空間特征與深層局部特征,其非線性處理能力顯著優(yōu)于ANN,因此也被大量應(yīng)用于氣溫預(yù)報等預(yù)測性質(zhì)的科研工作中,如RASP[5]等人利用CNN算法對德國地面站兩米高區(qū)域的溫度進行預(yù)測,結(jié)果顯示CNN的預(yù)測效果相較于ANN有了大幅度的改善。LSTM由RNN發(fā)展而來,在RNN時間序列輸入的基礎(chǔ)上加入了一路輸入和一路輸出,增加了對過去狀態(tài)的過濾,解決了RNN網(wǎng)絡(luò)梯度消失、梯度爆炸和長期記憶能力不足的問題。QI[6]等人利用LSTM模型對華北大型城市未來一小時的氣溫進行預(yù)測,結(jié)果顯示預(yù)測的均方誤差降低了31.7%。但LSTM也有結(jié)構(gòu)過于復(fù)雜導(dǎo)致模型訓(xùn)練成本較高的問題,GRU作為LSTM的一種變體,將忘記門和輸入門合成了一個具有遺忘功能的更新門。同樣還混合了細胞狀態(tài)和隱藏狀態(tài),加諸其他一些改動,最終的模型比標準的 LSTM 模型結(jié)構(gòu)更簡單也更易訓(xùn)練,GRU模型在氣象預(yù)測方面也多有應(yīng)用,如ZHANG[7]等人利用GRU模型對渤海海表溫度進行預(yù)測,結(jié)果顯示擬合曲線與真實數(shù)據(jù)的相關(guān)性提升了34%。以上案例證明了這幾種深度學(xué)習(xí)模型對于氣候預(yù)測工作的有效性。
然而,以上研究針對氣象預(yù)測選擇的算法大多都是單一的模型,CNN雖然在空間特征的提取上成績裴然,但在針對時間序列的預(yù)測問題上效果不如RNN、LSTM和GRU算法;GRU在LSTM解決了RNN梯度問題和長期記憶問題的基礎(chǔ)上簡化了模型結(jié)構(gòu),提高了訓(xùn)練效率,但在數(shù)據(jù)空間特征的深層局部特征提取上不及CNN。
同時,在氣象預(yù)報的具體實施階段,并不總是能得到全面的預(yù)測數(shù)據(jù),因此預(yù)測因子越少則模型需要滿足的條件就越少,模型的結(jié)構(gòu)也越簡單,對硬件的要求也就越低。因此本文只選取了云南地區(qū)歷史最高最低氣溫作為預(yù)測因子,本文研究的重點在于在擁有少量預(yù)測數(shù)據(jù)的前提下利用組合深度學(xué)習(xí)模型提高云南地區(qū)氣溫預(yù)測的精度。
綜上,本文將CNN與GRU算法進行結(jié)合,并創(chuàng)造性地將新模型應(yīng)用到了云南地區(qū)的最高最低氣溫預(yù)測上。選取了云南地區(qū)1980-2019年八個氣象站點所記錄的最高最低氣溫日度數(shù)據(jù),并對數(shù)據(jù)進行了預(yù)處理。接著利用過去30天的氣溫數(shù)據(jù)對未來3天的最高最低氣溫進行短期預(yù)測,最后對結(jié)果和模型的優(yōu)劣進行了探討,證明了GRU-CNN模型的優(yōu)越性。本研究為云南和其他地區(qū)開展氣溫預(yù)測提供了參考。
CNN屬于一種深度神經(jīng)網(wǎng)絡(luò),在視覺圖像的分類工作中較為常見。上世紀60年代,Hubel與Wiesel受貓和猴子的大腦神經(jīng)元含有小區(qū)域響應(yīng)的視野的啟發(fā),提出了感受野的概念[12],1989 年 Yann Le Cun 將反向傳播算法應(yīng)用于CNN 模型[13],大大增加了模型的適用范圍,這種方法才廣泛被人所了解。
CNN 主要由卷積層、池化層、全連接層等構(gòu)成。卷積層是CNN的核心組成部分,卷積神經(jīng)網(wǎng)絡(luò)也因之得名,卷積層由一個或多個卷積核構(gòu)成,卷積核是一個可學(xué)習(xí)的參數(shù)矩陣,其大小一般取奇數(shù),例如3×3和5×5,其運算過程如圖4所示:
圖1 卷積運算過程
由圖可知,卷積核在圖像的高度和寬度上逐行進行掃描,計算卷積核與輸入圖像矩陣之間的卷積,最終得到圖像矩陣的空間特征,卷積運算的公式如下
(1)
池化層,一說下采樣層,常常拼接在卷積層后面,是一種最早由Le Net[14]所提出的網(wǎng)絡(luò)結(jié)構(gòu)。池化層可以實現(xiàn)對數(shù)據(jù)的降維,在簡化數(shù)據(jù)的同時保留特征。現(xiàn)階段最常用的池化操作是最大池化,如圖2所示。
圖2 最大池化過程
圖2中,左側(cè)是尺寸為4×4的輸入數(shù)據(jù),右側(cè)為2×2的卷積核,在卷積神經(jīng)網(wǎng)絡(luò)的實際應(yīng)用中,一般取卷積核的大小為池化操作的步長??梢钥吹浇?jīng)過最大池化后,原來4×4尺寸的數(shù)據(jù)縮小到了2×2,數(shù)據(jù)量大大縮小,但數(shù)據(jù)的特征卻得到了保留,這樣的操作可以有效地減少參數(shù)數(shù)量,防止模型過擬合[15]。卷積神經(jīng)網(wǎng)絡(luò)往往會設(shè)置多個卷積和池化層,在這其中會穿插全連接層以增加模型復(fù)雜度,最后的輸出層往往會選擇搭配softmax函數(shù)。
GRU是LSTM的一種變體,前者簡化了后者的結(jié)構(gòu),GRU引入了門控機制,將忘記門和輸入門合成了一個具有遺忘功能的更新門[16]。GRU還混合了細胞狀態(tài)和隱藏狀態(tài),加諸其他一些改動,有效地解決了LSTM長期記憶的缺失和反向傳播中的梯度等問題[17]。其結(jié)構(gòu)圖如圖3所示。
圖3 GRU的結(jié)構(gòu)
圖中ht-1為t-1時刻的隱藏狀態(tài),xt為t時刻的輸入,重置門輸出rt和更新門輸出zt的計算公式如下
rt=σ(wxrxt+whrht-1+br)
(2)
zt=σ(wxzxt+whzht-1+bz)
(3)
式中,σ是sigmoid激活函數(shù),wxr和wxz分別為xt與rt和zt之間的權(quán)重關(guān)系,而whr和whz分別為ht-1與rt和zt之間的權(quán)重關(guān)系,rt和zt對應(yīng)的偏置項分別用br和bz表示。
(4)
(5)
GRU所設(shè)置的更新門和重置門簡化了LSTM的結(jié)構(gòu)。相較于LSTM,GRU的訓(xùn)練參數(shù)大大減少,在訓(xùn)練過程中,后者的收斂速度比前者更快,其訓(xùn)練效率也得到了大幅提高。
選取了1980-2019云南8個站點最高最低氣溫日度數(shù)據(jù)各14610個數(shù)據(jù),數(shù)據(jù)總量為233760,對于其中的缺失值,利用周圍數(shù)值的平均數(shù)將缺失值補齊,并對處理后的數(shù)據(jù)進行Z-score歸一化,公式如下
(6)
其中xscale表示歸一化后的數(shù)據(jù),x為序列中的原始數(shù)據(jù),μ表示原始數(shù)據(jù)的平均值,σ為原始數(shù)據(jù)的標準差。經(jīng)過Z-score歸一化后的數(shù)據(jù)均值將變?yōu)?,方差將變?yōu)?,如此處理減弱了異常值對數(shù)據(jù)的影響,也方便了后續(xù)的計算。
采用平均絕對誤差(MAE)和均方根誤差(RMSE)來對模型的預(yù)測效果進行檢驗,MAE用來指示預(yù)測值和測量值之間誤差絕對值的平均值,RMSE是誤差平方和與數(shù)據(jù)個數(shù)比值的平方根,MAE與RMSE的計算公式如下
(7)
(8)
選擇的CNN模型結(jié)構(gòu)包含一層輸入層、兩層CNN隱藏層加一層全連接層和一層輸出層,CNN隱藏層中又包含匯聚層、一維卷積層和一維池化層以及全連接層,一維卷積和個數(shù)為32,大小為3。示意圖如圖4所示。
圖4 CNN模型示意圖
選取的GRU模型包含一個輸入層,兩個GRU層和一個全連接層以及一個輸出層,每個GRU層包含30個GRU單元,示意圖如圖5所示。
圖5 GRU模型示意圖
構(gòu)建的GRU-CNN模型由一層輸入層、兩層CNN隱藏層和一層全連接層、兩層GRU隱藏層以及一層全連接層和一層輸出層構(gòu)成,CNN與GRU層參數(shù)的設(shè)置與前文中的模型相同,示意圖如圖6所示。
圖6 GRU-CNN模型示意圖
訓(xùn)練的batch size設(shè)置為128,學(xué)習(xí)率為0.01,并將整體數(shù)據(jù)的70%作為訓(xùn)練集,10%作為驗證集,20%作為測試集。利用訓(xùn)練集對模型進行訓(xùn)練,利用驗證集進行校準,最終用測試集對模型預(yù)測效果進行驗證。表1-表6為各站點在不同模型下不同天數(shù)的最高最低氣溫預(yù)測效果對比。
表1 提前1日的最高氣溫預(yù)測效果對比
表2 提前2日的最高氣溫預(yù)測效果對比
表3 提前3日的最高氣溫預(yù)測效果對比
表4 提前1日的最低氣溫預(yù)測效果對比
表5 提前2日的最低氣溫預(yù)測效果對比
表6 提前3日的最低氣溫預(yù)測效果對比
由各站點在不同模型下預(yù)測效果的對比表格可知,GRU-CNN模型的預(yù)測效果要顯著好于CNN和GRU,前者日最高溫度預(yù)測誤差的RMSE指標比后兩者平均要低21.17%,MAE指標比后兩者平均要低19.22%;前者日最低溫度預(yù)測誤差的RMSE指標比后兩者平均要低18.37%,MAE指標比后兩者平均要低17.15%。以上結(jié)果表明,GRU-CNN的預(yù)測性能要更勝一籌。
本文提取了八個位于云南的氣象站點的最高最低氣溫數(shù)據(jù),并對其進行數(shù)據(jù)補齊和預(yù)處理。在CNN與GRU模型的基礎(chǔ)上,將二者進行了結(jié)合,并將新模型用于云南地區(qū)最高最低氣溫的預(yù)測當中。將經(jīng)過預(yù)處理的數(shù)據(jù)輸入搭建好的模型后得到了預(yù)測結(jié)果,根據(jù)RMSE和MAE指標對于預(yù)測效果的評價,可以得出結(jié)論:GRU-CNN模型在氣溫預(yù)測上的效果優(yōu)于CNN與GRU模型,與這些傳統(tǒng)模型相比,GRU-CNN模型在提取序列的時間特征的基礎(chǔ)上又借助CNN學(xué)習(xí)了序列的空間特征的深層局部特征,極大地提升了預(yù)測的準確性。