陳俊杰,鄧洪高,馬 謀,蔣俊正,2
(1.桂林電子科技大學 信息與通信學院,廣西壯族自治區 桂林 541004;2.桂林電子科技大學 衛星導航定位與位置服務國家地方聯合工程研究中心,廣西壯族自治區 桂林 541004)
隨著微處理器等技術的不斷發展和進步,使用無線傳感器網絡(Wireless Sensor Network,WSN)實時監測環境信息逐漸成為一種廣受歡迎的新方法。目前,無線傳感器網絡作為信息處理系統的數據采集端口,已經被廣泛用于軍事防御、災害預警和智能農業等各個領域[1-2]。由于傳感器通常部署在較為惡劣的環境,因此傳感器故障是普遍存在的。然而,如果系統不能及時檢測出故障傳感器節點,就會丟失或誤報信息,導致決策失誤、儀器損壞等不可預估的后果。因此對無線傳感器網絡節點進行故障檢測是至關重要的[3-]。傳感器故障可以分為硬故障和軟故障[5],硬故障是指傳感器節點的硬件設施出現故障,無法獲取信息或和其他節點通訊;軟故障是指傳感器雖然可以繼續工作,但節點獲取的信息或傳輸的信息不準確。由于軟故障的傳感器處于不穩定的工作狀態,故障檢測的難度也相對較大,所以,筆者主要針對軟故障進行故障檢測。
無線傳感器網絡中傳感器所采集的數據具有空間相關性和時間相關性的特點[6-7]。空間相關性指地理位置相鄰的傳感器具有相近的測量值;時間相關性指同一傳感器在相鄰時刻具有相近的測量值。無線傳感器網絡故障檢測算法通常利用這些特點,對傳感器網絡中出現的故障進行檢測。如CHEN等[5]提出的分布式故障檢測(Distributed Fault Detection,DFD)算法,該算法通過網絡中相鄰節點之間的互相測試以確定節點的初始狀態,再依據節點以及相鄰節點的初始狀態信息進一步判斷節點是否故障。分布式故障檢測算法具有較高的檢測精度和較低的誤報率,但故障檢測精度在鄰居節點個數較少的情況下會迅速下降;為此,文獻[8]提出了新的分布式故障檢測算法(New Distributed Fault Detection,NDFD),該算法定義了新的檢測標準,有效地提高了在鄰居節點個數較少情況下的故障檢測精度。基于分簇的算法[9]將無線傳感器網絡中的節點劃分為簇,再利用時間或空間相關性對簇中的節點進行故障檢測,基于中值策略的算法[10]將節點測量值與其所有鄰居節點測量值的中位數進行比較,若差值超過所設定的閾值,則認為該節點故障。由于中值能很好地反映實際的數值分布,因此基于中值策略的算法通常具有較高的檢測精確率。隨著神經網絡的發展,利用神經網絡進行故障檢測也逐漸受到學者的關注,如文獻[11]中提出的基于后向傳播神經網絡的故障檢測方法,利用神經網絡強大的非線性擬合能力進行故障檢測,該方法能針對不同的傳感器網絡進行學習,具有較強的適應能力。
在上述算法中,基于后向傳播神經網絡的故障檢測方法僅通過神經網絡非線性擬合能力進行故障檢測,并未考慮傳感器網絡中的時間特征和空間特征;基于中值策略的算法僅考慮了無線傳感器網絡節點的空間特征,并未考慮傳感器網絡中的時間特征;分布式故障檢測等算法雖然同時考慮到了空間特征和時間特征,但僅使用了相鄰時刻與當前時刻的差值信息,未能充分利用時間演變特性。基于上述問題,筆者提出了一種融合了圖卷積網絡[12](Graph Convolutional Network,GCN)和門控循環單元[13](Gate Recurrent Unit,GRU)的故障檢測模型GCN-GRU,通過該模型對無線傳感器網絡中的故障傳感器進行檢測。為了充分利用傳感器網絡的空間特征和時間特征,首先通過圖模型來刻畫無線傳感器網絡的空間相關性,從而利用GCN提取傳感器網絡的空間特征;其次,將圖卷積網絡所提取的空間特征與無線傳感器網絡采集數據相融合后送入GRU,在GRU中通過對上一時刻的信息進行適當的舍取,從而提取出無線傳感器網絡的時間特征;最后,由全連接層將時空特征擬合為故障檢測結果。仿真結果表明,與DFD算法、NDFD算法和GRU算法相比,GCN-GRU模型取得了更高的故障檢測率和更低的虛警率,表明該模型能更有效地利用WSN的空間特征和時間特征。

