俞曉天,舒志光,貝京陽,王擎宇
(國家海洋局寧波海洋環境監測中心站,浙江寧波 315040)
隨著軟件工程、智能計算機、通訊技術及觀測儀器設備的迅猛發展,海洋觀測系統建設取得了很大的進展,顯著提高了海濱觀測自動化水平。海洋觀測系統最重要的特征是通過網絡技術連接不同地理位置的智能傳感器設備,從而實現觀測數據實時監測和海洋資源共享。海洋觀測設施包括水文氣象自動觀測、測波雷達、海嘯預警裝置及在線監測浮標等,要素涵蓋潮汐、海溫、鹽度、風、氣壓、氣溫、相對濕度、海面有效能見度、降水量、GPS高程、pH值、溶解氧及葉綠素等[1]。由于海洋數據具有海量性、多樣性、不可重復觀測等特點,僅憑觀測值班員人工校對往往不能及時發現數據質量問題。因此,利用計算機對實時數據流進行自動監控和異常報警十分重要。
近年來,圍繞海洋數據質量監控問題,國外開展了一系列研究。例如,Koziana等[2]基于美國浮標系統,通過閾值準則判斷數據質量,實現觀測數據異常檢測自動化;Morello等[3]在延時模式下,從時間、空間、閾值、變化率等多個角度出發,對澳大利亞海洋觀測系統原始數據進行質量監控;Gurgel等[4]利用最小乘法多項式擬合算法,對德國灣沿岸觀測系統的雷達電流場數據進行質量檢查,并在此基礎上合成二維電流圖;Kim等[5]通過比較樣本組間/組內余弦相似性、曼哈頓距離、歐氏距離、余弦相似角距離等10余種指標,分析數據一致性,進而確定高維數組中的異常值;Mohammadi等[6]從大數據和流數據兩個角度出發,探討深度神經網絡在物聯網中的應用。
放眼國內,相關研究成果也層出不窮。例如,史靜濤[7]對比極值算法、3σ檢驗法、格拉布斯算法、Dixon算法等異常檢測算法,以散點圖、曲線圖的形式展現異常數據剔除后的效果,得到不同異常檢測算法的適用條件,并應用于海洋觀測系統;溫玉波[8]從數據管理的角度研究數據質量監控方法,利用計算機程序對觀測數據記錄的相符性、合理性、相關性以及分布擬合性進行檢驗,提升質量監控效率;丁君生等[9]基于183個測點近十年的全球衛星導航系統(GNSS)觀測數據,綜合考慮數據量、網格分辨率、模型穩定性等因素進行異常檢測,實現對流層天頂總延遲的精細建模。然而,縱觀國內外相關文獻資料和產品應用可以發現,諸多研究主要圍繞延時數據(月報、年報等)的異常檢測,針對海洋觀測實時數據的異常檢測問題研究較少。而立體監測網建立后,巨量觀測數據已使得人工觀測校對難以實現[10],應用實時大數據質量監控算法,精細化海洋觀測數據質量管理迫在眉睫。
鑒于以上討論,為了在復雜的海洋環境下進行異常檢測,本文使用無監督學習算法進行異常檢測:基于層級實時記憶(Hierarchical Temporal Memory,HTM)網絡[11],將復雜的非馬爾可夫環境下的觀測數據異常檢測問題轉化為模式匹配與預測,對單源傳感器數據進行異常檢測;利用分布于不同測點、相同觀測要素傳感器之間的數據相關性,構建基于多源傳感器數據的異常檢測模塊,提高算法異常檢測能力;應用沿海岸段水文氣象觀測站點實測數據進行異常檢測實驗,通過漏報率與誤報率兩個指標,驗證本算法的有效性和實時性;利用貝葉斯在線變點檢測、相對熵、高斯滑動窗口算法進行異常檢測實驗,比較和分析各類算法異常檢測結果。

數據中心接收到各測點傳感器采集的實時觀測值Yt后再做數據預處理,然后利用算法進行異常檢測,將不符合觀測要素時空特征和站點間相關性的數據標記為異常,海洋觀測網框架如圖1所示。

圖1 海洋觀測網框架圖Fig.1 Frame diagram of marine observation network
常見的觀測數據異常現象如圖2所示。其中圖2(a)的異常現象表示潮位數據長時間不變,該現象通常由驗潮井淤積、連通管被生物附著或泥沙堵塞引起,需要及時清理運維;圖2(b)的異常現象表示由溫度計故障引起的溫度值異常和突變。
本文考慮到海洋觀測網中數據的丟包和缺測現象,故設計符合實際應用需求的異常檢測算法,對接收到的實時觀測數據進行異常檢測,發現數據空間相關性、時間相關性、多源相關性等異常并進行標記,進而定位故障傳感器。

