楊明潤,郭星鋒,黃元峰,陳柄全
(武漢工程大學 電氣信息系,湖北 武漢 430000)
利用無線傳感器網絡(Wireless Sensor Network,WSN)對大面積水域進行檢測時,通常會部署大量傳感器節(jié)點來感知采集大量的水質數(shù)據(jù),這對水質數(shù)據(jù)異常檢測算法的性能提出了更高的要求。文獻[1]提出了基于局部密度分析的非周期水質異常檢測方法,利用水質時序數(shù)據(jù)的空間距離關系來準確判斷數(shù)據(jù)是否存在異常。文獻[2]提出了一種基于概率密度補償?shù)母倪M支持向量機(Support Vector Machines,SVM)異常水質檢測算法,通過密度特征思想優(yōu)化SVM,更有利于后續(xù)的數(shù)據(jù)分類。文獻[3]提出了基于自回歸(Autoregressive,AR)模型和孤立森林算法的水質異常數(shù)據(jù)檢測方法,通過AR 模型實現(xiàn)水質時間序列數(shù)據(jù)的高精度預測,并通過孤立森林進行后續(xù)的異常檢測,能夠實現(xiàn)大量數(shù)據(jù)的異常實時檢測。文獻[4]針對上述問題提出了基于向量自回歸(Vector Autoregression,VAR)模型的水質異常檢測算法,通過VAR 算法進行數(shù)據(jù)多特征融合,檢測精度相較于AR 模型得到了較大提升。文獻[5]提出了采用人工神經網絡預測水質變化,并通過回歸分析建立水質參數(shù)模型,通過比對神經網絡的預測值與模型中數(shù)據(jù)的分布特點來判斷水質異常數(shù)據(jù)。文獻[6]提出了多元數(shù)據(jù)融合突發(fā)水質異常事件預估方法,通過融合算法隨水質數(shù)據(jù)進行兩兩融合,減少了數(shù)據(jù)傳輸量。文獻[7]提出了多傳感器數(shù)據(jù)融合的水質檢測方法,通過異類數(shù)據(jù)和同類數(shù)據(jù)融合算法將數(shù)據(jù)進行實時融合,再對融合數(shù)據(jù)進行最終的判定。文獻[8]提出了基于動態(tài)關聯(lián)矩陣的水質異常檢測方法,通過動態(tài)時間規(guī)整算法對多維數(shù)據(jù)進行特征提取,再借助隨機森林算法進行后續(xù)的異常水質數(shù)據(jù)檢測。文獻[9]提出了基于主成分分析和SVM 的數(shù)據(jù)異常檢測算法,通過主成分分析對數(shù)據(jù)進行降維處理,再利用SVM 進行異常檢測。
上述算法對水質數(shù)據(jù)進行數(shù)據(jù)融合時的壓縮比不高,數(shù)據(jù)異常特征保留不完整,而且異常檢測模型訓練集不具代表性。在上述研究的基礎上,本文提出了一種基于數(shù)據(jù)壓縮的WSN 異常檢測算法。該算法通過小波變換將數(shù)據(jù)分為低頻分量和高頻分量,利用壓縮感知對低頻分量進行壓縮,保留高頻分量,將高頻分量作為異常檢測階段模型的訓練集。
在大面積待測水域中,通常會部署成千上萬個水質傳感器節(jié)點來感知采集水質參數(shù),但是同一傳感器在時間序列上采集到的水質數(shù)據(jù)存在大量冗余,使得水質數(shù)據(jù)在傳輸過程中會大量消耗節(jié)點能量,降低檢測效率[10]。針對該問題,本文提出了基于小波變換的壓縮感知(WT-CS)與SVM 相結合的分級式水質異常數(shù)據(jù)檢測算法。算法分為兩個階段,第一階段是水質數(shù)據(jù)壓縮階段,第二階段是水質數(shù)據(jù)異常檢測階段。算法具體流程如圖1 所示。
圖1 基于WT-CS 與SVM 相結合的分級式水質異常數(shù)據(jù)檢測算法流程
假設M個傳感器節(jié)點在N個時刻內采集到的初始水質數(shù)據(jù)為SM×N,利用db1 小波對水質數(shù)據(jù)SM×N進行多重分解。
(1)采用Mallat 算法通過低頻和高頻系數(shù)將水質數(shù)據(jù)在db1 小波域內分解,小波低頻系數(shù)和高頻系數(shù)為:
式中:Sα,L(n)和Sα,H(n)分別是db1 小波函數(shù)對應的低通濾波系數(shù)和高通濾波,α為分解層數(shù)。
將初始水質數(shù)據(jù)分別與低頻系數(shù)和高頻系數(shù)進行計算后,得到一個低頻分量和一個高頻分量:
如果要進行下一步分解,則需要通過第一層低頻分量再一次與低頻系數(shù)和高頻系數(shù)進行計算。經過三層小波分解后,初始水質數(shù)據(jù)集可以表示為:
在三重小波分解后,可以將水質數(shù)據(jù)分為包含絕大部分正常水質數(shù)據(jù)信息的低頻分量和包含絕大部分水質數(shù)據(jù)異常特征的高頻分量。此時的低頻分量是稀疏表示的,即:
通過壓縮感知對小波變換后的低頻分量L3(n)進行二次壓縮,選取合適的觀測矩陣φ對L3(n)進行計算,得到壓縮后的測量值y為:
二次壓縮后的數(shù)據(jù)由3 個高頻分量和1 個壓縮后的低頻分量共同組成,其表現(xiàn)形式為:
利用SVM 的超平面對水質數(shù)據(jù)進行劃分:
尋找最優(yōu)超平面對數(shù)據(jù)進行最優(yōu)劃分的過程實質上就是對目標函數(shù)進行二次優(yōu)化,即:
式中:ζi是松弛變量(ζi≥i=1,2,…,l),c是懲罰系數(shù)。引入拉格朗日乘αi(i=1,2,3,…,l)得到對偶形式為:
將后續(xù)的待測樣本導入SVM 模型中進行訓練,通過計算來判斷數(shù)據(jù)的所屬類別。SVM 模型中一般選擇RBF 核函數(shù),即:
此時得到算法的決策函數(shù)為:
由決策函數(shù)確定邊界,再通過計算數(shù)據(jù)點到邊界線的距離進行類別劃分。
一般而言,機器學習算法的評價指標就是精度。由于WSN 中異常數(shù)據(jù)和正常數(shù)據(jù)所占比例極不平衡,因此精度不適合作為異常檢測的評價指標[11]。在數(shù)據(jù)異常檢測中,數(shù)據(jù)集一般被分為正常數(shù)據(jù)(負類)和異常數(shù)據(jù)(正類)兩類,則檢測結果及樣本實際所屬類別為真正例(True Positive,TP)、假正例(False Positive,F(xiàn)P)、真反例(True Negative,TN)、反假例(False Negative,F(xiàn)N)。將召回率(True Positive Rate,TPR)和誤報率(False Positive Rate,F(xiàn)PR)作為算法性能的評價指標,召回率是被正常檢測出來的異常數(shù)據(jù)的個數(shù)與實際異常數(shù)據(jù)樣本的個數(shù)之比,誤報率是被算法誤判為異常的正常數(shù)據(jù)的個數(shù)與正常數(shù)據(jù)樣本總數(shù)之比,即:
本次實驗采用太湖水體理化監(jiān)測數(shù)據(jù),該數(shù)據(jù)集包含了16 種水質參數(shù)。為了增加實驗數(shù)據(jù)中數(shù)據(jù)的多樣性,向數(shù)據(jù)集中人為添加5%的異常數(shù)據(jù),添加的異常數(shù)據(jù)類型包括噪聲數(shù)據(jù)、電池故障數(shù)據(jù)以及節(jié)點短路數(shù)據(jù)。
為了驗證基于WT-CS 與SVM 相結合的分級式水質異常數(shù)據(jù)檢測算法的性能,在Win10 系統(tǒng)中通過Matlab2019a 軟件進行了算法的仿真實驗與分析。同時為了驗證本文算法(以下簡稱WT-CS-SVM)的有效性,還選取了基于主成分分析的異常數(shù)據(jù)檢測算法(以下簡稱PAC-SVM)以及支持向量機算法(以下簡稱SVM)在公開數(shù)據(jù)集上進行對比仿真。
基于太湖水質數(shù)據(jù),對WT-CS-SVM、PACSVM 和SVM 算法進行實驗仿真,并將檢測時間、檢測率和誤報率作為衡量指標評價算法性能的指標,結果如表1 所示。
表1 太湖水質數(shù)據(jù)下的算法性能對比
實驗結果表明,本文算法相較于其他兩種對比算法,在保證較高檢測率的同時,實現(xiàn)了大量水質數(shù)據(jù)的實時檢測。為了避免實驗的偶然性,使實驗結果更具有說服力,對3 組算法循環(huán)運行100 次,取10 次結果為一組,對其求均值。3 種算法的檢測率和誤報率均值如圖2、圖3 所示。
圖2 2006—2015 年太湖水質檢測率平均值
圖3 2007—2015 年太湖水質誤報率平均值
為了更直觀地體現(xiàn)3 種算法的檢測性能,將檢測率和誤報率的平均值折線轉化成對應值的分布區(qū)間,使各個性能指標的對比更為明顯,如表2 所示。
由表2 可知,WT-CS-SVM 分級式水質異常數(shù)據(jù)檢測算法檢測時間更短、檢測率更高,保證水質異常數(shù)據(jù)檢測準確率的同時實現(xiàn)了對大量水質數(shù)據(jù)檢測的實時性,檢測性能更優(yōu)。
表2 3 種算法檢測率平均值取值區(qū)間
基于數(shù)據(jù)壓縮的水質異常檢測算法首先通過db1 小波對初始水質數(shù)據(jù)進行三重分解,得到包含絕大部分數(shù)據(jù)信息的低頻系數(shù)和包含異常數(shù)據(jù)的高頻系數(shù),其次利用壓縮感知對低頻系數(shù)進行二次壓縮,將處理后的水質數(shù)據(jù)作為訓練集導入SVM 模型中進行訓練,得到最終的水質數(shù)據(jù)檢測模型。雖然算法具有良好的壓縮和異常檢測性能,但是受傳感器自身因素的限制,小波壓縮算法必須是輕量級,選擇合適的波形尤為重要,后續(xù)將會對該問題進行深入研究。