文獻(xiàn)標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.2015.07.032
中文引用格式: 敬明旻,,肖莉,楊傳書. 基于最大似然估計(jì)與樸素貝葉斯的WSN故障檢測[J].電子技術(shù)應(yīng)用,,2015,,41(7):114-117.
英文引用格式: Jing Mingmin,Xiao Li,,Yang Chuanshu. Maximum likelihood estimation and Naive Bayes classifier based fault detection in WSN[J].Application of Electronic Technique,,2015,41(7):114-117.
0 引言
傳感器網(wǎng)絡(luò)通常分布于變化劇烈,、地勢復(fù)雜的環(huán)境之中,。可能由于能量耗盡,、外界損壞等因素導(dǎo)致傳感器節(jié)點(diǎn)出現(xiàn)故障,,而故障節(jié)點(diǎn)的出現(xiàn)會導(dǎo)致路由的中斷、采集數(shù)據(jù)不完整等,,因此故障節(jié)點(diǎn)的檢測極為重要[1],。
已有的故障檢測算法大多較為復(fù)雜[2],基于神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)[3],、Kruskal算法[4]等,此類算法均可獲得較好的檢測率,,但計(jì)算冗余較高,,同時(shí)需傳感節(jié)點(diǎn)消耗大量的能量[5]。
本文提出了一種基于樸素貝葉斯與最大似然估計(jì)的大型傳感器網(wǎng)絡(luò)故障節(jié)點(diǎn)檢查算法,,算法具有如下優(yōu)點(diǎn):(1)所有檢測計(jì)算在sink節(jié)點(diǎn)中進(jìn)行,,從而無需消耗普通節(jié)點(diǎn)的能量;(2)從協(xié)議數(shù)據(jù)包中獲取端到端延遲值,,從而降低節(jié)點(diǎn)檢測的能耗,;(3)使用樸素貝葉斯分類器與最大似然估計(jì),其計(jì)算效率較高,、魯棒性好,,對于大型網(wǎng)絡(luò),其分類準(zhǔn)確率好于一些復(fù)雜的分類算法,。
1 樸素貝葉斯分類器與最大似然估計(jì)
1.1 故障節(jié)點(diǎn)引起的后果
圖1所示為ZigBee規(guī)范下故障節(jié)點(diǎn)導(dǎo)致路由變換的兩種情況,,ZigBee規(guī)范規(guī)定所有節(jié)點(diǎn)選擇最短路徑,將數(shù)據(jù)傳遞至Sink節(jié)點(diǎn),。從圖中可看出,,故障節(jié)點(diǎn)導(dǎo)致了能耗的增加以及端到端傳遞時(shí)間的延長。
1.2 樸素貝葉斯模型
可在訓(xùn)練階段使用最大似然估計(jì)(MLE)求得后驗(yàn)分布,,待檢測參數(shù)的值收集完畢之后,,使用式(2)將其分類。
1.3 最大似然估計(jì)
一個(gè)典型WSN中一般具有大量的傳感節(jié)點(diǎn),,網(wǎng)絡(luò)中出現(xiàn)故障或錯(cuò)誤的場景極多,,因此,不可能通過大量的訓(xùn)練樣本來計(jì)算所有故障場景的條件概率,。本文使用MLE在利用適量的訓(xùn)練樣本前提下,,估算條件概率密度函數(shù)(PDF)。假設(shè)訓(xùn)練屬性值集合為S={s1,s2,,…,,sk},將其密度表示如下:
式中S為獨(dú)立同分布,。對式(4)求導(dǎo)可估算最大似然估計(jì)
2 中心型樸素貝葉斯檢測算法
基于WSN的運(yùn)行特點(diǎn),,假設(shè)數(shù)據(jù)包傳輸時(shí)間屬于指數(shù)級PDF,使用MLE估算訓(xùn)練階段的條件概率,。
圖2為算法的總體流程,。
下面對程序各步驟進(jìn)行詳細(xì)解釋。
步驟1:對于訓(xùn)練階段與檢測階段,,僅分析簡單的數(shù)據(jù)包的信息,,如端到端數(shù)據(jù)包傳輸時(shí)間、源節(jié)點(diǎn)ID等,。網(wǎng)絡(luò)狀態(tài)可能是正?;蛴绣e(cuò),若類標(biāo)簽是正常,,網(wǎng)絡(luò)中則無故障傳感器,;若類標(biāo)簽是有錯(cuò),則網(wǎng)絡(luò)中含有一個(gè)以上的故障傳感器,。
訓(xùn)練階段:
步驟2.1:從正常類中獲取數(shù)據(jù)并開始訓(xùn)練過程,。當(dāng)正常類數(shù)據(jù)被處理之后,提取每個(gè)節(jié)點(diǎn)的最小時(shí)間值作為一個(gè)異常檢測閾值,。在典型的WSN拓?fù)浣Y(jié)構(gòu)中,,各節(jié)點(diǎn)將若干個(gè)數(shù)據(jù)包匯聚至sink,換句話說,,故障節(jié)點(diǎn)對傳輸?shù)挠绊懸蕾囉诠收蟼鞲衅髟谕負(fù)渲械奈恢?。若故障?jié)點(diǎn)是一個(gè)葉節(jié)點(diǎn),則無法選擇其信號,。若故障節(jié)點(diǎn)在通往sink節(jié)點(diǎn)的唯一路徑中,,則該分支的節(jié)點(diǎn)均無法傳輸數(shù)據(jù)。
步驟2.2:根據(jù)訓(xùn)練數(shù)據(jù)集的類標(biāo)簽估算兩個(gè)類(正常類和有錯(cuò)類)的邊際概率,。
步驟3:基于步驟2.1與2.2獲得的條件概率與邊際概率建立樸素貝葉斯分類器,,步驟8使用該分類器決定網(wǎng)絡(luò)的狀態(tài)。
檢測階段:
步驟3:sink節(jié)點(diǎn)將接收的數(shù)據(jù)包分批分析(1 000個(gè)數(shù)據(jù)包分為1批),。一批中根據(jù)所有數(shù)據(jù)包的端到端傳輸時(shí)間進(jìn)行分組,。將所有分組傳給步驟5來檢查傳輸路徑中是否含有故障節(jié)點(diǎn)。
步驟4:在數(shù)據(jù)包傳遞過程中,,擁塞是正常情況,,其端到端傳輸時(shí)間可能高于無擁塞網(wǎng)絡(luò)情況(其中不含有故障節(jié)點(diǎn))。為了不混淆擁塞與故障節(jié)點(diǎn)兩種情況,將每個(gè)數(shù)據(jù)包組與其異常閾值比較,。若組中所有的端到端傳輸時(shí)間均低于異常閾值,,則認(rèn)為路徑中至少含有一個(gè)故障傳感器,或者說,,若只有一個(gè)傳輸時(shí)間值低于異常閾值,,則認(rèn)為是擁塞導(dǎo)致,而不是故障節(jié)點(diǎn),。
步驟5:數(shù)據(jù)包分組中可能包含不同的端到端傳輸時(shí)間值,。將傳輸時(shí)間的模式值用于進(jìn)一步的分析,計(jì)算每個(gè)分組中正常與故障模式值的條件概率,,并與訓(xùn)練PDF比較,。
步驟6:如果模式值的故障條件概率高于正常模式值的條件概率,則該網(wǎng)絡(luò)可能有錯(cuò),,否則,,認(rèn)為該網(wǎng)絡(luò)正常。
步驟7:由于錯(cuò)誤設(shè)定的模式值也可能導(dǎo)致?lián)砣?并非故障節(jié)點(diǎn)),,因此需對模式值作進(jìn)一步分析。為了確定網(wǎng)絡(luò)狀態(tài),,將最后的5個(gè)傳輸時(shí)間使用樸素貝葉斯分類器分析,。若5個(gè)時(shí)間值均較低,則使用所有的時(shí)間值來估算,。由此獲得的分類器結(jié)果代替步驟7的原結(jié)果,。
步驟8:如果數(shù)據(jù)包被分組定義為一個(gè)有錯(cuò)網(wǎng)絡(luò),對應(yīng)的源節(jié)點(diǎn)則將被定義為可疑故障節(jié)點(diǎn),,然后更新該可疑故障節(jié)點(diǎn),。
步驟9:重復(fù)步驟5~9,直至完成所有數(shù)據(jù)包的分析,。
步驟10:統(tǒng)計(jì)網(wǎng)絡(luò)狀態(tài)和可疑故障節(jié)點(diǎn)列表根據(jù)測試場景進(jìn)行報(bào)告,。
3 試驗(yàn)結(jié)果與分析
3.1 仿真與試驗(yàn)環(huán)境
試驗(yàn)采用ZigBee系統(tǒng)建立WSN網(wǎng)絡(luò)模型,使用鄰接矩陣(傳輸成本范圍為1~200)隨機(jī)生成100個(gè)節(jié)點(diǎn)的網(wǎng)絡(luò)拓?fù)?。網(wǎng)絡(luò)中僅設(shè)置一個(gè)sink節(jié)點(diǎn),,將sink節(jié)點(diǎn)的能量設(shè)為無限。各節(jié)點(diǎn)隨機(jī)地采集數(shù)據(jù),,然后將數(shù)據(jù)包傳遞至sink節(jié)點(diǎn),。試驗(yàn)中設(shè)置兩個(gè)重要的網(wǎng)絡(luò)場景:(1)流量擁塞等級(3個(gè)流量擁塞等級):無擁塞、輕度擁塞,、重度擁塞,。(2)按網(wǎng)絡(luò)中是否有故障節(jié)點(diǎn)分為:故障網(wǎng)絡(luò)、正常網(wǎng)絡(luò)。試驗(yàn)中將故障節(jié)點(diǎn)數(shù)量設(shè)為1~5個(gè),。對于100個(gè)節(jié)點(diǎn)的拓?fù)?,含?~5個(gè)故障節(jié)點(diǎn),則分別有100,、4 950,、161 700、3 921 225,、75 287 520個(gè)故障節(jié)點(diǎn)的位置組合,,顯然,故障節(jié)點(diǎn)的分布情況很多,,由于試驗(yàn)條件限制,,試驗(yàn)中將故障節(jié)點(diǎn)組合的上限設(shè)為5 000個(gè),因此,,每個(gè)流量擁塞等級的總場景數(shù)量為20 050,,3個(gè)擁塞等級則共有60 150個(gè)故障場景,每個(gè)場景傳感器共隨機(jī)產(chǎn)生2 000個(gè)數(shù)據(jù)包,。
將本算法與其他兩個(gè)廣泛應(yīng)用的性能評價(jià)算法比較:邊緣故障檢測(MFD),、歷史故障檢測(HFD)。MFD利用每個(gè)節(jié)點(diǎn)的正常數(shù)據(jù),,對其訓(xùn)練并獲得測試數(shù)據(jù)的閾值,,當(dāng)擁塞導(dǎo)致傳輸時(shí)間變化時(shí),選擇最小值作為閾值,。若較多的新數(shù)據(jù)高于閾值,,則將該傳輸路徑分類為故障路徑,將對應(yīng)的源節(jié)點(diǎn)記為可疑節(jié)點(diǎn),。
MFD使用所有正常數(shù)據(jù)訓(xùn)練獲得其閾值,,而HFD與本算法則使用60%左右的故障數(shù)據(jù)訓(xùn)練,剩下40%故障數(shù)據(jù)用于方法驗(yàn)證,。在相同的流量擁塞等級下,,HFD為每個(gè)源節(jié)點(diǎn)記錄正常與故障兩個(gè)場景的傳輸時(shí)間,若在其正常場景與故障場景中發(fā)現(xiàn)相同的傳輸時(shí)間,,則將該網(wǎng)絡(luò)與源節(jié)點(diǎn)分別分類為故障網(wǎng)絡(luò)與可疑節(jié)點(diǎn),。圖3所示為正常傳輸時(shí)間與故障傳輸時(shí)間下指數(shù)分布MLE獲得的概率密度函數(shù)。圖3(a)中,,比較了單個(gè)節(jié)點(diǎn)的故障場景與正常場景的PDF,,圖3(b)對整個(gè)網(wǎng)絡(luò)的全部故障場景與正常場景的PDF進(jìn)行了比較,可看出故障場景下,,長傳輸時(shí)間的概率高于正常場景,。
3.2 場景檢測率
本文為三個(gè)不同流量條件共產(chǎn)生6 015個(gè)場景,。場景檢測率表示本算法檢測的可疑節(jié)點(diǎn)與理論故障節(jié)點(diǎn)匹配的數(shù)量與總場景數(shù)量的比例。圖4所示為不同流量條件下,,MFD,、HFD與本算法三種方法的場景檢測率。在擁塞情況下,,本算法的場景檢測率最高,,而其他兩種算法在輕度與重度兩種擁塞下性能不佳,因?yàn)楣收系膱鼍氨姸?,MFD與HFD從其數(shù)據(jù)庫中無法獲得足夠的信息來判斷傳輸時(shí)間較長的原因(因?yàn)閾砣蚴且驗(yàn)榫W(wǎng)絡(luò)故障),。對于故障場景,輕度擁塞的一個(gè)故障節(jié)點(diǎn)情況下,,本算法的檢測性能不佳,,原因在于:一個(gè)故障節(jié)點(diǎn)時(shí),故障場景有限,,此時(shí),,樸素貝葉斯分類器的訓(xùn)練數(shù)據(jù)不足,導(dǎo)致條件概率訓(xùn)練不夠準(zhǔn)確,。而對于故障場景的其他情況,,本算法的檢測率均高于60%,原因在于:其他情況下,,利用較多的故障數(shù)據(jù)建立了條件概率,,因此獲得了較高的樸素貝葉斯分類正確率。
4 結(jié)論
本文通過貝葉斯分類器與最大似然估計(jì)實(shí)現(xiàn)了有效的傳感器網(wǎng)絡(luò)故障檢測,,在保持與傳統(tǒng)算法虛警率接近的條件下,,大幅度提高了故障檢測的場景檢測率,。此技術(shù)在隨鉆數(shù)據(jù)測量與風(fēng)險(xiǎn)監(jiān)測方面具有廣泛應(yīng)用和前景,。
參考文獻(xiàn)
[1] 馬峻巖,周興社,,李士寧,,等.基于異常任務(wù)運(yùn)行記錄的WSN故障檢測[J].計(jì)算機(jī)工程,2012,,38(1):93-95.
[2] 李洪兵,,熊慶宇,石為人,,等.無線傳感器網(wǎng)絡(luò)中網(wǎng)絡(luò)層故障容錯(cuò)技術(shù)研究進(jìn)展[J].計(jì)算機(jī)應(yīng)用研究,,2013,30(7):1921-1928.
[3] 謝迎新,,陳祥光,,余向明,,等.基于VPRS和RBF神經(jīng)網(wǎng)絡(luò)的WSN節(jié)點(diǎn)故障診斷[J].北京理工大學(xué)學(xué)報(bào),2010,,30(7):807-811.
[4] 李文璟,,袁野,喻鵬,,等.基于改進(jìn)Kruskal算法的WSN故障節(jié)點(diǎn)檢測方法[J].北京郵電大學(xué)學(xué)報(bào),,2014,37(4):103-107.
[5] LEE M H,,CHOI Y H.Fault detection of wireless sensor networks[J].Computer Communications,,2008,31(14):3469-3475.
[6] YOUN E,,JEONG M K.Class dependent feature scaling method using Naive Bayes classifier for text datamining[J].Pattern Recognition Letters,,2009,30(5):477-485.