宋飛揚(yáng),鐵治欣,2,黃澤華,丁成富
1(浙江理工大學(xué) 信息學(xué)院,杭州 310018)
2(浙江理工大學(xué)科技與藝術(shù)學(xué)院,紹興 312369)
3(聚光科技(杭州)股份有限公司,杭州 310052)
根據(jù)2018年哈爾濱市生態(tài)環(huán)境狀況公報(bào)[1]顯示,2018年空氣質(zhì)量共超標(biāo)52天,超標(biāo)天數(shù)中首要污染物為PM2.5的天數(shù)共有39 天.PM2.5又稱細(xì)顆粒物,由于其粒徑小,活性強(qiáng)且附帶有害物質(zhì)的特性,會(huì)對(duì)呼吸道系統(tǒng)和心血管系統(tǒng)造成傷害[2].空氣污染問(wèn)題不僅與人們的日常生活、身體健康密切相關(guān),還會(huì)對(duì)城市的招商引資、經(jīng)濟(jì)發(fā)展造成較大的影響.因此對(duì)大氣中PM2.5濃度的預(yù)測(cè)有著重要的意義.
空氣質(zhì)量預(yù)測(cè)模型主要分為基于大氣運(yùn)動(dòng)學(xué)的數(shù)值預(yù)報(bào)模型(NWP)與基于機(jī)器學(xué)習(xí)算法的統(tǒng)計(jì)模型[3].數(shù)值預(yù)報(bào)模型是從大氣內(nèi)部物理規(guī)律如大氣動(dòng)力學(xué)、熱力學(xué)等出發(fā),建立對(duì)應(yīng)的數(shù)學(xué)物理模型,用數(shù)理方法,借助大型計(jì)算機(jī)的計(jì)算能力,建立數(shù)值預(yù)測(cè)空氣污染物濃度的動(dòng)態(tài)分布運(yùn)輸和擴(kuò)散模型.例如:JM Xu等[4]基于尺度空氣質(zhì)量模式系統(tǒng)(CMAQ)提出了CMAQMOS模型,有效糾正了CMAQ 中平均污染物排放清單所導(dǎo)致的系統(tǒng)性預(yù)測(cè)誤差;Ming-Tung Chuang 等[5]應(yīng)用結(jié)合化學(xué)的天氣研究與預(yù)測(cè)模型(WRF-Chem-MADRID)對(duì)美國(guó)東南部地區(qū)進(jìn)行預(yù)測(cè),結(jié)果顯示在O3和PM2.5預(yù)測(cè)中表現(xiàn)良好.機(jī)器學(xué)習(xí)模型則是利用統(tǒng)計(jì)學(xué)、概率論以及復(fù)雜的算法搭建模型,從已知數(shù)據(jù)中挖掘數(shù)據(jù)關(guān)系,實(shí)現(xiàn)精細(xì)化預(yù)測(cè).例如王敏、孫寶磊等[6,7]利用BP神經(jīng)網(wǎng)絡(luò)模型對(duì)PM2.5濃度進(jìn)行預(yù)測(cè),實(shí)驗(yàn)效果較好;彭斯俊等[8]利用ARIMA模型對(duì)于時(shí)間序列短期預(yù)測(cè)有著較高的精度的特點(diǎn),挖掘序列內(nèi)部規(guī)律,得到了不錯(cuò)的結(jié)果;喻其炳等[9]通過(guò)K-means方法篩選相似性高的數(shù)據(jù)來(lái)訓(xùn)練基于支持向量機(jī)的PM2.5濃度預(yù)測(cè)模型,提升效果明顯.
雖然以上所提PM2.5濃度預(yù)測(cè)模型各有優(yōu)點(diǎn),但是其往往只根據(jù)目標(biāo)站點(diǎn)的污染因子和氣象數(shù)據(jù),而忽略了PM2.5的分布也具有區(qū)域性[10].針對(duì)這種問(wèn)題,本文提出了一種基于時(shí)空特征的KNN-LSTM網(wǎng)絡(luò)模型,通過(guò)KNN算法選擇目標(biāo)站點(diǎn)的空間相關(guān)信息,利用LSTM 具有時(shí)間記憶的特點(diǎn),從時(shí)間和空間兩個(gè)維度考慮,實(shí)現(xiàn)對(duì)PM2.5濃度的預(yù)測(cè).同時(shí)還利用哈爾濱市多個(gè)空氣質(zhì)量監(jiān)測(cè)站的污染物數(shù)據(jù),與BP神經(jīng)網(wǎng)絡(luò)模型和普通的LSTM模型進(jìn)行實(shí)驗(yàn)對(duì)比,結(jié)果表明本文所提KNN-LSTM模型能較好預(yù)測(cè)未來(lái)時(shí)刻的PM2.5濃度值.
長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)(LSTM)主要是為了解決循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)在長(zhǎng)序列訓(xùn)練過(guò)程中梯度消失的問(wèn)題[11,12].與RNN相比,LSTM增加了3個(gè)門控:輸入門、遺忘門、輸出門.門的作用是為了控制之前的隱藏狀態(tài)、當(dāng)前的輸入等信息,確定哪些信息該丟棄、哪些信息該保留.LSTM的模型結(jié)構(gòu)如圖1所示.

