黃 威,王星捷,陽(yáng)清青
(成都理工大學(xué) 工程技術(shù)學(xué)院,四川 樂(lè)山 614007)
PM2.5[1-2]是指大氣中直徑小于等于2.5微米的可入肺顆粒物,其對(duì)空氣的質(zhì)量和能見(jiàn)度有著重要的影響。大量研究表明,大氣中的PM2.5濃度與心血管疾病和肺癌的發(fā)病率存在一定的相關(guān)性。近年來(lái),隨著工廠的發(fā)展和機(jī)動(dòng)車(chē)的增加以及城鎮(zhèn)化節(jié)奏,大氣污染問(wèn)題的加劇,研究PM2.5的預(yù)測(cè)模型[3]有著重要的意義。
在預(yù)測(cè)方面,主要有時(shí)間序列、遺傳算法、小波神經(jīng)網(wǎng)絡(luò)、線性回歸、深度學(xué)習(xí)、人工魚(yú)群、貝葉斯、灰色理論、基于數(shù)據(jù)挖掘、模糊網(wǎng)絡(luò)、支持向量機(jī)、隨機(jī)森林等[4-6],以及后期學(xué)者對(duì)這些算法的合成與改進(jìn)。總體來(lái)說(shuō)可歸為傳統(tǒng)方法與近期火熱的人工智能機(jī)器學(xué)。傳統(tǒng)方法雖然簡(jiǎn)單、解釋能力強(qiáng),但是對(duì)環(huán)境參數(shù)進(jìn)行相關(guān)性分析需要大量的數(shù)據(jù)支持,往往最少的也需要風(fēng)速、風(fēng)向、溫度等環(huán)境參數(shù),數(shù)據(jù)繁雜,收集困難,且很難反映PM2.5這種復(fù)雜的物理變化過(guò)程,預(yù)測(cè)能力有限。神經(jīng)網(wǎng)絡(luò)機(jī)器學(xué)算法具有處理復(fù)雜非線性問(wèn)題和超強(qiáng)學(xué)習(xí)的能力,其在預(yù)測(cè)結(jié)果上的準(zhǔn)確率也很高。BP神經(jīng)網(wǎng)絡(luò)[7-8]是信息向前傳播和誤差向后傳播相結(jié)合變換的計(jì)算過(guò)程,是每層權(quán)值不斷調(diào)試更新的過(guò)程,也是神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)訓(xùn)練的過(guò)程,此過(guò)程一直進(jìn)行到網(wǎng)絡(luò)輸出的誤差減小到可以擬定的數(shù)值,或者進(jìn)行至預(yù)先設(shè)置好的學(xué)習(xí)次數(shù)結(jié)束[9-10]。通過(guò)反復(fù)實(shí)驗(yàn)測(cè)試結(jié)果表明,控制程序在誤差小于0.5或者學(xué)習(xí)訓(xùn)練次數(shù)大于5 000作為結(jié)束條件時(shí)具有優(yōu)良的預(yù)測(cè)效果。
文中應(yīng)用BP神經(jīng)網(wǎng)絡(luò)對(duì)霧霾預(yù)測(cè)進(jìn)行了研究,對(duì)報(bào)警系統(tǒng)進(jìn)行了設(shè)計(jì)和實(shí)現(xiàn)。值得注意的是,在做參數(shù)優(yōu)化時(shí)誤差不能設(shè)定的太小。在參考其他學(xué)者的研究時(shí)發(fā)現(xiàn),有學(xué)者將其設(shè)置的很小,雖然在單站點(diǎn)小范圍數(shù)據(jù)內(nèi)不會(huì)出現(xiàn)問(wèn)題,也取得了不錯(cuò)的預(yù)測(cè)值,但是在實(shí)際情況下的多站點(diǎn)大量數(shù)據(jù)應(yīng)用時(shí)會(huì)出現(xiàn)收斂速度極慢的問(wèn)題,導(dǎo)致程序假死。
系統(tǒng)框架結(jié)構(gòu)如圖1所示。該系統(tǒng)分為表現(xiàn)層、業(yè)務(wù)層、邏輯層、數(shù)據(jù)層。表現(xiàn)層是用戶與系統(tǒng)進(jìn)行友好交互的界面窗口;業(yè)務(wù)層是按系統(tǒng)的不同需求定制的不同的功能業(yè)務(wù);邏輯層為數(shù)據(jù)及功能之間的邏輯結(jié)構(gòu);數(shù)據(jù)層的數(shù)據(jù)分為空間數(shù)據(jù)和非空間數(shù)據(jù)。
圖1 系統(tǒng)架構(gòu)
數(shù)據(jù)層主要包括空間數(shù)據(jù)和非空間數(shù)據(jù)(屬性數(shù)據(jù))的存取,以及各數(shù)據(jù)間的關(guān)聯(lián)。非空間數(shù)據(jù)使用Microsoft提供的SQL進(jìn)行數(shù)據(jù)庫(kù)長(zhǎng)時(shí)間存取和Microsoft Excel數(shù)據(jù)臨時(shí)存取及程序臨時(shí)作業(yè)??臻g數(shù)據(jù)使用MapGIS進(jìn)行地理數(shù)據(jù)庫(kù)存取。
邏輯層包括設(shè)計(jì)該系統(tǒng)的各個(gè)功能間的相互信息傳遞,以及各個(gè)功能之間的協(xié)調(diào)工作,各功能板塊之間的順序邏輯、跳躍邏輯、交互邏輯。通過(guò)邏輯層的設(shè)計(jì),使得程序科學(xué)化、簡(jiǎn)潔化、人性化,實(shí)現(xiàn)系統(tǒng)的完整性。
業(yè)務(wù)層包括各種業(yè)務(wù)功能,主要實(shí)現(xiàn)了基本功能、高級(jí)功能、預(yù)測(cè)分析、治理分析等功能,實(shí)現(xiàn)此系統(tǒng)的功能需求。
表現(xiàn)層是系統(tǒng)與用戶的交互關(guān)注點(diǎn),通過(guò)對(duì)用戶使用規(guī)則來(lái)設(shè)定。實(shí)現(xiàn)用戶最理想的需求表現(xiàn)層,是用戶與系統(tǒng)交互的入口。該系統(tǒng)的表現(xiàn)層采用MapGIS接口開(kāi)發(fā),主要包括地圖組件、業(yè)務(wù)交互組件和緩存管理組件以及.NET提供的各種類庫(kù)、功能組件及交互控件。界面整體簡(jiǎn)潔美觀,符合大眾審美需求。
霧霾天氣是一種大氣污染狀態(tài),霧霾是對(duì)大氣中各種懸浮顆粒物含量超標(biāo)的籠統(tǒng)表述,霧霾的主要成分是PM2.5。文中以PM2.5預(yù)測(cè)模型為霧霾預(yù)測(cè)模型。該系統(tǒng)用到的非地理數(shù)據(jù)通過(guò)PM2.5云監(jiān)測(cè)平臺(tái)、國(guó)家環(huán)保部的數(shù)據(jù)中心收集到之后按照程序需求有序地入SQL數(shù)據(jù)庫(kù)和臨時(shí)Excel表。
BP神經(jīng)網(wǎng)絡(luò)模型拓?fù)浣Y(jié)構(gòu)包括輸入層(input layer)、輸出層(output layer)和多個(gè)隱層(hidden layer)。BP算法的學(xué)習(xí)過(guò)程由信息的正向傳播和誤差的反向傳播兩個(gè)過(guò)程組成。為了簡(jiǎn)單起見(jiàn),這里只做有一個(gè)隱層的BP網(wǎng)絡(luò)分析,多個(gè)隱層的原理類似。其結(jié)構(gòu)如圖2所示。
圖2 三層神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
首先,輸入一組x1,x2,…,xm到input layer,然后通過(guò)與hidden layer的連接權(quán)重產(chǎn)生一組數(shù)據(jù)s1,s2,…,sn作為hidden layer的輸入,然后通過(guò)hidden layer節(jié)點(diǎn)的f(x)激活函數(shù)后變?yōu)棣?sj)。其中sj表示hidden layer的第j個(gè)節(jié)點(diǎn)產(chǎn)生的輸出,這些輸出將通過(guò)hidden layer與output layer的連接權(quán)重產(chǎn)生output layer的輸入。這里output layer的處理過(guò)程和hidden layer是一樣的,最后會(huì)在output layer產(chǎn)生輸出yj,這里j是指output layer第j個(gè)節(jié)點(diǎn)的輸出。然后計(jì)算誤差,如果誤差大于擬定的再反向誤差傳遞,其原理和前面類似,依此調(diào)節(jié)各層之間的權(quán)重和閾值。直到誤差或?qū)W習(xí)次數(shù)達(dá)到所擬定的參數(shù),最后將output layer層的結(jié)果作為最終的預(yù)測(cè)結(jié)果。理論上只要有足夠多的隱層神經(jīng)元,就可以逼近任意復(fù)雜的非線性函數(shù)。
將收集到的歷史PM2.5數(shù)據(jù)(樣本數(shù)據(jù))做預(yù)處理(數(shù)據(jù)歸一化),統(tǒng)一樣本的統(tǒng)計(jì)分布性。即將樣本數(shù)據(jù)映射到更小的區(qū)間內(nèi),歸一化一般可將樣本數(shù)據(jù)映射至(0,1)或者(-1,1)。本次實(shí)驗(yàn)是為了統(tǒng)計(jì)坐標(biāo)的分布,因此將數(shù)據(jù)歸一化到(-1,1)區(qū)間,然后用非線性標(biāo)準(zhǔn)方程形式進(jìn)行預(yù)測(cè)。但是傳統(tǒng)的標(biāo)準(zhǔn)歸一化公式并不能滿足文中的需求,經(jīng)過(guò)反復(fù)的實(shí)驗(yàn)對(duì)比分析,最終使用符合本次實(shí)驗(yàn)的歸一化公式:
(1)
其中,x為轉(zhuǎn)換前的值;y為轉(zhuǎn)換后的值;max、min分別為樣本的最大值和最小值。
BP神經(jīng)網(wǎng)絡(luò)的建立包括數(shù)據(jù)預(yù)處理、函數(shù)的選擇、參數(shù)優(yōu)化。
目前的神經(jīng)網(wǎng)絡(luò)激活函數(shù)有階躍函數(shù)、準(zhǔn)線性函數(shù)、雙曲正切函數(shù)、Sigmoid函數(shù)等等。由于霧霾的物理結(jié)構(gòu)復(fù)雜,選取的激活函數(shù)為:
(2)
參數(shù)優(yōu)化在目前為止并沒(méi)有系統(tǒng)的理論來(lái)解釋說(shuō)明參數(shù)的選擇規(guī)范。通常都是借助經(jīng)驗(yàn)和實(shí)驗(yàn)來(lái)確定最優(yōu)參數(shù)。文中建立訓(xùn)練數(shù)據(jù)和歷史數(shù)據(jù)預(yù)測(cè)對(duì)比來(lái)確定最優(yōu)參數(shù)。訓(xùn)練數(shù)據(jù)如式3所示,測(cè)試對(duì)比數(shù)據(jù)如公式4所示。
(3)
(4)
其中,x1~xn為單組樣本數(shù)據(jù),實(shí)驗(yàn)證明該訓(xùn)練方法較為有效。
BP神經(jīng)網(wǎng)絡(luò)可以說(shuō)是迄今為止最為成功的神經(jīng)網(wǎng)絡(luò)算法之一?;贐P神經(jīng)網(wǎng)絡(luò)優(yōu)越的非線性處理能力,建立PM2.5預(yù)測(cè)模型,模型流程如下:
(1)數(shù)據(jù)歸一化;
(2)在(0,1)區(qū)間內(nèi)隨機(jī)初始化網(wǎng)絡(luò)中的權(quán)值和閾值;
(3)根據(jù)當(dāng)前隨機(jī)的權(quán)值和閾值參數(shù)和激活函數(shù)公式2計(jì)算當(dāng)前樣本的輸出值y;
(4)計(jì)算代價(jià)誤差函數(shù)值;
(5)更新網(wǎng)絡(luò)中的連接權(quán)重和閾值(以最小化累計(jì)誤差為目的的更新);
(6)直至滿足結(jié)束條件,以輸出層的結(jié)果作為臨時(shí)預(yù)測(cè)結(jié)果;
(7)將預(yù)測(cè)數(shù)據(jù)反歸一化作為實(shí)際預(yù)測(cè)結(jié)果。
傳統(tǒng)的BP神經(jīng)網(wǎng)絡(luò)是缺乏記憶性的,即每一組輸入的學(xué)習(xí)數(shù)據(jù)之間是沒(méi)有聯(lián)系的,但如果經(jīng)過(guò)數(shù)據(jù)的循環(huán)疊加的程序邏輯處理可以讓其網(wǎng)絡(luò)具有一定的往前記憶效果。
BP神經(jīng)網(wǎng)絡(luò)雖然應(yīng)用廣泛,但是在其不同的領(lǐng)域有著不同的使用方法,其主核心主要在于函數(shù)的選擇和參數(shù)的優(yōu)化。使用傳統(tǒng)的調(diào)優(yōu)方式不一定能真正地找到最優(yōu)參數(shù)。文中使用程序邏輯的方法基本可以最快速獲取最優(yōu)越的參數(shù)。以誤差的確定為例,其具體流程如下:
(1)準(zhǔn)備樣本數(shù)據(jù)(少量多組);
(2)以2.4節(jié)方法處理每組數(shù)據(jù);
(3)通過(guò)循環(huán)記錄從0開(kāi)始到理論誤差最大值的所有預(yù)測(cè)值;
(4)將預(yù)測(cè)值與實(shí)際值進(jìn)行對(duì)比,取其最接近實(shí)際值的誤差作為擬定的誤差;
(5)對(duì)每組數(shù)據(jù),重復(fù)步驟1~步驟3(為防止偶然情況);
(6)將所有的擬定誤差均值作為該系統(tǒng)的累計(jì)誤差判斷。
此方法應(yīng)用計(jì)算機(jī)的優(yōu)越計(jì)算能力進(jìn)行調(diào)參,適用于大多數(shù)參數(shù)的調(diào)優(yōu),既快速又可以基本達(dá)到最優(yōu)。
該系統(tǒng)包括基礎(chǔ)操作、基本功能、數(shù)據(jù)管理、預(yù)測(cè)分析、柵格出圖、專題圖與治理六個(gè)部分[11]。預(yù)測(cè)分析包括了可行性分析、預(yù)測(cè)分析,主要是測(cè)試網(wǎng)絡(luò)和測(cè)試訓(xùn)練,訓(xùn)練網(wǎng)絡(luò)數(shù)據(jù)、測(cè)試網(wǎng)絡(luò)數(shù)據(jù)是使用文中預(yù)測(cè)模型處理好的數(shù)據(jù),采用BP神經(jīng)網(wǎng)絡(luò)進(jìn)行計(jì)算分析,最后通過(guò)程序輸出數(shù)據(jù)和實(shí)測(cè)與預(yù)測(cè)比對(duì)比曲線圖來(lái)分析其預(yù)測(cè)精確度[12-13],以此來(lái)判斷此次運(yùn)行的可行性,并提供用戶交互式輸入需要預(yù)測(cè)的天數(shù)。柵格出圖[14]包括了樂(lè)山出圖、周邊出圖、輸出工作區(qū),通過(guò)多層B樣條法插值法對(duì)預(yù)測(cè)[15]的未來(lái)5天數(shù)據(jù)進(jìn)行空間插值以反映PM2.5的空間分布。專題與治理包括治理路線和預(yù)測(cè)專題以及預(yù)警,該功能塊對(duì)樂(lè)山各縣和各城城區(qū)進(jìn)行預(yù)警專題圖的可視化,便于使用者觀察,做出需求判斷。功能結(jié)構(gòu)如圖3所示。
圖3 功能結(jié)構(gòu)
基礎(chǔ)操作、基本功能、數(shù)據(jù)管理是關(guān)于GIS軟件地圖操作的基本操作和基本功能等的實(shí)現(xiàn),是系統(tǒng)的輔助功能。其他核心功能分別實(shí)現(xiàn)預(yù)測(cè)、預(yù)警、治理等功能。該系統(tǒng)在具有基本功能的情況下具有一套完整有序的處理流程。
文中采用樂(lè)山市整個(gè)行政區(qū)的霧霾數(shù)據(jù)進(jìn)行系統(tǒng)測(cè)試,通過(guò)神經(jīng)網(wǎng)絡(luò)算法對(duì)數(shù)據(jù)進(jìn)行數(shù)據(jù)的預(yù)測(cè)[16-18],實(shí)現(xiàn)了縣區(qū)預(yù)警分析和區(qū)縣霧霾專題圖[19-20]。重點(diǎn)采集了樂(lè)山市中區(qū)的數(shù)據(jù)進(jìn)程進(jìn)行系統(tǒng)測(cè)試,對(duì)市中區(qū)進(jìn)行了預(yù)測(cè)分析和預(yù)警。
系統(tǒng)設(shè)計(jì)一鍵式實(shí)現(xiàn)樂(lè)山各縣的預(yù)警模塊。點(diǎn)擊相應(yīng)的功能鍵可按照程序的標(biāo)準(zhǔn)色卡表進(jìn)行等級(jí)專題圖可視化顯示。也可對(duì)當(dāng)前超出黃色預(yù)警線或者紅色預(yù)警線的縣區(qū)在程序地圖中標(biāo)記閃爍,并且把各縣的PM2.5濃度值顯示出,如圖4所示。
利用MapGIS二次開(kāi)發(fā)等技術(shù)設(shè)計(jì)了樂(lè)山市中區(qū)各城區(qū)的黃色預(yù)警和紅色預(yù)警模塊。并使用插值算法計(jì)算出各城區(qū)的PM2.5濃度,使得各城區(qū)PM2.5數(shù)據(jù)可查。點(diǎn)擊相應(yīng)的功能鍵可標(biāo)記出市中區(qū)各城區(qū)超出紅色預(yù)警線或者黃色預(yù)警線的城區(qū),并可根據(jù)用戶需求查出各城區(qū)的PM2.5濃度。并可通過(guò)模擬灑水車(chē)治理對(duì)嚴(yán)重城區(qū)進(jìn)行灑水路線動(dòng)態(tài)作業(yè)演示,給出相應(yīng)的治理信息。黃色預(yù)警如圖5所示。
圖4 各縣預(yù)警
圖5 黃色預(yù)警
該功能模塊提供了多地區(qū)PM2.5數(shù)據(jù)可查,使用者可隨意查出各個(gè)城區(qū)的PM2.5濃度,可為人們出行提供一定的決策。
采用多層B樣條法插值法對(duì)監(jiān)測(cè)點(diǎn)未來(lái)5天的預(yù)測(cè)數(shù)據(jù)進(jìn)行空間插值分析,以此來(lái)反映PM2.5的濃度空間分布情況。以樂(lè)山市2018年8月1日的一天為例,進(jìn)行空間插值,如圖6所示。
圖6 2018年8月1日的預(yù)測(cè)空間分布
此次插值的數(shù)據(jù)是在7月份數(shù)據(jù)基礎(chǔ)上經(jīng)過(guò)預(yù)測(cè)模型預(yù)測(cè)出來(lái)的數(shù)據(jù)。從實(shí)驗(yàn)結(jié)果可以看出,樂(lè)山東部地區(qū)PM2.5污染較為嚴(yán)重,筆者對(duì)樂(lè)山地區(qū)的地形環(huán)境及社會(huì)環(huán)境進(jìn)行了多方資料查閱,其預(yù)測(cè)結(jié)果的分布基本與實(shí)際吻合。表明了在預(yù)測(cè)精度足夠的情況下,該功能模塊具有一定的參考價(jià)值。
基于.NET平臺(tái)采用C#程序設(shè)計(jì)語(yǔ)言、MapGIS二次開(kāi)發(fā)技術(shù)相結(jié)合,利用BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型與報(bào)警模型設(shè)計(jì)了霧霾預(yù)報(bào)警系統(tǒng)。預(yù)報(bào)警能力與所選的預(yù)測(cè)模型的預(yù)測(cè)準(zhǔn)確度有著緊密的聯(lián)系,通過(guò)反復(fù)實(shí)驗(yàn)訓(xùn)練調(diào)整網(wǎng)絡(luò)結(jié)構(gòu)、改進(jìn)相關(guān)參數(shù)、優(yōu)化預(yù)測(cè)模型,提高了BP神經(jīng)網(wǎng)絡(luò)算法對(duì)PM2.5的預(yù)測(cè)能力,并設(shè)計(jì)了科學(xué)合理的報(bào)警模型。通過(guò)實(shí)際數(shù)據(jù)進(jìn)行了實(shí)驗(yàn)分析,證明了該預(yù)測(cè)模型的準(zhǔn)確性和實(shí)用性,為霧霾預(yù)測(cè)系統(tǒng)提供了技術(shù)支持。在特殊的時(shí)段(比如換季時(shí)節(jié)、某些突變情況)預(yù)報(bào)警分析表明,該系統(tǒng)還存在一些不足,有待提高。后續(xù)研究中,應(yīng)對(duì)季節(jié)數(shù)據(jù)、風(fēng)力數(shù)據(jù)等一些自然因素進(jìn)行進(jìn)一步的研究與分析。