包浩
摘要 本文使用2015年4月至2016年9月NCEP再分析資料(1°×1°)、淄博地區(qū)氣象觀測資料及淄博市環(huán)境監(jiān)測中心提供的污染物濃度資料,采用BP神經(jīng)網(wǎng)絡(luò)建立預(yù)報模型,并利用歐洲細(xì)網(wǎng)格資料及CUACE模式資料對淄博地區(qū)進(jìn)行了72 h站點霾預(yù)報試驗。結(jié)果表明,BP神經(jīng)網(wǎng)絡(luò)模型對淄博地區(qū)霾預(yù)報的準(zhǔn)確率達(dá)到74%以上,漏報率僅為5.37%,空報率略偏高,其中淄博站、沂源站、高青站的預(yù)報準(zhǔn)確率達(dá)到82%以上,對實際業(yè)務(wù)中霾的預(yù)報有一定參考意義。
關(guān)鍵詞 霾;人工神經(jīng)網(wǎng)絡(luò);R語言;BP算法;預(yù)報方法;山東淄博
中圖分類號 P457.7 文獻(xiàn)標(biāo)識碼 A 文章編號 1007-5739(2017)10-0209-03
近年來,淄博地區(qū)空氣中的細(xì)顆粒物和氣體污染物明顯增加,空氣質(zhì)量變差。這不僅對市民的健康構(gòu)成了危脅,而且降低了大氣的能見度,對交通出行造成影響,也通過遠(yuǎn)距離傳輸對周邊地區(qū)帶來一定的影響。
目前,國內(nèi)外霾的預(yù)報主要有數(shù)值預(yù)報、模式輸出統(tǒng)計預(yù)報等方法。數(shù)值預(yù)報方法在大氣動力學(xué)模式的基礎(chǔ)上耦合了化學(xué)模塊,直接模擬大氣污染與大氣氣象要素場的變化過程,具有良好的發(fā)展前景;但受到源排放清單不確定等因素影響,在日常預(yù)報業(yè)務(wù)中受到一定限制。模式輸出統(tǒng)計預(yù)報方法首先依據(jù)污染物濃度數(shù)據(jù)集篩選出關(guān)聯(lián)性強(qiáng)的氣象因子,然后利用統(tǒng)計方法建立預(yù)報方程,最后利用模式輸出量代入預(yù)報方程進(jìn)行預(yù)報。陳亦君等應(yīng)用基于系統(tǒng)辨識理論的實時迭代模式對WRF模式預(yù)報結(jié)果進(jìn)行后處理,建立了上海地區(qū)霾天氣的模式輸出統(tǒng)計方法,結(jié)果表明霾日預(yù)報成功率為72.7%~73.7%[1]。毛宇清等使用SVM分類和回歸方法分別建立了南京地區(qū)霾日分類預(yù)報模型和有霾日能見度預(yù)報模型,預(yù)報試驗結(jié)果表明南京地區(qū)霾日的SVM分類預(yù)報結(jié)果TS評分均在0.4以上,有霾日14:00能見度的SVM回歸預(yù)報結(jié)果準(zhǔn)確率均達(dá)到86%以上[2]。以上研究主要是基于霾與氣象條件之間的相關(guān)性,但是由于霾的嚴(yán)重程度受氣溶膠濃度的影響很大,所以同時考慮氣象條件、氣溶膠濃度將很大程度上提高霾預(yù)報準(zhǔn)確率。本研究嘗試通過建立動態(tài)的預(yù)報模型,利用氣象和大氣化學(xué)模式輸出的結(jié)果來實現(xiàn)霾等級預(yù)報。
1 人工神經(jīng)網(wǎng)絡(luò)和R語言
1.1 人工神經(jīng)網(wǎng)絡(luò)
神經(jīng)網(wǎng)絡(luò)是由簡單處理單元構(gòu)成的大規(guī)模并行分布式處理器,天然地具有存儲經(jīng)驗知識和使之可用的特性。神經(jīng)網(wǎng)絡(luò)在2個方面與大腦相似:一是神經(jīng)網(wǎng)絡(luò)是通過學(xué)習(xí)過程從外界環(huán)境中獲取知識;二是互聯(lián)神經(jīng)元的連接強(qiáng)度,即突觸權(quán)值,用于存儲獲取的知識[3]。
根據(jù)網(wǎng)絡(luò)結(jié)構(gòu)的不同,可將神經(jīng)網(wǎng)絡(luò)分為3種,即前饋網(wǎng)絡(luò)、競爭網(wǎng)絡(luò)以及遞歸聯(lián)想存儲網(wǎng)絡(luò),本文采用基于誤差反向傳播算法的多層前饋神經(jīng)網(wǎng)絡(luò),簡稱BP神經(jīng)網(wǎng)絡(luò)。BP網(wǎng)絡(luò)是1986年由Rumelhart和McCelland為首的科學(xué)家小組提出的,是一種按誤差逆?zhèn)鞑ニ惴ㄓ?xùn)練的多層前饋網(wǎng)絡(luò),是目前應(yīng)用最廣泛的神經(jīng)網(wǎng)絡(luò)模型之一。BP網(wǎng)絡(luò)具有非線性映射、自適應(yīng)、自學(xué)習(xí)和自組織能力,通過分布儲存和并行處理的方式,使其具有很強(qiáng)的容錯性和很快的處理速度。BP算法本質(zhì)是優(yōu)化計算中的梯度下降法,利用誤差對于權(quán)、閾值的一階導(dǎo)數(shù)信息,應(yīng)用誤差反傳原理不斷調(diào)整網(wǎng)絡(luò)的權(quán)值、閾值,使網(wǎng)絡(luò)輸出值與期望值之間的誤差平方和達(dá)到最小或小于設(shè)定精度。BP網(wǎng)絡(luò)模型由輸入層、隱藏層和輸出層構(gòu)成,如圖1所示。
1.2 R語言與神經(jīng)網(wǎng)絡(luò)
與起源于貝爾實驗室的S語言類似,R是一種為統(tǒng)計計算和繪圖而生的語言和環(huán)境,它是一套開源的數(shù)據(jù)分析解決方案,由一個龐大且活躍的全球性研究型社區(qū)維護(hù)。R語言提供了各式各樣的數(shù)據(jù)分析技術(shù),擁有頂尖水準(zhǔn)的制圖功能,可進(jìn)行交互式數(shù)據(jù)分析和探索,易于擴(kuò)展,并為快速編程實現(xiàn)新的統(tǒng)計方法提供了一套十分自然的語言[4]。
R有大量的擴(kuò)展包可以使用,目前有1萬多個包可下載使用,這些包提供了橫跨各種領(lǐng)域、數(shù)量驚人的新功能,包括分析地理數(shù)據(jù)、處理蛋白質(zhì)質(zhì)譜、心理測試分析、金融分析、數(shù)據(jù)挖掘、人工智能、數(shù)據(jù)可視化等功能,神經(jīng)網(wǎng)絡(luò)相關(guān)的包就有19個,常用的有nnet、AMORE、RSNNS等,其中AMORE包提供了豐富的控制參數(shù),本研究采用了AMORE包進(jìn)行霾預(yù)報方法研究。
2 神經(jīng)網(wǎng)絡(luò)預(yù)報模型的建立
分析資料采用淄博市8個地面氣象觀測站點的常規(guī)觀測資料、NCEP再分析資料(1°×1°)及淄博市環(huán)境監(jiān)測站提供的污染物濃度資料組建模型訓(xùn)練樣本。構(gòu)建樣本時間段為2015年4月至2016年9月。
2.1 預(yù)報因子的選取
本研究針對預(yù)報因子的選取主要考慮影響霾天氣形成的氣象因子和主要污染物,包括地面氣壓、溫度、露點溫度、相對濕度、水平風(fēng)速及其上空對流層中低層(500~850 hPa)的水平風(fēng)垂直切變、對流層中低層的層結(jié)不穩(wěn)定及近地面層的逆溫,以及主要污染物PM2.5濃度等9個預(yù)報因子作為訓(xùn)練樣本,此處通過計算850 hPa與1 000 hPa假相當(dāng)位溫垂直差代表對流層中低層的層結(jié)不穩(wěn)定、925 hPa與1 000 hPa溫度垂直差代表近地面層的逆溫。
2.2 建模訓(xùn)練樣本的處理
2015年4月1日至2016年9月30日,樣本數(shù)據(jù)為1次/d,每個站的總樣本數(shù)為549個。為提高霾天氣預(yù)報準(zhǔn)確率,在保證有霾和無霾樣本的代表性情況下,本研究保留了有霾的樣本,在無霾樣本中隨機(jī)剔除部分樣本,提高了霾日樣本所占比例,最終樣本數(shù)見表1。
2.2.1 樣本資料的歸一化處理。為消除預(yù)報因子之間的量綱影響,提高訓(xùn)練樣本的速度,首先要對網(wǎng)絡(luò)輸入數(shù)據(jù)進(jìn)行歸一化處理,使其值在0~1之間。為保證建立的模型具有一定的外推能力,最好使數(shù)據(jù)預(yù)處理后的值在0.2~0.9之間。本研究中因子的歸一化處理方法如下: f(x)=(x-xmin)×0.7/(xmax-xmin)+0.2,式中xmax代表該組數(shù)據(jù)中的最大值,xmin代表最小值。對網(wǎng)絡(luò)輸出結(jié)果進(jìn)行反算即可得到實際值。
2.2.2 樣本資料的分層抽樣。利用分層抽樣技術(shù)對總體樣本進(jìn)行抽樣,從無霾樣本和不同等級的霾樣本中抽樣,將總體樣本劃分為訓(xùn)練樣本和測試樣本2個部分,訓(xùn)練樣本占總樣本的80%,測試樣本占20%。分層抽樣采用R語言的samping包中的strata函數(shù)來實現(xiàn),抽樣方法選用無放回的簡單隨機(jī)抽樣法(srswor)。
2.3 神經(jīng)網(wǎng)絡(luò)模型的建立
神經(jīng)網(wǎng)絡(luò)模型由1個輸入層、1個輸出層和若干個隱藏層構(gòu)成,輸入層由9個節(jié)點組成,輸出層由1個節(jié)點組成。輸入層節(jié)點數(shù)和輸出層節(jié)點數(shù)確定后,對隱藏層節(jié)點數(shù)和隱藏層數(shù)進(jìn)行優(yōu)化。如果隱藏層節(jié)點數(shù)過少,網(wǎng)絡(luò)不具備必要的學(xué)習(xí)能力和信息處理能力;反之,如果過多,則會大大增加網(wǎng)絡(luò)結(jié)構(gòu)的復(fù)雜性,使網(wǎng)絡(luò)在學(xué)習(xí)過程中更容易陷入局部極小點,而且會使網(wǎng)絡(luò)的學(xué)習(xí)速度變得很慢。一般在確定隱藏層節(jié)點數(shù)時采用經(jīng)驗公式或逐步試驗法。至于網(wǎng)絡(luò)中的神經(jīng)元層數(shù),大多數(shù)實際的神經(jīng)網(wǎng)絡(luò)僅有2~3層神經(jīng)元,很少有4層或以上[5]。因此,經(jīng)過反復(fù)試驗,最后確定采用含有2個隱藏層的神經(jīng)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。將樣本資料輸入網(wǎng)絡(luò)進(jìn)行循環(huán)運算,運算過程采用精度和循環(huán)次數(shù)雙層控制,達(dá)到所需精度或一定循環(huán)次數(shù)后,利用得到確定的網(wǎng)絡(luò)權(quán)、閾值即構(gòu)建所需的神經(jīng)網(wǎng)絡(luò)預(yù)報模型(圖2)。
構(gòu)建神經(jīng)網(wǎng)絡(luò)預(yù)報模型時誤差準(zhǔn)則選用最小均方(LMS)算法,隱藏層的激活函數(shù)選用sigmoid函數(shù),輸出層的激活函數(shù)選用purelin函數(shù),訓(xùn)練方法采用動量自適應(yīng)梯度下降法(ADAPTgdwm)。
2.4 神經(jīng)網(wǎng)絡(luò)模型的測試
利用總樣本中20%的數(shù)據(jù)作為測試樣本集進(jìn)行測試,神經(jīng)網(wǎng)絡(luò)模型輸出的霾日預(yù)報準(zhǔn)確率達(dá)到80%以上。神經(jīng)網(wǎng)絡(luò)訓(xùn)練和測試部分代碼如下:
#進(jìn)行訓(xùn)練
net <- newff(n.neurons = c(9,3,3,1),learning.rate.global = 1e-2,momentum.global = 0.5,error.criterium = "LMS",Stao = NA,hidden.layer = "tansig",output.layer = "purelin",method = "ADAPTgdwm");
result <- train(net,train_set[1:9],train_set[10],error.criterium = "LMS",report = TRUE,show.step = 1000,n.shows=5);
#進(jìn)行測試
y <- sim(result$net,test_set[1:9]);
y[which(y<0)] <- 0;
y[which(y>4)] <- 4;
y <- round(y);
precision <- sum(test_set$phenomenon==y)/length(y);
cat(′測試準(zhǔn)確率為′,precision,′\n′);
3 預(yù)報結(jié)果的檢驗分析
本研究所用的神經(jīng)網(wǎng)絡(luò)模型由R語言進(jìn)行建模并完成測試,基于神經(jīng)網(wǎng)絡(luò)算法搭建了淄博地區(qū)站點霾等級預(yù)報系統(tǒng)。系統(tǒng)中的氣象因子使用歐洲細(xì)網(wǎng)格數(shù)值預(yù)報產(chǎn)品,環(huán)境因子使用CUACE霧霾數(shù)值模式產(chǎn)品,利用每天20:00的預(yù)報產(chǎn)品,預(yù)報未來72 h的霾等級,時間分辨率為3 h。利用該系統(tǒng)對2016年10月26日至11月27日期間淄博地區(qū)的霾進(jìn)行了72 h預(yù)報試驗,并把得到的預(yù)報結(jié)果與地面觀測實況作對比分析(表2)。
對預(yù)報檢驗結(jié)果分析如下:
(1)從單站預(yù)報情況看,5個站點的預(yù)報準(zhǔn)確率達(dá)到了75%以上,預(yù)報模型輸出的預(yù)報結(jié)果可用性較高,而站點54824、54825的空報率和漏報率較高,這可能與EC模式、CUACE模式的預(yù)報誤差有關(guān)。以淄博站(54830)為例,在2016年10月26日至11月27日期間輸入3 h間隔預(yù)報產(chǎn)品,預(yù)報次數(shù)為768次,預(yù)報結(jié)果為無霾正確632次、無霾空報80次、有霾漏報45次、有霾正確11次,漏報率為5.86%,空報率為10.42%,準(zhǔn)確達(dá)到83.72%。
(2)從總體情況來看,淄博8個站點的平均預(yù)報準(zhǔn)確率為74.02%,平均漏報率為5.37%,平均空報率為20.61%,霾的漏報率較低,空報率略高。
(3)從霾日分級預(yù)報情況看(表3),除54824站預(yù)報偏輕外,霾等級預(yù)報整體偏重。
4 結(jié)論與討論
(1)本研究采用BP算法的人工神經(jīng)網(wǎng)絡(luò),利用NCEP再分析資料和實況觀測資料建立了淄博地區(qū)8個站點的霾等級預(yù)報模型,經(jīng)過測試樣本測試,霾日預(yù)報準(zhǔn)確率達(dá)到80%以上。
(2)本研究基于人工神經(jīng)網(wǎng)絡(luò)模型,利用歐洲細(xì)網(wǎng)格數(shù)值模式輸出的氣象預(yù)報產(chǎn)品及CUACE模式輸出的污染物濃度預(yù)報產(chǎn)品搭建了淄博地區(qū)站點霾等級預(yù)報系統(tǒng),并經(jīng)過1個月的預(yù)報檢驗,平均預(yù)報準(zhǔn)確率可達(dá)74%以上,對實際業(yè)務(wù)中霾的預(yù)報有一定參考意義。
(3)本研究訓(xùn)練樣本數(shù)據(jù)由于受到PM2.5數(shù)據(jù)限制,樣本偏小,有待進(jìn)一步補(bǔ)充,以提高神經(jīng)網(wǎng)絡(luò)模型的穩(wěn)定性和準(zhǔn)確性。
(4)由于本研究中構(gòu)建的霾等級預(yù)報系統(tǒng)是在利用數(shù)值預(yù)報產(chǎn)品解釋應(yīng)用的基礎(chǔ)上進(jìn)行的,準(zhǔn)確率受到數(shù)值預(yù)報本身準(zhǔn)確性的影響,所以檢驗系統(tǒng)預(yù)報準(zhǔn)確率的同時對數(shù)值預(yù)報產(chǎn)品的檢驗和訂正很有必要。
5 參考文獻(xiàn)
[1] 陳亦君,尤佳紅,束炯,等.基于WRF-RTIM的上海地區(qū)霾預(yù)報MOS方法研究[J].環(huán)境科學(xué)學(xué)報,2014,34(3):574-581.
[2] 毛宇清,孫燕,姜愛軍,等.南京地區(qū)霾預(yù)報方法試驗研究[J].氣候與環(huán)境研究,2011,16(3):273-279.
[3] HAYKIN S.神經(jīng)網(wǎng)絡(luò)與機(jī)器學(xué)習(xí)[M].申富饒,譯.北京:機(jī)械工業(yè)出版社,2011:1.
[4] KABACOFF R I.R語言實戰(zhàn)[M].高濤,譯.北京:人民郵電出版社,2013:4-5.
[5] HAGAN M T.神經(jīng)網(wǎng)絡(luò)設(shè)計[M].戴葵,譯.北京:機(jī)械工業(yè)出版社,2002:15.