王 軍,陳百艷,程 勇
(1.南京信息工程大學 計算機與軟件學院,江蘇 南京 210044;2.南京信息工程大學 科技產業處,江蘇 南京 210044)
降雨預測與人類生活和社會經濟等方面具有密切聯系,準確的氣象預測可以為人類出行及生命安全提供可靠的科學依據,但建立高效的短期降雨預測模型面臨諸多挑戰。隨著傳感器探測技術、儲存技術不斷更新,傳統的降雨預測方法已無法滿足氣象大數據處理的要求。近年來深度學習在各個領域中的應用,得到學者的廣泛認可,同時也給氣象預測擴展了處理分析多種氣象大數據的方法。受到啟發,本文中降雨預測的研究工作主要基于深度學習展開。
目前,越來越多的氣象中心開始使用多個觀測點的一組氣象特征作為降雨預測數據,現有降雨預測模型大多基于單站點數據構建,無法利用數據間的橫向關聯性,數據縱向特征的完整性也無法保證。本文使用多任務學習構建探索多站點數據時空特性的降雨預測模型,將多個觀測站點氣象數據進行聯合學習,對站點間的相關性進行建模,充分利用多站點氣象數據的橫縱特性,使模型的預測結果更加準確、豐富。
研究時,將降雨預測問題類比為時空序列預測問題,通過輸入以往一段時刻的雷達序列圖像,預測出未來某一時刻的雷達序列圖像。由于時空序列具有高維性,模型必須進行多步預測,使得模型需要捕捉數據的時空結構。對此,本文提出在長短時記憶網絡中加入卷積運算結構,與多任務學習方法結合建立端到端的MTL-LSTC網絡模型,對氣象數據進行編碼預測。大量實驗結果表明,模型可以有效提取氣象數據內部時空特性,使預測精度大幅提高。
目前的降雨預測方法主要分3類:概念模型預測技術[1]、數值預測技術[2]和雷達回波外推預測技術[3]。概念模型預測技術是通過分析觀測數據,建立強對流天氣系統產生、發展、消失的概念模型,結合其它外推方法進行預報的技術;數值預測技術是指根據大氣的實際情況,通過數值計算表示氣象演變過程的流體力學或熱力學的方程組,對未來的大氣運動狀況及其它氣象信息進行預測的方法;雷達回波外推預測技術是通過跟蹤雷達圖像或云圖等氣象圖像資料,外推出降雨云團或者強風暴的位置、形狀和強度的變化。近幾年,數值預測技術和雷達回波外推預測技術受到了越來越多的學者推崇,然而使用數值預測技術進行臨近預測時,對大氣模型模擬物理公式的過程較為復雜,因此,更多研究者使用雷達回波外推預測技術構建降雨預測模型。
深度學習的飛速發展給降雨預測帶來了新突破,大量的氣象數據可以通過深度學習探索出氣象因子之間相互依賴的關系及潛在規律,預測出降雨在未來某一時刻的情況。最新研究中,文獻[4]提出將Horn-Schunck算法[5]和Lucas-Kanade算法[6]結合進行實時回波變分光流計算,捕獲關鍵位置的雷達回波運動變化過程,對局域系統[7]內短距離強暴雨預警的研究。但是這類光流算法模型中,光流計算的步驟與雷達回波外推步驟是分開的,使得模型的參數優化過程十分困難。隨著深度學習的發展,循環神經網絡(recurrent neural networks,RNN)和長短時記憶網絡(long short-term memory,LSTM)將這一問題有效解決。文獻[8]開創性的提出LSTM編碼-解碼模型,搭建序列到序列學習過程的通用框架,通過訓練臨時的LSTM單元解決學習中序列信息傳輸的問題。之后,文獻[9]對LSTM模型中編碼-解碼過程進行優化,提出全連接的長短時記憶網絡模型(fully connected LSTM,FC-LSTM),在重構輸入序列的同時預測未來序列,模擬時空序列預測內的空間關系。雖然FC-LSTM模型為處理時空序列預測問題提供了有效解決方法,但由于LSTM層間采用全連接的方式,不考慮空間相關性且存在較高冗余。為更好模擬出時空序列內時空關系,本文提出使用具有卷積運算結構的長短時記憶網絡(long short-term convolutional calculation network,LSTC),通過疊加多個LSTC層形成編碼預測結構,構建更高效的降雨預測模型。
多任務學習是機器學習的一種學習范式,利用多個相關任務包含的豐富信息來提高所有任務的泛化能力。機器學習通常需要大量的訓練樣本學習,來取得精確的結果,基于神經網絡的深度學習模型需要更龐大的標記樣本來訓練含有大量模型參數的深層神經網絡。如果樣本數量不足,不論是淺層模型還是深層模型學習要求都不能得到滿足。如果單個任務中的訓練樣本有限,而此時模型中恰巧有多個相關任務,那么多任務學習就是一個很好的解決方案。
多任務學習常常會與遷移學習作比較,兩者之間相似卻完全不同。多任務學習中,相關任務與目標任務之間沒有區別,都是為了提高所有任務的性能。而遷移學習則是借助相關任務來提高目標任務的性能,有時目標任務比相關任務看起來更重要。目前多任務學習的主要研究方向有多任務學習正則化[10]、多任務學習與神經網絡的結合[11]和多任務學習的權值分配[12]。雖然多任務學習方法目前已逐漸成熟,但在氣象預測中的應用較少,本文仔細研究文獻[13]中工作后,提出使用多任務學習方法處理多站點預測問題,通過站點相關性矩陣自動描述站點間的關聯性,進一步提高深度學習降雨預測模型的性能。
本文將多任務學習方法與LSTC網絡結合,提出基于MTL-LSTC網絡的降雨預測模型。多任務學習對多個相關任務進行同時學習,相比單任務學習獨立分解的策略,多任務學習能夠有效利用多站點氣象數據中關聯因素,使模型具有更高的泛化能力。LSTC網絡能夠更好捕捉氣象序列數據的時空相關性,構建出通用的時空序列預測模型,進行更有效的降雨預測。接下來首先對多任務學習和LSTC網絡兩個模塊分別進行闡述,最后對整個模型的優化過程進行詳細介紹。
降雨預測是一個回歸問題,已有解決方法包括獨立模型[14]和統一模型[15],獨立模型不考慮多站點間內在關聯,統一模型假設所有站點使用相同的關聯公式,這兩類模型都不能提取出多站點氣象數據的差異性。本文使用多任務學習方法構建端到端的多站點降雨預測模型,允許信息從一個站點轉移到其它相關站點,并建立站點間相關性矩陣。本節將從2個部分對模型中多任務學習設置進行詳細介紹,首先介紹建立多站點間相互關系的過程,然后介紹網絡中多任務學習的功能。