節點vi與vj之間最短路徑的邊數被定義為測地距離ρ(i,j),若vi沒有路徑到達vj,則ρ(i,j)=∞。通過測地距離可以得到vi的k階鄰居定義B(i,k)≡{j|ρ(i,j)≤k}[16],即與vi測地距離小于等于k的節點集合。傳感器網絡所采集數據在不同時刻具有一定的差異性,如圖1(b)所示,因此傳感器網絡在T個連續時刻內采集的數據可以表示為X=[x1,x2,…,xT],其中,xT=[x(v1),x(v2),…,x(vn)]T表示傳感器網絡各節點在t時刻采集數據的集合,即表示為t時刻的圖信號。圖1(b)中,xi,t表示序號為i的傳感器節點在t時刻采集的數據。

(a) 傳感器網絡結構示意圖
通過構造圖模型,無線傳感器網絡故障檢測問題可以描述為:在一定區域內部署了由n個傳感器構成的傳感器網絡,該傳感器網絡在T個連續時刻內采集的數據為X,xt表示t時刻傳感器網絡所采集的元素,即待檢測信號集合;[xt-T+1,xt-T+2,…,xt-1]表示傳感器網絡的歷史信號集合。通過構建故障檢測模型對X及傳感器網絡的圖模型G進行分析,檢測xt是否含有故障節點;若含有故障節點,則進一步定位出對應的故障傳感器。
當完成圖建模之后,使用GCN-GRU模型對無線傳感器網絡中的故障節點進行檢測。GCN-GRU模型的結構示意圖如圖2所示。模型主要結構分為3個部分,分別是輸入層、時空處理層和輸出層。輸入層接收傳感器網絡數據X及其圖模型的鄰接矩陣A,并將其作為時空處理層的輸入。時空處理層由圖卷積模塊和GRU組成,首先圖卷積模塊接收來自輸入層的數據,通過圖卷積運算提取傳感器網絡數據的空間特征S∈RT×n×2,之后將S與X進行數據拼接后作為GRU的輸入,利用GRU提取傳感器網絡數據的時空特征H并傳輸至全連接層,最后通過全連接層將時空特征H擬合為概率矩陣Y并將其傳輸至輸出層,其中概率矩陣Y的元素表示對應節點的分類概率。輸出層將Y轉化為故障檢測結果并輸出。圖2中輸出層的陰影節點表示GCN-GRU模型檢測出的故障節點。

圖2 GCN-GRU模型結構示意圖
GCN模塊接收傳感器網絡數據X及其圖模型的鄰接矩陣A,并通過圖卷積操作提取其中的空間特征。圖卷積被定義為濾波器gθ=diag(θ)與圖信號x∈Rn在頻域的乘積,如式(1)所示,
(1)

(2)

(3)

(4)


(a) k=0 (b) k=1 (c) k=2
GRU接收由GCN模塊提取的空間特征S,并將其與原始信號X拼接后作為輸入,得到無線傳感器網絡的時空特征H:
H=tanh(fGRU([S,X])) ,
(5)
其中,tanh表示雙曲正切激活函數;[S,X]∈RT×n×3表示將S與X拼接為新的三維數據;H為GCN-GRU模型所提取的時空特征。GRU的內部結構如圖4所示,GRU通過上一個時刻的輸出ht-1和當前時刻的輸入xt獲取重置門rt和更新門zt的狀態:

圖4 GRU內部結構圖
(6)

(7)

(8)
其中,更新門zt用于確定上一個時刻的輸出ht-1對當前時刻輸出ht的影響程度。
最后,將GRU所提取的時空特征H作為全連接層的輸入,得到分類概率矩陣Y。GCN-GRU模型中全連接層的前向傳播公式如下式所示:
Y=fFC(H)=σ(WFCH+b) ,
(9)

第1個仿真實驗所使用的數據是由美國國家氣象局官方網站所公布的美國主要城市2003年的日平均氣溫數據集[16]。該數據記錄了分布在美國各地的150個傳感器365日獲取的日平均氣溫,采樣時間間隔為1天,氣溫范圍為[-17.8 ℉,104.3 ℉],℉表示華氏度。如圖5(a)所示,這150個傳感器組成了一個復雜的傳感器網絡。