圖1 LSTM的模型結(jié)構(gòu)
圖1中Θ代表操作矩陣中對(duì)應(yīng)的元素相乘,+代表進(jìn)行矩陣的加法.

對(duì)于LSTM 當(dāng)前的輸入xt和上一狀態(tài)傳遞的ht-1,通過(guò)下面公式得到4個(gè)狀態(tài):其中,zf、zi、zo、z分別表示遺忘門控、輸入門控、輸出門控和當(dāng)前輸入內(nèi)容,Wxi、Wxf、Wxo、Wxz分別代表輸入層到輸入門、遺忘門、輸出門和細(xì)胞狀態(tài)的權(quán)重矩陣;bi、bf、bo、bz分別為輸入門、遺忘門、輸出門和細(xì)胞狀態(tài)的偏移量.σ為Sigmoid函數(shù),tanh為雙曲正切函數(shù).LSTM存在兩種傳輸狀態(tài):ct(cell state)和ht(hidden state),其中LSTM 中的ct對(duì)應(yīng)RNN 中的ht.t時(shí)刻在LSTM 內(nèi)部主要進(jìn)行以下3步,如式(5)、式(6)、式(7)所示.
(1)經(jīng)過(guò)zf控制上一個(gè)狀態(tài)ct-1哪些需要保留或遺忘.
(2)經(jīng)過(guò)zi對(duì)輸入xt選擇記憶.
(3)經(jīng)過(guò)zo控制哪些會(huì)作為當(dāng)前狀態(tài)的輸出.

其中,隱藏層到輸出層的權(quán)重矩陣記為W'.
KNN算法[13]是一種有監(jiān)督學(xué)習(xí)的分類算法.其實(shí)現(xiàn)較為簡(jiǎn)單,訓(xùn)練速度較快.KNN 用空間中兩個(gè)點(diǎn)的距離來(lái)度量其相似度,距離越小,相似度越高.通過(guò)最鄰近的k個(gè)點(diǎn)歸屬的主要類別,來(lái)對(duì)測(cè)試點(diǎn)進(jìn)行分類.常見(jiàn)的距離度量方式有歐氏距離、馬氏距離、曼哈頓距離等.特征向量Xi、Xj之間的歐氏距離計(jì)算公式如下:

其中,k表示特征向量的維度,xi(m)、xj(m)分別為Xi、Xj第m維的值,m的取值范圍為1,2,3,···,k.
1.3.1 基于單站點(diǎn)的LSTM預(yù)測(cè)模型
本文首先實(shí)現(xiàn)了基于LSTM的單站點(diǎn)PM2.5濃度預(yù)測(cè)模型,該模型是通過(guò)目標(biāo)站點(diǎn)空氣質(zhì)量六因子(NO2、PM2.5、PM10、SO2、CO、O3)的歷史數(shù)據(jù),來(lái)預(yù)測(cè)當(dāng)前時(shí)刻的PM2.5濃度.若當(dāng)前時(shí)刻為t,其輸入為t-st,t-st+1,···,t-1時(shí)刻六因子的小時(shí)數(shù)據(jù).輸入的數(shù)據(jù)先后經(jīng)由LSTM層和兩層全連接層(Dense層)后得到PM2.5的濃度預(yù)測(cè)結(jié)果.其中損失函數(shù)采用均方誤差(MSE),計(jì)算公式如式(9)所示.模型的優(yōu)化器選用Adam 優(yōu)化器[14].