(1)
式中:l(.) 表示損失函數,g(.) 表示激活函數,f(.) 表示特征轉換函數,U∈RH×1表示輸出層,其中H是隱藏層的維度。統一模型是將所有站點看成相同的模型進行輸出,沒有考慮各個站點的特性。我們將統一模型轉換為多任務學習模型,定義每個站點都有自己的輸出層Op∈RH×1, 利用輸出層Op表現每個站點特性。由于回歸問題一般使用均值方差法計算損失函數,此處損失函數的計算方法如式(2)所示

(2)
式中:f(.)、g(.) 表示特征轉換函數,θ表示特征轉換網絡,U∈RH×1表示輸出層。在構建站點相關性矩陣I∈Rp×p的過程中,定義Ii,j表示站點i和站點j間相似性,利用tr(OI-1OT) 使輸出值Op受矩陣I的限制。當Oi和Oj值越接近,Ii,j值越大。總之,多任務學習設置就是為模型中所有站點訓練統一的θ和U, 用不同的輸出Op模擬站點特性,最終多任務學習的計算方法如式(3)所示

(3)

LSTC網絡模型中,輸入的每個時間序列都是一個二維的氣象雷達圖像,將圖像分割為一組平鋪不重疊的平面,將平面內像素作為觀測值,則降雨預測就是一個時空序列預測問題。


(4)

