曹文南 張鵬程 賈旸旸
(河海大學(xué)計(jì)算機(jī)與信息學(xué)院 江蘇 南京 210000)
降雨受地理位置、氣候、熱力和流場等多因素共同作用而產(chǎn)生,復(fù)雜的氣象特性使得降雨成為最難預(yù)報(bào)的天氣要素之一[1-2]。強(qiáng)降雨是其中形成最為復(fù)雜的一種情況,隨著氣候不斷變暖,強(qiáng)降雨事件發(fā)生的概率將不斷增加[3]。強(qiáng)降雨天氣主要造成滑坡、泥石流和洪水等自然災(zāi)害,每年由于強(qiáng)降雨引起的災(zāi)害都會導(dǎo)致生命和基礎(chǔ)設(shè)施的嚴(yán)重破壞和損失[4]。準(zhǔn)確及時的降雨預(yù)報(bào)對農(nóng)業(yè)生產(chǎn)和城市生活工作具有重要作用。
預(yù)報(bào)降雨的方法主要分為三類:(1) 根據(jù)物理定律結(jié)合超級計(jì)算機(jī)求解軌跡方程的NWP方法;(2) 統(tǒng)計(jì)學(xué)方法;(3) 機(jī)器學(xué)習(xí)方法。傳統(tǒng)的NWP方法求解物理軌跡方程極其復(fù)雜,需要消耗大量的計(jì)算資源和時間,由于一些初始條件和邊界條件的不確定性使得預(yù)報(bào)存在不及時、不夠準(zhǔn)確的情況。統(tǒng)計(jì)學(xué)方法如灰色預(yù)測模型GM[5]和自回歸積分滑動平均模型ARIMA[6-7]等。文獻(xiàn)[8]將降雨量作為ARIMA模型的輸入,運(yùn)用信息準(zhǔn)則法中的BIC確定模型的階數(shù),有效預(yù)測了城市降雨。這些方法能夠?qū)涤晷蛄羞M(jìn)行擬合并做出預(yù)測,但是較少考慮氣象因子對降雨量的影響。機(jī)器學(xué)習(xí)方法通過更新神經(jīng)元的參數(shù)來學(xué)習(xí)地理位置、氣候條件等物理參數(shù)和雨量的關(guān)系,使得預(yù)報(bào)降雨的精度進(jìn)一步提升。隨著人工智能領(lǐng)域的發(fā)展,機(jī)器學(xué)習(xí)方法在降雨預(yù)測領(lǐng)域取得了很好的效果[9-10],降雨預(yù)報(bào)中常見的機(jī)器學(xué)習(xí)方法主要包括誤差反向傳播神經(jīng)網(wǎng)絡(luò)BPNN[11]、多層感知器MLP[12]、支持向量機(jī)SVM[13]、深度置信網(wǎng)絡(luò)DBNN[14]和長短期記憶網(wǎng)絡(luò)LSTM(Long-Short Term Memory)[15]等。文獻(xiàn)[16]利用改進(jìn)的BP神經(jīng)網(wǎng)絡(luò)預(yù)測城市降雨量,并且分析了不同氣象因子對于降雨的影響程度。文獻(xiàn)[17]充分挖掘水文時間序列中各隱藏要素的特征,建立了一種有效的基于深度信念神經(jīng)網(wǎng)絡(luò)的降雨量預(yù)測模型,并以貴州遵義地區(qū)的氣象數(shù)據(jù)進(jìn)行了驗(yàn)證。文獻(xiàn)[18]建立了一種動態(tài)區(qū)域感知的降雨預(yù)報(bào)網(wǎng)絡(luò),并在全國56個地區(qū)進(jìn)行實(shí)驗(yàn)證明了模型的有效性。此外,深度學(xué)習(xí)的廣泛應(yīng)用使得利用雷達(dá)回波外推進(jìn)行臨近預(yù)報(bào)的方法不斷有新的進(jìn)展。文獻(xiàn)[19]提出一種卷積長短期記憶網(wǎng)絡(luò)ConvLSTM預(yù)測降雨,該模型由一個編碼網(wǎng)絡(luò)和一個預(yù)測網(wǎng)絡(luò)構(gòu)成,兩個網(wǎng)絡(luò)都是通過堆疊多個ConvLSTM層形成,減小了外推光流矢量中存在的累計(jì)誤差,提高了模型預(yù)測的準(zhǔn)確率。文獻(xiàn)[20]提出一種預(yù)測遞歸神經(jīng)網(wǎng)絡(luò)PredRNN,該網(wǎng)絡(luò)核心是一個時空長短期記憶網(wǎng)絡(luò)ST-LSTM,可以同時對空間和時間信息進(jìn)行提取和記憶,該方法的優(yōu)良性能在雷達(dá)回波數(shù)據(jù)集上得到了驗(yàn)證。
目前,基于深度學(xué)習(xí)的降雨預(yù)報(bào)模型通常以站點(diǎn)的氣象因子和降雨值作為網(wǎng)絡(luò)的輸入和輸出,缺少對因子重要性評估及網(wǎng)絡(luò)特征表現(xiàn)的工具?,F(xiàn)有方法對中長期降雨預(yù)報(bào)(12 h以上)的準(zhǔn)確率有一定提升,但對于短臨降雨(0~12 h內(nèi))尤其是短臨強(qiáng)降雨(單位小時內(nèi)16 mm及以上)樣本存在預(yù)測不精的問題。針對現(xiàn)有短板,本文提出一種基于含注意力機(jī)制LSTM的短臨降雨預(yù)測模型SRF(Short-term Rainfall Forecasting model),首先計(jì)算反映目標(biāo)站點(diǎn)長期氣候狀況的標(biāo)準(zhǔn)化降水指數(shù)SPI,解決了數(shù)據(jù)集中少量強(qiáng)降雨樣本導(dǎo)致相關(guān)信息匱乏的問題,通過隨機(jī)森林算法篩選出與降雨最相關(guān)的氣象因子,減少無關(guān)信息對預(yù)測精度的影響。同時構(gòu)建帶有注意力機(jī)制的長短期記憶網(wǎng)絡(luò),將因子輸入網(wǎng)絡(luò)中訓(xùn)練得到未來3 h內(nèi)的降雨量。本文方法關(guān)注因子包含的降雨深層語義信息并針對強(qiáng)降雨特性在模型中進(jìn)行了改進(jìn),嘗試提高短期降雨預(yù)報(bào)的準(zhǔn)確率,并對模型訓(xùn)練權(quán)重進(jìn)行可視化。實(shí)驗(yàn)結(jié)果驗(yàn)證了本文方法的有效性。
注意力機(jī)制是模擬人類視覺的注意力演化而來的,能夠?qū)ふ揖W(wǎng)絡(luò)中需要關(guān)注的信息并根據(jù)信息的重要程度進(jìn)行加權(quán)。注意力機(jī)制在自然語言處理、語音識別、圖像識別領(lǐng)域都有廣泛的應(yīng)用[21-22]。研究者根據(jù)不同需要研究出了各種形式的注意力機(jī)制。多頭注意力(Multi-Head Attention,MHA)可以有效地在網(wǎng)絡(luò)中關(guān)注多個子空間的信息,并行化計(jì)算多次注意力提升網(wǎng)絡(luò)的訓(xùn)練速度,從多個維度捕捉序列信息的關(guān)鍵信息。多頭注意力機(jī)制的結(jié)構(gòu)如圖1所示。
圖1 多頭注意力結(jié)構(gòu)
目標(biāo)序列向量為Q,K為鍵向量序列,V為鍵向量對應(yīng)的值的序列,Q、K、V序列經(jīng)過線性變換后輸入到縮放點(diǎn)注意力(Scaled Dot-product Attention,SDA)中進(jìn)行向量的點(diǎn)積相乘,計(jì)算方法為:
(1)
(2)
Z=Concat(head1,head2,…,headh)WO
(3)
長短期記憶網(wǎng)絡(luò)(LSTM)在循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)中增加了多個記憶單元,LSTM的記憶單元解決了原始RNN訓(xùn)練時存在的梯度消失問題和梯度消失所導(dǎo)致的長期依賴問題。LSTM結(jié)構(gòu)形態(tài)分為三層,輸入層、隱含層和輸出層。圖2是一個LSTM的結(jié)構(gòu)示意圖。
圖2 LSTM網(wǎng)絡(luò)結(jié)構(gòu)
圖2中,a
ft=σ(Wf[a
(4)
式中:σ為sigmoid激活函數(shù);Wf為權(quán)重矩陣;[,]表示把兩個向量拼接;bf為遺忘門的偏置項(xiàng)。
更新門ut確定需要更新的信息和新的加入信息,公式為:
(5)
ut=σ(Wu[a
(6)
式中:WC、Wu為權(quán)重矩陣;bc、bu分別為輸入節(jié)點(diǎn)和更新門的偏置項(xiàng)。更新后新的記憶單元C
(7)
輸出門ot經(jīng)過激活函數(shù)后得到最終的輸出為a
ot=σ(Wo[a
(8)
a
(9)
式中:*表示元素乘法;Wo為權(quán)重;bo為輸出門的偏置項(xiàng);tanh()為雙曲正切函數(shù)。
本文首先計(jì)算目標(biāo)站點(diǎn)的標(biāo)準(zhǔn)化降水指數(shù),利用隨機(jī)森林算法計(jì)算出氣象因子與降雨的相關(guān)程度,根據(jù)重要性動態(tài)篩選出與降雨密切相關(guān)的因子作為帶有多頭注意力的長短期記憶網(wǎng)絡(luò)SRF的輸入,預(yù)測目標(biāo)未來3 h內(nèi)的降雨量。模型建立主要分為三個部分:數(shù)據(jù)預(yù)處理與SPI計(jì)算、因子篩選與網(wǎng)絡(luò)建模、權(quán)值可視化與模式對比。SRF模型建立過程如圖3所示。
圖3 SRF模型建立流程
在對數(shù)據(jù)集中的物理參數(shù)進(jìn)行分析和選取后,主要收集了12個氣象因子,如表1所示。
表1 氣象因子和模型輸入?yún)?shù)
SPI指數(shù)是反映地區(qū)旱澇時空特征的重要?dú)庀髤?shù)[23],能夠反映目標(biāo)區(qū)域在一定時間尺度內(nèi)的降雨情況,靈敏表現(xiàn)區(qū)域的氣候特征,是評估目標(biāo)區(qū)域降雨量或短時強(qiáng)降雨等極端天氣情況的重要參考指標(biāo),有效提高模型對強(qiáng)降雨特征的敏感程度,解決了數(shù)據(jù)集中強(qiáng)降雨樣本較少導(dǎo)致模型對強(qiáng)降雨特性學(xué)習(xí)能力較弱的問題。SPI將一段時間尺度的降雨序列服從gamma分布,通過分布概率密度函數(shù)推算求得累積概率,最后將累計(jì)概率轉(zhuǎn)化成標(biāo)準(zhǔn)正態(tài)分布。設(shè)某一時段的降雨量為x,則其τ分布的概率密度函數(shù)為:
(10)
式中:α為形狀參數(shù),β為尺度參數(shù),α與β采用極大似然法估計(jì)參數(shù);τ(α)為Gamma函數(shù)。
(11)
(12)
(13)
H(x)=q+(1-q)G(x)
(14)
(15)
(16)
式中:q表示降雨量為0的概率;G(x)為在該時間段小于降雨x的概率。
將累計(jì)概率H(x)轉(zhuǎn)換成標(biāo)準(zhǔn)正態(tài)分布函數(shù),計(jì)算待測站點(diǎn)的標(biāo)準(zhǔn)降水指數(shù)SPI值。
式中:co=2.515 517,c1=0.802 853,c2=0.010 328,d1=1.432 788,d2=0.189 269,d3=0.001 308。
由于各個因子的數(shù)值區(qū)間處于不同的數(shù)量級,歸一化可以將數(shù)據(jù)標(biāo)準(zhǔn)化到[0,1]之間防止某些指標(biāo)被忽視,影響數(shù)據(jù)分析的結(jié)果。歸一化的計(jì)算方法如下:
(17)
式中:x*為輸入樣本歸一化后的值,x表示原變量序列中的某個值;xmax和xmin分別為變量中的最大值和最小值。
隨機(jī)森林算法是一種常用的機(jī)器學(xué)習(xí)算法,能夠很好地解決回歸和分類問題,它采用自助采樣的方法生成眾多并行式的分類器,多個分類器的結(jié)果通過“少數(shù)服從多數(shù)”的原則來確定最終的決策結(jié)果。由于每一個決策樹互不干擾,所以在算法訓(xùn)練時可以高度并行化,隨機(jī)選擇決策樹節(jié)點(diǎn)對特征進(jìn)行劃分可以有效地對高維數(shù)據(jù)進(jìn)行降維訓(xùn)練。隨機(jī)森林算法的基本步驟如下:
(1) 從訓(xùn)練數(shù)據(jù)集中隨機(jī)選出M個樣本,然后放回,進(jìn)行N次取樣,每一次取樣生成一個訓(xùn)練集,得到N個訓(xùn)練集。M為設(shè)定的訓(xùn)練集中的樣本數(shù)量,N為設(shè)定的訓(xùn)練集數(shù)量。
(2) 對于每一個訓(xùn)練集,訓(xùn)練一個決策樹模型。
(3) 每一個決策樹模型持續(xù)分裂,直到該節(jié)點(diǎn)的所有訓(xùn)練樣例都屬于同一類。在分裂的過程中保留決策樹的完整性,不對決策樹進(jìn)行剪枝操作。
(4) 生成的n棵決策樹組成隨機(jī)森林,按多棵樹分類器投票決定每個因子最終的權(quán)重大小。
LSTM能夠保存長時間降雨序列的歷史信息,LSTM中加入多頭注意機(jī)制強(qiáng)化了模型對于降雨關(guān)鍵信息的敏感程度。SRF結(jié)構(gòu)如圖4所示。
圖4 SRF網(wǎng)絡(luò)結(jié)構(gòu)
輸入降雨序列W=(w1,w2,…,wn),輸出預(yù)測序列Y=(y1,y2,…,yn)。將篩選得到的因子輸入SRF網(wǎng)絡(luò)中,LSTM的輸出作為下一層Attention的輸入,經(jīng)過LSTM層得到的向量hn與多頭注意力機(jī)制形成的向量mt融合形成新的加權(quán)向量S,γ、δ作為網(wǎng)絡(luò)中的兩個參數(shù),在模型訓(xùn)練中自動學(xué)習(xí)。融合公式如下:
S=γ*hn+δ*mt
(18)
為了避免訓(xùn)練過擬合,本文設(shè)置學(xué)習(xí)率為0.1,droupout率為0.5,最大迭代次數(shù)設(shè)置為5 000,設(shè)定h=9,即進(jìn)行9次多頭注意力計(jì)算。
深度神經(jīng)網(wǎng)絡(luò)又被稱為“黑盒”模型,復(fù)雜的網(wǎng)絡(luò)構(gòu)成和隱含層的多樣性使得網(wǎng)絡(luò)內(nèi)部結(jié)構(gòu)與模型輸出之間的關(guān)系難以建立。循環(huán)神經(jīng)網(wǎng)絡(luò)中加入注意力可以有效提高對于重要因子的關(guān)注能力,因子輸入網(wǎng)絡(luò)后,隱含層提取因子中的降雨信息并不斷更新神經(jīng)元存儲的有效信息,因子權(quán)重變化的可視化表達(dá)展示了網(wǎng)絡(luò)對于特征的動態(tài)學(xué)習(xí)能力,可以觀察到不同權(quán)重的因子對于結(jié)果的影響,當(dāng)高權(quán)重的輸入因子對于輸出的結(jié)果具有決定性作用時,則一定程度上認(rèn)為整個模型的決策是合理的,幫助判斷和理解模型決策結(jié)果的有效性。
在模式對比階段,評估所提模型預(yù)測降雨能力優(yōu)劣的判定標(biāo)準(zhǔn)主要考慮兩個方面:預(yù)測量級精度和預(yù)報(bào)概率精度,預(yù)測量級精度主要考慮均方誤差MSE和絕對誤差MAE,誤差小可以體現(xiàn)模型在預(yù)測量級上的準(zhǔn)確性,其計(jì)算方法如下:
(19)
(20)
預(yù)報(bào)概率精度主要考慮TS,中國氣象局規(guī)定,TS是短期降雨預(yù)報(bào)能力的計(jì)算方法之一。預(yù)報(bào)概率較高可以體現(xiàn)模型在分類上具有較高的準(zhǔn)確性。TS用于表示正確預(yù)測的樣本比例,包括準(zhǔn)確預(yù)測降雨量或無降雨量。其計(jì)算方法如下:
(21)
式中:N1表示預(yù)測正確降雨量的樣本數(shù);N2表示預(yù)測無降雨的正確樣本數(shù);N3表示預(yù)測無降雨但實(shí)際降雨的樣本數(shù);N4表示預(yù)測降雨但實(shí)際上沒有降雨的樣本數(shù)。Acc用于表示正確預(yù)測強(qiáng)降雨樣本的比例,是評估模型強(qiáng)降雨預(yù)測能力的重要指標(biāo),N5表示預(yù)測強(qiáng)降雨正確的樣本數(shù),N6表示預(yù)測無強(qiáng)降雨但實(shí)際有強(qiáng)降雨的樣本數(shù)。Acc計(jì)算方法如下:
(22)
本文算法實(shí)現(xiàn)在Pycharm平臺上完成,計(jì)算機(jī)CPU為Intel i7- 8750H,內(nèi)存為16 GB。
本文實(shí)驗(yàn)數(shù)據(jù)包括中國氣象局發(fā)布的2015年至2017年地面填圖數(shù)據(jù),該文本數(shù)據(jù)集按照氣象站點(diǎn)排列,可以按照地區(qū)編號提取數(shù)據(jù)。在比較準(zhǔn)確率時使用ECMWF(European Centre for Medium-range Weather Forecasts)和JAPAN數(shù)值模式2017年發(fā)布的逐3 h降雨預(yù)報(bào)數(shù)據(jù)。這種數(shù)據(jù)是按照經(jīng)緯度排列的格點(diǎn)式文本數(shù)據(jù),可以根據(jù)經(jīng)緯度提取相應(yīng)地區(qū)的降雨預(yù)報(bào)值。實(shí)驗(yàn)選擇全國92個大型氣象站點(diǎn)作為預(yù)報(bào)對象,這92個地區(qū)均有地面氣象觀測站和雷達(dá)探空站。
數(shù)據(jù)集輸入到隨機(jī)森林中計(jì)算各氣象因子的權(quán)重大小,在單個決策樹模型進(jìn)行分裂時,采用基尼指數(shù)選擇最好的特征進(jìn)行分裂?;嶂笖?shù)的計(jì)算公式為:
(23)
式中:訓(xùn)練樣本特征的個數(shù)為a,分為K個類,樣本點(diǎn)屬于第k類的概率為pk,實(shí)驗(yàn)設(shè)置a=12,K=2。因子篩選個數(shù)根據(jù)模型訓(xùn)練結(jié)果進(jìn)行動態(tài)擇優(yōu),實(shí)驗(yàn)選出的9個因子和各因子對于降雨的平均權(quán)重如表2所示。
表2 模型輸入的氣象因子和權(quán)重
輸入因子權(quán)重在網(wǎng)絡(luò)中的動態(tài)變化解釋了模型的迭代學(xué)習(xí)能力,實(shí)驗(yàn)使用熱力圖對網(wǎng)絡(luò)中因子的參數(shù)變化進(jìn)行可視化實(shí)現(xiàn)。圖5(a)至圖5(f)為連續(xù)六個時刻的因子權(quán)重變化圖,橫坐標(biāo)f1,f2,…,f9為輸入模型的因子,縱坐標(biāo)t,t-1,…,t-9為歷史時刻。色塊顏色深淺表示因子權(quán)重大小。因子對于降雨影響程度越大,則色塊顏色越深。白色代表權(quán)重影響最小,黑色代表權(quán)重影響最大。
(a) (b)
(c) (d)
(e) (f)圖5 因子權(quán)重可視化
可以看出網(wǎng)絡(luò)在動態(tài)訓(xùn)練時因子的注意力權(quán)重與使用隨機(jī)森林算法篩選因子時計(jì)算的大小順序一致,符合模型的預(yù)期結(jié)果。當(dāng)使用權(quán)重擦除法將權(quán)重大小刪去其中一個因子進(jìn)行訓(xùn)練時,預(yù)報(bào)準(zhǔn)確率下降的程度與權(quán)重大小呈正相關(guān)。因子權(quán)重的可視化展示了模型訓(xùn)練時參數(shù)的動態(tài)變化過程,增加了模型透明度,提高SRF的可理解性。
本文將所提模型SRF與不帶多頭注意力機(jī)制的LSTM模型用相同的數(shù)據(jù)集進(jìn)行訓(xùn)練,LSTM層使用相同的結(jié)構(gòu)和參數(shù)設(shè)置。SRF與LSTM的網(wǎng)絡(luò)損失值與迭代次數(shù)的關(guān)系如圖6所示。當(dāng)?shù)螖?shù)達(dá)到5 000時,SRF和LSTM的預(yù)測結(jié)果趨于穩(wěn)定,帶有多頭注意力機(jī)制的SRF比LSTM有更低的損失值,說明SRF的降雨預(yù)測準(zhǔn)確率更高,驗(yàn)證了多頭注意力機(jī)制能夠強(qiáng)化LSTM網(wǎng)絡(luò)對于降雨特性的學(xué)習(xí)能力,有效提升模型的預(yù)測精度。
圖6 SRF降雨預(yù)測
為了驗(yàn)證模型的泛化能力,SRF在全國92個氣象站點(diǎn)進(jìn)行了實(shí)驗(yàn),2015年和2016年數(shù)據(jù)集作為訓(xùn)練集,2017年數(shù)據(jù)集作為測試集。將統(tǒng)計(jì)模型中的自回歸移動平均模型(ARIMA),機(jī)器學(xué)習(xí)模型中的長短期記憶網(wǎng)絡(luò)(LSTM)、支持向量機(jī)(SVM)、多層感知器(MLP)作為對比模型,中國氣象局常用的業(yè)務(wù)預(yù)報(bào)模型ECMWF、JAPAN也作為對比模型來驗(yàn)證方法的有效性,各模型的結(jié)果見表3。
表3 模型對比
SRF降雨預(yù)測的準(zhǔn)確率為86%,優(yōu)于其他方法。SRF在短臨強(qiáng)降雨預(yù)報(bào)上比效果最好的氣象業(yè)務(wù)模型ECMWF準(zhǔn)確率提高了0.09。結(jié)果表明,通過引用相關(guān)因子和多頭注意力機(jī)制,SRF對比傳統(tǒng)的機(jī)器學(xué)習(xí)模型和氣象業(yè)務(wù)預(yù)報(bào)模型在預(yù)測量級精度和預(yù)報(bào)概率精度上均有一定提高。
為了準(zhǔn)確預(yù)測短臨降雨,提高短臨強(qiáng)降雨的預(yù)測精度,本文提出一種基于注意力機(jī)制的短臨降雨預(yù)報(bào)方法SRF,基于氣象局?jǐn)?shù)據(jù),利用隨機(jī)森林算法計(jì)算氣象因子和標(biāo)準(zhǔn)化降雨指數(shù)與降雨的權(quán)重,動態(tài)篩選出影響降雨最密切的因子作為輸入,建立多頭注意力機(jī)制的長短期記憶網(wǎng)絡(luò)SRF來學(xué)習(xí)因子中的降雨信息并根據(jù)重要程度進(jìn)行加權(quán)處理,預(yù)測得到目標(biāo)站點(diǎn)未來3 h內(nèi)的降雨量。結(jié)果表明,本文方法可以有效提高短臨降雨的預(yù)測能力。未來會對雨量進(jìn)行分級預(yù)報(bào),針對性地提高不同量級降雨的預(yù)報(bào)準(zhǔn)確度。