陳 岑,田曉丹,武文星
(華北科技學(xué)院 計算機學(xué)院,北京 東燕郊 065201)
空氣與人類的生產(chǎn)生活息息相關(guān),但伴隨著空氣污染加重,人類生活所面臨的危害也是與日俱增。研究表明,吸入過多的污染空氣會導(dǎo)致呼吸道和肺部疾病,還會損害心血管系統(tǒng)和肝臟,從而嚴重可奪去人的生命。
目前對于空氣污染預(yù)測,國內(nèi)外都做了不少的研究。國內(nèi)方面,張珺、王式功等[1]人利用BP神經(jīng)網(wǎng)絡(luò)結(jié)合變量篩選的方法對不同城市分季節(jié)建立了空氣污染物濃度的預(yù)測模型。蒲國林,劉篤晉等[2]提出了一種由改進人工蜂群算法與反向傳播算法相結(jié)合的預(yù)測方法(KABC-BP),為空氣質(zhì)量評價提供了新思路,為空氣污染預(yù)測提供了新的預(yù)測方法??当Ⅻh鑫等[3]使用深度棧式自編碼模型進行了空氣質(zhì)量預(yù)測,該模型基于Java平臺構(gòu)建,具有良好的精度。王寶英、楊豐玉等[4]將氣象因素應(yīng)用于我國南昌、南京、合肥三座城市環(huán)境空氣質(zhì)量的監(jiān)測中,并對產(chǎn)生的問題提出了相應(yīng)的改進建議。國外方面,Ji Degang和Xie Xiaoxian等[5]利用BP神經(jīng)網(wǎng)絡(luò)與FCM對空氣質(zhì)量進行了預(yù)測和分析,結(jié)果表明吻合度較高。ZhongshanYang和JianWang等[6]用模糊綜合評價法評估了最主要的空氣污染物,提出了混合模型MCSDE-CEEMD-ENN來預(yù)測六種主要污染物的濃度。HongZheng、HaibinLi和XingjianLu等[7]針對香港和北京的PM2.5提出了一種多核學(xué)習(xí)(multiple kernel learning,MKL)模型,并使用5個指標進行了預(yù)測,結(jié)果表明預(yù)測精度均高于ARIMA和隨機森林。
鑒于LSTM神經(jīng)網(wǎng)絡(luò)善于利用空氣的時間相關(guān)性特點,對中長期預(yù)測的準確率較高,與其他的機器學(xué)習(xí)算法相比在處理時序數(shù)據(jù)上有明顯優(yōu)勢,因此,文中引入LSTM神經(jīng)網(wǎng)絡(luò)對空氣污染進行預(yù)測研究。通過LSTM神經(jīng)網(wǎng)絡(luò)構(gòu)建空氣污染預(yù)測模型,會為政府環(huán)境保護部門提供當?shù)匚廴镜淖兓厔?,有助于城市?guī)劃與建設(shè)、污染控制,對公共管理事業(yè)發(fā)展均有重要的理論意義與實用價值。
LSTM神經(jīng)網(wǎng)絡(luò)是基于循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)的變體,對處理長期依賴問題有很好的效果[10]。LSTM神經(jīng)網(wǎng)絡(luò)繼承了RNN的遞歸優(yōu)點,可以解決RNN的梯度消失與梯度爆炸問題,其結(jié)構(gòu)示意圖如下:
圖1 LSTM結(jié)構(gòu)示意圖
該結(jié)構(gòu)的核心思想是引入了一個叫單元狀態(tài)的連接,其中最后的狀態(tài)不再簡單地存儲,而是通過LSTM神經(jīng)網(wǎng)絡(luò)地訓(xùn)練機制來選擇狀態(tài)更新。LSTM神經(jīng)網(wǎng)絡(luò)的訓(xùn)練機制,就是通過“門”來控制刪減或增加信息。一個LSTM單元包含3個門,分別是忘記門、輸入門和輸出門。
(1) 忘記門
忘記門是用來決定模型會從上一個單元丟棄什么信息,該門會讀取上一個單元的輸出ht-1與本單元的輸入xt,輸出一個0與1之間的數(shù)值ft并賦值給當前的單元狀態(tài)Ct-1,數(shù)值0代表“完全丟棄”,數(shù)值1代表“完全保留”,其計算公式如下:
ft=σ(Wt[ht-1,xt]+bf)
(1)
式中,Wf是忘記門中的系數(shù)矩陣;σ表示運算函數(shù),一般選用sigmoid函數(shù);[ht-1,xt]表示將其中的兩個向量ht-1、xt連接成一個更長的向量;bf是忘記門偏置向量。
(2) 輸入門
輸入門的作用分為兩部分,一是在單元中找到那些需要更新的狀態(tài),二是把需要更新的狀態(tài)進行迅速的更新。輸入門中tanh隱層作用是要創(chuàng)建新的狀態(tài)向量Ct,忘記門在找到需要忘掉的信息之后還需要將它與舊狀態(tài)相乘,確定需要丟棄的信息。最后,將結(jié)果加上it·ct使得狀態(tài)獲得新的信息,其計算公式如下:
(2)
it=σ(Wi[ht-1,xt]+bi)
(3)
(4)
(3) 輸出門
輸出門,使用sigmoid隱層來確定哪個部分將輸出,進而通過tanh進行處理(得到-1~1之間的值)并將它和sigmoid的輸出相乘,得出想要輸出的部分,其計算公式如下:
ht=Ottanh(Ct)
(5)
式中,σ是sigmoid函數(shù);Wo表示輸出門中的系數(shù)矩陣;bo表示輸出門偏置向量。
信息增益(Information gain)是非對稱的,用以度量兩種概率分布的差異。在信息增益中,衡量標準是特征能夠為分類系統(tǒng)帶來多少信息。對一個特征而言,系統(tǒng)是否擁有它的信息量將會發(fā)生變化,而前后信息量變化的差值就是這個特征給系統(tǒng)帶來的信息量。所謂信息量就是熵(entropy)[14]。
假如有變量y,其可能的取值有n種,每一種取到的概率為pi,那么y的熵為:
(6)
式中,p(yi)代表事件發(fā)生的概率;logp(yi)代表概率分布的對數(shù)。由式(5)可知,y可能的變化越多,x所攜帶的信息量越大,熵也就越大。對于分類和聚類問題,屬于哪個類別的變化越多,類別的信息量越大。所以特征T給分類或者聚類C帶來的信息增益為:
IG(T)=H(C)-H(C|T)
(7)
式中,H(C|T)是條件熵的C給屬性的值T,H(C|T)包含2種情況:一種是特征T出現(xiàn),記為t;一種是特征T不出現(xiàn),記為t,所以有:
H(C|T)=P(t)H(C|t)+P(t,)H(C|t,)
(8)
再由熵的計算公式便可推得特征與類別的信息增益。
LSTM網(wǎng)絡(luò)模型一般包含:輸入層,輸出層和隱含層三個部分。根據(jù)想要達成的目標與需求不同,中間隱含層的層數(shù)是不固定的,可以動態(tài)的變化,隱含層的層數(shù)越多,模型的非線性轉(zhuǎn)換能力越強,但同時,也會增加模型的復(fù)雜度。因此,為了降低模型復(fù)雜度,常見的LSTM模型一般只有一個隱含層[8]。本文模型設(shè)計中選擇了一個隱含層的形式。
各層維數(shù)即是各層處理的數(shù)據(jù)變量的個數(shù),輸入輸出層的維數(shù)大小取決于實際問題的數(shù)據(jù)維度。例如若設(shè)定影響空氣質(zhì)量指數(shù)(AQI)的主要因子包括CO、SO2、CO2、O3四個,則輸入層維數(shù)設(shè)置為4,若輸出層只需輸出下一個時刻的空氣質(zhì)量指數(shù)(AQI),則輸出層維數(shù)設(shè)置1。而隱含層維數(shù)確定相對復(fù)雜,通常根據(jù)經(jīng)驗公式與逐步試錯法結(jié)合的方法確定。首先利用經(jīng)驗公式確定隱含層維數(shù)的大概范圍,再利用逐步試錯法,比較不同節(jié)點數(shù)情況下隱含層預(yù)測性能,選擇誤差最小、性能最好的模型維數(shù)為隱含層的維數(shù),可通過如下經(jīng)驗公式計算[12]。
(9)
式中,a表示輸入層的節(jié)點個數(shù);b表示輸出層的節(jié)點數(shù);c為1~10之間的正整數(shù);q為隱含層節(jié)點數(shù)。
LSTM中確定學(xué)習(xí)速率的方法主要有兩種:固定學(xué)習(xí)速率法和退化學(xué)習(xí)率法。其中固定學(xué)習(xí)速率法則主要依據(jù)經(jīng)驗選擇,選取的范圍在0.05~0.5之間。退化學(xué)習(xí)率法一般在起始階段設(shè)置一個較大的學(xué)習(xí)速率,通過訓(xùn)練不斷的調(diào)整學(xué)習(xí)速率,可保證訓(xùn)練初期的效率,又可以通過調(diào)整實現(xiàn)訓(xùn)練精度的提升。在此學(xué)習(xí)速率的衰減速度由迭代循環(huán)計數(shù)變量(global step)和衰減步長(decay steps)來決定,具體的計算公式如下[12]:
p=x·yz
(10)
式中,p為所求學(xué)習(xí)速率;x為初始的學(xué)習(xí)率;y為衰減系數(shù);z為迭代循環(huán)計數(shù)變量與衰減步長的比值。
結(jié)合C市的地理位置、氣候特征等環(huán)境因素,并根據(jù)2014年到2018年C市空氣質(zhì)量的總體情況進行簡要分析。
(1) C市地形、氣候特征
C市位于河北省中部、華北平原中東部,北臨首都北京,東與天津交界,地處京津冀城市群核心地帶和環(huán)渤海腹地[9]。受地質(zhì)構(gòu)造的影響,該市大部分處于凹陷地區(qū);由于地處中緯度地帶,長期受到溫暖帶大陸性季風氣候影響,因此四季分明。夏季炎熱多雨,冬季寒冷干燥,春季干旱多風沙,秋季秋高氣爽。根據(jù)歷史資料顯示,年平均氣溫為11.9℃,年平均無霜期為183天左右,全市年平均降水量為554.9毫米。
(2) C市空氣質(zhì)量總體概況
使用Python對C市2014年1月1日至2018年12月31日的空氣質(zhì)量AQI指數(shù)進行對比分析,得到基于時間序列的分析折線圖,如圖2所示:
圖2 C市5年月度空氣質(zhì)量指數(shù)均值比較
從圖2中可以看出,C市空氣質(zhì)量AQI指數(shù)的分布有一定的季節(jié)性波動,每年的冬季AQI指數(shù)較高,空氣質(zhì)量較差。通過分析發(fā)現(xiàn),主要是因為C市冬天天氣寒冷,居民的取暖需要燃煤,大量的煤炭燃燒導(dǎo)致空氣中的污染物增加,并且C市冬季天氣干燥,降雨量少,使得地表植被覆蓋率低,水土的固著能力差,空氣中揚起的細顆粒物增多,進而導(dǎo)致C市冬天的空氣質(zhì)量較差。從圖中還可以發(fā)現(xiàn),該市歷年10月份的AQI指數(shù)也存在偏高的問題,分析研究后,發(fā)現(xiàn)主要是因為每年的10月假期較多,節(jié)假日出行車輛增加,造成污染物排放量增加,因此2014年10月中度污染及以上有19天、2015年有20天、2016年有16天、2017年有18天、2018年有19天。從C市空氣質(zhì)量的同比來看,2014~2018年,空氣質(zhì)量沒有很明顯改善。
在使用LSTM建模之前,需要對數(shù)據(jù)進行分析,判斷各特征(AQI、質(zhì)量等級、PM2.5、PM10、SO2、CO、NO2、O3_8h)的數(shù)據(jù)分布及其之間的關(guān)系,本文首先利用信息增益方法(Information gain)計算出8個輸入特征變量對輸出特征變量AQI的貢獻,其次利用Pandas散布矩陣函數(shù)(scatter_matrix)及相關(guān)系數(shù)函數(shù)(corrcoef)對數(shù)據(jù)集特征及其關(guān)系進行了輔助分析驗證。
表1 輸入特征變量的信息增益值比較
從表1可以看出,PM10、PM2.5對輸出變量AQI的影響力最大,其次為CO、NO2,對輸出變量AQI影響力最小的為SO2、O3。通過對輸入特征變量的信息增益值比較,可選取PM10、PM2.5、CO、NO2作為預(yù)測模型的輸入特征。為了保證實驗的準確性,下面采用Pandas散布矩陣函數(shù)(scatter_matrix)及相關(guān)系數(shù)函數(shù)(corrcoef)進行輔助分析。
圖3是SO2,NO2,CO,O3,PM2.5,PM10變量散布矩陣分布圖。如圖中所示,SO2,NO2,CO,O3,PM2.5,PM10散布矩陣圖呈對稱結(jié)構(gòu),除對角上的密度函數(shù)圖之外,其他子圖分別顯示了不同特征列之間的關(guān)聯(lián)關(guān)系。如AQI與質(zhì)量等級、PM2.5和PM10之間近似成線性關(guān)系,說明這些特征之間線性關(guān)聯(lián)性很強;AQI與SO2、CO、NO2之間關(guān)系次之;相反地,AQI與O3_8h特征列之間的散布狀態(tài)比較雜亂,基本無規(guī)律可循,說明各特征之間的關(guān)聯(lián)性不強。分析數(shù)據(jù)集各特征(列)之間的關(guān)系時,散布矩陣能以圖形的形式“定性”給出各特征之間的關(guān)系,如要進一步“定量”分析,則需要使用皮爾遜相關(guān)系數(shù)。圖4皮爾遜(Person)相關(guān)系數(shù)定量顯示了各變量之間的皮爾遜相關(guān)系數(shù)的值。綜合圖3和圖4可以得到:
圖3 Pandas散布矩陣函數(shù)
圖4 Person相關(guān)系數(shù)
(1) AQI與質(zhì)量等級、PM2.5和PM10之間相關(guān)系數(shù)的值均在0.9以上,相關(guān)性較大;
(2) AQI與SO2、CO、NO2之間相關(guān)系數(shù)的值均在0.6以上,相關(guān)性較為居中;
(3) AQI與O3_8h的相關(guān)系數(shù)為負數(shù),負相關(guān)性較小。
這與信息增益方法(Information gain)分析基本一致。因此,O3_8h特征應(yīng)予舍棄。雖然每種污染物與空氣質(zhì)量AQI指數(shù)相關(guān)性存在差異,但都有一定的關(guān)聯(lián),故將質(zhì)量等級、PM2.5、PM10、CO、NO2作為模型的輸入特征,AQI指數(shù)作為測試標簽(label)。
在數(shù)據(jù)訓(xùn)練之前需要對數(shù)據(jù)進行標準化處理,數(shù)據(jù)標準化即將原始數(shù)據(jù)按照一定的比例縮放到更小的區(qū)域中,例如[0,1]或者[-1,1]區(qū)間[11]。數(shù)據(jù)標準化主要目的是為了數(shù)據(jù)處理的方便,消除變量之間的量綱關(guān)系,從而使數(shù)據(jù)具有可比性。常見的數(shù)據(jù)標準化方法包括Z-score(正規(guī)化方法)和Min-max(規(guī)范化方法)等,本文采用Z-score標準化處理,具體算法和公式如下所示:
y=(x-mean(x))/std(x)
(11)
式中,y是歸一化之后的數(shù)據(jù);x是原始數(shù)據(jù);mean(x)表示原始數(shù)據(jù)的均值;std(x)表示標準差。
本文模型采用三層網(wǎng)絡(luò)拓撲結(jié)構(gòu)(即一層為輸入層,一層為輸出層,中間包含一個隱藏層)實現(xiàn)C市未來空氣質(zhì)量指數(shù)的預(yù)測。根據(jù)3.2中的因子篩選分析,剔除了O3_8h,將PM2.5、PM10、SO2、CO、NO2作為模型的輸入特征,故輸入層維數(shù)設(shè)置為5。輸出層維數(shù)設(shè)置為1。
由于隱含層維數(shù)對模型的預(yù)測誤差影響較大,首先根據(jù)公式(5)確定隱含層維數(shù)的試湊范圍[13],在本文中,模型輸入層的維數(shù)a取值為5,輸出層維數(shù)b取值為1,c為1~10之間的整數(shù),故最終隱含層維數(shù)q區(qū)間為4~13,表2列舉了隱含層維數(shù)取不同數(shù)值時,平均絕對誤差MAE(Mean Absolute Error)的取值情況。
表2 隱含層維數(shù)對預(yù)測性能的影響
表2所示,C市空氣質(zhì)量指數(shù)預(yù)測模型的隱含層維數(shù)取值為10時,預(yù)測誤差最小,故在本文中隱含層維數(shù)取值為10。
本實驗將LSTM模型和信息增益模型相結(jié)合,這就是AQI混合預(yù)測模型,其框架如圖5所示。首先將輸入特征變量進行信息增益計算,然后通過對比篩選出信息增益值較大的輸入特征變量,然后利用Pandas散布矩陣函數(shù)(scatter_matrix)及相關(guān)系數(shù)函數(shù)(corrcoef)對數(shù)據(jù)集特征及其關(guān)系進行了輔助分析,最后將挑選出的輸入特征變量輸入LSTM模型預(yù)測空氣質(zhì)量指數(shù)AQI。實驗數(shù)據(jù)使用C市2014年至2018年真實監(jiān)測數(shù)據(jù),將該數(shù)據(jù)集分成兩部分,分別用于模型訓(xùn)練和測試。其中選擇前80%作為訓(xùn)練集,后20%數(shù)據(jù)為測試集。設(shè)定每批次訓(xùn)練樣本數(shù)(batch_size)為10,時間步長(timesteps)設(shè)置為3,學(xué)習(xí)速率采用退化學(xué)習(xí)率法,初始化學(xué)習(xí)速率為0.15,衰減系數(shù)為0.9,衰減速度為50。
圖5 AQI混合預(yù)測研究框架
使用PM2.5、PM10、CO、NO2作為預(yù)測AQI空氣質(zhì)量等級的強關(guān)聯(lián)因子,模型經(jīng)過多次訓(xùn)練后,得到預(yù)測值(綠色)與真實值(紅色)的曲線對比圖,如圖6所示。模型損失(loss)變化趨勢如圖7所示。
圖6 真實值與預(yù)測值曲線對比圖
圖7 損失變化趨勢圖
此時,得到如表3的C市空氣質(zhì)量指數(shù)AQI在IG-LSTM模型下的誤差分析:
表3 AQI指數(shù)誤差分析
從圖5和表3可以看出,該模型的擬合度較高,IG-LSTM模型的平均絕對誤差與均方根誤差均在0.1之間,可決系數(shù)誤差趨近于1,雖然在個別點的四周有較大的誤差,但AQI的展望值與現(xiàn)實值在整個趨勢上基本保持一致,并且網(wǎng)絡(luò)訓(xùn)練結(jié)果的精確度與網(wǎng)絡(luò)檢驗的結(jié)果差別不大。此外,圖6中橫坐標表示時間,但由于數(shù)據(jù)單位為天,數(shù)據(jù)量較多,若全部顯示會導(dǎo)致真實值與誤差值對比不明顯,所以這里做了簡化處理,取時間間隔為半年來顯示對應(yīng)的均值A(chǔ)QI。圖7為模型訓(xùn)練過程中的損失變化,從圖中可以看出在模型剛開始訓(xùn)練時損失值較大,達到了0.33。大約在epochs取1時出現(xiàn)第一個拐點,此時損失值較初始值有較大幅度下降,下降到了0.06左右,由此可以看出誤差收斂速度迅速。而在epochs=2與epochs=4期間,訓(xùn)練誤差仍有緩慢下降趨勢,訓(xùn)練過程誤差收斂域更窄,最終趨向于平緩,無限趨近于0。由此說明,本文模型收斂速度快,優(yōu)化過程穩(wěn)定性好。
為了驗證IG-LSTM模型處理時序性指標的有效性,本文將IG-LSTM算法與BP神經(jīng)網(wǎng)絡(luò)算法、LSTM神經(jīng)網(wǎng)絡(luò)算法進行了對比分析。在實驗中,BP神經(jīng)網(wǎng)絡(luò)同樣采用了3層網(wǎng)絡(luò)結(jié)構(gòu),隱含層維數(shù)為10,對比結(jié)果如表3所示。
表4 三種方法的預(yù)測模型性能比較
從表4可以看出,采用IG-LSTM算法的預(yù)測模型在平均絕對誤差和損失值上都優(yōu)于BP算法和LSTM算法。
(1) 通過對C市空氣監(jiān)測數(shù)據(jù)的分析入手,進而引入IG-LSTM模型實現(xiàn)C市空氣質(zhì)量指數(shù)AQI的預(yù)測,并與采用BP神經(jīng)網(wǎng)絡(luò)、LSTM神經(jīng)網(wǎng)絡(luò)的預(yù)測模型進行了對比研究。實驗結(jié)果表明,利用IG-LSTM的空氣質(zhì)量預(yù)測模型與傳統(tǒng)BP預(yù)測模型、LSTM預(yù)測模型相比,在預(yù)測結(jié)果與迭代時間等方面都具有明顯優(yōu)勢,具有更低的預(yù)測誤差和損失值。本文的研究成果為空氣質(zhì)量指數(shù)AQI的預(yù)測研究提供了一種新的思路,對提升C市空氣質(zhì)量的預(yù)測水平,為空氣質(zhì)量的預(yù)測報警提供輔助。
(2) 由于空氣質(zhì)量指數(shù)AQI的影響因素較多,在預(yù)測C市未來的空氣質(zhì)量狀況時,沒有考慮到除了SO2、NO2、CO、O3、PM2.5、PM10污染物以外的天氣環(huán)境的影響,以及節(jié)假日車流量的大小,國際會議的舉行,風速的變化等因素。因此,要進一步提高精準度,應(yīng)該考慮這些因素的影響,這將是下一步研究方向。