圖1 二維圖像分割為三維張量
為更好模擬出氣象數據的時空序列特性,對FC-LSTM網絡模型進行優化,在FC-LSTM網絡輸入到狀態和狀態到狀態之間的轉換過程中疊加多個LSTC網絡將空間信息進行編碼,構建出可以利用空間信息的長短時記憶網絡模型。解決FC-LSTM網絡處理時空數據時,由于輸入到狀態和狀態到狀態的全連接方式,導致空間信息沒有被編碼且連接方式冗余的問題。
LSTC網絡的內部結構如圖2所示,將所有的輸入x1,…,xt、 神經元輸出c1,…,ct、 隱藏狀態h1,…,ht和門控機制i1、ot、ft設置成一個三維的張量,行和列的空間維度設置成一個二維的張量,假設輸入和狀態是空間網格上的向量,圖中輸入和狀態是空間網格上的向量,LSTC單元就是通過相鄰網格上的輸入和狀態進行卷積運算,預測未來某個網格上的狀態。計算過程如式(5)~式(9)所示
it=σ(Wxi·xt+Whi·ht-1+Wci°ct-1+bi)
(5)
ft=σ(Wxf·xt+Whf·ht-1+Wcf°ct-1+bf)
(6)
ot=σ(Wxo·xt+Who·ht-1+Wco°ct+bo)
(7)
ct=ft°ct-1+it°tanh(Wxc·xt+Whc·ht-1+bc)
(8)
ht=ot°tanh(ct)
(9)
其中,·表示卷積運算符號,°表示哈達瑪乘積。ct表示累積輸入狀態信息的儲存單元,通過調節儲存單元的參數控制門的讀、寫和刪除。輸入門it控制進入儲存單元信息量;遺忘門ft控制過去儲存狀態ct-1中被遺忘的信息量;輸出門ot控制傳輸到最終狀態ot中的信息量。

圖2 LSTC網絡的內部結構
為使隱藏狀態與輸入狀態具有相同的行列數,在進行卷積計算前,需要對隱藏狀態進行填充操作。一般長短時記憶網絡中所有初始狀態均為0,所以隱藏狀態的填充過程初始化也為0,然后根據外界信息進行自我更新。
整個LSTC網絡編碼解碼過程如圖3所示,編碼網絡和解碼網絡由多個LSTC網絡層堆疊得到,編碼網絡中將輸入序列壓縮為一個隱藏狀態張量,預測網絡通過復制編碼層的最終狀態作為輸入,其維度與預測目標維度相同,目的是使LSTC網絡層連接起來,輸入到一個全連接層進行最終預測。

圖3 LSTC網絡的編碼預測過程
如圖4所示,整個模型由3個主要部分組成:一是表示輸入特征的特征轉換網絡;二是預測降雨量的編碼預測網絡,使用LSTC網絡提取深層氣象特征;三是包含站點相關性的多任務模塊,使用一個全連接層輸出多站點預測結果。

圖4 MTL-LSTC網絡結構
在對模型中I、O、U和θ的目標函數進行優化時,使用隨機交替的方法,首先固定I優化O、U和θ; 然后固定θ優化I、U和O, 在不斷迭代過程中得到最優I、O和θ。
固定I來優化O、U和θ的過程中,使用梯度下降的方法對O和θ進行聯合優化,則問題的描述如式(10)所示

(10)

(11)

(12)
(13)
最后,為簡化I的優化過程,將O和θ同時進行固定,則優化后的計算過程是一個簡單的凸函數,如式(14)所示。將其轉化為封閉解的形式如式(15)所示,式(15)中可以發現當Oi和Oj越接近時,Ii,j的值越大

(14)
(15)
以上是對目標函數中I、O、U和θ進行優化的過程,在實際操作過程中我們還需要對I進行初始化的操作。為使相鄰站點具有相似任務模型,即當Δ(j-i) 值越小時,獲得的Ii,j值越大,因此使用站點間的空間距離對I進行初始化。定義一個矩陣A表示站點i和站點j的靠近程度,則Ai,j的計算方法如式(16)所示
(16)
式中:di,j表示站點i、j之間的地理空間距離,σ為給定標量,A是一個站點相關性矩陣,初始化令A=I, 在訓練的過程在不斷調整I的大小。
最終模型的推理算法如算法1所示,使用的是簡單隨機梯度下降法,算法中學習率η固定,每個參數自適應學習率使用Adam算法[16]進行計算。
算法1:模型的推理算法

