尤嘉鋮
(中國民用航空華東地區(qū)空中交通管理局,上海 200335)
氣象數(shù)據(jù)在民用領域和軍用領域有著舉足輕重的地位,是從事一切氣象研究的基礎。氣象數(shù)據(jù)的質(zhì)量對氣象業(yè)務的發(fā)展有重要的影響[1-2],同時氣象數(shù)據(jù)的質(zhì)量對于氣象決策類業(yè)務以及預報類業(yè)務也有至關重要的作用,例如氣象預報和氣象預測的準確性。目前,我國已建立了多個地面自動氣象觀測站[3],地面自動氣象觀測數(shù)據(jù)起到了重要的作用,這些數(shù)據(jù)是科研、氣象服務工作的一手資料。因此快速、準確地對大量氣象數(shù)據(jù)進行分析處理是有必要的,這也對氣象數(shù)據(jù)的質(zhì)量控制提出了更高的要求。
氣象數(shù)據(jù)的一個顯著特性即混沌性,主要原因是天氣變化受各種因素影響較大,數(shù)據(jù)本身會存在著一定的誤差。而數(shù)據(jù)穩(wěn)定性通常受環(huán)境以及不同觀測時間的影響,同時,天氣的瞬時變化也會干擾測試數(shù)據(jù),因此對氣象數(shù)據(jù)進行質(zhì)量控制也是一個需要解決的問題。目前常見的氣象數(shù)據(jù)質(zhì)量控制算法均是根據(jù)歷史數(shù)據(jù)的統(tǒng)計分析結果來估算未來的變化趨勢及走向。這種質(zhì)量控制算法的門限值較寬,所以無法檢測數(shù)據(jù)值小的波動,也無法處理當前海量的氣象數(shù)據(jù)。該文在大數(shù)據(jù)的背景下將BP 神經(jīng)網(wǎng)絡與粒子濾波算法進行結合,以對氣象數(shù)據(jù)進行質(zhì)量控制[4]。
BP 神經(jīng)網(wǎng)絡[5-6]包含3 層結構,分別為輸入層、中間層及輸出層,其本質(zhì)是多層前饋網(wǎng)絡。其中輸入層作為數(shù)據(jù)的輸入接口,然后輸入接口的元胞將數(shù)據(jù)傳送到中間層,中間層一般用來做數(shù)據(jù)的處理,最后將數(shù)據(jù)傳送到輸出層。BP神經(jīng)網(wǎng)絡結構圖如圖1所示。
圖1 BP神經(jīng)網(wǎng)絡結構圖
圖1 中BP 神經(jīng)網(wǎng)絡輸入數(shù)據(jù)為向量,假設該向量為:
假設中間層中有n個神經(jīng)元,則中間層的輸出為:
若輸出層有m個神經(jīng)元,則輸出為:
假定輸入層至中間層的權重因子為wij,閾值因子為θj,輸出層至中間層的權重因子為wjk,閾值因子為θk,則各個神經(jīng)元輸出應為:
其中,f()為激活函數(shù)。激活函數(shù)共有兩種,分別是單極性激活函數(shù)和雙極性激活函數(shù),如式(5)、(6)所示:
通常情況下,BP 神經(jīng)網(wǎng)絡的傳遞分為兩個過程:1)數(shù)據(jù)的正向傳播;2)誤差的反向傳播[7-8]。正向傳播即從輸入層到中間層再到輸出層的過程,反向傳播將實際輸出結果和神經(jīng)網(wǎng)絡輸出結果的值進行誤差比較,并反饋至神經(jīng)網(wǎng)絡中,神經(jīng)網(wǎng)絡會不斷學習更新權值。BP 神經(jīng)網(wǎng)絡結構簡單,且預測準確度較高,因此在工程領域有著廣泛的應用。
BP 神經(jīng)網(wǎng)絡的關鍵是誤差學習過程,下面對其誤差學習過程進行說明。
BP 神經(jīng)網(wǎng)絡的學習過程通過計算均方差的值進行實際計算,假設共有N個樣本數(shù)據(jù),與其對應的期望值分別為e(1)、e(2)、e(3)、…、e(N),BP 神經(jīng)網(wǎng)絡中單個神經(jīng)元的輸出值與理論數(shù)據(jù)的誤差平方和為:
則BP 神經(jīng)網(wǎng)絡總的誤差平方和為:
網(wǎng)絡權重的修正值應當按照梯度下降法去設定,修正值為:
由此可知,最終的BP 神經(jīng)網(wǎng)絡算法流程如圖2所示。
圖2 BP神經(jīng)網(wǎng)絡算法流程
由以上分析可知,BP 神經(jīng)網(wǎng)絡最適合于計算內(nèi)部機制較為復雜的模型。由于氣象數(shù)據(jù)具有混沌性的特點,因此使用BP神經(jīng)網(wǎng)絡可以對大量氣象數(shù)據(jù)進行學習。但BP神經(jīng)網(wǎng)絡也有缺點,即在考慮數(shù)據(jù)相關聯(lián)因素過多的情況下,系統(tǒng)的運算時間就會迅速變長,所求解出的數(shù)據(jù)結果的冗余度也會顯著升高。
由1.1 節(jié)可知,BP 神經(jīng)網(wǎng)絡在考慮數(shù)據(jù)相關聯(lián)因素過多的情況下,系統(tǒng)運行速度和計算性能就會變差。因此該節(jié)引入粒子濾波算法,其算法可以對BP 神經(jīng)網(wǎng)絡搜索過程中的階梯步長進行控制,進而減少模型冗余計算,加快運算速度[9-12]。
粒子濾波算法的本質(zhì)為反復迭代后得到穩(wěn)定值的過程,因此粒子濾波算法的核心方程為狀態(tài)方程和量測方程,如式(10)、(11)所示:
式(10)為狀態(tài)方程,Xk為粒子的下一個狀態(tài),fk為狀態(tài)函數(shù),vk-1為當前狀態(tài)下的噪聲值。式(11)為量測方程,Zk為量測方程下一個時間的量測數(shù)據(jù),hk是量測系統(tǒng)的測量函數(shù),nk為下一時刻的噪聲值。
粒子濾波算法的運行過程為:
1)系統(tǒng)初始化。模型的下一時刻設定為k,下一時刻的狀態(tài)為Xk,則Xk應由k-1 時刻的粒子狀態(tài)去估算。
2)粒子采樣過程。由式(10)狀態(tài)方程對系統(tǒng)中粒子的下一時刻狀態(tài)進行預測,采樣的粒子為:
3)粒子權重計算過程。對粒子的預測值和粒子的實際值誤差進行估算,然后計算權重,權重值為:
誤差值越小,證明數(shù)據(jù)越準確。因此該粒子在系統(tǒng)中所占據(jù)的權重就越大,將實際的權重值進行歸一化可得:
4)粒子重采樣過程。對權重進行排序,舍棄掉權重小的粒子,重復過程2)。
5)系統(tǒng)結果輸出。使用狀態(tài)方程對過程4)中得到的粒子權重進行估計,估計值見式(15)所示,最終輸出的值為誤差值較小的粒子。
最終的求解模型將粒子濾波和BP 神經(jīng)網(wǎng)絡模型相結合,將當前狀態(tài)下神經(jīng)網(wǎng)絡的權重作為粒子濾波當前系統(tǒng)的狀態(tài)值Xk,同時結合噪聲值vk,由狀態(tài)方程即可計算下一個時刻的狀態(tài)Xk+1。將此狀態(tài)權值和輸入層的數(shù)據(jù)值作為激活函數(shù)f()的變量值,最終將會求得神經(jīng)網(wǎng)絡的輸出值。粒子濾波神經(jīng)網(wǎng)絡模型流程圖如圖3 所示。
圖3 算法模型流程圖
該文氣象數(shù)據(jù)選擇某自動氣象站點某月的氣象數(shù)據(jù),這些數(shù)據(jù)在實驗前均經(jīng)過測試驗證,氣象數(shù)據(jù)共有2 000 條,其中訓練集數(shù)據(jù)為1 200 條,測試驗證集數(shù)據(jù)為800 條。表1 為該次氣象數(shù)據(jù)選取及環(huán)境配置的情況。
表1 數(shù)據(jù)環(huán)境配置
對氣象數(shù)據(jù)進行質(zhì)量控制前需要計算氣象數(shù)據(jù)各個要素之間的關聯(lián)度,分析關聯(lián)度之后進行篩選,關聯(lián)性較強的數(shù)據(jù)作為神經(jīng)網(wǎng)絡模型的輸入[13-16]。首先對數(shù)據(jù)進行無量綱化處理,然后計算關聯(lián)度,如式(16)、(17)所示:
其中,k為數(shù)據(jù)集合中數(shù)據(jù)的序號,ri為序列關聯(lián)度,關聯(lián)度值越趨近于1 表明要素關聯(lián)性越強。最終計算得到的關聯(lián)度如表2 所示,然后將這些因素作為神經(jīng)網(wǎng)絡的權重值。
表2 氣象數(shù)據(jù)關聯(lián)度
氣象自動觀測站站點的氣象數(shù)據(jù)有多種錯誤,例如數(shù)據(jù)漏測、數(shù)據(jù)突變錯誤、數(shù)據(jù)一致性錯誤等。因此該文模型將對上述幾種典型錯誤進行質(zhì)量控制實驗。
首先對模型的有效性進行實驗測試。該文以溫度數(shù)據(jù)為例進行測試,驗證模型的預估值與實際值之間的曲線,然后計算方差值。同時進行對比實驗,對比算法為傳統(tǒng)統(tǒng)計學算法、卡爾曼濾波算法以及該文算法。實驗結果如圖4 所示。
圖4 模型有效性實驗結果
計算得到的數(shù)據(jù)誤差值,如表3 所示。
表3 模型有效性實驗數(shù)據(jù)誤差值統(tǒng)計
由曲線可以看出,文中設計的模型產(chǎn)生的預測曲線和實際觀測值曲線接近,驗證了該文算法的準確性。同時,與其他算法相比,文中算法的誤差平均值最低,證明了該文算法可以對數(shù)據(jù)質(zhì)量進行控制。
在數(shù)據(jù)質(zhì)量控制實驗中,該文選擇數(shù)據(jù)跳變錯誤進行驗證,首先將正常連續(xù)的數(shù)據(jù)插入誤差值,然后再將數(shù)據(jù)輸入到對比實驗模型中。最終的實驗結果如圖5 所示,擬合誤差統(tǒng)計結果,如表4 所示。
圖5 數(shù)據(jù)質(zhì)量控制實驗結果
表4 數(shù)據(jù)質(zhì)量控制實驗誤差統(tǒng)計
由圖5 可以直觀地看出,該文提出的算法模型對數(shù)據(jù)異常處的數(shù)據(jù)擬合最為接近。因此文中算法模型可對數(shù)據(jù)跳變進行監(jiān)測,同時也可以進行數(shù)據(jù)的擬合,并對氣象數(shù)據(jù)進行良好的質(zhì)量控制。
從數(shù)據(jù)測試結果來看,使用傳統(tǒng)統(tǒng)計學算法、卡爾曼濾波算法以及該文算法的擬合數(shù)據(jù)誤差為0.072 2 ℃、0.400 0 ℃、0.364 0 ℃,這說明文中模型相比其他兩個傳統(tǒng)模型對于氣象數(shù)據(jù)的質(zhì)量控制效果更優(yōu)。
傳統(tǒng)的氣象數(shù)據(jù)質(zhì)量控制方法無法對當前大量的氣象數(shù)據(jù)進行分析以及質(zhì)量控制,該文使用粒子濾波算法對傳統(tǒng)BP 神經(jīng)網(wǎng)絡模型進行優(yōu)化,大幅提升了BP 神經(jīng)網(wǎng)絡模型的性能。實驗分析表明,文中算法在數(shù)據(jù)質(zhì)量控制過程中的誤差值均較小,可以有效地對氣象數(shù)據(jù)進行質(zhì)量控制。在未來的研究中,將進一步優(yōu)化該模型的計算能力,以期在較短的時間內(nèi)完成海量的數(shù)據(jù)處理,提高分析結果的實時性。