其中,Xi為PM2.5濃度預(yù)測(cè)值,Xr為PM2.5濃度真實(shí)值,n為訓(xùn)練集樣本數(shù).
實(shí)驗(yàn)選取均方根誤差(RMSE)和平均絕對(duì)誤差(MAE)作為評(píng)價(jià)指標(biāo).計(jì)算公式如下:

1.3.2 KNN-LSTM預(yù)測(cè)模型
對(duì)于單站點(diǎn)LSTM模型只考慮時(shí)間特征,而沒(méi)有充分利用空間相關(guān)特征的問(wèn)題,本文利用KNN算法對(duì)鄰近的空間因素進(jìn)行篩選,作為額外輸入,對(duì)其進(jìn)行修正,構(gòu)建KNN-LSTM模型以實(shí)現(xiàn)對(duì)PM2.5濃度更精準(zhǔn)的預(yù)測(cè).
KNN-LSTM模型主要可分為以下7步,預(yù)測(cè)模型流程圖如圖2所示.

圖2 KNN-LSTM模型流程圖
(1)數(shù)據(jù)預(yù)處理.在原始數(shù)據(jù)使用前,需要對(duì)缺失樣本和異常值進(jìn)行處理.空氣監(jiān)測(cè)站對(duì)數(shù)據(jù)缺失的部分用-1表示,統(tǒng)計(jì)后可知,各因子的缺失部分占總數(shù)據(jù)量均不超過(guò)5%.故采用簡(jiǎn)單方便的線性插值法進(jìn)行填充.由于其數(shù)據(jù)的收集都要經(jīng)過(guò)一系列嚴(yán)格的審核流程,認(rèn)為其數(shù)據(jù)真實(shí)且有效,不對(duì)數(shù)據(jù)進(jìn)行去噪處理.
鑒于檢測(cè)站點(diǎn)各個(gè)污染因子有著不同的量綱和量級(jí),為了取消由于量綱不同引起的誤差和保證模型的高效性,對(duì)數(shù)據(jù)進(jìn)行max-min 歸一化處理[15],將數(shù)據(jù)轉(zhuǎn)化到[0,1]的范圍內(nèi),并在預(yù)測(cè)結(jié)束后進(jìn)行數(shù)據(jù)恢復(fù).max-min 歸一化公式如下:

其中,xt為原數(shù)據(jù),x′t為歸一化后的數(shù)據(jù),xmax、xmin分別為數(shù)據(jù)中的最大值與最小值.
(2)采用KNN算法提取目標(biāo)站點(diǎn)的空間相關(guān)特征,令K=1.本文采用歐氏距離來(lái)衡量目標(biāo)監(jiān)測(cè)站和附近站點(diǎn)之間的相關(guān)程度,距離越小,空間相關(guān)性越強(qiáng).KNN算法的選擇過(guò)程如下所示.
1)根據(jù)單站點(diǎn)LSTM模型中的時(shí)間步長(zhǎng)st構(gòu)建PM2.5狀態(tài)矩陣.假設(shè)其時(shí)間步長(zhǎng)為st,區(qū)域中共有m個(gè)站點(diǎn),為方便起見(jiàn),我們將t時(shí)刻站點(diǎn)i的時(shí)間步狀態(tài)量Xti和t時(shí)刻PM2.5狀態(tài)矩陣St定義如(13)、式(14)所示:

其中,xun為編號(hào)為u的站點(diǎn)在n時(shí)刻的PM2.5濃度值(u=1,2,3,…,m;n=1,2,3,…,t).
2)通過(guò)計(jì)算目標(biāo)站點(diǎn)與其他鄰近站點(diǎn)(共m-1個(gè))t時(shí)刻時(shí)間步狀態(tài)量之間的歐氏距離,并進(jìn)行從小到大排序,選取前k個(gè)對(duì)應(yīng)監(jiān)測(cè)站點(diǎn)的PM2.5數(shù)據(jù)作為t時(shí)刻目標(biāo)站點(diǎn)的空間相關(guān)因素,記為Xsp:

