馬景奕,劉維成,閆文君
(1.中國氣象局氣象干部培訓(xùn)學(xué)院甘肅分院,甘肅 蘭州730020;2.蘭州市中心氣象臺,甘肅 蘭州730020)
2019年Reichstein等[1]在《Nature》上發(fā)表論文“Deep learning and process understanding for datadriven Earth system science”,充分預(yù)示著地球系統(tǒng)科學(xué)將隨著諸如神經(jīng)網(wǎng)絡(luò)、深度學(xué)習(xí)等人工智能技術(shù)的發(fā)展,進入到智能化大數(shù)據(jù)時代。
大氣科學(xué)作為地球系統(tǒng)科學(xué)的重要組成,由于對人類的日常生活以及各行業(yè)均密切相關(guān),與氣象相關(guān)的研究便一直是學(xué)術(shù)界研究的最前沿[2-5]。氣象條件復(fù)雜多變,制約氣象狀態(tài)的因素多樣、連續(xù)、動態(tài)、多維的,因此準(zhǔn)確預(yù)測氣象要素一直充滿挑戰(zhàn)[6]。
氣象預(yù)報的研究主要以兩種方式進行,即基于物理學(xué)計算和基于數(shù)據(jù)驅(qū)動?;谖锢韺W(xué)的氣象預(yù)報模型直接模擬大氣中物理過程,該過程對大氣動力學(xué)、熱輻射以及綠色空間、湖泊和海洋的影響進行數(shù)值分析。目前,大多數(shù)商業(yè)和公共氣象預(yù)報系統(tǒng)中都包含此類物理模型[7-9]。數(shù)據(jù)驅(qū)動的模型使用統(tǒng)計數(shù)據(jù)或基于機器學(xué)習(xí)的方法進行氣象預(yù)測。數(shù)據(jù)驅(qū)動模型的優(yōu)點在于能夠在沒有任何先驗知識的情況下為氣象系統(tǒng)檢測意外。但這其中可能需要大量數(shù)據(jù),且缺乏對模型工作機理的有效解釋。相反,基于物理學(xué)的方法具有可解釋的優(yōu)勢,具有根據(jù)觀察信息進行外推的潛力。但這種方法也存在先驗知識需要明確定義以及運算量大的缺點[1,10]。近年,隨著可用功能和觀測數(shù)量的不斷增加,數(shù)據(jù)驅(qū)動模型被廣泛地應(yīng)用于氣象預(yù)測。
作為傳統(tǒng)氣象預(yù)測和預(yù)報方法的補充,隨著機器學(xué)習(xí)(ML)[11-12]和深度學(xué)習(xí)(DL)[13]技術(shù)的快速發(fā)展,大大促進了數(shù)據(jù)驅(qū)動模型的使用[14-17]。例如,文獻[18]展示了識別三層前饋神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu)和參數(shù)的潛力,以致更好地表示柯林斯附近中型葉河流域的降雨與徑流的氣象關(guān)系。Liu等[19]利用深度神經(jīng)網(wǎng)絡(luò)(DNN)模型逐層細化原始天氣數(shù)據(jù)的特征,從而有利于處理大量的天氣數(shù)據(jù)。Alberto等[20]將深度學(xué)習(xí)(DL)用于智利天氣預(yù)報,為了在實時決策中提供及時的信息和支持,以適應(yīng)氣候變暖時的極端水文情況,提出了基于深度學(xué)習(xí)徑流模型結(jié)合氣象預(yù)報的水文預(yù)警系統(tǒng)。Lu等[21]將基于案例的推理系統(tǒng)以及基于數(shù)值模型的降水預(yù)測結(jié)果,作為預(yù)測系統(tǒng)的輸入,為推斷實際降水值與預(yù)測值之間的關(guān)系,構(gòu)建了基于神經(jīng)網(wǎng)絡(luò)和案例推理系統(tǒng)的降水?dāng)?shù)據(jù)同化系統(tǒng)。Emilcy等[22]的研究中采用了一個自動編碼器來減少和捕獲變量之間的非線性關(guān)系,然后訓(xùn)練了一個多層感知器來對當(dāng)?shù)靥鞖膺M行預(yù)測。Shi等[23]將降水臨近預(yù)報問題表述為一個時空序列預(yù)報問題,并提出了基于卷積神經(jīng)網(wǎng)絡(luò)預(yù)測方法。Ha等[24]使用DBN(深度信念網(wǎng)絡(luò))來提高韓國首爾過去的降水、溫度等的預(yù)測精度,并通過實驗證明,在預(yù)測降水方面,DBN的表現(xiàn)優(yōu)于MLP(多層感知器)。
在氣象大數(shù)據(jù)的背景下,深度學(xué)習(xí)技術(shù)可以利用海量且多源的氣象數(shù)據(jù),擁有充足的觀測數(shù)據(jù)作為訓(xùn)練樣本,從而保證了氣象預(yù)測模型的準(zhǔn)確性。為了同時適應(yīng)不同氣象信息的預(yù)測需求,發(fā)揮前向傳輸和遞歸訓(xùn)練優(yōu)勢,本文將神經(jīng)網(wǎng)絡(luò)(NN)和基于長短時記憶(LSTM)相結(jié)合,提出基于深度學(xué)習(xí)的氣象預(yù)測方法,提升氣象預(yù)測的準(zhǔn)確性,從而能夠通過歷史數(shù)據(jù)的自主訓(xùn)練,對能見度、溫度、露點、風(fēng)速、風(fēng)向和氣壓進行準(zhǔn)確預(yù)測。
從廣義上講,數(shù)據(jù)預(yù)處理是一個過程,在此過程中,將以通用方式處理和調(diào)整不同來源的氣象數(shù)據(jù),并可以將其廣泛使用。數(shù)據(jù)處理可包含兩個方面:一是將具有不同精度的氣象數(shù)據(jù)組合成一個有機的數(shù)據(jù),以提供更好的數(shù)值預(yù)測。二是綜合利用不同時期的觀測資料,然后將其轉(zhuǎn)化為相應(yīng)空間氣象信息。
狹義地講,數(shù)據(jù)預(yù)處理被認為是分析和處理符合某些時空分布的觀測數(shù)據(jù)的過程,為數(shù)值模型提供接近精確的初始信息。數(shù)值模型的初始狀態(tài)(稱為分析)不是僅根據(jù)可用的觀測值確定的。相反,它是觀察和預(yù)測的組合:觀察是實際系統(tǒng)的當(dāng)前觀察數(shù)據(jù),而預(yù)測是通過將過去的觀察信息傳播到當(dāng)前時間的數(shù)值模型生成的預(yù)測。該分析將預(yù)測信息與當(dāng)前觀測的信息相結(jié)合,基本上是通過對兩者的加權(quán)平均值進行計算。通常,該過程被稱為“窄數(shù)據(jù)預(yù)處理”。狹窄的數(shù)據(jù)預(yù)處理過程總是伴隨著多變化,包括變量之間的近似關(guān)系。觀測值是真實系統(tǒng)的,而不是模型對該系統(tǒng)的不完整表示。因此,變量之間的關(guān)系可能與模型中的變量具有不同的關(guān)系。為了減少這些問題的影響,經(jīng)常執(zhí)行增量分析[25]。
在數(shù)據(jù)預(yù)處理過程中,通常涉及成本函數(shù)的最小化。典型的成本函數(shù)是將分析值與觀察值的平方偏差做平方再求和,在此基礎(chǔ)上再加上觀測值的準(zhǔn)確性。這一處理方式,具有確保分析過程不會偏離真實性的作用。
式中,B表示背景誤差協(xié)方差;H是觀測誤差協(xié)方差;x是初始值;xb是加上擾動后的初值;y是分析值;R為觀測誤差協(xié)方差;i表示第i時段。
本文使用了神經(jīng)網(wǎng)絡(luò)(NN)[26]和基于長短期記憶(LSTM)[27]的深度學(xué)習(xí)方法,實現(xiàn)了氣象數(shù)據(jù)的預(yù)測分析。
如圖1中,神經(jīng)網(wǎng)絡(luò)(NN),也被稱為多層感知機,由被稱為輸入層、輸出層和多個隱藏層的多層神經(jīng)元排列組成[28]。每一層神經(jīng)元以上一層的輸出作為輸入,并經(jīng)過激勵函數(shù)進行加權(quán)處理,從而為下一層的每個神經(jīng)元提供輸入。其中,每個神經(jīng)元的激活性受到被稱為激勵函數(shù)的功能所支配。
圖1 多層神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
這類網(wǎng)絡(luò)也稱為前饋神經(jīng)網(wǎng)絡(luò),因為信息僅在一個方向上傳輸,即從輸入層到輸出層。網(wǎng)絡(luò)中的各層之間沒有反向連接(或循環(huán))。多層神經(jīng)網(wǎng)絡(luò)的輸出模型為,
式中,x={x1,x2,……,xn}和y={y1,y2,……,yn}分別為輸入和輸出變量;ω和v是神經(jīng)網(wǎng)絡(luò)的互連權(quán)值;b代表偏差或閾值;f(?)是激勵函數(shù),通常為sigmoid或relu函數(shù)。
遞歸神經(jīng)網(wǎng)絡(luò)(RNN)是目前功能最強大的神經(jīng)網(wǎng)絡(luò)之一,能夠處理任意輸入模式的信息序列[29]。然而,RNN也存在梯度消失的問題,這使得在訓(xùn)練過程中難以有效地進行反向傳播,從而導(dǎo)致大量的計算工作。為了克服這個問題,學(xué)者提出了其他的結(jié)構(gòu),例如門控循環(huán)單元和LSTM單元。
如圖2所示,展現(xiàn)了時間序列x1,x2,……,xn通過一個展開的LSTM層的工作流程。圖2a為展開長-短期存儲器單元結(jié)構(gòu),圖2b為LSTM單元結(jié)構(gòu)。LSTM由一個輸入層、一個輸出層和它們之間的幾個遞歸隱藏層組成。遞歸隱含層由多個內(nèi)存模塊組成。每個模塊包含一個或多個自連接的記憶單元和三個控制信息流的門:記憶門、遺忘門和輸出門。其中,xt對應(yīng)于一個輸入特征向量,ht表示輸出向量,ct表示細胞狀態(tài),它們均在第t時刻上求值。
圖2 基于LSTM的深度學(xué)習(xí)網(wǎng)絡(luò) a.長短期存儲器單元結(jié)構(gòu);b.LSTM單元結(jié)構(gòu)。
如圖2b中所示的經(jīng)典LSTM塊結(jié)構(gòu),由被稱為門的不同進程組成[30-31]。這些門計算所需的輸出,同時需要一個在t時刻的新輸入數(shù)據(jù),以及t-1時刻的元素。
下列式(3)~式(8)描述了LSTM塊中的運算過程[31]。其中,式(3)~式(5)表示輸入、輸出和遺忘門。這些門將輸入數(shù)據(jù)xt與之前時間步長ht-1進行輸出的線性組合,并使用sigmoid激活函數(shù)進行處理。另一方面,gt門的生成將成為新單元狀態(tài)的候選項。式(7)對應(yīng)于細胞狀態(tài)ct,它表示一個包含所有先前狀態(tài)信息的記憶囊。最后,輸出ht將依據(jù)式(8),通過輸出門的元素乘以細胞狀態(tài)的激活來計算式。
式中,ωi是前一隱含層xt輸入與存儲器模塊之間的連接矩陣;ui是之前步長ht-1中當(dāng)前隱含層輸出與內(nèi)存模塊之間的連接矩陣;b是偏移量;σ是非線性的sigmoid函數(shù)。
在LSTM結(jié)構(gòu)中,h相當(dāng)于遞歸神經(jīng)網(wǎng)絡(luò)中對短時輸入敏感的部分,而c則實現(xiàn)長時記憶功能,各種門控單元將短時記憶與長時記憶相結(jié)合,這種機制使得LSTM實現(xiàn)了信息的長期篩選與保留,并能有效地解決長期依賴問題[32]。
在1.6 GHz、1.8 GHz雙核CPU、8GRAM計算硬件上,運用MATLAB仿真編譯環(huán)境實現(xiàn)了本論文的方法。實驗中構(gòu)建了五層結(jié)構(gòu)的神經(jīng)網(wǎng)絡(luò),其中隱藏層數(shù)為3,第一個隱藏層設(shè)置8個神經(jīng)元,第二個隱藏層設(shè)置10個神經(jīng)元,第三個隱藏層設(shè)置8個神經(jīng)元,激勵函數(shù)選用relu函數(shù),反饋優(yōu)化函數(shù)采用隨機梯度下降函數(shù),互連權(quán)值ω=0.2、v=0.4,閾值b=0.5。
為了更好地進行比對,論文實驗數(shù)據(jù)采用了美國國家氣象中心的氣象數(shù)據(jù)(http://cdo.ncdc.noaa.gov/qclcd/qclcd)。在深度學(xué)習(xí)的訓(xùn)練過程中,采用了2018年美國9個不同城市每小時氣象數(shù)據(jù),每個城市代表美國的一個氣候區(qū)域。如圖3所示,這些城市分別是:西雅圖、舊金山、科爾特斯、俾斯麥、達拉斯、亞特蘭大、印第安納波利斯、明尼阿波利斯、波士頓。當(dāng)?shù)貧庀笳久刻齑蠹s記錄40次不同時間間隔的數(shù)據(jù)。因此,為了使記錄之間的時間正?;?,我們只使用以每4小時為時間段的記錄數(shù)據(jù),即9個城市在365天,每天24小時,其中每隔4小時測量一次,總共有19 710次數(shù)據(jù)記錄。每次記錄標(biāo)注六個特征:能見度、溫度、露點溫度、風(fēng)速、風(fēng)向和氣壓。為了標(biāo)準(zhǔn)化不同的特征,我們將每個特征的均值設(shè)為0,然后用該特征的標(biāo)準(zhǔn)差除以該特征的均值,進行歸一化處理。
圖3 氣象數(shù)據(jù)地域來源示意圖
為了確保整個深度學(xué)習(xí)網(wǎng)絡(luò)正常,特別是反向傳播函數(shù)能夠正常工作,實驗首先在一個非常小的數(shù)據(jù)集上進行測試,以確保本文方法能夠精確地對它進行建模與處理。圖4為小數(shù)據(jù)集上進行訓(xùn)練后的預(yù)測結(jié)果。其中,綠線展現(xiàn)了未經(jīng)過深度學(xué)習(xí)方法訓(xùn)練的預(yù)測值,其值與真實結(jié)果相差很大。
圖4 在小數(shù)據(jù)集上的溫度預(yù)測
進一步實驗,使用了一個更大的數(shù)據(jù)集,其中輸入數(shù)據(jù)序列被隨機劃分為訓(xùn)練集(50%)、驗證集(25%)和測試集(25%)。使用本文方法,對來自所有城市的數(shù)據(jù)(能見度、溫度、露點、風(fēng)速、風(fēng)向、氣壓)進行了訓(xùn)練,其三層隱藏層訓(xùn)練誤差變化如圖5所示。可見,隨著訓(xùn)練次數(shù)的增加,訓(xùn)練誤差明顯降低。
圖5 訓(xùn)練誤差隨訓(xùn)練次數(shù)的變化情況
圖6為六項氣象預(yù)測值誤差隨訓(xùn)練次數(shù)變化情況,本文方法運用偏導(dǎo)數(shù)進行梯度下降,并使用較小的學(xué)習(xí)率,使得誤差下降平滑,并隨著訓(xùn)練次數(shù)的增加,各項測試誤差均線性降低并趨于穩(wěn)定。
圖6 氣象預(yù)測值誤差隨訓(xùn)練次數(shù)變化情況
如圖7、圖8所示,列舉了其中溫度和露點兩項,以描述訓(xùn)練后氣象預(yù)測值與真實值的變化情況。對于圖7的溫度預(yù)測,本文方法在數(shù)值預(yù)測和趨勢預(yù)估方面都做得很好,與真實測量值的差距不大。對于圖8的露點預(yù)測,本文方法能夠正確預(yù)測未來趨勢,但不能很好地反映真實情況的波動。這是由于方法神經(jīng)網(wǎng)絡(luò)的層數(shù)還不夠多造成的,可以通過增加隱藏層層數(shù)加以改善。
圖7 溫度預(yù)測值與真實情況分布
圖8 露點預(yù)測值與真實情況分布
為了檢驗本文方法性能,運用相同的測試數(shù)據(jù)選取常用的支持向量機(SVM)[32]進行實驗預(yù)測對比。圖9列舉了本文方法(圖9a、9b)和SVM方法(圖9c、9d)對風(fēng)速觀測值和預(yù)測值的最大流量和平均流量的分布,其中灰色點分布為流量分布、紅色圓為平均流量。由圖10知,SVM模型和本文模型對風(fēng)速的預(yù)測值與實際觀測流量最大值和平均流量總體上吻合,但SVM模型預(yù)測值誤差更為明顯,性能略差于本文模型。
圖9 不同方法對風(fēng)速流量的預(yù)測分布
圖10 兩種方法預(yù)測值均方檢驗誤差分布圖
圖10為運用兩種預(yù)測方法對所有城市,分別針對能見度、溫度、露點、風(fēng)速、風(fēng)向、壓力6項氣象指標(biāo)的預(yù)測值均方檢驗誤差分布圖??傮w比較,本文方法的預(yù)測性能始終優(yōu)于SVM。這是由于本文方法中的反向傳播更利于學(xué)習(xí)目標(biāo)進行優(yōu)化,而SVM訓(xùn)練模型只是以“空間距離”為牽引,更容易受到單一數(shù)據(jù)趨勢的過度影響。
(1)著眼于不斷增長的氣象數(shù)據(jù)集,探討人工智能技術(shù)在氣象領(lǐng)域的應(yīng)用,提出了一種基于深度學(xué)習(xí)的氣象預(yù)測方法。該方法針對氣象預(yù)測這一重難點,在對量大、繁雜的氣象數(shù)據(jù)進行預(yù)處理的基礎(chǔ)上,將長短時記憶(LSTM)進行優(yōu)化,基于深度學(xué)習(xí)網(wǎng)絡(luò)進行訓(xùn)練和預(yù)測,充分利用了數(shù)據(jù)元素之間的潛在特征。
(2)提出的方法能夠?qū)δ芤姸?、溫度、露點、風(fēng)速、風(fēng)向以及氣壓氣象信息進行準(zhǔn)確預(yù)測。與經(jīng)典機器學(xué)習(xí)方法相比,本文方法進一步提升了預(yù)測的準(zhǔn)確性,各項預(yù)測值的均方檢驗誤差平均值為0.35,比SVM方法平均低38%,能夠更好地為氣象預(yù)測提供參考。
(3)由于深度學(xué)習(xí)所特有的黒匣理論以及難以解釋特性,使得其可解釋性范疇目前仍是計算機領(lǐng)域的熱點問題。如何更有效地解釋神經(jīng)網(wǎng)絡(luò)聯(lián)合長短時記憶預(yù)測氣象信息的物理機理,仍有待進一步對深度學(xué)習(xí)原理的進一步研究。