步驟1 初始化O、U、θ為任意值
步驟2 初始化I=A
步驟3 當為收斂時:
步驟4count=1
步驟5 令η表示學習率
步驟6 當count=Threshold時
步驟7 讀取小批量



步驟11count+=1
步驟12 結束

步驟14 結束
本文中MTL-LSTC網絡降雨預測模型的工作主要分為兩個部分,一個是使用LSTC網絡對時空序列進行編碼解碼的降雨量預測;另一個是使用多任務模型提取出多站點間相關性。以上介紹了模型的整個功能,接下來將對最終的實驗過程進行詳細描述。
本文選取澳門地區2018年9月至2019年3月的CINRAD-SA型多普勒氣象雷達數據作為實驗數據集。由于CINRAD-SA型多普勒氣象雷達數據無法直接應用于神經網絡模型,需進行數據預處理將CINRAD-SA型多普勒氣象雷達數據轉換成CAPPI氣象雷達回波圖像。首先將CINRAD-SA型多普勒氣象雷達數據放入三維笛卡爾直角坐標系中;然后對坐標系中網格數據進行水平采樣,獲得一個二維平面數據,此時數據中還包含冗余的背景信息,對這些背景信息進行數據清洗;最后使用灰度變化強化數據中雷達回波強度,通過映射得到分辨率為250×250的CAPPI灰度圖像。
此外,數據集中經常出現空數據,空白數據對預測結果的干擾很強必須剔除。剔除空白數據后,對數據集進行二次抽樣,創建出可管理的訓練集、驗證集和測試集,最終確定每個訓練集中含有32 000個樣本,每個驗證集中含有4800個樣本,每個測試集中含有3200個樣本。圖5為數據集中的一組樣本圖像,每個樣本含有4幅圖像 {x1,x2,x3,x4}, 圖像間時間間隔為6 min。

圖5 數據集中的一組樣本圖像
為保證預測結果更加準確,合理選擇多站點至關重要,理想的站點可以提供豐富的信息和隱藏的線索。例如有站點A與站點B相距20公里,當站點A的地區發生了強降雨,那么站點B就有很大可能會發生強降雨。據此,本文根據不同方向、距離和高度將觀測地站點周圍空間區域劃分為正態分布的單元。如圖6所示,空間區域劃分為8個方向(標記為1到8),2個跨度(標記為I、II),包含8×2個單元和一個自身單元共17個單元,將單元中天氣特征串聯起來,獲得最終多站點特征集合。

圖6 空間區域劃分
實驗采用臨界成功指數(CSI)、誤報率(FAR)、探測概率(POD)評估模型預測效果,采用均方誤差(MSE)和均方根誤差(RMSE)[17]評估模型預測結果準確率。如果像素灰度超過閾值,則判定預測值是有效;反之無效。當預測值有效并且真實值也有效時,則預測成功,記作S;當預測值無效并且真實值也無效時,則沒有預測成功,記作F;當預測值為有效但真實值無效時,則預測失誤,記作M。nS、nF、nM分別表示命中、未命中、假警報(即預測成功、沒有預測成功和預測失誤)。
CSI、FAR和POD均是基于nS、nF、nM這3個指標計算得到。首先使用定義閾值將預測和地面真值轉換為0/1矩陣,然后計算出nS、nF、nM。最后CSI指標的計算過程如式(17)所示
(17)
FAR表示在實驗中有些指標系統無法計算出樣本的真實狀態,于是直接判定其結果為命中的情況。計算的方法如式(18)所示
(18)
POD表示模型根據輸入信號,正確判斷出目標信號的概率。在這里計算方法如式(19)所示
(19)
MSE指標計算的是降雨量預測值和真實值的平均平方誤差。在計算前需要根據Z-R關系法[18],將像素值換算成單元格上的降雨量值,計算方法如式(20)所示,式中N表示圖像區域內Ω的單元(格點)數,F表示真實觀測的雷達圖像,F′表示預測得到的雷達圖像,t0和τ分別表示預報時刻和預測時效,F′(t0+τ,x) 表示在時刻t0+τ圖像中格點x上的降雨量
(20)
RMSE的計算方法如式(21)所示
(21)
首先對單任務學習下深度學習模型的實驗結果進行簡單的比較分析,然后對多任務學習下深度學習模型的實驗結果進行詳細的比較分析。
與單任務深度學習模型實驗比較時,將長短時記憶網絡(LSTM)模型、卷積神經網絡(CNN)模型和FC-LSTM模型作為LSTC模型的對比模型,結果如圖7、圖8所示。圖7顯示,隨預測時間增長LSTC模型與LSTM模型預測效果差距越來越大,CNN模型與FC-LSTM模型的預測效果較靠近,LSTC模型的預測效果最好,特別是準確率和誤報率上優勢明顯,說明LSTC模型不僅解決了FC-LSTM模型中冗余連接的問題,且加入卷積運算后LSTC模型能夠模擬時空序列的時空關系,有效提高降雨預測模型性能。

