陳俊杰,鄧洪高,馬 謀,蔣俊正,2
(1.桂林電子科技大學(xué) 信息與通信學(xué)院,廣西壯族自治區(qū) 桂林 541004;2.桂林電子科技大學(xué) 衛(wèi)星導(dǎo)航定位與位置服務(wù)國家地方聯(lián)合工程研究中心,廣西壯族自治區(qū) 桂林 541004)
隨著微處理器等技術(shù)的不斷發(fā)展和進(jìn)步,使用無線傳感器網(wǎng)絡(luò)(Wireless Sensor Network,WSN)實(shí)時(shí)監(jiān)測環(huán)境信息逐漸成為一種廣受歡迎的新方法。目前,無線傳感器網(wǎng)絡(luò)作為信息處理系統(tǒng)的數(shù)據(jù)采集端口,已經(jīng)被廣泛用于軍事防御、災(zāi)害預(yù)警和智能農(nóng)業(yè)等各個(gè)領(lǐng)域[1-2]。由于傳感器通常部署在較為惡劣的環(huán)境,因此傳感器故障是普遍存在的。然而,如果系統(tǒng)不能及時(shí)檢測出故障傳感器節(jié)點(diǎn),就會丟失或誤報(bào)信息,導(dǎo)致決策失誤、儀器損壞等不可預(yù)估的后果。因此對無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)進(jìn)行故障檢測是至關(guān)重要的[3-]。傳感器故障可以分為硬故障和軟故障[5],硬故障是指傳感器節(jié)點(diǎn)的硬件設(shè)施出現(xiàn)故障,無法獲取信息或和其他節(jié)點(diǎn)通訊;軟故障是指傳感器雖然可以繼續(xù)工作,但節(jié)點(diǎn)獲取的信息或傳輸?shù)男畔⒉粶?zhǔn)確。由于軟故障的傳感器處于不穩(wěn)定的工作狀態(tài),故障檢測的難度也相對較大,所以,筆者主要針對軟故障進(jìn)行故障檢測。
無線傳感器網(wǎng)絡(luò)中傳感器所采集的數(shù)據(jù)具有空間相關(guān)性和時(shí)間相關(guān)性的特點(diǎn)[6-7]。空間相關(guān)性指地理位置相鄰的傳感器具有相近的測量值;時(shí)間相關(guān)性指同一傳感器在相鄰時(shí)刻具有相近的測量值。無線傳感器網(wǎng)絡(luò)故障檢測算法通常利用這些特點(diǎn),對傳感器網(wǎng)絡(luò)中出現(xiàn)的故障進(jìn)行檢測。如CHEN等[5]提出的分布式故障檢測(Distributed Fault Detection,DFD)算法,該算法通過網(wǎng)絡(luò)中相鄰節(jié)點(diǎn)之間的互相測試以確定節(jié)點(diǎn)的初始狀態(tài),再依據(jù)節(jié)點(diǎn)以及相鄰節(jié)點(diǎn)的初始狀態(tài)信息進(jìn)一步判斷節(jié)點(diǎn)是否故障。分布式故障檢測算法具有較高的檢測精度和較低的誤報(bào)率,但故障檢測精度在鄰居節(jié)點(diǎn)個(gè)數(shù)較少的情況下會迅速下降;為此,文獻(xiàn)[8]提出了新的分布式故障檢測算法(New Distributed Fault Detection,NDFD),該算法定義了新的檢測標(biāo)準(zhǔn),有效地提高了在鄰居節(jié)點(diǎn)個(gè)數(shù)較少情況下的故障檢測精度。基于分簇的算法[9]將無線傳感器網(wǎng)絡(luò)中的節(jié)點(diǎn)劃分為簇,再利用時(shí)間或空間相關(guān)性對簇中的節(jié)點(diǎn)進(jìn)行故障檢測,基于中值策略的算法[10]將節(jié)點(diǎn)測量值與其所有鄰居節(jié)點(diǎn)測量值的中位數(shù)進(jìn)行比較,若差值超過所設(shè)定的閾值,則認(rèn)為該節(jié)點(diǎn)故障。由于中值能很好地反映實(shí)際的數(shù)值分布,因此基于中值策略的算法通常具有較高的檢測精確率。隨著神經(jīng)網(wǎng)絡(luò)的發(fā)展,利用神經(jīng)網(wǎng)絡(luò)進(jìn)行故障檢測也逐漸受到學(xué)者的關(guān)注,如文獻(xiàn)[11]中提出的基于后向傳播神經(jīng)網(wǎng)絡(luò)的故障檢測方法,利用神經(jīng)網(wǎng)絡(luò)強(qiáng)大的非線性擬合能力進(jìn)行故障檢測,該方法能針對不同的傳感器網(wǎng)絡(luò)進(jìn)行學(xué)習(xí),具有較強(qiáng)的適應(yīng)能力。
在上述算法中,基于后向傳播神經(jīng)網(wǎng)絡(luò)的故障檢測方法僅通過神經(jīng)網(wǎng)絡(luò)非線性擬合能力進(jìn)行故障檢測,并未考慮傳感器網(wǎng)絡(luò)中的時(shí)間特征和空間特征;基于中值策略的算法僅考慮了無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)的空間特征,并未考慮傳感器網(wǎng)絡(luò)中的時(shí)間特征;分布式故障檢測等算法雖然同時(shí)考慮到了空間特征和時(shí)間特征,但僅使用了相鄰時(shí)刻與當(dāng)前時(shí)刻的差值信息,未能充分利用時(shí)間演變特性?;谏鲜鰡栴},筆者提出了一種融合了圖卷積網(wǎng)絡(luò)[12](Graph Convolutional Network,GCN)和門控循環(huán)單元[13](Gate Recurrent Unit,GRU)的故障檢測模型GCN-GRU,通過該模型對無線傳感器網(wǎng)絡(luò)中的故障傳感器進(jìn)行檢測。為了充分利用傳感器網(wǎng)絡(luò)的空間特征和時(shí)間特征,首先通過圖模型來刻畫無線傳感器網(wǎng)絡(luò)的空間相關(guān)性,從而利用GCN提取傳感器網(wǎng)絡(luò)的空間特征;其次,將圖卷積網(wǎng)絡(luò)所提取的空間特征與無線傳感器網(wǎng)絡(luò)采集數(shù)據(jù)相融合后送入GRU,在GRU中通過對上一時(shí)刻的信息進(jìn)行適當(dāng)?shù)纳崛。瑥亩崛〕鰺o線傳感器網(wǎng)絡(luò)的時(shí)間特征;最后,由全連接層將時(shí)空特征擬合為故障檢測結(jié)果。仿真結(jié)果表明,與DFD算法、NDFD算法和GRU算法相比,GCN-GRU模型取得了更高的故障檢測率和更低的虛警率,表明該模型能更有效地利用WSN的空間特征和時(shí)間特征。
節(jié)點(diǎn)vi與vj之間最短路徑的邊數(shù)被定義為測地距離ρ(i,j),若vi沒有路徑到達(dá)vj,則ρ(i,j)=∞。通過測地距離可以得到vi的k階鄰居定義B(i,k)≡{j|ρ(i,j)≤k}[16],即與vi測地距離小于等于k的節(jié)點(diǎn)集合。傳感器網(wǎng)絡(luò)所采集數(shù)據(jù)在不同時(shí)刻具有一定的差異性,如圖1(b)所示,因此傳感器網(wǎng)絡(luò)在T個(gè)連續(xù)時(shí)刻內(nèi)采集的數(shù)據(jù)可以表示為X=[x1,x2,…,xT],其中,xT=[x(v1),x(v2),…,x(vn)]T表示傳感器網(wǎng)絡(luò)各節(jié)點(diǎn)在t時(shí)刻采集數(shù)據(jù)的集合,即表示為t時(shí)刻的圖信號。圖1(b)中,xi,t表示序號為i的傳感器節(jié)點(diǎn)在t時(shí)刻采集的數(shù)據(jù)。
(a) 傳感器網(wǎng)絡(luò)結(jié)構(gòu)示意圖
通過構(gòu)造圖模型,無線傳感器網(wǎng)絡(luò)故障檢測問題可以描述為:在一定區(qū)域內(nèi)部署了由n個(gè)傳感器構(gòu)成的傳感器網(wǎng)絡(luò),該傳感器網(wǎng)絡(luò)在T個(gè)連續(xù)時(shí)刻內(nèi)采集的數(shù)據(jù)為X,xt表示t時(shí)刻傳感器網(wǎng)絡(luò)所采集的元素,即待檢測信號集合;[xt-T+1,xt-T+2,…,xt-1]表示傳感器網(wǎng)絡(luò)的歷史信號集合。通過構(gòu)建故障檢測模型對X及傳感器網(wǎng)絡(luò)的圖模型G進(jìn)行分析,檢測xt是否含有故障節(jié)點(diǎn);若含有故障節(jié)點(diǎn),則進(jìn)一步定位出對應(yīng)的故障傳感器。
當(dāng)完成圖建模之后,使用GCN-GRU模型對無線傳感器網(wǎng)絡(luò)中的故障節(jié)點(diǎn)進(jìn)行檢測。GCN-GRU模型的結(jié)構(gòu)示意圖如圖2所示。模型主要結(jié)構(gòu)分為3個(gè)部分,分別是輸入層、時(shí)空處理層和輸出層。輸入層接收傳感器網(wǎng)絡(luò)數(shù)據(jù)X及其圖模型的鄰接矩陣A,并將其作為時(shí)空處理層的輸入。時(shí)空處理層由圖卷積模塊和GRU組成,首先圖卷積模塊接收來自輸入層的數(shù)據(jù),通過圖卷積運(yùn)算提取傳感器網(wǎng)絡(luò)數(shù)據(jù)的空間特征S∈RT×n×2,之后將S與X進(jìn)行數(shù)據(jù)拼接后作為GRU的輸入,利用GRU提取傳感器網(wǎng)絡(luò)數(shù)據(jù)的時(shí)空特征H并傳輸至全連接層,最后通過全連接層將時(shí)空特征H擬合為概率矩陣Y并將其傳輸至輸出層,其中概率矩陣Y的元素表示對應(yīng)節(jié)點(diǎn)的分類概率。輸出層將Y轉(zhuǎn)化為故障檢測結(jié)果并輸出。圖2中輸出層的陰影節(jié)點(diǎn)表示GCN-GRU模型檢測出的故障節(jié)點(diǎn)。
圖2 GCN-GRU模型結(jié)構(gòu)示意圖
GCN模塊接收傳感器網(wǎng)絡(luò)數(shù)據(jù)X及其圖模型的鄰接矩陣A,并通過圖卷積操作提取其中的空間特征。圖卷積被定義為濾波器gθ=diag(θ)與圖信號x∈Rn在頻域的乘積,如式(1)所示,
(1)
(2)
(3)
(4)
(a) k=0 (b) k=1 (c) k=2
GRU接收由GCN模塊提取的空間特征S,并將其與原始信號X拼接后作為輸入,得到無線傳感器網(wǎng)絡(luò)的時(shí)空特征H:
H=tanh(fGRU([S,X])) ,
(5)
其中,tanh表示雙曲正切激活函數(shù);[S,X]∈RT×n×3表示將S與X拼接為新的三維數(shù)據(jù);H為GCN-GRU模型所提取的時(shí)空特征。GRU的內(nèi)部結(jié)構(gòu)如圖4所示,GRU通過上一個(gè)時(shí)刻的輸出ht-1和當(dāng)前時(shí)刻的輸入xt獲取重置門rt和更新門zt的狀態(tài):
圖4 GRU內(nèi)部結(jié)構(gòu)圖
(6)
(7)
(8)
其中,更新門zt用于確定上一個(gè)時(shí)刻的輸出ht-1對當(dāng)前時(shí)刻輸出ht的影響程度。
最后,將GRU所提取的時(shí)空特征H作為全連接層的輸入,得到分類概率矩陣Y。GCN-GRU模型中全連接層的前向傳播公式如下式所示:
Y=fFC(H)=σ(WFCH+b) ,
(9)
第1個(gè)仿真實(shí)驗(yàn)所使用的數(shù)據(jù)是由美國國家氣象局官方網(wǎng)站所公布的美國主要城市2003年的日平均氣溫?cái)?shù)據(jù)集[16]。該數(shù)據(jù)記錄了分布在美國各地的150個(gè)傳感器365日獲取的日平均氣溫,采樣時(shí)間間隔為1天,氣溫范圍為[-17.8 ℉,104.3 ℉],℉表示華氏度。如圖5(a)所示,這150個(gè)傳感器組成了一個(gè)復(fù)雜的傳感器網(wǎng)絡(luò)。
(a) 無異常節(jié)點(diǎn)圖信號
該數(shù)據(jù)集是一個(gè)無異常的數(shù)據(jù)集,仿真時(shí)在原始數(shù)據(jù)的基礎(chǔ)上增加20 ℉以模擬傳感器發(fā)生故障,20 ℉對該數(shù)據(jù)而言是非常小的變化,難以通過人工排查出異常數(shù)據(jù)。圖5展示了某時(shí)刻無故障節(jié)點(diǎn)圖信號與模擬傳感器故障后的圖信號的對比,其中節(jié)點(diǎn)顏色的深淺表示溫度的低高,圖5(b)中星形節(jié)點(diǎn)表示故障節(jié)點(diǎn)。
第2個(gè)仿真實(shí)驗(yàn)所采用的數(shù)據(jù)集由大氣海洋聯(lián)合研究所公布的全球500個(gè)傳感器在1948年至2010年內(nèi)4599個(gè)時(shí)刻采集的海平面氣壓[15]。數(shù)據(jù)集內(nèi)海平面氣壓范圍為[94.713 6 kPa,110.513 4 kPa],采樣時(shí)間間隔為5天。圖6展示了該數(shù)據(jù)集傳感器網(wǎng)絡(luò)所構(gòu)成的圖模型。
圖6 海平面氣壓數(shù)據(jù)集中的傳感器網(wǎng)絡(luò)
與第1個(gè)仿真實(shí)驗(yàn)采用的數(shù)據(jù)集類似,在仿真時(shí)將數(shù)據(jù)在原本的基礎(chǔ)上增加3 kPa作為故障傳感器測量的異常值。圖7為某時(shí)刻無故障節(jié)點(diǎn)圖信號與模擬傳感器故障后的圖信號的對比,與圖5類似,節(jié)點(diǎn)顏色的深淺表示海平面氣壓的低高,圖7(b)中星形節(jié)點(diǎn)表示故障節(jié)點(diǎn)。
(a) 無異常節(jié)點(diǎn)圖信號
數(shù)據(jù)集以6∶4的比例被隨機(jī)劃分為訓(xùn)練集和測試集,為了模擬現(xiàn)實(shí)中的故障情況,將訓(xùn)練集中出現(xiàn)故障傳感器的時(shí)刻設(shè)置為總數(shù)的10%,測試集為5%,故障時(shí)刻的故障傳感器數(shù)量為傳感器總數(shù)的5%。對于當(dāng)前時(shí)刻是否發(fā)生故障,需要利用其前3個(gè)連續(xù)時(shí)刻的無異常數(shù)據(jù)進(jìn)行檢測。詳細(xì)參數(shù)設(shè)置如表1所示。
表1 實(shí)驗(yàn)具體參數(shù)
實(shí)驗(yàn)選擇Python作為編程語言并使用Pytorch 1.6建立網(wǎng)絡(luò)模型,利用RMSprop優(yōu)化器對模型參數(shù)進(jìn)行優(yōu)化。RMSprop是一種基于梯度的神經(jīng)網(wǎng)絡(luò)損失函數(shù)優(yōu)化算法,它在減小更新波動范圍及加快收斂速度上有著明顯的優(yōu)勢,在很多情況下都被認(rèn)為是工作性能優(yōu)秀的優(yōu)化器。交叉熵?fù)p失函數(shù)經(jīng)常被用于分類問題,因此被選擇為訓(xùn)練過程中的損失函數(shù),其定義如式(10)所示。
(10)
檢測率PDR、故障檢測率PFDR和虛警率PFAR是常用于評價(jià)傳感器網(wǎng)絡(luò)故障檢測結(jié)果的指標(biāo)[18]。檢測率、故障檢測率和虛警率可以通過真正例NTP、假正例NFP、真反例NTN和假反例NFN來表示。NTP是指模型分類為正例,實(shí)際上也是正例的個(gè)數(shù);NFP是指模型分類為正例,實(shí)際上為負(fù)例的個(gè)數(shù);NTN是指模型分類為負(fù)例,實(shí)際上也是負(fù)例的個(gè)數(shù);NFN是指模型分類為負(fù)例,實(shí)際上是正例的個(gè)數(shù)。將故障視為正例,正常視為負(fù)例。由此,可以得到PDR、PFDR和PFAR的定義:
(11)
由定義可以看出,檢測率是指模型將樣本正確分類到對應(yīng)類別的個(gè)數(shù)占總樣本數(shù)的比例;故障檢測率是指模型正確分類為正例的樣本占所有正例樣本的比例;虛警率是指模型錯(cuò)誤分類的樣本數(shù)占總樣本數(shù)的比例。
分別選取DFD算法[5]、NDFD[8]算法和GRU[13]作為對比算法,仿真結(jié)果如表2所示。由表2可以看出,筆者提出的GCN-GRU模型對比DFD算法、NDFD算法和GRU有著更高的檢測率和故障檢測率以及更低的虛警率,整體檢測性能顯著優(yōu)于對比算法。GCN-GRU模型通過兩層卷積層聚合了每個(gè)傳感器節(jié)點(diǎn)的兩階鄰居信息,充分地利用了無線傳感器網(wǎng)絡(luò)的空間相關(guān)性,因此GCN-GRU模型的性能明顯優(yōu)于僅使用時(shí)間特征的GRU模型;相較于DFD和NDFD算法,GCN-GRU模型通過GRU提取了傳感器網(wǎng)絡(luò)數(shù)據(jù)的時(shí)間特征,對時(shí)間樣本數(shù)據(jù)的特征提取能力更強(qiáng),因此本模型在檢測故障傳感器問題上有著更出色的表現(xiàn)。綜合來看,GCN-GRU模型與對比算法相比有著更好的故障檢測性能,體現(xiàn)了該模型在時(shí)空特征的提取和利用方面有著更好的表現(xiàn),能夠有效地處理無線傳感器網(wǎng)絡(luò)故障傳感器檢測問題。
表2 不同數(shù)據(jù)集下各算法的評價(jià)指標(biāo) %
筆者提出了一種新的傳感器網(wǎng)絡(luò)故障檢測模型。首先通過GCN提取傳感器網(wǎng)絡(luò)的空間特征;再將所提取的空間特征與輸入信號結(jié)合后作為GRU的輸入,利用GRU提取其中的時(shí)空特征;最后將時(shí)空特征送入全連接層,將其擬合為故障檢測結(jié)果。仿真結(jié)果表明,筆者提出的GCN-GRU模型優(yōu)于DFD算法和NDFD算法,具有更好的故障檢測性能。
后續(xù)工作將設(shè)計(jì)適用于更加復(fù)雜情況下的傳感器網(wǎng)絡(luò)故障檢測模型。