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