其中,xisp為t時(shí)刻與目標(biāo)站點(diǎn)第i相關(guān)的站點(diǎn)PM2.5濃度值.
(3)根據(jù)目標(biāo)站點(diǎn)的歷史污染數(shù)據(jù),利用LSTM網(wǎng)絡(luò)提取時(shí)間特征.輸入仍為目標(biāo)站點(diǎn)st時(shí)間步的空氣質(zhì)量六因子數(shù)據(jù),t時(shí)刻輸入數(shù)據(jù)lstm_inputt如式(16)所示.

將lstm_inputt經(jīng)過(guò)LSTM層得到的輸出向量記為lstm_outputt.

圖3 KNN-LSTM網(wǎng)絡(luò)結(jié)構(gòu)
(5)將數(shù)據(jù)劃分成訓(xùn)練集與測(cè)試集,用訓(xùn)練集數(shù)據(jù)進(jìn)行模型訓(xùn)練,用測(cè)試集數(shù)據(jù)進(jìn)行驗(yàn)證,并記錄結(jié)果.
(6)令K=K+1,重復(fù)步驟(3)~(5),直到K>M為止.其中M為鄰近站點(diǎn)的數(shù)量.
(7)根據(jù)所記錄測(cè)試集上評(píng)價(jià)指標(biāo)(這里選用RMSE),確定最優(yōu)的K.
為了驗(yàn)證所提方法的有效性,本文采用哈爾濱市區(qū)11個(gè)空氣質(zhì)量監(jiān)測(cè)站4月1日至5月31日兩個(gè)月共計(jì)1464條小時(shí)監(jiān)測(cè)數(shù)據(jù)作為實(shí)驗(yàn)數(shù)據(jù).站點(diǎn)名稱及坐標(biāo)位置見(jiàn)表1.

表1 哈爾濱市空氣質(zhì)量監(jiān)測(cè)站站點(diǎn)位置及其編號(hào)
阿城會(huì)寧空氣質(zhì)量監(jiān)測(cè)站遠(yuǎn)離城區(qū)且與其他監(jiān)測(cè)站點(diǎn)距離較遠(yuǎn),根據(jù)各站點(diǎn)PM2.5時(shí)間序列的相關(guān)性可知:阿城會(huì)寧站點(diǎn)與其他站點(diǎn)間的相關(guān)性系數(shù)均不超過(guò)0.6,而其他站點(diǎn)任意兩站點(diǎn)間的相關(guān)性系數(shù)均超過(guò)0.7,因此在KNN進(jìn)行空間站點(diǎn)選取時(shí),忽略阿城會(huì)寧站,同時(shí)這證明了PM2.5的濃度分布具有區(qū)域性.圖4為部分站點(diǎn)PM2.5數(shù)據(jù)展示,可以明顯看出站點(diǎn)的數(shù)據(jù)的分布具有相似性.

