賈春光
(云南財經(jīng)大學統(tǒng)計與數(shù)學學院,昆明650000)
近年來,中國工業(yè)化、城市化以及經(jīng)濟的快速發(fā)展,導致中國各大城市的空氣污染越來越嚴重,特別是空氣中的PM2.5 已經(jīng)嚴重影響到了人們的正常生活。PM2.5,也稱細顆粒,通常指的是直徑小于2.5 微米以下的顆粒物。
針對PM2.5 的建模和預測問題,Xiao Feng[1]用人工神經(jīng)網(wǎng)絡(ANN)去預測PM2.5——基于空氣運動軌跡的地理模型,利用小波變換將PM2.5 的時間序列拆分成規(guī)律性更強的子序列,在利用ANN 分別對它們訓練獨立的模型。王靜等人[2]通過支持向量機回歸算法對MODIS 遙感氣溶膠濃度分析數(shù)據(jù)與AERONET 地面?zhèn)鞲芯W(wǎng)絡的PM2.5 濃度數(shù)據(jù),進行了擬合運算,減少了空-地數(shù)據(jù)不匹配的問題:這種利用衛(wèi)星數(shù)據(jù)直接讀取及預測大氣顆粒物濃度的變化趨勢的方法,對遙感大氣預測平臺的整合具有重要意義。江蘇大學孫永霞[3]將關注點放在各個影響因子與全年霧霾總天數(shù)之間的關系上,提出了一種主成分分析法并輔以BP 神經(jīng)網(wǎng)絡的預測模型,一定程度上能準確預測全年總霧霾天數(shù),對政府治理成果、重大政策制定具有指導意義。成都信息工程大學顏玉倩,朱克云等人[4]針對PM2.5 濃度預測,應用逐步回歸對成都以及附近地區(qū)的一次霧霾發(fā)生進程進行測試,較為準確地預測了霧霾等級。
在國外,西班牙馬德里大學(Madrid)的Esteban Pardo(B)和Norberto Malpica 基于深度神經(jīng)網(wǎng)絡[5],應用LSTM(Long Short-Term Memory Networks)模型構建了用于預測未來24 小時NO2濃度的預測系統(tǒng),包括連續(xù)12 個小時的污染物濃度值作為訓練系統(tǒng)輸入,包含兩個LSTM 層,其次是兩個Dense 層,LSTM 層含有512個隱藏層單元,總的測試RMSE 是10.54ug/m3,并比較了對應的CALIOPE 預測系統(tǒng)。美國加州伯克利大學(The University of California,Berkeley)的Vikram Reddy等人[6]基于北京污染與氣象信息的時間序列數(shù)據(jù),利用LSTM 模型基于遞歸神經(jīng)網(wǎng)絡(RNN)作為預測未來污染物對的框架[7],分析大規(guī)模的長時間序列數(shù)據(jù),提出相關的序列依賴性,并訓練特定的規(guī)模。
本文將傳統(tǒng)的時間序列模型和LSTM(長短記憶網(wǎng)絡)模型引入到PM2.5 的預測之中,并對實驗結果進行了分析和總結。
傳統(tǒng)的時間序列預測方法大都基于統(tǒng)計理論,通過構建適當?shù)臄?shù)學模型來擬合歷史時間序列曲線,而后依據(jù)所建立的模型來做預測。本文主要介紹的是ARIMA 模型。
求和自回歸平均模型的公式如下:
具有如上結構的模型稱為求和自回歸平均模型,簡 記 ARIMA (p,d,q) , 其 中 ?d=(1-B)d;Φ(B)=1-φ1B-…-φpBp,為平穩(wěn)可逆ARMA(p,q)模型的自回歸系數(shù)多項式;Θ(B)=1-θ1B-…-θqBq,為平穩(wěn)可逆ARMA(p,q)模型的移動平滑系數(shù)多項式。
深度學習是機器學習領域中的一個分支,它的主要目的是從大量的數(shù)據(jù)中找到某種規(guī)律。深度學習強調(diào)從連續(xù)的層中進行學習,是多層級聯(lián)的層級結構,每一層中許多非線性單元用于特征抽取和轉換,下一層的輸入是上一層的輸出,每深一層表示對數(shù)據(jù)更深的抽象。
近幾年,深度學習在實踐中,尤其是人工智能技術方面取得了革命性的突破和進展,已經(jīng)被廣泛應用于圖像分類、語音識別、手寫文字轉錄、機器翻譯、語音轉換、自動駕駛等各個領域,在這些方面的表現(xiàn)深度已經(jīng)可以媲美人類,甚至超越人類。
在現(xiàn)實生活中,有一種數(shù)據(jù)是與先后順序有關系的,如語音數(shù)據(jù)、翻譯的語句等。對于序列數(shù)據(jù),可以嘗試在隱藏層中加上一層自循環(huán)層,這就形成了循環(huán)神經(jīng)網(wǎng)絡(Recurrent Natural Network,RNN),它的基本機構如圖1。
圖1 循環(huán)神經(jīng)網(wǎng)絡的結構
其中X 是輸入的變量,U 是輸入到隱含層的權重矩陣,W 是狀態(tài)到隱含層的權重矩陣,S 為狀態(tài),V 是隱含層到輸出層的權重矩陣,O 是輸出的結果[13]。從圖1 不難看出,它的共享參數(shù)方式是各個時間節(jié)點對應的W、U、V 都是不變的,通過這種方法實現(xiàn)參數(shù)共享,同時大大降低參數(shù)的數(shù)量。
長短時記憶網(wǎng)絡是一種特殊的RNN,它能夠?qū)W習長時間依賴。它們由Hochreiter&Schmidhuber(1997)提出,后來由很多人加以改進和推廣[13]。
LSTM 的循環(huán)結構如圖2。
圖2 LSTM循環(huán)神經(jīng)網(wǎng)絡的結構
其中帶箭頭的黑線表示數(shù)據(jù)流向,輸入的數(shù)據(jù)為向量形式,粉紅色圓圈表示兩個數(shù)據(jù)所做的向量操作,黃色方框表示數(shù)據(jù)向量要做的映射,黑線分成兩個表示數(shù)據(jù)向量有兩個用處。
本文中用到了三個常用的評價指標:均方誤差根(RMSE)、平均絕對誤差(MAE)和平均絕對百分比誤差(MAPE)。三個指標的評價公式如下:
其中,n 為測試樣本的總量,yi為第i 個數(shù)據(jù)點的真實值,為第i 個數(shù)據(jù)點的預測值。
本次數(shù)據(jù)來源于中國質(zhì)量分析監(jiān)測平臺,數(shù)據(jù)集的詳細情況見表1。
表1 空氣質(zhì)量數(shù)據(jù)集信息
該數(shù)據(jù)集一共有1530 個時間點的數(shù)據(jù),涵蓋了2015 年1 月1 日開始到2019 年3 月10 日結束時昆明市空氣質(zhì)量指數(shù)信息。每個時間點以日為單位。實驗中將最后的153 個時間點的數(shù)據(jù)取出來作為測試點,來對模型進行測試。
本文主要是針對PM2.5 進行建模和預測,首先看一下PM2.5 濃度在數(shù)據(jù)集中的表現(xiàn)。從圖3 中可以看出,這是一個有周期性規(guī)律的時間序列,并且各觀測點間的方差似乎是穩(wěn)定的。
圖3 昆明市2015年到2019年每日PM2.5濃度
接下來看一下昆明市PM2.5 濃度后一日相比于前一日的增長率,如圖4。
圖4 昆明市2015年到2019年每日PM2.5濃度的增長率
其中,上述藍色的點代表后一天比前一天PM2.5的濃度高,綠色的點代表后一天比前一天PM2.5 的濃度低,從圖中可以看出,PM2.5 的增長率是下降的天數(shù)的多,上升的天數(shù)少,說明昆明市的空氣質(zhì)量正在好轉。
最后看一下昆明市PM2.5 濃度后一年相比前一年的增長率,如圖5。
圖5 昆明市2015年到2019年每年PM2.5濃度的增長率
從圖5 可以看出,從2015 年到2018 年之間,昆明市PM2.5 濃度的年增長率都是負的,說明PM2.5 的濃度每年都會減少,但近幾年下降的幅度都在不斷減少。
建立ARIMA 模型的步驟包括:
(1)確保時序是平穩(wěn)的;
(2)選定可能的p 值和q 值;
(3)擬合模型;
(4)評估模型;
(5)預測。
首先在拿到一組數(shù)據(jù)后,需要判別其是否平穩(wěn),本文使用的是ADF 檢驗,即單位根檢驗,檢驗結果顯示p值為0.01,序列是平穩(wěn)的。
在得到平穩(wěn)的時間序列后,可以通過ACF 圖(自相關函數(shù)圖)和PCAF 圖(偏自相關函數(shù)圖)來選擇備選模型,確立模型各個參數(shù),但這種觀察方式,有時會帶來極大的誤差,使判別模型的預測效果并不是十分的理想,因此,在定階的過程中常常使用AIC 或者是BIC 的方式,本文采用了AIC 自動定階算法,算法的思想是通過判斷不同的p 和q 的取值,從而算出不同的AIC,找到使AIC 值最小的p 和q 的組合,即為ARIMA模型的最優(yōu)階數(shù)。最后,函數(shù)選定ARIMA(2,0,3)。
最后直接將模型應用到測試序列中,函數(shù)返回了模型的2 個回歸系數(shù)分別為1.263、-0.2767;3 個移動平均系數(shù)分別為-0.5385、-0.2615、-0.072。最終ARIMA(2,0,3)的表達式如下:
模型確定后,可以用RMSE、MAE、MAPE 來評價模型,它們的值分別為8.657833、6.528301、25.4%。
最后看一下模型在測試時間數(shù)據(jù)上的表現(xiàn),如圖6。
圖6 ARIMA模型的預測值和真實值
從圖6 可以看出,預測的效果并不是很理想。測試數(shù)據(jù)模型的RMSE、MAE、MAPE 分別為8.737107、7.182098、36.46%。
本文構建的LSTM 模型主要是在Keras 平臺上進行的。
(1)單變量預測
首先只用PM2.5 這一列數(shù)據(jù)進行建模,接下來對LSTM 模型各個超參數(shù)進行如表2 設置.
表2 單變量LSTM 模型的參數(shù)設置
批次大小表示每次迭代需要的樣本數(shù)量,迭代的次數(shù)可以看做訓練集學習的次數(shù),時間窗口可以看做滯后階數(shù),當時間窗口為1 時表示模型用上一時刻的數(shù)據(jù)去訓練下一時刻的數(shù)據(jù),輸出維度表示LSTM 層神經(jīng)元的個數(shù)。
其中激活函數(shù)RELU 的表達式如下:
在擬合好模型后,模型在測試樣本上的表現(xiàn)如圖7。
圖7 單變量LSTM模型的預測值和真實值
從圖7 可以看出來,預測效果相較于ARIMA 模型要好一些。測試集的RMSE、MAE、MAPE 分別為6.59、4.96、23.7%。比ARIMA 模型的精度要高。
通過圖7 可以發(fā)現(xiàn),測試結果與原始數(shù)據(jù)出現(xiàn)了“平移錯位”,出現(xiàn)了這種情況的主要原因是模型沒有抓住原始數(shù)據(jù)“季節(jié)性”的特點。因此,改變look_backs設定值,表3 展示了不同設定值的測試數(shù)據(jù)的誤差。
表3 不同時間窗口模型的評價指標
當時間窗口為3 或者12 的時候,預測的結果較好。當時間窗口大于12 時,預測精度就會有一個明顯的降低。
(2)多變量預測
本文收集的數(shù)據(jù)還有其它空氣質(zhì)量指標,例如AQI(空氣指數(shù))、PM10(可吸入顆粒物)、SO2(二氧化硫)、CO(一氧化碳)、NO2(二氧化氮)和O3_8h(臭氧每8 時平均濃度),這些指標或多或少的也會影響PM2.5的濃度。
在建立模型前,需要對數(shù)據(jù)進行標準化處理,本文采用的是最大值-最小值法,公式如下:
其中xmax為樣本變量中的最大值,xmin為樣本變量中的最小值。
接下來對這些數(shù)據(jù)應用LSTM 模型,參數(shù)設置如表4。
表4 多變量LSTM 模型的參數(shù)設置
在擬合好模型后,最后看一下模型在測試集的表現(xiàn),如圖8。
圖8 多變量LSTM模型的預測值和真實值
從圖8 可以看出,多變量LSTM 模型沒有了“平移錯位”的現(xiàn)象,預測趨勢也與原始數(shù)據(jù)相對吻合,但誤差較大。造成這種誤差偏大的原因可能是LSTM 層的維度造成的,不同維度模型的精度如表5。
表5 不同維度模型的評價指標
從表5 可以看出,隨著輸出維度的增加,模型的精度在逐步降低。
本文基于昆明市的空氣質(zhì)量監(jiān)測數(shù)據(jù),將最近流行的深度學習內(nèi)容應用到PM2.5 濃度的預測中,本文從單變量和多變量兩個方面上應用LSTM 模型,單變量LSTM 模型的誤差較小,但會出現(xiàn)“平移錯位”的現(xiàn)象;多變量LSTM 模型不會出現(xiàn)“平移錯位”的現(xiàn)象,但誤差相對較大。LSTM 模型很好地解決了梯度消失和梯度爆炸的問題,相比傳統(tǒng)的時間序列模型具有較好的學習能力,從而使得模型的預測效果更好。