王瑋 王文發(fā) 張哲
摘 要:文章首先針對延安市市監(jiān)測站單站點觀測數據與PM2.5的關系,從中抽取了影響PM2.5較為明顯的14組特征數據。依據所抽取的數據,利用LSTM深度神經網絡的一種變體GRU建立了未來數小時的PM2.5濃度預測模型,通過仿真實驗,該模型對PM2.5預測有較高的一致性,可以較好地滿足日常預測業(yè)務需求。
關鍵詞:PM2.5濃度預測;LSTM;GRU;機器學習;循環(huán)神經網絡
近年來,我國很多地方出現了嚴重霧霾天氣,影響著人們生活的各個方面,最嚴重的危害還是對人體健康的危害。PM2.5作為城市環(huán)境質量惡化的主要污染物之一,越來越受到民眾的關注,因此,及時準確地預測PM2.5濃度,是當前環(huán)境質量研究領域的熱點問題之一。本文以長短期記憶網絡(Long Short-Term Memory,LSTM)的一種變體,門控循環(huán)單元(Gated Recurrent Unit,GRU),作為循環(huán)層來建立模型,預測PM2.5濃度。
1 數據分析
1.1 準備數據
在本文中,將使用一個PM2.5濃度時間序列數據集,它是由陜西省延安市市監(jiān)測站(1928A,(109.4824,36.5767))記錄的2016年9月到2018年9月的空氣質量監(jiān)測逐時數據。數據內容包括PM2.5,SO2,NO2,CO,O3和PM10 6種污染物的當前數值以及這些污染物在不同時間長度的滑動平均值,共16 965條數據。
1.2 特征分析
圖1是PM2.5與其他5種空氣污染物(SO2、NO2、CO、O3和PM10)之間的相關關系散點圖,使用最小二乘法對數據進行直線擬合。由圖可以看出PM2.5濃度與O3呈負相關,與其他4種污染物均呈正相關。
為了考量各特征之間的相關程度,我們計算皮爾森相關系數,相關系數越接近1或﹣1,相關度越強,相關系數越接近0,相關度越弱,計算公式如下:
其中:Var(X)是X的方差,Var(Y)是Y的方差,Cov(X,Y)是X和Y的協方差。PM2.5濃度與其他所有特征之間的皮爾森相關系數如表1所示,可以看出,PM2.5濃度與其他特征之間都有一定的相關性,其中PM2.5與CO相關性最強,與O3_8_24相關性最弱。
經過上述分析,可以得到PM2.5濃度變化是在多種因素綜合影響下的結果,因此,我們使用上述14種特征數據建立未來數小時PM2.5濃度預測模型。
2 基于GRU的PM2.5濃度預測模型
循環(huán)神經網絡(Recurrent Neural Network,RNN)是一類目前常用來處理序列數據的神經網絡,它將過去的數據與未來的數據聯系起來,更適用于時間序列分析[1]。但是RNN會遇到一個很大的問題,叫做梯度消失問題(Vanishing Gradient Problem),從理論上來說,RNN在某一時間應該能記住許多時間步之前的信息,但實際上它是不能形成這種長期依賴的[2]。
由Hochreiter和Schmidhuber[3]在1997年設計的LSTM算法就是為解決這個問題而開發(fā)的。LSTM在時間序列上有著強大的預測能力,如語音識別[4-5]、自動樂曲譜寫[6]和自然語言學習[7]等,且在空氣質量研究領域,也有基于LSTM的空氣污染物預測的先例[8-9]。它通過增加一個用來保存過去信息的Cell以便后面使用,從而防止較早的信號在處理過程中逐漸消失,并通過精心設計的一種“門”(gate)結構來實現遺忘或記憶功能,一個LSTM單元有這樣的3個門,分別是遺忘門(forget gate)、輸入門(input gate)和輸出門(output gate)[10]。
2.1 門控循環(huán)單元
LSTM相比RNN具備了長期記憶功能,可控記憶能力,但是網絡結構復雜,擁有多個門,對效率有所影響,為此,Chung等[11]在2014年開發(fā)了GRU。GRU是LSTM的一種變體,與LSTM相比,GRU只有兩個門且沒有細胞狀態(tài),簡化了LSTM的結構,圖2是本文使用的GRU網絡模型,它將遺忘門和輸入門合成一個單一的更新門(update gate),作用是決定上一時間步隱藏狀態(tài)中有多少信息傳遞到當前隱藏狀態(tài)中。GRU中還有一個重置門(reset gate),計算操作與更新門類似,只是權重矩陣不同,作用是決定上一時間步隱藏狀態(tài)的多少信息是需要遺忘的。同時GRU還混合了細胞狀態(tài)和隱藏狀態(tài),以及其他一些改動,使得GRU擁有更少的參數,因此,運行的計算代價更低。
在GRU網絡模型中,xt,ht分別表示t時刻的GRU網絡的輸入和輸出,其中ht由下列公式迭代計算:
式中,zt,rt分別為更新門和重置門的輸出,Whz,Wxz分別為t-1時刻輸出和t時刻輸入到更新門的權重矩陣,Whr、Wxz分別為t-1時刻輸出和t時刻輸入到重置門的權重矩陣,這兩個門的結果都經過一個sigmoid函數,值域為[0,1];,ht分別為候選隱藏狀態(tài)和隱藏狀態(tài),它們分別控制上一時刻隱藏狀態(tài)ht-1有多少信息被遺忘和有多少信息被保存,Whh,Wxh分別為t-1時刻輸出和t時刻輸入到候選隱藏狀態(tài)的權重矩陣,候選隱藏狀態(tài)的結果經過一個tanh函數;bz,br和bh表示更新門、重置門和候選隱藏狀態(tài)的偏置量。
2.2 PM2.5濃度預測模型
為了實現PM2.5濃度的預測,本文設計了如圖3所示的算法流程,首先將PM2.5濃度數據集以7∶2∶1的比例按照時間順序劃分為訓練集、驗證集和測試集,然后使用訓練集和驗證集來訓練GRU網絡預測模型,最后使用測試集對訓練得到的模型進行測試。圖4展示了本文所建立的GRU網絡預測模型,該網絡隱藏層包含了兩個GRU層和一個Dense Layer層。在t時刻,網絡的輸入為采集的歷史數據xt,輸出為未來數小時的PM2.5濃度預測值yt。經過網絡隱藏層后可以計算出該時刻隱藏層輸出htD。網絡的輸出為:
式中,activation()為激活函數,通常使用雙曲正切函數tanh,Wyh為隱藏層與輸出層之間的權重矩陣,b為偏置量。在本文中,采用當前時刻之前的24小時的歷史數據作為GRU網絡的輸入進行模型訓練和PM2.5濃度預測,歷史數據經過GRU網絡循環(huán)迭代計算后更新隱藏狀態(tài),進而根據歷史數據對未來數小時的PM2.5濃度實現預測。
上述GRU網絡有兩個GRU層,第一個GRU層以歷史數據xt為輸入,輸出隱藏狀態(tài)htG1,第二個GRU層以上一個GRU層的輸出htG1作為輸入,輸出為htG2。GRU層輸出與一個全鏈接的稠密層(Dense Layer)相連接,Dense Layer的每一個神經元連接到上一層的所有神經元輸出,通過Dense Layer,GRU的輸出信息與一個矩陣相乘并增加偏置量后實現預測數據的輸出,計算過程如下:
式中,WD為GRU層與Dense Layer之間的權重矩陣,htG2為GRU層的輸出,htD為Dense Layer的輸出,b為偏置量。
2.3 模型評價指標
本文采用預測評價指標為均方根誤差RMSE、平均絕對誤差MAE和確定系數R2對預測結果進行評價,其中RMSE和MAE越小,模型對于真實值擬合的偏差越小,結果越準確;確定系數R2越接近1,代表擬合優(yōu)度越大,模型擬合數據能力效果越好,計算表達式如下:
其中,N為觀測值和預測值的對比次數,為模型預測值,yi為觀測值,為觀測值的平均值。
3 仿真實驗
3.1 模型訓練
根據時間順序,選擇數據集前11 876條數據作為訓練集,隨后的3 392條數據作為驗證集,剩下的1 696條數據作為測試集。由于數據中的每個時間序列位于不同范圍,故對每個時間序列分別做標準化,讓它們在相似的范圍內都取較小的值,具體方法是,將每個時間序列減去其平均值,然后除以其標準差。在模型訓練過程中,損失函數使用平均絕對誤差(MAE),模型訓練過程中采用RMSprop算法進行優(yōu)化,模型參數選擇上包括訓練次數(epoch)、學習率(Learning rate)、隱藏層節(jié)點數(hidden size)和正則化參數(dropout),本實驗是在Python編程環(huán)境下實現。
首先固定訓練次數epoch=100,進行學習率和隱藏層節(jié)點數調整,將兩層GRU層中的節(jié)點數以2為間隔從14開始逐步增加到40,學習率以0.000 1為間隔從0.000 1開始逐步增加到0.01,通過訓練得到最佳隱藏層節(jié)點數與學習率組合為(16,32,0.001)。epoch的大小會對模型的預測精度和運行效率造成較大影響,較大的epoch導致運行效率低并可能伴隨過擬合現象,較小的epoch會使模型訓練不充分出現欠擬合現象。圖5為GRU模型訓練過程中l(wèi)oss關于epoch的變化散點圖,根據loss變化曲線,選擇epoch=40。為了增加模型的泛化能力消除過擬合,本文使用循環(huán)dropout技術來降低過擬合,該技術將dropout應用于循環(huán)層內部而不是外部,系數為dropout=0.1。
3.2 仿真實驗與結果分析
為了檢驗模型的預測能力,將測試集輸入模型,圖6為模型根據過去24小時歷史數據預測未來1小時后PM2.5濃度,圖6(a)是測試集上的預測值和觀測值比較,圖6(b)為預測值與觀測值的線性擬合結果,兩者相關系數高達0.98,決定系數R2為0.96。從圖中可以看出預測值能較好地擬合觀測值,但存在實際值低的點位,預測值比較高。
繼續(xù)使用模型分別對未來1 h、2 h、3 h、4 h、5 h和10 h后PM2.5濃度進行預測,結果如表2所示,可以看到模型的預測能力在短期預測有著較高的準確率,但是隨著預測時間長度的增加預測能力持續(xù)降低,特別是當預測時長為10 h時,預測的準確率明顯下降,說明模型的長期預測能力不足。
4 結語
本文提出的基于GRU深度學習神經網絡模型的PM2.5濃度預測模型,通過仿真實驗,該模型能夠較好地擬合實際PM2.5濃度,可以滿足日常預測業(yè)務需求,驗證了所提方法的有效性,但是隨著預測時間的增長,模型的預測能力變差。因此,該模型更適合于短期PM2.5濃度的預測,對于PM2.5濃度的長期預測有待進一步研究。此外,該模型在訓練時只采用了延安市市監(jiān)測站單站點數據,對于模型在其他環(huán)境下的泛用性有待討論。
[參考文獻]
[1]TSENG V S,WU C W,FOURNIER-VIGER P,et al.Efficient algorithms for mining top-k high utility itemsets[J].IEEE Transactions on Knowledge and Data Engineering,2016(1):54-67.
[2]BENGIO Y,SIMARD P,FRASCONI P.Learning long term dependencies with gradient descent is difficult[J].IEEE Transactions on Neural Networks,1994(2):157-166.
[3]HOCHEREITER S,SCHMIDHUBER J.Long short-term memory [J].Neural Computation,1997(8):1735-1780.
[4]DAHL G E,ACERO A.Context-dependent pre-trained deep neural networks for large-vocabulary speech recognition[J].IEEE Transactions on Audio Speech & Language Processing,2011(1):30-42.
[5]HINTON G,DENG L,YU D,et al.Deep neural networks for acoustic modeling in speech recognition: the shared views of four research groups[J].IEEE Signal Processing Magazine,2012(6):82-97.
[6]ECK D,SCHMIDHUBER J.Learning the long-term structure of the blues[J].Lecture Notes in Computer Science,2002(2415):284-289.
[7]SUTSKEVER I,VINYALS O,LE Q V.Sequence to sequence learning with neural networks[J].Computer Science,2014(4):3104-3112.
[8]范竣翔,李琦,朱亞杰,等.基于RNN的空氣污染時空預報模型研究[J].測繪科學,2017(7):76-83,120.
[9]韓偉,吳艷蘭,任福.基于全連接和LSTM神經網絡的空氣污染物預測[J].地理信息世界,2018(3):34-40.
[10]GRAVES A.Long short-term memory[M].Heidelberg:Supervised Sequence Labelling with Recurrent Neural Networks,2012.
[11]CHUNG J,GULCEHRE C,CHO K,et al.Empirical evaluation of gated recurrent neural networks on sequence modeling[C].Kuching:Conference on Neural Information Processing Systems,2014.