尤嘉鋮
(中國民用航空華東地區空中交通管理局,上海 200335)
氣象數據在民用領域和軍用領域有著舉足輕重的地位,是從事一切氣象研究的基礎。氣象數據的質量對氣象業務的發展有重要的影響[1-2],同時氣象數據的質量對于氣象決策類業務以及預報類業務也有至關重要的作用,例如氣象預報和氣象預測的準確性。目前,我國已建立了多個地面自動氣象觀測站[3],地面自動氣象觀測數據起到了重要的作用,這些數據是科研、氣象服務工作的一手資料。因此快速、準確地對大量氣象數據進行分析處理是有必要的,這也對氣象數據的質量控制提出了更高的要求。
氣象數據的一個顯著特性即混沌性,主要原因是天氣變化受各種因素影響較大,數據本身會存在著一定的誤差。而數據穩定性通常受環境以及不同觀測時間的影響,同時,天氣的瞬時變化也會干擾測試數據,因此對氣象數據進行質量控制也是一個需要解決的問題。目前常見的氣象數據質量控制算法均是根據歷史數據的統計分析結果來估算未來的變化趨勢及走向。這種質量控制算法的門限值較寬,所以無法檢測數據值小的波動,也無法處理當前海量的氣象數據。該文在大數據的背景下將BP 神經網絡與粒子濾波算法進行結合,以對氣象數據進行質量控制[4]。
BP 神經網絡[5-6]包含3 層結構,分別為輸入層、中間層及輸出層,其本質是多層前饋網絡。其中輸入層作為數據的輸入接口,然后輸入接口的元胞將數據傳送到中間層,中間層一般用來做數據的處理,最后將數據傳送到輸出層。BP神經網絡結構圖如圖1所示。

圖1 BP神經網絡結構圖
圖1 中BP 神經網絡輸入數據為向量,假設該向量為:

假設中間層中有n個神經元,則中間層的輸出為:

若輸出層有m個神經元,則輸出為:

假定輸入層至中間層的權重因子為wij,閾值因子為θj,輸出層至中間層的權重因子為wjk,閾值因子為θk,則各個神經元輸出應為:

其中,f()為激活函數。激活函數共有兩種,分別是單極性激活函數和雙極性激活函數,如式(5)、(6)所示:

通常情況下,BP 神經網絡的傳遞分為兩個過程:1)數據的正向傳播;2)誤差的反向傳播[7-8]。正向傳播即從輸入層到中間層再到輸出層的過程,反向傳播將實際輸出結果和神經網絡輸出結果的值進行誤差比較,并反饋至神經網絡中,神經網絡會不斷學習更新權值。BP 神經網絡結構簡單,且預測準確度較高,因此在工程領域有著廣泛的應用。
BP 神經網絡的關鍵是誤差學習過程,下面對其誤差學習過程進行說明。
BP 神經網絡的學習過程通過計算均方差的值進行實際計算,假設共有N個樣本數據,與其對應的期望值分別為e(1)、e(2)、e(3)、…、e(N),BP 神經網絡中單個神經元的輸出值與理論數據的誤差平方和為:

則BP 神經網絡總的誤差平方和為:

網絡權重的修正值應當按照梯度下降法去設定,修正值為:

由此可知,最終的BP 神經網絡算法流程如圖2所示。

圖2 BP神經網絡算法流程
由以上分析可知,BP 神經網絡最適合于計算內部機制較為復雜的模型。由于氣象數據具有混沌性的特點,因此使用BP神經網絡可以對大量氣象數據進行學習。但BP神經網絡也有缺點,即在考慮數據相關聯因素過多的情況下,系統的運算時間就會迅速變長,所求解出的數據結果的冗余度也會顯著升高。
由1.1 節可知,BP 神經網絡在考慮數據相關聯因素過多的情況下,系統運行速度和計算性能就會變差。因此該節引入粒子濾波算法,其算法可以對BP 神經網絡搜索過程中的階梯步長進行控制,進而減少模型冗余計算,加快運算速度[9-12]。
粒子濾波算法的本質為反復迭代后得到穩定值的過程,因此粒子濾波算法的核心方程為狀態方程和量測方程,如式(10)、(11)所示:

式(10)為狀態方程,Xk為粒子的下一個狀態,fk為狀態函數,vk-1為當前狀態下的噪聲值。式(11)為量測方程,Zk為量測方程下一個時間的量測數據,hk是量測系統的測量函數,nk為下一時刻的噪聲值。
粒子濾波算法的運行過程為:
1)系統初始化。模型的下一時刻設定為k,下一時刻的狀態為Xk,則Xk應由k-1 時刻的粒子狀態去估算。
2)粒子采樣過程。由式(10)狀態方程對系統中粒子的下一時刻狀態進行預測,采樣的粒子為:

3)粒子權重計算過程。對粒子的預測值和粒子的實際值誤差進行估算,然后計算權重,權重值為:

誤差值越小,證明數據越準確。因此該粒子在系統中所占據的權重就越大,將實際的權重值進行歸一化可得:

4)粒子重采樣過程。對權重進行排序,舍棄掉權重小的粒子,重復過程2)。
5)系統結果輸出。使用狀態方程對過程4)中得到的粒子權重進行估計,估計值見式(15)所示,最終輸出的值為誤差值較小的粒子。

最終的求解模型將粒子濾波和BP 神經網絡模型相結合,將當前狀態下神經網絡的權重作為粒子濾波當前系統的狀態值Xk,同時結合噪聲值vk,由狀態方程即可計算下一個時刻的狀態Xk+1。將此狀態權值和輸入層的數據值作為激活函數f()的變量值,最終將會求得神經網絡的輸出值。粒子濾波神經網絡模型流程圖如圖3 所示。

圖3 算法模型流程圖
該文氣象數據選擇某自動氣象站點某月的氣象數據,這些數據在實驗前均經過測試驗證,氣象數據共有2 000 條,其中訓練集數據為1 200 條,測試驗證集數據為800 條。表1 為該次氣象數據選取及環境配置的情況。

表1 數據環境配置
對氣象數據進行質量控制前需要計算氣象數據各個要素之間的關聯度,分析關聯度之后進行篩選,關聯性較強的數據作為神經網絡模型的輸入[13-16]。首先對數據進行無量綱化處理,然后計算關聯度,如式(16)、(17)所示:


其中,k為數據集合中數據的序號,ri為序列關聯度,關聯度值越趨近于1 表明要素關聯性越強。最終計算得到的關聯度如表2 所示,然后將這些因素作為神經網絡的權重值。

表2 氣象數據關聯度
氣象自動觀測站站點的氣象數據有多種錯誤,例如數據漏測、數據突變錯誤、數據一致性錯誤等。因此該文模型將對上述幾種典型錯誤進行質量控制實驗。
首先對模型的有效性進行實驗測試。該文以溫度數據為例進行測試,驗證模型的預估值與實際值之間的曲線,然后計算方差值。同時進行對比實驗,對比算法為傳統統計學算法、卡爾曼濾波算法以及該文算法。實驗結果如圖4 所示。

圖4 模型有效性實驗結果
計算得到的數據誤差值,如表3 所示。

表3 模型有效性實驗數據誤差值統計
由曲線可以看出,文中設計的模型產生的預測曲線和實際觀測值曲線接近,驗證了該文算法的準確性。同時,與其他算法相比,文中算法的誤差平均值最低,證明了該文算法可以對數據質量進行控制。
在數據質量控制實驗中,該文選擇數據跳變錯誤進行驗證,首先將正常連續的數據插入誤差值,然后再將數據輸入到對比實驗模型中。最終的實驗結果如圖5 所示,擬合誤差統計結果,如表4 所示。

圖5 數據質量控制實驗結果

表4 數據質量控制實驗誤差統計
由圖5 可以直觀地看出,該文提出的算法模型對數據異常處的數據擬合最為接近。因此文中算法模型可對數據跳變進行監測,同時也可以進行數據的擬合,并對氣象數據進行良好的質量控制。
從數據測試結果來看,使用傳統統計學算法、卡爾曼濾波算法以及該文算法的擬合數據誤差為0.072 2 ℃、0.400 0 ℃、0.364 0 ℃,這說明文中模型相比其他兩個傳統模型對于氣象數據的質量控制效果更優。
傳統的氣象數據質量控制方法無法對當前大量的氣象數據進行分析以及質量控制,該文使用粒子濾波算法對傳統BP 神經網絡模型進行優化,大幅提升了BP 神經網絡模型的性能。實驗分析表明,文中算法在數據質量控制過程中的誤差值均較小,可以有效地對氣象數據進行質量控制。在未來的研究中,將進一步優化該模型的計算能力,以期在較短的時間內完成海量的數據處理,提高分析結果的實時性。