圖7 不同模型的預測指標對比

圖8 一組預測結果實例對比
圖8對比顯示LSTC模型的結果與真實圖像高度相似,特別是圖像輪廓部分,說明LSTC模型可以在訓練過程中學習觀測區域邊緣的回波特征變化,得到的預測結果更可靠。FC-LSTM模型的預測結果很清晰,但是FC-LSTM模型的假報警率較高,預測結果不具有說服性。LSTC模型得到的外推圖像較為模糊,這是因為雷達回波外推本身具有不確定性,其輸入和輸出之間的對應關系復雜,網絡無法對觀測區域內所有回波變化做出精準預測,但圖像是否清晰并不影響最終的預測效果。
在多任務深度學習模型實驗比較分析時,將多任務循環神經網絡(MTL-RNN)模型[19]、多任務長短時記憶網絡(MTL-LSTM)模型[20]、多任務卷積神經網絡模型[21]和多任務全連接的長短時記憶網絡(MTL-FC-LSTM)模型作為MTL-LSTC網絡降雨預測模型的對比模型,實驗結果如圖9和表1所示。

圖9 單任務模型和多任務模型在指標MSE上的比較

表1 各個模型中預測指標比較
圖9中多任務學習下所有模型都要比基于單任務學習模型表現出更好預測效果,說明在多站點中使用同一個任務方式不合理,使用多任務學習方法不僅可以學習到不同站點間隱藏線索,也可以提取到不同任務間關聯性,有效提高整個模型性能。
從表1中可知MTL-LSTC網絡模型相比MTL-FC-LSTM網絡模型,誤差率下降約3.2%,預測成功率提高約10%。說明長短時記憶網絡中加入卷積運算結構是有效的,并且多任務學習能夠有效提高多站點氣象數據利用率,模型預測結果更加準確。
最后,將MTL-LSTC網絡模型與歐洲中距離天氣預報系統(ECMWF)進行性能評估。如圖10所示,MTL-LSTC網絡模型預測結果在RMSE指標和CSI指標上準確率明顯高于ECMWF。表明在利用原始觀測站點氣象數據特征進行降雨預測時,MTL-LSTC網絡模型預測結果更加準確。

圖10 與公共天氣預測系統ECMWF性能對比
本文研究如何使用多個觀測點氣象特征進行降雨預報,提出基于MTL-LSTC網絡降雨預測模型,在長短時記憶網絡輸入到狀態和狀態到狀態轉換過程中加入卷積運算結構,通過疊加多個LSTC網絡進行編碼預測,解決了長短時記憶網絡中信息連接冗余問題,彌補長短時記憶網絡處理時空信息時的缺陷。多任務學習將多站點信息進行聯合學習,允許學習到的知識從一個站點轉移到其它相關站點,對站點間相關性建模,使站點間隱藏信息得到充分利用。大量實驗結果表明,基于MTL-LSTC網絡的降雨預測模型可行且有效。接下來的工作是對所提出方法與其它公共預測系統進行比較,進一步驗證模型的準確性和有效性。