圖4 PM2.5 監(jiān)測(cè)數(shù)據(jù)(從上到下分別為站點(diǎn)編號(hào)1137A,1129A,1130A,1132A的數(shù)據(jù))
實(shí)驗(yàn)環(huán)境及計(jì)算機(jī)配置如下:程序設(shè)計(jì)語(yǔ)言為Python3.6.5;開(kāi)發(fā)環(huán)境采用Anaconda所自帶的Spyder編輯器;Keras版本為2.2.4;Tensorflow版本為1.13.1;Scikit-Learn版本為0.19.1;計(jì)算機(jī)處理器為AMD Ryzen 5 2500U,內(nèi)存為8 GB;操作系統(tǒng)為Window10 x64.
對(duì)數(shù)據(jù)進(jìn)行劃分,其中前1300條數(shù)據(jù)用于訓(xùn)練,80%為訓(xùn)練集、20%為驗(yàn)證集,后152條數(shù)據(jù)作為測(cè)試集.LSTM層的時(shí)間步長(zhǎng)timestep為12,K值選取為2 (具體原因見(jiàn)2.3節(jié)).具體網(wǎng)絡(luò)參數(shù)設(shè)置如表2所示.
本文通過(guò)KNN算法來(lái)獲取目標(biāo)站點(diǎn)的空間特征,由于K值的選擇會(huì)影響到選擇相關(guān)站點(diǎn)的數(shù)目,進(jìn)而影響實(shí)驗(yàn)結(jié)果.圖5給出了K值選擇與評(píng)價(jià)指標(biāo)RMSE變化之間的關(guān)系.根據(jù)圖5所示,當(dāng)K=2時(shí),預(yù)測(cè)效果最好.故K值選擇為2.
為了驗(yàn)證本文所提模型的有效性,本文選擇傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)以及傳統(tǒng)LSTM神經(jīng)網(wǎng)絡(luò)作為對(duì)比實(shí)驗(yàn),3種模型均在相同的實(shí)驗(yàn)平臺(tái)下進(jìn)行,各個(gè)模型預(yù)測(cè)值與實(shí)際值的對(duì)比見(jiàn)圖6.

圖6 預(yù)測(cè)值與實(shí)際值的對(duì)比圖
本文所有實(shí)驗(yàn)均采取均方根誤差(RMSE)和平均絕對(duì)誤差(MAE)作為評(píng)價(jià)指標(biāo).為消除一次實(shí)驗(yàn)的偶然性,每種實(shí)驗(yàn)均進(jìn)行30次,迭代50次.表3中評(píng)價(jià)指標(biāo)數(shù)據(jù)均為30次實(shí)驗(yàn)結(jié)果的平均值(結(jié)果保留3位小數(shù)).由表可知本文所提KNN-LSTM模型相對(duì)于BP神經(jīng)網(wǎng)絡(luò),平均絕對(duì)誤差(MAE)、均方根誤差(RMSE)分別降低了19.25%、13.23%;相較于LSTM模型MAE、RMSE分別降低了4.29%、6.99%.可見(jiàn)本文所提KNN-LSTM模型要優(yōu)于BP神經(jīng)網(wǎng)絡(luò)和LSTM模型.

表3 各個(gè)模型的評(píng)價(jià)指標(biāo)
本文使用哈爾濱市國(guó)控空氣質(zhì)量監(jiān)測(cè)站空氣質(zhì)量六因子的小時(shí)數(shù)據(jù)進(jìn)行PM2.5濃度預(yù)測(cè).首先對(duì)缺失值采用線性插值的方法進(jìn)行填充,為減少由于量綱造成的誤差,對(duì)數(shù)據(jù)進(jìn)行max-min 歸一化處理.再利用KNN算法為目標(biāo)站點(diǎn)選取與其空間相關(guān)的鄰近站點(diǎn),得到其空間特征.然后對(duì)目標(biāo)站點(diǎn)搭建LSTM模型,接著將得到的空間特征輸入到LSTM模型中.通過(guò)訓(xùn)練集數(shù)據(jù)進(jìn)行訓(xùn)練,再將訓(xùn)練好的模型用測(cè)試集進(jìn)行評(píng)估.通過(guò)選取最優(yōu)的K值,確定最終模型.實(shí)驗(yàn)結(jié)果表明:本文所提模型的預(yù)測(cè)結(jié)果曲線更為平滑且與真實(shí)值更加接近,均方根誤差和絕對(duì)平均誤差均為最小,預(yù)測(cè)效果相較BP神經(jīng)網(wǎng)絡(luò)和傳統(tǒng)LSTM神經(jīng)網(wǎng)絡(luò)模型更好,可以為PM2.5的預(yù)警預(yù)報(bào)提供一定的參考.
由于數(shù)據(jù)收集的不充分,僅僅利用空氣質(zhì)量六因子作為輸入數(shù)據(jù)是相對(duì)片面的,后續(xù)研究考慮引進(jìn)更多影響因素以提升模型效果.
計(jì)算機(jī)系統(tǒng)應(yīng)用2020年7期