苗開超,韓婷婷,王傳輝,章 軍,姚葉青,周建平
1(安徽省氣象局,合肥 230031)
2(安徽大學,合肥 230039)
濃霧作為一種災害性天氣現象,近年來受到越來越廣泛的關注.霧導致的視程障礙對交通的安全帶來嚴重影響[1-3].近年來,隨著經濟的發(fā)展和全球氣候變暖加劇,中國區(qū)域大氣能見度整體呈下降趨勢,其中東部地區(qū)下降趨勢最為明顯[4-7].低能見度天氣的增多成為誘發(fā)交通事故的主要氣象因素,如我國2017年道路交通事故萬車死亡人數為2.06 人[8],成為危害人身安全的重要因素之一.準確預報出大霧的生成、發(fā)展和消亡能有效減少交通事故的發(fā)生.為此,交通和氣象部門開展了廣泛合作,以減少低能見度因素導致交通事故發(fā)生.周須文等[9]應用天氣學原理和數理統(tǒng)計方法對低能見度霧的生消機理進行研究,建立能見度與氣象因子的回歸方程,從而對霧的等級進行預報;吳彬貴等[10]、黃政等[11]基于數值預報模式數據,結合逆向傳播(BP)神經網絡或具體的要素閾值來判別霧是否出現,在霧的預報方面做出了積極的探索.也有學者在對大霧中平流霧氣象要素特征分析的基礎上,給出了預報思路,在實際應用中取得較好的效果[12].在已有的大霧預報研究中,大多為短期預報(未來24 小時大霧是否發(fā)生),空報和漏報率較高.因此,大霧臨近預報顯得尤為重要,目前關于大霧的臨近預報的研究相對較少.
隨著人工智能的興起,一些深度學習算法相繼出現[13-15],基于深度學習的短期天氣預測已成為一種新的趨勢[16].深度學習算法中循環(huán)神經網絡(RNN)是一種適合序列數據的模型[17],能夠提取時間序列數據中的有效信息,已廣泛應用于股票預測、語音識別等領域[18,19].長短期記憶網絡(LSTM)[20]是一種特殊的循環(huán)神經網絡(RNN),適合處理和預測時間序列相對較長的重要事件.與RNN 相比,它解決了RNN 訓練過程中梯度爆炸和梯度消失的問題,可以學習長期的依賴信息.近年來LSTM 在各行業(yè)中得到較為廣泛的應用[21-23].本文提出了一種基于LSTM的網絡模型,該模型通過自動提取氣象要素歷史數據中的相關信息,預報未來4 小時內逐小時能見度的變化,是對以往利用經驗預報的有效補充.
建模數據選取安徽省81個國家站2015年10月1日到2017年6月1日逐時地面氣象數據.要素包括氣壓、氣溫、露點溫度、降水量、風速、風向和能見度.
LSTM 是一種RNN神經網絡,每個LSTM 單元增加了三個門,即輸入門,忘記門和輸出門.與RNN 相比,解決了RNN 訓練過程中梯度爆炸和梯度消失的問題,可以學習長期的依賴信息.對于時間序列xt(t=1,2,3,4,5,…),前一個LSTM 單元的輸出結合當前時間點數據作為輸入,每個時間步都有一個輸出.同時,存儲器單元產生當前時間步長的狀態(tài)向量.圖1中展示出了一個LSTM 單元的存儲塊,其中灰色圓圈(中間大圓圈)表示存儲器單元,存儲了LSTM的狀態(tài)信息,圖1中黑色實心圓(小圓圈)表示乘法,空心圓圈表示激活函數.LSTM 工作的具體過程遵循以下公式:
圖1 LSTM 記憶單元示意圖
其中,it,ft,ot分別表示輸入門,忘記門和輸出門的輸出,Ct表示當前Cell的狀態(tài),ht是Cell的輸出,wi,wf和wo是輸入門,遺忘門和輸出門的權重,在每個時間步驟共享.H表示當前輸入向量xt和前一時刻單位的輸出向量ht-1的疊加H=[xt,ht-1].輸入門用于控制保留信息,防止無用信息進入存儲器單元.忘記門用于決定從上一步驟中的單元狀態(tài)丟棄信息.忘記門和輸入門一起來更新存儲器單元的狀態(tài).
本文基于LSTM模型提出了一種大霧預報框架,基本原理如圖2所示.每小時返回的氣象要素數據根據需要被轉化成不同長度的時間序列,并將其作為網絡的輸入時間序列X,每小時返回的氣象要素數據被視為一個時間步,表示為xt,網絡的輸出是下一個時間序列中霧的類別標簽.LSTM 工作的具體過程可歸納為以下步驟:
圖2 基于LSTM的大霧預報模型
1)首先,將氣象要素時間序列X作為輸入進入輸入層.
2)LSTM 接收輸入向量,結合Cell 在上一時間點的輸出,當t=1時,隱藏層狀態(tài)為0.LSTM的輸入門和忘記門分別由Sigmoid 函數值決定要輸入的信息,進入存儲單元時存儲單元應該忘記哪些信息.輸入門和隱藏門的輸出更新隱藏層的狀態(tài),根據單元狀態(tài)決定輸出信息,最終Cell 輸出當前單元.
3)然后,將下一時間點的氣象要素xt和前一時間點的單元的輸出ht-1輸入LSTM,并重復上述過程.
4)最后,將LSTM的最后時間步的輸出輸入到全連接層.全連接層進一步提取氣象要素時間序列的特征,最終輸出預測大霧的類別的標簽.
通過將逐時氣象要素數據處理成時間序列以構建數據集,從2015年10月到2016年12年的數據中隨機選出1500個正樣本和1500個負樣本作為驗證集,使用剩余數據構建訓練集.利用2 0 1 7年1月到2017年6月的數據構建測試集.具體制作時間序列的方式為:預測未來小時霧是否存在,先選擇前一段時間的氣象要素數據構建時間序列,使用下一小時的能見度作為訓練標簽.通常大家關心的是有霧狀態(tài),因此標記時間序列的標準是當能見度值小于1000 米時,標記為有霧,否則,則標記為無霧.例如,第1 至第4個小時為一個時間序列,第5個小時的能見度值則為標簽.第2 至第5個小時作為時間序列,用第6 各小時能見度值構建標簽.在預測未來1-2 小時能見度時,選擇的時間序列長度為2,預測3-4 小時能見度時選擇的時間序列長度為4.訓練樣本和測試樣本的數量見表1.在樣本中,有霧的樣本相對較少,這就造成了正負樣本比例嚴重不平衡,其比例約為1:20.本文使用隨機過采樣的方法對訓練正樣本進行數據擴充,使最終正負樣本比例為1:2 (在本文中,正樣本為有霧,負樣本為無霧.).測試集按照真實情況下取出的正負樣本的數量.當預測未來1 到2 小時是否有霧時我們選擇的時間序列長度2.預測3 到4 小時選擇時間序列的長度為4.
表1 訓練集、驗證集和測試集正負樣本數量
由于各氣象要素因子數值區(qū)間的差異性較大,在數據使用前對原始數據做歸一化處理,將各個因子縮放到一個尺度,公式如下:
式中,為某類氣象因子歸一化后的數據.x為每一類氣象因子原始數據.xmax為每一類氣象因子的最大值,xmin為每一類氣象因子的最小值.
為了評估訓練模型的性能,本文選用precision,F1-score,accuracy和TS-Score作為評價指標[24,25],指標公式如下:
其中,TP是正樣本被正確分類的樣本數,TN是負樣本分類正確的樣本數量;recall是指正樣本被正確分類數量與總正樣本的比率;FN指正樣本被分類為負樣本的數量;FP是負樣本被分類為正樣本數量;TS-Score則是一種氣象部門廣泛用來評價預測效果的指標.
本文使用了交叉熵做為霧預測的目標函數,目標函數如下:
式中,yi代表真實標簽,fi(x)代表全連接層的輸出值,i代表全連接層輸出向量的第i個值.本文利用長度為2的時間序列做未來1-2 小時大霧預報過程中,使用LSTM的層數為3 層,Cell的數目為50個,全連接層數為2 層,2 層全連接的卷積核數分別為100.當使用長度為4的時間序列預測未來3-4 小時大霧是否存在時,LSTM的層數選擇1 層,Cell的數目選擇70個,全連接層為1 層,節(jié)點數目為200個.利用上述數據集對模型進行訓練,loss曲線如圖3所示.
圖3 訓練loss 與accuracy 曲線(橫坐標單位:100)
設計的實驗應用于Intel i7 3.4 Ghz*8,16 GB 內存和英偉達GTX1080.Ubuntu16.04 操作系統(tǒng),網絡框架是基于Tensorflow1.4.0[26].
表2 給出了LSTM 與CNN 以及傳統(tǒng)的SVM、KNN 對未來1-4 小時的大霧預測結果的對比.從表2中可以看出在對未來1-4 小時的預測,LSTM 在四種評估標準的結果優(yōu)于SVM、KNN 以及CNN 方法的預測結果.用該方法對未來4 小時預測的TS-score 分別為61%,55%,36% 和31%.由此可以發(fā)現基于LSTM的預測模型相比于CNN 以及傳統(tǒng)的分類模型SVM、KNN,在預測精度上有明顯優(yōu)勢.
表2 LSTM、SVM、KNN 和CNN 對未來4 小時大霧預測結果的各項指標對比
本文基于LSTM網絡提出了一個新的臨近大霧預報框架,與傳統(tǒng)的大霧預報方法不同,該框架基于氣象要素時間序列數據進行建模.利用安徽省國家地面氣象觀測站氣象要素轉換的時間序列數據,該框架能夠有效地預測未來1-4 小時的大霧生成情況.對比分析發(fā)現,和當前比較常見的CNN、SVM、KNN 等其他機器學習方法相比較,本文提出的預測框架能夠達到更好的預測效果.