圖2 潮位和溫度數據異常Fig.2 Abnormal of tide and temperature data
HTM網絡是模擬新大腦皮質層神經活動的一種新型機器學習算法,能夠處理流式時間序列。該算法的優點體現在無須調整參數、在線學習和魯棒性強。在此基礎上,利用多源傳感器數據,基于距離相關性對離群點進行檢測,進一步減少異常值的漏報率。
由于網絡傳輸數據存在丟包[12]、時延[13]等通信約束,并且傳感器采集數據存在缺測問題,因此異常檢測之前需要對數據進行預處理,將超時未收到實測數據的傳感器標記為異常,并且根據《海洋觀測規范:第2部分 海濱觀測》(GB/T 14914.2-2019)[14]標記缺測數據為異常,標記為異常的數據不進行后續的HTM網絡學習識別和距離檢測。接著,將處理好的高質量數據輸入到HTM網絡模塊進行計算分析。
2.2.1 HTM架構
HTM網絡每一層都有大量的神經元,通過學習不斷更新突觸連通值,建立符合觀測數據時間和空間特征的模型,HTM網絡架構如圖3所示。

圖3 HTM網絡架構圖Fig.3 Network architecture diagram of HTM
HTM網絡的主要組成部分如下。①神經元。神經元是負責傳輸信息的細胞,由觀測輸入激活進入活躍狀態,由橫向輸入(其他神經元輸入)刺激進入預測狀態。②神經柱。多個神經元堆疊成一個神經柱,同一個神經柱的神經元共享觀測輸入的激活信號。③前饋樹突。每個神經元有一個前饋樹突,產生動作電位進而激活神經元進入活躍狀態。④末端樹突。每個神經元有多個末端樹突,刺激神經元去極化進入預測狀態。⑤突觸。前饋樹突和末端樹突上分布著大量突觸,前饋突觸由觀測輸入的稀疏離散表征激活,末端突觸由其他神經元輸入激活。當突觸連通值小于閾值時,處于非連通狀態,稱為潛在突觸。反之,當突觸連通值大于閾值時,處于連通狀態,稱為連通突觸。
2.2.2 神經元學習步驟
①初始化。初始化HTM網絡,設置神經柱數量、神經柱內所含神經元數量、樹突激活閾值、突觸連通閾值等參數,隨機初始化突觸連通值。
②計算神經柱激活狀態。根據當前觀測輸入得到神經柱激活狀態,具體計算公式如下:
(1)

式(1)表示,一個神經柱被激活,不僅要滿足由當前輸入激活的突觸數量乘以增益bi大于閾值θa,還需滿足在當前抑制域半徑φ內數值排名大于k,這樣可以避免瑣碎和多余的表征,同時保證活躍神經柱的稀疏性。
連通增益bi和活躍狀態神經柱上的前饋突觸連通值Vi更新公式如下:
(2)
Vi=q+(Vi,j⊙At-1)-q-(Vi,j⊙(I-At-1)),
(3)

③計算神經元激活狀態。當神經元處于激活神經柱中,且在前一時刻下處于預測狀態,則激活該神經元;或者所處激活神經柱中所有神經元都不處于預測狀態,則神經柱上的所有神經元均被激活,具體計算公式如下:

(4)

④計算神經元預測狀態。根據當前神經元激活狀態及突觸活躍狀態,更新神經元預測狀態,具體計算公式如下:
(5)

⑤更新末端突觸連通度。獲取上一時刻預測正確的神經元,具體計算公式如下:
(6)
其中,U1表示預測成功(上一時刻t-1下處于預測狀態的神經元在當前時刻t下被成功激活)的神經元。
當輸入激活的神經柱中不存在處于預測狀態的神經元,則需要選擇其中一個神經元來替代,這里選擇末端樹突上突觸活躍數目最大的神經元:

