馬景奕,劉維成,閆文君
(1.中國氣象局氣象干部培訓學院甘肅分院,甘肅 蘭州730020;2.蘭州市中心氣象臺,甘肅 蘭州730020)
2019年Reichstein等[1]在《Nature》上發表論文“Deep learning and process understanding for datadriven Earth system science”,充分預示著地球系統科學將隨著諸如神經網絡、深度學習等人工智能技術的發展,進入到智能化大數據時代。
大氣科學作為地球系統科學的重要組成,由于對人類的日常生活以及各行業均密切相關,與氣象相關的研究便一直是學術界研究的最前沿[2-5]。氣象條件復雜多變,制約氣象狀態的因素多樣、連續、動態、多維的,因此準確預測氣象要素一直充滿挑戰[6]。
氣象預報的研究主要以兩種方式進行,即基于物理學計算和基于數據驅動?;谖锢韺W的氣象預報模型直接模擬大氣中物理過程,該過程對大氣動力學、熱輻射以及綠色空間、湖泊和海洋的影響進行數值分析。目前,大多數商業和公共氣象預報系統中都包含此類物理模型[7-9]。數據驅動的模型使用統計數據或基于機器學習的方法進行氣象預測。數據驅動模型的優點在于能夠在沒有任何先驗知識的情況下為氣象系統檢測意外。但這其中可能需要大量數據,且缺乏對模型工作機理的有效解釋。相反,基于物理學的方法具有可解釋的優勢,具有根據觀察信息進行外推的潛力。但這種方法也存在先驗知識需要明確定義以及運算量大的缺點[1,10]。近年,隨著可用功能和觀測數量的不斷增加,數據驅動模型被廣泛地應用于氣象預測。
作為傳統氣象預測和預報方法的補充,隨著機器學習(ML)[11-12]和深度學習(DL)[13]技術的快速發展,大大促進了數據驅動模型的使用[14-17]。例如,文獻[18]展示了識別三層前饋神經網絡模型結構和參數的潛力,以致更好地表示柯林斯附近中型葉河流域的降雨與徑流的氣象關系。Liu等[19]利用深度神經網絡(DNN)模型逐層細化原始天氣數據的特征,從而有利于處理大量的天氣數據。Alberto等[20]將深度學習(DL)用于智利天氣預報,為了在實時決策中提供及時的信息和支持,以適應氣候變暖時的極端水文情況,提出了基于深度學習徑流模型結合氣象預報的水文預警系統。Lu等[21]將基于案例的推理系統以及基于數值模型的降水預測結果,作為預測系統的輸入,為推斷實際降水值與預測值之間的關系,構建了基于神經網絡和案例推理系統的降水數據同化系統。Emilcy等[22]的研究中采用了一個自動編碼器來減少和捕獲變量之間的非線性關系,然后訓練了一個多層感知器來對當地天氣進行預測。Shi等[23]將降水臨近預報問題表述為一個時空序列預報問題,并提出了基于卷積神經網絡預測方法。Ha等[24]使用DBN(深度信念網絡)來提高韓國首爾過去的降水、溫度等的預測精度,并通過實驗證明,在預測降水方面,DBN的表現優于MLP(多層感知器)。
在氣象大數據的背景下,深度學習技術可以利用海量且多源的氣象數據,擁有充足的觀測數據作為訓練樣本,從而保證了氣象預測模型的準確性。為了同時適應不同氣象信息的預測需求,發揮前向傳輸和遞歸訓練優勢,本文將神經網絡(NN)和基于長短時記憶(LSTM)相結合,提出基于深度學習的氣象預測方法,提升氣象預測的準確性,從而能夠通過歷史數據的自主訓練,對能見度、溫度、露點、風速、風向和氣壓進行準確預測。
從廣義上講,數據預處理是一個過程,在此過程中,將以通用方式處理和調整不同來源的氣象數據,并可以將其廣泛使用。數據處理可包含兩個方面:一是將具有不同精度的氣象數據組合成一個有機的數據,以提供更好的數值預測。二是綜合利用不同時期的觀測資料,然后將其轉化為相應空間氣象信息。
狹義地講,數據預處理被認為是分析和處理符合某些時空分布的觀測數據的過程,為數值模型提供接近精確的初始信息。數值模型的初始狀態(稱為分析)不是僅根據可用的觀測值確定的。相反,它是觀察和預測的組合:觀察是實際系統的當前觀察數據,而預測是通過將過去的觀察信息傳播到當前時間的數值模型生成的預測。該分析將預測信息與當前觀測的信息相結合,基本上是通過對兩者的加權平均值進行計算。通常,該過程被稱為“窄數據預處理”。狹窄的數據預處理過程總是伴隨著多變化,包括變量之間的近似關系。觀測值是真實系統的,而不是模型對該系統的不完整表示。因此,變量之間的關系可能與模型中的變量具有不同的關系。為了減少這些問題的影響,經常執行增量分析[25]。
在數據預處理過程中,通常涉及成本函數的最小化。典型的成本函數是將分析值與觀察值的平方偏差做平方再求和,在此基礎上再加上觀測值的準確性。這一處理方式,具有確保分析過程不會偏離真實性的作用。

