陳春瑋,張建明,賀易棟
(廣東職業(yè)技術(shù)學(xué)院,廣東 佛山 528000)
目前,隨著中國(guó)經(jīng)濟(jì)的高速發(fā)展,工業(yè)化建設(shè)、交通規(guī)模持續(xù)擴(kuò)大,中小型的加工廠的建設(shè)隨著發(fā)展的需要也越來(lái)越多,燃油車的保有量逐年增加等能源和環(huán)境問(wèn)題帶來(lái)的汽車尾氣、工業(yè)污染排放、建筑顆粒揚(yáng)塵、垃圾焚燒等增加大氣的污染問(wèn)題??諝馕廴締?wèn)題日趨嚴(yán)重,也逐漸成為人民群眾日常關(guān)注的民生問(wèn)題。對(duì)于空氣污染的預(yù)測(cè)很有必要,用于指導(dǎo)出行計(jì)劃,工業(yè)生產(chǎn),環(huán)境調(diào)控等都有一定的科學(xué)依據(jù)。針對(duì)目前很多預(yù)測(cè)模型都是單向的循環(huán)神經(jīng)網(wǎng)絡(luò)時(shí)序模型,信息利用不充分[1]。本研究結(jié)合LSTM 和GRU 雙向神經(jīng)網(wǎng)絡(luò)為主,卷積神經(jīng)網(wǎng)絡(luò)為輔的預(yù)測(cè)模型,從而提高模型解釋方差。
機(jī)器學(xué)習(xí)中有許多的模型可以應(yīng)用到空氣質(zhì)量的預(yù)測(cè),我們主要用sklearn 進(jìn)行模型的搭建于實(shí)驗(yàn)。其中我們用到的模型貝葉斯、SVM、隨機(jī)森林、梯度提升樹(shù)、Bagging、KNN、極端隨機(jī)樹(shù)[2]。模型上,以被解釋方差(R2)來(lái)進(jìn)行評(píng)價(jià)。其中,貝葉斯(R2 : 0.378)、SVM(R2 : 0.285)、隨機(jī)森林(R2 : 0.676)、梯度提升樹(shù)(0.576)、Bagging(R2 : 0.651)、KNN(R2 : 0.523)、極端隨機(jī)樹(shù)(R2 : 0.717)。進(jìn)行了實(shí)驗(yàn)以后可以看到,相對(duì)于線性模型,非線性模型的R2 會(huì)更高。對(duì)比各個(gè)模型的R2,發(fā)現(xiàn)最后一個(gè)極端隨機(jī)樹(shù)是最高的,其中利用集成學(xué)習(xí)模型的R2 也相對(duì)比較高。但是,傳統(tǒng)的機(jī)器學(xué)習(xí)還是存在一個(gè)時(shí)空問(wèn)題,也就是說(shuō)其實(shí)影響空氣質(zhì)量指數(shù)的相關(guān)污染物,與時(shí)間的變化也是有關(guān)的,傳統(tǒng)的機(jī)器學(xué)習(xí)并不能有效解決這個(gè)問(wèn)題。
循環(huán)神經(jīng)網(wǎng)絡(luò)的來(lái)源是為了刻畫一個(gè)序列當(dāng)前的輸出與之前信息的關(guān)系。從網(wǎng)絡(luò)結(jié)構(gòu)上,循環(huán)神經(jīng)網(wǎng)絡(luò)會(huì)記憶之前的信息,并利用之前的信息影響后面結(jié)點(diǎn)的輸出。為了處理傳統(tǒng)機(jī)器學(xué)習(xí)中突出與時(shí)間的關(guān)系,解決長(zhǎng)序列訓(xùn)練過(guò)程中的梯度消失和梯度爆炸問(wèn)題。我們使用LSTM 和GRU。具體表現(xiàn)LSTM 模型中R2 的CO:0.563,NO2:0.096,O3:0.51,PM2:0.549,PM10:0.567,SO2:0.525; 具體表現(xiàn)GRU 模型中R2 的CO:0.482,NO2:0.113,O3:0.471,PM2:0.602,PM10:0.541,SO2:0.517[3-4]。
對(duì)數(shù)據(jù)進(jìn)行100 次、批次為1 000 的訓(xùn)練。進(jìn)行實(shí)驗(yàn)后的數(shù)據(jù),可以看到R2 的平均值在0.461,而且對(duì)與NO2的預(yù)測(cè)后的R2 尤為低??吹絺鹘y(tǒng)的機(jī)器學(xué)習(xí)中的極端隨機(jī)樹(shù)的R2 有0.717,這樣來(lái)看還比不上傳統(tǒng)的機(jī)器學(xué)習(xí)。雖然解決了時(shí)間相關(guān)性問(wèn)題,但是R2下降了。
BBCNN 模型利用了兩個(gè)雙向循環(huán)神經(jīng)網(wǎng)絡(luò)和一個(gè)一維卷積神經(jīng)網(wǎng)絡(luò)。雙向循環(huán)神經(jīng)網(wǎng)絡(luò)(BRNN)的基本思想是提出每一個(gè)訓(xùn)練序列向前和向后分別是兩個(gè)循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN),而且這兩個(gè)都連接著一個(gè)輸出層。這個(gè)結(jié)構(gòu)提供給輸出層輸入序列中每一個(gè)點(diǎn)的完整的過(guò)去和未來(lái)的上下文信息。
我們進(jìn)行100 次、批次為1 000 的訓(xùn)練后得到的數(shù)據(jù)。具體表現(xiàn)為CO:0.941,NO2:0.972,O3:0.971,PM2:0.983,PM10:0.978,SO2:0.979。從中可以看到對(duì)六種污染物的R2 均值在0.977。對(duì)循環(huán)神經(jīng)網(wǎng)絡(luò)R2 有了大幅提高,對(duì)極端隨機(jī)樹(shù)也有大幅提高,解決了兩者的問(wèn)題。
數(shù)據(jù)來(lái)自2021 年華為杯研究生數(shù)學(xué)建模數(shù)據(jù)集,數(shù)據(jù)有24 個(gè)特征:
模型運(yùn)行日期、預(yù)測(cè)時(shí)間、地點(diǎn)、近地2 m 溫度(℃)、地表溫度(K)、比濕(kg/kg)、濕度(%)、近地10 m 風(fēng)速(m/s)、近地10m 風(fēng)向(°)、雨量(mm)、云量、邊界層高度(m)、大氣壓(Kpa)、感熱通量(W/m2)、潛熱通量(W/m2)、長(zhǎng)波輻射(W/m2)、短波輻射(W/m2)、地面太陽(yáng)能輻射(W/m2)、SO2小時(shí)平均濃度(μg/m3)、NO2小時(shí)平均濃度(μg/m3)、PM10小時(shí)平均濃度(μg/m3)、PM2.5小時(shí)平均濃度(μg/m3)、O3小時(shí)平均濃度(μg/m3)、CO 小時(shí)平均濃度(mg/m3)。
其中,將O2小時(shí)平均濃度(μg/m3)、NO2小時(shí)平均濃度(μg/m3)、PM10小時(shí)平均濃度(μg/m3)、PM2.5小時(shí)平均濃度(μg/m3)、O3小時(shí)平均濃度(μg/m3)、CO 小時(shí)平均濃度(mg/m3)。由于空氣質(zhì)量指數(shù)需要這六種污染物作為計(jì)算標(biāo)準(zhǔn),我們將這六種作為預(yù)測(cè)目標(biāo)[5]。
先利用pandas 讀入數(shù)據(jù),檢查數(shù)據(jù)有無(wú)確實(shí)以及格式問(wèn)題。經(jīng)過(guò)檢查,發(fā)現(xiàn)并沒(méi)有缺失等問(wèn)題。我們想要將數(shù)據(jù)放入循環(huán)神經(jīng)網(wǎng)絡(luò),需要將數(shù)據(jù)轉(zhuǎn)化為時(shí)序數(shù)據(jù)。通過(guò)觀察“預(yù)測(cè)時(shí)間”,發(fā)現(xiàn)每個(gè)小時(shí)會(huì)收集一次數(shù)據(jù),因此我們將24 h 來(lái)當(dāng)作時(shí)序數(shù)據(jù)一個(gè)批的數(shù)據(jù)量。
構(gòu)建模型的時(shí)候,發(fā)現(xiàn)利用單層LSTM 構(gòu)建的模型訓(xùn)練結(jié)果有比較大的波動(dòng);發(fā)現(xiàn)利用單層GRU 構(gòu)建的模型訓(xùn)練結(jié)果LOSS 下降的比較慢。LSTM 比GRU 下降的快,而GRU 比LSTM 穩(wěn)定。為了將兩者的優(yōu)點(diǎn)結(jié)合,模型會(huì)將兩個(gè)模型結(jié)合使用。在訓(xùn)練后,預(yù)測(cè)結(jié)果出現(xiàn)了一個(gè)周期問(wèn)題。當(dāng)我們輸入正序數(shù)據(jù)時(shí),預(yù)測(cè)結(jié)果沒(méi)有出現(xiàn)問(wèn)題,但當(dāng)輸入的數(shù)據(jù)沒(méi)有按照正序輸入的時(shí)候,發(fā)現(xiàn)RMSE 明顯增大,預(yù)測(cè)出來(lái)的結(jié)果也不正常。這一問(wèn)題,我們利用雙向循環(huán)神經(jīng)網(wǎng)絡(luò)解決。提高模型對(duì)數(shù)據(jù)的擬合度。為了能獲得更高的R2 以及更小的誤差,我們引入一維卷積神經(jīng)網(wǎng)絡(luò)。為了提高模型的輸出的穩(wěn)定性,最后的增加多一層的全連接神經(jīng)網(wǎng)絡(luò)。見(jiàn)圖1。
圖1 模型思路圖
數(shù)據(jù)在進(jìn)入模型的后兩個(gè)輸入方向。先進(jìn)入雙向循環(huán)神經(jīng)網(wǎng)絡(luò)。雙向循環(huán)神經(jīng)網(wǎng)絡(luò)我們利用LSTM 和GRU 混合使用。每個(gè)雙向循環(huán)神經(jīng)網(wǎng)絡(luò)輸入接入批標(biāo)準(zhǔn)化。然后將兩個(gè)方向的數(shù)據(jù)進(jìn)行拼接。之后進(jìn)入兩層一維卷積神經(jīng)網(wǎng)絡(luò),每個(gè)輸出都接入批標(biāo)準(zhǔn)化,最后輸入全連接神經(jīng)網(wǎng)絡(luò)。見(jiàn)圖2。
圖2 模型結(jié)構(gòu)
我們?nèi)绻苯舆x擇全部特征輸入到我們寫好的模型中,那么會(huì)存在噪音。我們需要預(yù)測(cè)的有六個(gè)污染物,那么有一些特征對(duì)于所需要預(yù)測(cè)的污染物,有可能會(huì)存在負(fù)影響。這些負(fù)影響就會(huì)拉低整個(gè)模型預(yù)測(cè)這一污染物的R2,以及提高預(yù)測(cè)的誤差。為了解決這個(gè)問(wèn)題,我們將每一特征單個(gè)刪除以后訓(xùn)練模型,然后以訓(xùn)練出來(lái)的R2 作為參照標(biāo)準(zhǔn)。見(jiàn)圖3。
圖3 刪除單個(gè)特征獲取R2 流程
之后我們開(kāi)始訓(xùn)練模型,訓(xùn)練100 次、批次為1 000。我們會(huì)獲得每個(gè)污染物15 個(gè)的R2。我們可以利用R2 來(lái)進(jìn)行判斷一個(gè)污染物失去了這一特征對(duì)其預(yù)測(cè)的誤差以及R2 有什么樣的影響。利用這些影響來(lái)判斷這一特征是否對(duì)污染物有著負(fù)面的影響, 若是有負(fù)面的影響,我們將這一特征刪除。
我們將各個(gè)特征的R2 進(jìn)行平均以后和模型訓(xùn)練的R2 進(jìn)行對(duì)比。見(jiàn)表1。
從表1 中,可以看到只有CO 的兩者差異較大,我們對(duì)CO 進(jìn)行調(diào)整。若每一特征刪除后訓(xùn)練的R2 大于平均則刪除。我們?cè)谟^察以后選擇刪除,['近地2 m溫度(℃)']、['比濕(kg/kg)']、['近地10 m 風(fēng)速(m/s)']、['大氣壓(Kpa)']、['潛熱通量(W/m2)']、['短波輻射(W/m2)']、['地面太陽(yáng)能輻射(W/m2)']。最后,重新訓(xùn)練,得到的R2 為0.9414。
表1 R2 對(duì)比
經(jīng)過(guò)了優(yōu)化訓(xùn)練以后,我們利用RMSE、MSE、MAE、R2 對(duì)模型進(jìn)行評(píng)估。見(jiàn)表2。
表2 各個(gè)污染物的誤差指標(biāo)對(duì)比
目前利用循環(huán)神經(jīng)網(wǎng)絡(luò)對(duì)空氣質(zhì)量進(jìn)行預(yù)測(cè)不在少數(shù),循環(huán)神經(jīng)網(wǎng)絡(luò)用的比較多的也就是LSTM。LSTM 的記憶性能力,讓它能夠適應(yīng)和應(yīng)用在很多場(chǎng)景。單純的記憶能力能應(yīng)對(duì)的是一段時(shí)間內(nèi)的預(yù)測(cè),我在對(duì)模型的構(gòu)建時(shí)就想到如若可以將卷積的特性加入進(jìn)去,就能提高對(duì)新數(shù)據(jù)的擬合度。對(duì)于最后的預(yù)測(cè)數(shù)據(jù)來(lái)說(shuō),是非常需要批量標(biāo)準(zhǔn)化,這一步能大大提高模型對(duì)數(shù)據(jù)的擬合度,也能大大降低模型的訓(xùn)練難度。如果可以加入圖片數(shù)據(jù)(加入的數(shù)據(jù)也就是各種天氣下同一個(gè)位置的照片,以及各種環(huán)境下的照片),那么我們就可以利用二維卷積神經(jīng)網(wǎng)絡(luò)來(lái)進(jìn)行輔助判斷。能將數(shù)據(jù)和圖片一同輸入模型內(nèi)進(jìn)行學(xué)習(xí),那這一模型也就能對(duì)多個(gè)場(chǎng)景有適應(yīng)性。目前這個(gè)模型只應(yīng)用在了空氣質(zhì)量計(jì)算上,我們可以將它推廣到屋內(nèi)裝修后的空氣質(zhì)量監(jiān)測(cè),以及進(jìn)行修改以后對(duì)水質(zhì)的監(jiān)測(cè)。