(7)
HTM網絡只更新處于活躍狀態的神經元突觸連通度,因此得到需要更新的突觸集合為
U=U1+U2。
(8)
突觸連通值更新依據赫布法則:獎勵激活神經元突觸,抑制非激活神經元突觸。
(9)
(10)
其中,參數p+表示對激活神經元突觸對應連通性的提升,參數p-表示對非激活神經元突觸對應連通性的抑制。另外,引入參數p--來模擬抑制域,且p--< ⑥異常判斷。比較HTM網絡預測與觀測輸入的差異程度: (11) 其中,ft為當前時刻t下的異常分數,At表示當前時刻t下的活躍神經元,Πt-1表示在前一時刻t-1下處于預測狀態的神經元。 (12) 其中,ε為設置的異常閾值,大小介于0和1之間。 由于HTM網絡是無監督學習過程,可以有效檢測出未曾出現過的增減趨勢、變化頻率和數據點等異常。但當某類異常持續時間和發生頻率趨于常態化后,HTM網絡將適應異常規律,將異常現象判斷為正常。為了提高算法異常檢測的準確率,本文在HTM網絡的基礎上,利用不同測點同類觀測要素測量值之間的數據相關性進行異常檢測,具體步驟如下。 (13) (14) 傳感器異常的判斷方法如下: (15) (16) 上式表示,HTM網絡的異常標簽與距離檢測的異常標簽取并集,綜合單源數據時空異常和多元數據相關性異常,基于HTM網絡的多源實時數據異常檢測算法流程如圖4所示。 圖4 算法流程圖Fig.4 Flow chart of algorithm 硬件環境:聯想計算機,Inter Core i7-9700處理器,8 GB內存,1 T硬盤。軟件環境:Windows10 64位操作系統,Python2.7程序語言,PyCharm開發平臺,nupic算法庫。實驗數據:沿海岸段3個海洋測點實測潮位及溫度數據,潮位數據由SCALL-3A浮子式水位計采集,溫度數據由HMP155溫度計采集,數據時間跨度為2個月,采集頻率均為每分鐘1個,數據概況如表1所示。 表1 數據概況 HTM網絡參數:神經柱數量為2 048個,神經柱內神經元數量為32個,周期T為1 000,激活狀態閾值θa為13,抑制域半徑φ為64,抑制域內活躍神經柱數量約束k為40,前饋突觸連通閾值為0.2,前饋突觸連通增益q+為0.003,前饋突觸連通抑制q-為0.000 5,預測狀態閾值θp為10,末端突觸連通閾值為0.5,末端突觸連通增益p+為0.1,末端突觸連通抑制p-為0.1,異常閾值ε為0.9。 距離檢測模塊參數:測點1,2,3的水位計測量值與其他測點水位計測量值的正常距離閾值分別為Λ1,1={342,321}、Λ2,1={342,344}和Λ3,1={321,344},測點3中的溫度計測量值與測點1、測點2溫度計測量值的正常距離閾值為Λ3,2={10.8,11.5}。 異常檢測結果評價指標:①漏報(False Positive,FP),實際為異常但算法檢測為正常的數量;②誤報(False Negatives,FN),實際為正常但算法檢測為異常的數量。 本文算法與未預處理數據的HTM網絡(沒有清理缺測數據)、HTM網絡(沒有進行多源數據檢測)的異常檢測結果如表2所示。從結果可以看出,未進行數據預處理的異常檢測結果最差,由于未清理缺測數據999.8,9 998[14],導致HTM網絡將缺測數據附近的正常數據標記為異常,誤報數目較大。未進行距離檢測的異常結果由于沒有考慮多源數據距離相關性,只能檢測出單源數據異常,因此漏報數目較大。而本文算法綜合考慮了單源觀測數據時空特征及多源觀測數據的距離相關性,其中誤報多數是在HTM網絡識別學習初期產生的,后期產生的誤報數很少。 為驗證本文算法的有效性,將本文算法與貝葉斯在線變點檢測[16]、相對熵[17]、高斯滑動窗口算法實時觀測數據異常檢測結果進行比較,結果如表3所示。結果表明,基于HTM網絡的多源異常檢測算法具有較低的漏報數目,整體異常檢測效果更佳。 表2 異常檢測結果Table 2 Abnormal detection results 表3 其他算法異常檢測結果Table 3 Abnormal detection results of other algorithms 基于本文算法、未預處理數據的HTM網絡、HTM網絡、貝葉斯在線變點檢測、相對熵、高斯滑動窗口對異常溫度數據段的檢測結果如圖5所示。從圖中可以看出,未預處理數據的HTM網絡不能識別出異常點,而HTM網絡識別出1個異常點,貝葉斯在線變點檢測出1個異常點,相對熵檢測出1個異常點,高斯滑動窗口檢測出6個異常點,而本文算法檢測出11個(全部)異常點,在實際應用中具有較高的異常檢測性能。從異常檢測的效率來看,本文算法識別一條數據的時間約為4 ms,觀測傳感器采集周期一般為1 min,能滿足海洋觀測網中異常檢測的實時性需求。 圖5 異常檢測結果Fig.5 Abnormal detection results 本文聚焦海洋實時觀測數據的異常檢測問題,考慮數據缺測和丟包現象,應用HTM網絡對觀測數據時序序列的內在關系進行模擬,實現基于單源數據的質量監控,同時利用不同地理位置的同類傳感器數據,進行基于距離的多源數據異常檢測。測點實測數據結果表明,本文設計的算法有良好的異常檢測表現,并且能適應網絡丟包、數據缺測等現象,具有較強的魯棒性。目前,HTM網絡的異常檢測對象為單變量,對于傳感器數量較多的網絡需要并行部署多臺計算機,以滿足異常檢測的實時性需求,如何將檢測對象轉化為多變量進行學習識別是未來的研究方向之一。此外,結合其他數據相關性(站點內傳感器數據相關性的異常檢測)是另一個重要的研究方向。
2.3 多源數據異常檢測



3 實驗與結果分析
3.1 實驗環境

3.2 算法參數
3.3 結果與分析



4 結論