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