式中,B表示背景誤差協方差;H是觀測誤差協方差;x是初始值;xb是加上擾動后的初值;y是分析值;R為觀測誤差協方差;i表示第i時段。
本文使用了神經網絡(NN)[26]和基于長短期記憶(LSTM)[27]的深度學習方法,實現了氣象數據的預測分析。
如圖1中,神經網絡(NN),也被稱為多層感知機,由被稱為輸入層、輸出層和多個隱藏層的多層神經元排列組成[28]。每一層神經元以上一層的輸出作為輸入,并經過激勵函數進行加權處理,從而為下一層的每個神經元提供輸入。其中,每個神經元的激活性受到被稱為激勵函數的功能所支配。

圖1 多層神經網絡結構
這類網絡也稱為前饋神經網絡,因為信息僅在一個方向上傳輸,即從輸入層到輸出層。網絡中的各層之間沒有反向連接(或循環)。多層神經網絡的輸出模型為,

式中,x={x1,x2,……,xn}和y={y1,y2,……,yn}分別為輸入和輸出變量;ω和v是神經網絡的互連權值;b代表偏差或閾值;f(?)是激勵函數,通常為sigmoid或relu函數。
遞歸神經網絡(RNN)是目前功能最強大的神經網絡之一,能夠處理任意輸入模式的信息序列[29]。然而,RNN也存在梯度消失的問題,這使得在訓練過程中難以有效地進行反向傳播,從而導致大量的計算工作。為了克服這個問題,學者提出了其他的結構,例如門控循環單元和LSTM單元。
如圖2所示,展現了時間序列x1,x2,……,xn通過一個展開的LSTM層的工作流程。圖2a為展開長-短期存儲器單元結構,圖2b為LSTM單元結構。LSTM由一個輸入層、一個輸出層和它們之間的幾個遞歸隱藏層組成。遞歸隱含層由多個內存模塊組成。每個模塊包含一個或多個自連接的記憶單元和三個控制信息流的門:記憶門、遺忘門和輸出門。其中,xt對應于一個輸入特征向量,ht表示輸出向量,ct表示細胞狀態,它們均在第t時刻上求值。

圖2 基于LSTM的深度學習網絡 a.長短期存儲器單元結構;b.LSTM單元結構。
如圖2b中所示的經典LSTM塊結構,由被稱為門的不同進程組成[30-31]。這些門計算所需的輸出,同時需要一個在t時刻的新輸入數據,以及t-1時刻的元素。
下列式(3)~式(8)描述了LSTM塊中的運算過程[31]。其中,式(3)~式(5)表示輸入、輸出和遺忘門。這些門將輸入數據xt與之前時間步長ht-1進行輸出的線性組合,并使用sigmoid激活函數進行處理。另一方面,gt門的生成將成為新單元狀態的候選項。式(7)對應于細胞狀態ct,它表示一個包含所有先前狀態信息的記憶囊。最后,輸出ht將依據式(8),通過輸出門的元素乘以細胞狀態的激活來計算式。

