韋惠紅, 李 劍, 張文言*, 雷建軍, 陳 璇
(1.武漢中心氣象臺, 武漢 430074; 2.湖北第二師范學院計算機學院, 武漢 430205)
PM2.5指的是空氣中直徑小于等于2.5 μm的固體顆粒,通常攜帶大量有毒有害物質,可以隨呼吸進入人體內部,對人體健康造成嚴重危害[1].PM2.5也是形成霧霾的重要組成部分,降低城市大氣能見度.國家對于PM2.5污染非常關注,2012年2月,國家環(huán)境保護部與國家質量監(jiān)督檢驗檢疫總局頒布的《環(huán)境空氣質量標準》(GB 3095—2012)增設了 PM2.5質量標準.近年來,范圍大、持續(xù)時間長的 PM2.5重污染事件,往往導致社會公眾負面輿論.因此,高效準確的PM2.5濃度預測對空氣污染防控具有重要的經濟、健康和社會意義.
PM2.5的形成機理非常復雜,通常認為工業(yè)生產、機動車尾氣、建筑施工、冬季取暖燒煤等排放是其主因[2-3].PM2.5顆粒還受到大氣系統(tǒng)運動的影響,既存在對外輸出,又存在周邊其他污染源的輸入,因此氣溫、風速、降水、相對濕度及冷空氣強度等氣象要素也會對PM2.5濃度產生重要影響[4].PM2.5濃度預測方法大致可以分為機理模型、統(tǒng)計學/機器學習和深度學習3類.1) 基于機理模型,通過綜合當地氣象、地理和工業(yè)等信息,對大氣污染物的形成和運動進行動力學建模實現對未來大氣污染狀況的預測[5].此類方法具備預測結果可解釋且精度較高的優(yōu)勢,但是模型復雜且數據獲得難度大,不具備普適性.2) 基于統(tǒng)計學/機器學習的模型,主要有隨機森林(RF)[6]、支持向量機(SVM)[7]和差分整合移動平均自回歸模型[8]等.此類方法具備具有底層的數學理論支撐,應用最為廣泛,但是由于特征提取能力有限,使用單一統(tǒng)計方法很難建立精度較高的預測模型.3) 深度學習模型,主流采用循環(huán)神經網絡(RNN)[9],具有很強的時序特征提取的能力,是當前研究的熱點,但是現有研究大多實現1 h至6 h的提前預報[10],有待繼續(xù)提升以滿足實際業(yè)務中24 h提前預報的需求.
在前人研究的基礎上,以堆疊(Stacking)集成策略,設計了由支持向量回歸(SVR)、卷積神經網絡(CNN)和門控循環(huán)網絡(GRU)組成的集成深度學習網絡(SVR-CNN-GRU).通過充分發(fā)揮SVR的非線性特征提取能力進行降維,再采用CNN的強化特征表達,最終利用GRU的時序記憶優(yōu)勢的處理流程,本模型有效改善了當前深度學習僅能預測最近若干小時PM2.5濃度的不足,實現了高精度、高魯棒性和高泛化性的 PM2.524小時提前預測,能為空氣污染防治工作提供決策支持.
使用的數據分為空氣質量數據和地面氣象數據兩大類,共計12個因子.其中逐小時空氣質量數據來自湖北省生態(tài)環(huán)境監(jiān)測中心站,因子為PM2.5、PM10、NO2、CO、O3、SO2和AQI.地面氣象數據來源中國氣象數據網CIMISS系統(tǒng)地面氣象站逐小時觀測資料,因子包括:溫度、氣壓、相對濕度、降水和平均風速.由于風向數據缺失比例較大,因此未采用.
為了提高預測精度,除武漢市外,還采集了武漢四周宜昌市、襄陽市、孝感市、荊州市、荊門市、黃岡市、黃石市、咸寧市、隨州市、鄂州市、仙桃市、潛江市和天門市等13市州自動觀測站數據.2015年1月1日1時至2020年4月10日23時,共計46 247條的每個市州逐小時數據.恩施自治州、十堰市和神龍架遠處湖北西南、西北角山區(qū),結合氣象條件分析,其空氣污染輸送到武漢的比例極低,因此未納入.
由于GRU等循環(huán)神經網絡要求完整的時序數據,因此需要對缺失數據進行處理.缺失數據處理可以分為先填補后訓練的兩階段模式[11-13];也有直接在訓練中填充的模式[14-15].由于已將缺失值較多的氣象因子剔除,樣本中僅存在少量缺失數據,采用三次樣條插值法對其填補,在不會產生顯著噪音的同時簡化了模型的結構,加快訓練的速度.
所有以上數據保存為長度為46 247,寬度為14×12=168的格式的數組,即每一條原始樣本由14個市州的12個因子共同組成.后續(xù)訓練中以此為基礎進行裁剪和拼接構成訓練用樣本.由于氣象相關因子有顯著的季節(jié)性周期性,因此已有類似研究中也有采用相鄰時間節(jié)點樣本進行差分的方式構建新因子[16].由于后續(xù)在卷積層會執(zhí)行類似的操作,因此未采用此編碼方式.
根據建立預測模型中樣本的時間序列結構不同,PM2.5小時濃度預測中有兩種主要方式,一種是向量到向量的模式,即每個樣本僅保存單個時間節(jié)點的信息,用其預報另一個時間節(jié)點的PM2.5濃度;另一種是序列到向量的模式,即基于若干時間節(jié)點信息預測未來某個時間節(jié)點的PM2.5濃度.由于后一種方式樣本擁有更豐富的信息,在結合能夠提取樣本內多個時間節(jié)點之間時序特征的技術后,訓練得到的模型往往具有更好的性能,并可被擴展為序列到對序列模式.因此基于RNN這種針對序列數據建模具備突出優(yōu)勢的技術[17],建立PM2.524 h預測模型.
傳統(tǒng)RNN存在短時記憶問題,即處理較長的序列時,往往只能理解有限長度內的信息,而對于較遠距離的有用信息往往不能很好的利用.HOCHREITER 等對其進行了改進,提出了長短期記憶(LSTM)神經網絡,通過引入門控機制解決短時記憶問題[18].CHO等通過將門控制單元由原來的3 個減至 2 個對LSTM 的結構做了簡化,提出了門控循環(huán)網絡(GRU)[19],研究證明GRU具有和LSTM相當的性能,并且由于少一個門,參數更少,相對容易訓練且可以防止過擬合.因此采用GRU作為時序特征提取的工具.
基于GRU的PM2.5濃度預測中,設樣本時間序列長度為S小時(通常S取值為8~24),則每個樣本的因子將達到168×S個,而高維因子會提高網絡訓練難度.在機器學習領域特征降維具有廣泛應用,最常見的方法有主成分分析法[20],通過對協(xié)方差矩陣進行特征分解提取主要成分,其本質是一種線性變化,而大氣系統(tǒng)是典型的非線性混沌系統(tǒng).自動編碼器(AutoEncode)能實現數據維度壓縮和特征表示,被廣泛應用于數據降維和去噪[21].然而AutoEncode是基于多層復雜結構的無監(jiān)督學習模型,因此其本身的訓練也存在難度.支持向量機是統(tǒng)計學中一種有效的監(jiān)督分類和回歸方法,在解決非線性及高維模式識別問題中表現出特有的優(yōu)勢,并且具有良好的泛化能力[22].在各種分類和回歸問題中,SVM與深度神經網絡的融合已經被證實是一種有效的手段[23-24].SVM長于常規(guī)特征提取,弱在時間序列特征表達,PM2.5預測模型中將其作為第一層,僅用于特征降維,流程如圖1所示.
圖1 SVR降維流程Fig.1 Flow chart of SVR dimension reduction
圖1中,t表示待預測目標Y(t)的時間索引;H表示提前多少小時預測,固定設為24;S為樣本的時間序列長度;X為單小時原始樣本,N為其因子數,因此無特征降維的樣本總因子數為S×N.SVR(h)為預先訓練好的向量到向量形式的SVR模型,實現對hh后的PM2.5數值的回歸預測,因此對于序列長度為S的時序樣本,需要建立S個不同預測步長的SVR模型,將每個模型預測結果按照時序拼接組成由S個因子的新樣本f(t).
SVR降維的思想是訓練一系列不同步長的SVR模型,基于不同時間節(jié)點的信息對同一個目標節(jié)點進行預測,然后將獲得的全部預測結果按原時間索引順序排列.其目的是利用SVR提取非線性特征,并將維度壓縮到原來的1/N;新樣本內全部因子均被視作對目標預測值的投票,由于具有同屬性、同量綱的特性,在此基礎上堆疊神經網絡對投票聚合模式進行訓練將非常迅速和有效.
f(t)中單個因子缺乏時間序列信息,且N維因子被極限壓縮至1維,會造成有價值的特征丟失.CNN由于具有強大的特征表達能力,被廣泛應用于機器視覺、語音識別和自然語言處理等領域,一維CNN還可以有效的處理時間序列預測問題[25].采用多核一維卷積層,通過合適的卷積核大小以及步長提取相鄰因子之間的時間特征,并通過多核將樣本映射到更高維空間,以充分提取被SVR過濾的部分有價值信息.
采用兩級結構的堆疊法(Stacking)組織深度學習網絡結構及其訓練方式[26].將原始樣本集按照比率,隨機劃分為兩個相互獨立的子集;第一個子集僅用于堆疊結構中的多步長SVR模型訓練;第二個子集則通過拼接構成時序長度為S的時序樣本,用于第二級CNN-GRU網絡訓練;第二級網絡為由SVR模型層、一維卷積層、GRU層和全連接層等組成的深度神經網絡,具體結構如圖2所示.
圖2 SVR-CNN-GRU網絡結構Fig.2 The Structure of SVR-CNN-GRU network
為提取特征信息,受到差分編碼的啟發(fā),對經SVR模型層降維為S×1結構二級樣本采用長度為2的一維核執(zhí)行兩兩相鄰時間節(jié)點之間的一維卷積;為避免高頻噪音,采用不填充的方式,因此時間索引減少為S-1;利用40個一維核,線性激活,最終獲得40×(S-1)結構的2維時序數據.
同圖像處理的方法不同,卷積層后未設置池化層.這是因為池化層的主要作用是下采樣、降維、實現非線性、擴大感知野和實現不變性,而采用卷積層的目的是對已被高度降的維數據擴充,并且只關注兩兩相鄰時間節(jié)點之間的關系,而非線性化工作則由后續(xù)的其他層的激活函數實現.
后續(xù)連續(xù)采用兩個隱藏單元數為20的GRU層進一步提取整個S-1長度時間序列的整體特征,其中GRU1用于初步提取時序特征,輸出20×(S-1)結構的二維時序結果;GRU2則深入處理時序特征,輸出20×1結構不含時序索引的結果.為了將GRU提取的特征進一步整合,之后連續(xù)采用了3個全連接層,其中第一層神經元為64個,采用Relu激活函數,且Dropout=0.1;第二層神經元為16個,采用Relu激活函數,無Dropout;最后一層作為輸出層,由于采用序列到向量的回歸預測模式,因此僅保留1神經元且無激活函數.
由于采用的氣象和空氣質量因子均為連續(xù)型數值變量,且不同因子之間數值大小差異巨大,因此對其執(zhí)行z-score 標準化方法標準化,待回歸預測后再逆操作恢復原量綱.
為了避免兩級網絡之間數據集相互的污染,在截取2020/4/2日16∶00∶00至2020/4/10 23∶00∶00共200條樣本作為繪制預測對比圖以外,其他全部46 047條原始樣本隨機劃分為兩個無交集子集.由于SVR模型的精度直接決定了后續(xù)神經網絡的訓練效果,因此經多次實驗調整,選擇70%原始樣本訓練SVR,其中60%作為訓練集,10%作為校驗集.剩余30%用于訓練深度神經網絡的樣本中,其中10%用于訓練深度神經網絡,其余20%作為測試集.同一般深度神經網絡中訓練集的規(guī)模是測試集3至4倍不同,訓練集僅為測試集一半,這是由于為了橫向同其他算法比較,測試集占總體樣本的比率至少要達到20%,并且由于已經過大樣本的SVR訓練和優(yōu)化,深度神經網絡訓練難度大幅度降低,訓練少量的樣本也可以獲得很好的效果,此條件下還能更好的驗證模型的泛化能力.
第一級SVR,基于Scikit-learn工具箱,采用高斯核eplison-SVR,其中不敏感損失系數eplison控制著回歸函數對樣本數據的不敏感區(qū)域的寬度,影響支持向量的數目,其值和樣本噪聲有密切關系;懲罰系數C反映了算法對超出eplison管道的樣本數據的懲罰程度,其值影響模型的復雜性和穩(wěn)定性;gamma對低維的樣本進行高緯度映射,也會影響泛化能力.經過網格化和三折交叉驗證,最終選擇的參數為:C=50,eplison=0.05,gamma為默認值’scale’.其中,gamma為默認值時會自動根據變量的方差自動調整大小,能夠提供更好的泛化性.
第二級深度神經網絡的運行軟件環(huán)境為Window 10操作系統(tǒng),Tensorflow 2.4版本,Python 3.8以及Cuda 11.1;硬件環(huán)境為Nvidia 1650 GPU,Intel i5 3470 CPU和32 G內存.神經網絡的內部參數如表1所示.
表1 第二級深度神經網絡訓練參數
為了驗證和分析時間序列長度對預測的影響,分別訓練了長度為8,16和24的三種時序樣本模型;由于全連接層1規(guī)模較大,為了避免過耦合,經實驗校正,選擇Dropout比率為0.1;Adam優(yōu)化器是對隨機梯度下降的擴展,可以更有效地更新網絡權重.
將上述樣本按照80%訓練集,20%測試集的設置,分別對RF、epsilon-SVR和不含SVR層的CNN-GRU網絡進行訓練;然后,用上述70%訓練集,30%測試集的設置,在圖2中刪除卷積層和全部GRU層,僅保留SVR層和全連接層進行訓練,記作SVR-MFC;最后在圖2中僅保留SVR層,添加RF訓練SVR層輸出,利用RF的集成學習的能力進行訓練,記作SVR-RF.對以上所有模型,均獨立運行30次,并取其均值.
(1)
(2)
(3)
六個模型對于武漢市PM2.5進行24 h預測的結果如表2所示,其中RF和SVR采用的是向量到向量的預測模式,其余4種均采用時間序列為24(S=24)的樣本進行序列到向量的預測模式.
表2 六個模型預測精度
由表可見,未采用SVR降維的三種模型的RMSE和MAPE均相對較差,且R2值也偏低,其中RF方法基于決策樹的集成模式,其精度受到決策樹對于高維、非線性和混沌的氣象問題求解能力不足的影響,因此結果最差;CNN-GRU由于融入了時間序列特征提取,效優(yōu)于RF,但是受到樣本因子規(guī)模大和非線性的限制,提高有限;由于SVR具備處理高維和非線性問題的能力,取得三者中最好的結果.三種基于SVR降維的集成學習模型均取得顯著更好的結果,SVR-RF模型基于SVR這種強學習能力的模型的集成,因此提高明顯;SVR-MFC模型則僅依靠多個全連接層即取得了與SVR-RF相當的性能,展示了深度神經網絡的潛力;SVR-CNN-GRU模型則由于融入了時間序列特征的提取,因此取得了最好的結果.綜上可知,通過SVR降維和CNN-GRU時序特征提取可以顯著的提高預測的精度和泛化能力.
三個集成SVR模型在三個不同時間序列長度樣本下的預測結果,如表3所示.
表3 不同時間序列長度下的模型預測精度
在所有的模型在三個序列長度下均有相對于表2中其他方法更好的表現,不僅RMSE更低,且R2均高于0.95這個普遍采用的標準.隨著時間序列的增加,三種模型的預測精度均有提高,其中S由8增加到16時,所有模型的提高最為顯著;而隨著S由16提高到24,性能的提高較為微弱.因此增加樣本的時序長度可以有效的提高預測精度,但是存在邊際效應,簡單的依靠增加時序長度提升預測精度是低效的.
SVR-CNN-GRU模型在S=24條件下對武漢市2020/4/2 16∶00∶00至2020/4/10 23∶00∶00的預測結果,如圖3所示.
由圖可見,整體上預測值能較為準確預測實際值的變化趨勢,特別是在PM2.5值變化劇烈的波段上也能較好的擬合;但是在波峰和波谷等變化的極值點,模型的預測還存在一定的誤差,需要后期繼續(xù)改進模型.
參考PM2.5檢測網的空氣質量標準,將PM2.5濃度劃分為7個級別:優(yōu)(0~35 μg·m-3)、良(35~75 μg·m-3)、輕度污染(75~115 μg·m-3)、中度污染(115~150 μg·m-3)、重度污染(150~250 μg·m-3)和嚴重污染(大于250 μg·m-3及以
圖3 SVR-CNN-GRU模型預測值與實測值折線圖Fig.3 Line charts between forecast value and actual value of SVR-CNN-GRU
上),統(tǒng)計S為24時,各PM2.5濃度級別樣本占測試集比例、MAPE和平均絕對誤差(MAE)如表4所示.
(4)
表4 分級模型預測精度
由上表可見,由于污染越嚴重,濃度基數越高,MAE隨著污染級別逐步上升;而MAPE則出現相反的趨勢,說明了預測有較高的準確度.“嚴重污染”級別的絕對和相對誤差均高于“重度污染”,這是由于其樣本占整體樣本比例過小,模型學習不充分造成的.按照PM2.5濃度75以上為超標的中國國家標準,SVR-CNN-GRU能夠以較高的準確度對超標天氣進行預測,達到提前24小時預警的目的.
大氣是典型的混沌系統(tǒng),隨著時間線的延長,氣象系統(tǒng)預測的難度急劇提升,PM2.5與氣象條件密切相關,PM2.5預測實現24小時預報需要解決從高維和非線性時序數據中提取特征的難題.采用具有良好高維和非線性處理能力的支持向量機對原始氣象數據進行降維和特征提取,然后堆疊由卷積神經網絡、循環(huán)神經網絡和全連接層構成的深度神經網絡,進行時序特征提取,以2015年1月1日1時至2020年4月10日23時湖北省武漢等14市州的氣象和空氣污染共計46 247條數據,訓練了六個不同策略的模型.實驗效果展現了所有基于SVR降維的集成學習模型均取得較高精度,且擬合優(yōu)度R2均超過0.96;其中與CNN和GRU結合的模型取得了最佳的精度,泛化能力更強,R2達到0.97.綜合來看,SVR降維是解決復雜問題的集成學習的有效前置工具,深度神經網絡則表現出強大的時序分析能力.
由于缺失數據處理手段單一,放棄了部分有助于PM2.5預測的氣象因子,下一步需要完善缺失數據的填充技術,添加更多因子提高預測精度.雖然使用了武漢13市州4 w的數據,但是僅僅將其同武漢市數據平鋪拼接,因此丟失了距離、方位、地形和大氣運動等重要信息,湖北省外北方污染源也未納入考慮,下一步需要建立時空結構的模型進行優(yōu)化.由于算力條件有限,不同步長的SVR模型均采用同樣的參數訓練,且作為靜態(tài)模型應用于深度神經網絡,造成了部分步長SVR模型未能優(yōu)化,需要在下一步深度融合SVR和神經網絡,集成和動態(tài)的訓練SVR模型.采用的深度神經網絡的結構是將多層進行串行連接,結構相對簡單,影響了特征提取能力,下一步需要針對預測問題的特征,引入殘差網絡等技術構建更為復雜和有效的網絡結構[27].