(a) 無異常節點圖信號
該數據集是一個無異常的數據集,仿真時在原始數據的基礎上增加20 ℉以模擬傳感器發生故障,20 ℉對該數據而言是非常小的變化,難以通過人工排查出異常數據。圖5展示了某時刻無故障節點圖信號與模擬傳感器故障后的圖信號的對比,其中節點顏色的深淺表示溫度的低高,圖5(b)中星形節點表示故障節點。
第2個仿真實驗所采用的數據集由大氣海洋聯合研究所公布的全球500個傳感器在1948年至2010年內4599個時刻采集的海平面氣壓[15]。數據集內海平面氣壓范圍為[94.713 6 kPa,110.513 4 kPa],采樣時間間隔為5天。圖6展示了該數據集傳感器網絡所構成的圖模型。

圖6 海平面氣壓數據集中的傳感器網絡
與第1個仿真實驗采用的數據集類似,在仿真時將數據在原本的基礎上增加3 kPa作為故障傳感器測量的異常值。圖7為某時刻無故障節點圖信號與模擬傳感器故障后的圖信號的對比,與圖5類似,節點顏色的深淺表示海平面氣壓的低高,圖7(b)中星形節點表示故障節點。

(a) 無異常節點圖信號
數據集以6∶4的比例被隨機劃分為訓練集和測試集,為了模擬現實中的故障情況,將訓練集中出現故障傳感器的時刻設置為總數的10%,測試集為5%,故障時刻的故障傳感器數量為傳感器總數的5%。對于當前時刻是否發生故障,需要利用其前3個連續時刻的無異常數據進行檢測。詳細參數設置如表1所示。

表1 實驗具體參數
實驗選擇Python作為編程語言并使用Pytorch 1.6建立網絡模型,利用RMSprop優化器對模型參數進行優化。RMSprop是一種基于梯度的神經網絡損失函數優化算法,它在減小更新波動范圍及加快收斂速度上有著明顯的優勢,在很多情況下都被認為是工作性能優秀的優化器。交叉熵損失函數經常被用于分類問題,因此被選擇為訓練過程中的損失函數,其定義如式(10)所示。
(10)

檢測率PDR、故障檢測率PFDR和虛警率PFAR是常用于評價傳感器網絡故障檢測結果的指標[18]。檢測率、故障檢測率和虛警率可以通過真正例NTP、假正例NFP、真反例NTN和假反例NFN來表示。NTP是指模型分類為正例,實際上也是正例的個數;NFP是指模型分類為正例,實際上為負例的個數;NTN是指模型分類為負例,實際上也是負例的個數;NFN是指模型分類為負例,實際上是正例的個數。將故障視為正例,正常視為負例。由此,可以得到PDR、PFDR和PFAR的定義:
(11)
由定義可以看出,檢測率是指模型將樣本正確分類到對應類別的個數占總樣本數的比例;故障檢測率是指模型正確分類為正例的樣本占所有正例樣本的比例;虛警率是指模型錯誤分類的樣本數占總樣本數的比例。
分別選取DFD算法[5]、NDFD[8]算法和GRU[13]作為對比算法,仿真結果如表2所示。由表2可以看出,筆者提出的GCN-GRU模型對比DFD算法、NDFD算法和GRU有著更高的檢測率和故障檢測率以及更低的虛警率,整體檢測性能顯著優于對比算法。GCN-GRU模型通過兩層卷積層聚合了每個傳感器節點的兩階鄰居信息,充分地利用了無線傳感器網絡的空間相關性,因此GCN-GRU模型的性能明顯優于僅使用時間特征的GRU模型;相較于DFD和NDFD算法,GCN-GRU模型通過GRU提取了傳感器網絡數據的時間特征,對時間樣本數據的特征提取能力更強,因此本模型在檢測故障傳感器問題上有著更出色的表現。綜合來看,GCN-GRU模型與對比算法相比有著更好的故障檢測性能,體現了該模型在時空特征的提取和利用方面有著更好的表現,能夠有效地處理無線傳感器網絡故障傳感器檢測問題。

表2 不同數據集下各算法的評價指標 %
筆者提出了一種新的傳感器網絡故障檢測模型。首先通過GCN提取傳感器網絡的空間特征;再將所提取的空間特征與輸入信號結合后作為GRU的輸入,利用GRU提取其中的時空特征;最后將時空特征送入全連接層,將其擬合為故障檢測結果。仿真結果表明,筆者提出的GCN-GRU模型優于DFD算法和NDFD算法,具有更好的故障檢測性能。
后續工作將設計適用于更加復雜情況下的傳感器網絡故障檢測模型。