式中,ωi是前一隱含層xt輸入與存儲器模塊之間的連接矩陣;ui是之前步長ht-1中當前隱含層輸出與內存模塊之間的連接矩陣;b是偏移量;σ是非線性的sigmoid函數。
在LSTM結構中,h相當于遞歸神經網絡中對短時輸入敏感的部分,而c則實現長時記憶功能,各種門控單元將短時記憶與長時記憶相結合,這種機制使得LSTM實現了信息的長期篩選與保留,并能有效地解決長期依賴問題[32]。
在1.6 GHz、1.8 GHz雙核CPU、8GRAM計算硬件上,運用MATLAB仿真編譯環境實現了本論文的方法。實驗中構建了五層結構的神經網絡,其中隱藏層數為3,第一個隱藏層設置8個神經元,第二個隱藏層設置10個神經元,第三個隱藏層設置8個神經元,激勵函數選用relu函數,反饋優化函數采用隨機梯度下降函數,互連權值ω=0.2、v=0.4,閾值b=0.5。
為了更好地進行比對,論文實驗數據采用了美國國家氣象中心的氣象數據(http://cdo.ncdc.noaa.gov/qclcd/qclcd)。在深度學習的訓練過程中,采用了2018年美國9個不同城市每小時氣象數據,每個城市代表美國的一個氣候區域。如圖3所示,這些城市分別是:西雅圖、舊金山、科爾特斯、俾斯麥、達拉斯、亞特蘭大、印第安納波利斯、明尼阿波利斯、波士頓。當地氣象站每天大約記錄40次不同時間間隔的數據。因此,為了使記錄之間的時間正常化,我們只使用以每4小時為時間段的記錄數據,即9個城市在365天,每天24小時,其中每隔4小時測量一次,總共有19 710次數據記錄。每次記錄標注六個特征:能見度、溫度、露點溫度、風速、風向和氣壓。為了標準化不同的特征,我們將每個特征的均值設為0,然后用該特征的標準差除以該特征的均值,進行歸一化處理。

圖3 氣象數據地域來源示意圖
為了確保整個深度學習網絡正常,特別是反向傳播函數能夠正常工作,實驗首先在一個非常小的數據集上進行測試,以確保本文方法能夠精確地對它進行建模與處理。圖4為小數據集上進行訓練后的預測結果。其中,綠線展現了未經過深度學習方法訓練的預測值,其值與真實結果相差很大。

圖4 在小數據集上的溫度預測
進一步實驗,使用了一個更大的數據集,其中輸入數據序列被隨機劃分為訓練集(50%)、驗證集(25%)和測試集(25%)。使用本文方法,對來自所有城市的數據(能見度、溫度、露點、風速、風向、氣壓)進行了訓練,其三層隱藏層訓練誤差變化如圖5所示??梢?,隨著訓練次數的增加,訓練誤差明顯降低。

圖5 訓練誤差隨訓練次數的變化情況
圖6為六項氣象預測值誤差隨訓練次數變化情況,本文方法運用偏導數進行梯度下降,并使用較小的學習率,使得誤差下降平滑,并隨著訓練次數的增加,各項測試誤差均線性降低并趨于穩定。

圖6 氣象預測值誤差隨訓練次數變化情況
如圖7、圖8所示,列舉了其中溫度和露點兩項,以描述訓練后氣象預測值與真實值的變化情況。對于圖7的溫度預測,本文方法在數值預測和趨勢預估方面都做得很好,與真實測量值的差距不大。對于圖8的露點預測,本文方法能夠正確預測未來趨勢,但不能很好地反映真實情況的波動。這是由于方法神經網絡的層數還不夠多造成的,可以通過增加隱藏層層數加以改善。

圖7 溫度預測值與真實情況分布

圖8 露點預測值與真實情況分布
為了檢驗本文方法性能,運用相同的測試數據選取常用的支持向量機(SVM)[32]進行實驗預測對比。圖9列舉了本文方法(圖9a、9b)和SVM方法(圖9c、9d)對風速觀測值和預測值的最大流量和平均流量的分布,其中灰色點分布為流量分布、紅色圓為平均流量。由圖10知,SVM模型和本文模型對風速的預測值與實際觀測流量最大值和平均流量總體上吻合,但SVM模型預測值誤差更為明顯,性能略差于本文模型。

圖9 不同方法對風速流量的預測分布

圖10 兩種方法預測值均方檢驗誤差分布圖
圖10為運用兩種預測方法對所有城市,分別針對能見度、溫度、露點、風速、風向、壓力6項氣象指標的預測值均方檢驗誤差分布圖。總體比較,本文方法的預測性能始終優于SVM。這是由于本文方法中的反向傳播更利于學習目標進行優化,而SVM訓練模型只是以“空間距離”為牽引,更容易受到單一數據趨勢的過度影響。
(1)著眼于不斷增長的氣象數據集,探討人工智能技術在氣象領域的應用,提出了一種基于深度學習的氣象預測方法。該方法針對氣象預測這一重難點,在對量大、繁雜的氣象數據進行預處理的基礎上,將長短時記憶(LSTM)進行優化,基于深度學習網絡進行訓練和預測,充分利用了數據元素之間的潛在特征。
(2)提出的方法能夠對能見度、溫度、露點、風速、風向以及氣壓氣象信息進行準確預測。與經典機器學習方法相比,本文方法進一步提升了預測的準確性,各項預測值的均方檢驗誤差平均值為0.35,比SVM方法平均低38%,能夠更好地為氣象預測提供參考。
(3)由于深度學習所特有的黒匣理論以及難以解釋特性,使得其可解釋性范疇目前仍是計算機領域的熱點問題。如何更有效地解釋神經網絡聯合長短時記憶預測氣象信息的物理機理,仍有待進一步對深度學習原理的進一步研究。