張 鵬,李 志,邸希元
(哈爾濱理工大學(xué) 自動(dòng)化學(xué)院,哈爾濱 150080)
近年來(lái),無(wú)線傳感器網(wǎng)絡(luò)(WSN,wireless sensor networks)作為一種數(shù)據(jù)采集與數(shù)據(jù)處理的技術(shù)被廣泛應(yīng)用[1]。WSN應(yīng)用在各種復(fù)雜或者不方便工作人員進(jìn)入的環(huán)境中,如核輻射環(huán)境中的安全監(jiān)測(cè)系統(tǒng)、大規(guī)模農(nóng)業(yè)應(yīng)用、森林火災(zāi)預(yù)警系統(tǒng)等。由于工作環(huán)境的復(fù)雜性以及網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的動(dòng)態(tài)變化,在工作過(guò)程中受到外界的干擾也更嚴(yán)重,而且WSN中的傳感器節(jié)點(diǎn)會(huì)受到自身體積、功耗、成本以及有限能量的限制,容易出現(xiàn)故障,并且單個(gè)節(jié)點(diǎn)的故障可能會(huì)給整個(gè)網(wǎng)絡(luò)性能帶來(lái)影響[2]。
在WSN中節(jié)點(diǎn)發(fā)生的故障大致分為兩種:第一種是硬故障,由于長(zhǎng)時(shí)間的工作導(dǎo)致節(jié)點(diǎn)硬件部分出現(xiàn)故障或者硬件出廠時(shí)本就存在缺陷,導(dǎo)致采集到的數(shù)據(jù)屬性部分丟失或者無(wú)數(shù)據(jù);第二種是軟故障,包括瞬時(shí)故障和永久軟故障,產(chǎn)生原因是節(jié)點(diǎn)本身能量不足或外界環(huán)境干擾,導(dǎo)致監(jiān)測(cè)數(shù)據(jù)與正常數(shù)據(jù)存在偏差,也就是數(shù)據(jù)失真。不精確的感知數(shù)據(jù)會(huì)影響整個(gè)網(wǎng)絡(luò)的監(jiān)測(cè)結(jié)果,如果監(jiān)測(cè)信息不可靠,就無(wú)法得知監(jiān)測(cè)對(duì)象的狀態(tài),對(duì)相關(guān)研究工作產(chǎn)生影響[3-4]。
當(dāng)網(wǎng)絡(luò)中的節(jié)點(diǎn)出現(xiàn)故障時(shí)需要對(duì)節(jié)點(diǎn)進(jìn)行修復(fù)才能使節(jié)點(diǎn)恢復(fù)正常工作,所以準(zhǔn)確快速的發(fā)現(xiàn)節(jié)點(diǎn)的故障并確定故障類(lèi)型對(duì)保持WSN的正常工作非常重要。因此本文提出一種深度森林算法對(duì)WSN故障分類(lèi)問(wèn)題進(jìn)行研究,并對(duì)深度森林算法進(jìn)行優(yōu)化以解決隨著級(jí)聯(lián)層數(shù)的加深,該算法每一層的輸入維數(shù)都會(huì)不斷增加,形成“維數(shù)災(zāi)難”的問(wèn)題,提高深度森林模型的分類(lèi)準(zhǔn)確率[5-6]。
深度森林是基于森林的集成學(xué)習(xí)方法[7]。受到深度學(xué)習(xí)理論和DNNs的啟發(fā),該算法的輸入是多維特征向量,特征向量將由其兩個(gè)主要組成部分進(jìn)行處理,分別是多粒度掃描和級(jí)聯(lián)森林,多粒度掃描通過(guò)處理數(shù)據(jù)之間的關(guān)系來(lái)增強(qiáng)數(shù)據(jù)表示的能力,級(jí)聯(lián)森林用于分類(lèi)或預(yù)測(cè)。
多粒度掃描是深度森林中處理數(shù)據(jù)特征關(guān)系的結(jié)構(gòu),最重要的部分是滑動(dòng)窗口[8]。滑動(dòng)窗口用于掃描原始特征并挖掘序列數(shù)據(jù)的順序關(guān)系,在多粒度掃描中,滑動(dòng)窗口的每一步都會(huì)產(chǎn)生一個(gè)包含該滑動(dòng)窗口中所有元素的特征子映射,并將被用于下一步的訓(xùn)練,如圖1所示。
圖1 多粒度掃描結(jié)構(gòu)圖
假設(shè)我們的數(shù)據(jù)有D個(gè)特征,滑動(dòng)窗口大小為K(根據(jù)經(jīng)驗(yàn)選取可能為D/4,D/8,D/16等),每次滑動(dòng)的步長(zhǎng)為S(一般為1),滑動(dòng)窗口采樣結(jié)束共可得到K維特征子樣本向量的個(gè)數(shù)P為:
P=(D-K)/S+1
(1)
接下來(lái)將上一步得到的每個(gè)子樣本都作為兩個(gè)隨機(jī)森林的輸入(包括一個(gè)普通隨機(jī)森林和一個(gè)完全隨機(jī)森林),每個(gè)森林都會(huì)輸出一個(gè)長(zhǎng)度為C的類(lèi)向量,最后將兩個(gè)森林生成的類(lèi)向量進(jìn)行拼接得到了本層輸出為:
M=2×((D-K)/S+1)×C
(2)
為了提高特征的有效性,使用級(jí)聯(lián)森林對(duì)多粒度掃描得出的向量進(jìn)行處理最終得到結(jié)果[9]。級(jí)聯(lián)森林由許多層森林組成,每一層森林都包括不同種類(lèi)的隨機(jī)森林(普通隨機(jī)森林和完全隨機(jī)森林),被用于逐層處理數(shù)據(jù)特征。級(jí)聯(lián)森林的整體多層結(jié)構(gòu)如圖2所示。
圖2 級(jí)聯(lián)森林結(jié)構(gòu)圖
在級(jí)聯(lián)森林中,第一層森林將多粒度掃描的輸出作為輸入,之后的每一層輸入都是由前一層處理后得到的特征向量和原始輸入(即第一層的輸入)結(jié)合構(gòu)成。級(jí)聯(lián)森林中得每一層都會(huì)產(chǎn)生一個(gè)類(lèi)向量作為其輸出。在級(jí)聯(lián)森林中每顆子樹(shù)預(yù)測(cè)樣本x屬于c類(lèi)的概率可以表示為:
(3)
式中,t∈T,T是級(jí)聯(lián)森林中每一層的決策樹(shù)數(shù)量。
每個(gè)森林根據(jù)公式(4)得到樣本x的類(lèi)向量:
(4)
式中,m∈M,M是級(jí)聯(lián)森林中每一層的森林?jǐn)?shù)量。
根據(jù)公式(5)得到該層森林中所有森林的輸出:
(5)
式中,z∈Z,Z是級(jí)聯(lián)森林中級(jí)別的數(shù)量。根據(jù)公式(6)得到樣本x在該層森林的預(yù)測(cè):
y(x)=max(ave(VZ(x)))
(6)
式中,max代表最大值;ave代表平均值。
產(chǎn)生的類(lèi)向量將與多粒度掃描輸出的結(jié)果也就是原始特征向量拼接,作為下一層的輸入,表示為:
xZ←(x,VZ-1(x))
(7)
這個(gè)過(guò)程一直持續(xù)到達(dá)到終止條件,終止條件可以是達(dá)到預(yù)期精度或達(dá)到最大層數(shù)。在每次擴(kuò)展一個(gè)新的級(jí)別時(shí),使用測(cè)試集來(lái)驗(yàn)證整個(gè)級(jí)聯(lián)森林的性能,如果精度沒(méi)有顯著增加,則訓(xùn)練將終止。這時(shí)會(huì)得到最終的類(lèi)向量,計(jì)算各種可能性的平均值,并選擇值最大的類(lèi)別作為最終的分類(lèi)結(jié)果。由于這一特性,級(jí)聯(lián)中的級(jí)數(shù)是自適應(yīng)的,不同于許多深層神經(jīng)網(wǎng)絡(luò)復(fù)雜而固定的模型結(jié)構(gòu),因此在不同規(guī)模的數(shù)據(jù)集下都能被廣泛應(yīng)用[10]。
根據(jù)對(duì)深度森林原理的分析和式(4)以及式(5)可以得知,深度森林的每一級(jí)的輸入向量是通過(guò)將森林的前一級(jí)的類(lèi)分布輸出的估計(jì)向量和初始特征向量連接起來(lái)而形成的。隨著森林層次的增加,特征向量攜帶的文本信息會(huì)不斷退化,導(dǎo)致分類(lèi)結(jié)果不穩(wěn)定。文獻(xiàn)[11]提出通過(guò)將每一層的輸入向量變?yōu)橹八袑虞敵鲱?lèi)的分布向量來(lái)拼接初始特征向量來(lái)解決,但是,隨著級(jí)聯(lián)層數(shù)的加深,改進(jìn)后的方法每一層的輸入維數(shù)都會(huì)不斷增加,形成“維數(shù)災(zāi)難”。
因此,本文提出了一種改進(jìn)的深度森林方法IGcForest,并將其應(yīng)用在WSN的故障分類(lèi)中。降低了每一層輸入向量特征的維數(shù),同時(shí)保持各級(jí)森林之間的連通性,即:
1)將級(jí)聯(lián)森林中每一層森林包含的兩類(lèi)森林輸出的類(lèi)向量分別求平均值得到減半的輸出向量,降低了每一級(jí)輸入向量特征的維數(shù)。
2)在級(jí)聯(lián)森林中的每一層向下輸出之前都先縫合之前每一層森林輸出的平均值,充分利用每一級(jí)森林的輸出結(jié)果。
改進(jìn)后的深度森林分類(lèi)過(guò)程如圖3所示,其中Ave代表求均值:
圖3 深度森林算法流程
改進(jìn)后的深度森林分類(lèi)的步驟如下:
1)將原始數(shù)據(jù)轉(zhuǎn)換為特征向量。
2)使用多粒度掃描對(duì)特征向量進(jìn)行處理。通過(guò)滑動(dòng)窗口得到所有特征子映射,這些子樣本都通過(guò)完全隨機(jī)森林與普通隨機(jī)森林輸出為類(lèi)向量,將所有類(lèi)向量拼接。
3)使用級(jí)聯(lián)森林對(duì)上一步輸出的類(lèi)向量進(jìn)行處理。每一層森林也包括若干普通隨機(jī)森林和完全隨機(jī)森林,在級(jí)聯(lián)的過(guò)程中每一層森林都根據(jù)之前森林的輸出結(jié)果繼續(xù)訓(xùn)練,將本層的結(jié)果繼續(xù)向下傳遞,直到滿(mǎn)足終止條件輸出最后的分類(lèi)結(jié)果。
改進(jìn)后的方法綜合考慮了前一級(jí)森林分類(lèi)結(jié)果的影響,既降低了每一級(jí)輸入特征的維數(shù),又保留了每一級(jí)分類(lèi)結(jié)果和初始特征向量的特征信息,接下來(lái)通過(guò)實(shí)驗(yàn)驗(yàn)證該改進(jìn)的算法是否有效。
在Ubuntu16.04下使用Ns-3.28對(duì)WSN進(jìn)行仿真模擬收集了20個(gè)節(jié)點(diǎn)工作三天的數(shù)據(jù),每個(gè)普通傳感器節(jié)點(diǎn)間隔5分鐘采集并發(fā)送一次數(shù)據(jù),合計(jì)15 552條數(shù)據(jù),設(shè)置傳感器節(jié)點(diǎn)收集的數(shù)據(jù)屬性包括溫度、濕度以及自身電量等。仿真結(jié)束后生成.xml文件和.pacp文件,通過(guò)Netanim-3.108可以得到每個(gè)傳感器節(jié)點(diǎn)在運(yùn)行過(guò)程中的地理位置變化、電量變化以及發(fā)送數(shù)據(jù)記錄等,通過(guò)Wireshark查看最終發(fā)送到0號(hào)和1號(hào)的數(shù)據(jù)包的具體內(nèi)容,從中取出收集的數(shù)據(jù)包含溫度、濕度,如圖4~5所示。
圖4 傳感器節(jié)點(diǎn)數(shù)據(jù)圖
圖5 傳感器節(jié)點(diǎn)發(fā)送數(shù)據(jù)圖
接下來(lái)將兩部分?jǐn)?shù)據(jù)進(jìn)行合并得到了研究用的數(shù)據(jù)集,包括節(jié)點(diǎn)序號(hào)、節(jié)點(diǎn)地理位置、節(jié)點(diǎn)采集數(shù)據(jù)(時(shí)間、溫度、濕度)、節(jié)點(diǎn)電量共7類(lèi)屬性。從中截取了一部分?jǐn)?shù)據(jù)如表1所示。
表1 傳感器節(jié)點(diǎn)部分監(jiān)測(cè)數(shù)據(jù)
我們將普通傳感器節(jié)點(diǎn)可能產(chǎn)生的故障進(jìn)行分類(lèi),主要包括電源模塊、通信模塊、傳感器模塊三部分的故障:
1)當(dāng)電源模塊出現(xiàn)了問(wèn)題,便不再能保證硬件設(shè)備的正常工作,如果是低電量會(huì)導(dǎo)致收集的監(jiān)測(cè)數(shù)據(jù)與真實(shí)數(shù)據(jù)存在偏差,如果是電源損壞會(huì)導(dǎo)致收集不到該序號(hào)傳感器節(jié)點(diǎn)的監(jiān)測(cè)數(shù)據(jù)。
2)當(dāng)通信模塊出現(xiàn)了問(wèn)題,會(huì)導(dǎo)致監(jiān)測(cè)數(shù)據(jù)未按照設(shè)定的頻率進(jìn)行發(fā)送或接收,可能幾個(gè)周期內(nèi)只有一次數(shù)據(jù)成功傳輸,可以表示為:
(8)
式中,da代表源節(jié)點(diǎn)/目的節(jié)點(diǎn)在單個(gè)采樣周期下正常的發(fā)送/接收數(shù)據(jù)量;db代表目的節(jié)點(diǎn)/源節(jié)點(diǎn)在單個(gè)采樣周期下實(shí)際的發(fā)送/接收數(shù)據(jù)量;D代表節(jié)點(diǎn)在采樣周期i到j(luò)內(nèi)da與db的比值,如果大于1證明存在通信問(wèn)題。
3)當(dāng)傳感器模塊出現(xiàn)了問(wèn)題,會(huì)導(dǎo)致采集的數(shù)據(jù)不準(zhǔn)確或丟失,將其分為硬故障和軟故障,并轉(zhuǎn)換為數(shù)學(xué)模型。
將WSN中節(jié)點(diǎn)收集的數(shù)據(jù)表示為:
f(t)′=x+η
(9)
式中,f(t)表示節(jié)點(diǎn)在時(shí)間t處的感測(cè)值;η是即使在理想狀態(tài)下也會(huì)存在的噪聲;x為傳感器的正常讀數(shù)。
將包含故障的廣義模型表示為:
f(t)′=α+βχ+η
(10)
式中,α表示偏移值;β表示增益值。
硬故障意味著傳感器無(wú)法收集數(shù)據(jù),例如損壞故障,影響了節(jié)點(diǎn)正常工作。該故障可以表示為:
f(t)′=φ,t>τ
(11)
式中,τ是發(fā)生硬故障的時(shí)間,φ為一個(gè)零集。
軟故障是指?jìng)鞲衅鞴?jié)點(diǎn)的數(shù)據(jù)采集和通訊功能可以正常運(yùn)行,但監(jiān)測(cè)數(shù)據(jù)與真實(shí)值之間存在一定誤差,軟故障又可以分為:偏移故障、恒偏差故障、停滯故障、漂移故障等,可能是瞬時(shí)故障,也可能是永久軟故障,都影響了數(shù)據(jù)準(zhǔn)確性。傳感器模塊軟故障特征圖如圖6所示。
圖6 傳感器模塊軟故障特征圖
1)偏移故障:此故障主要是由于外界環(huán)境干擾導(dǎo)致的感測(cè)數(shù)據(jù)在真實(shí)數(shù)據(jù)附近波動(dòng),該故障可以表示為:
|f(t)′-f(t)|>λ
(12)
式中,λ表示感測(cè)數(shù)據(jù)的正常變化范圍最大值。
2)恒偏差故障:感測(cè)數(shù)據(jù)超出了正常范圍,這是由于傳感器單元的錯(cuò)誤校準(zhǔn)而將常數(shù)添加到預(yù)期數(shù)據(jù)導(dǎo)致的,該故障可以表示為:
f(t)′=a+x+η
(13)
3)停滯故障:感測(cè)數(shù)據(jù)在一定時(shí)間段內(nèi)變化為零,是由于攜帶的傳感器產(chǎn)生故障導(dǎo)致的,該故障可以表示為:
f(t)′=a
(14)
4)漂移故障:感測(cè)數(shù)據(jù)與實(shí)際數(shù)據(jù)存在偏差,并且隨著時(shí)間偏差增大,該故障可以表示為:
|f(t)′-f(t)|=random(a)×(t-t0)
(15)
式中,t0表示開(kāi)始出現(xiàn)故障的時(shí)間,增益為隨機(jī)數(shù)。
將WSN普通傳感器節(jié)點(diǎn)可能出現(xiàn)的故障分為電源低電量故障、電源損壞故障、通信故障、偏移故障、恒偏差故障、停滯故障以及漂移故障共7類(lèi)故障,根據(jù)數(shù)學(xué)模型將其添加至數(shù)據(jù)集中。以2號(hào)節(jié)點(diǎn)收集的溫度為例,故障數(shù)據(jù)結(jié)果如圖7所示。
圖7 正常樣本與故障樣本對(duì)比圖(溫度)
為了測(cè)試算法的改進(jìn)效果,將改進(jìn)后的算法與原始算法進(jìn)行比較,對(duì)數(shù)據(jù)進(jìn)行訓(xùn)練并測(cè)試。原始輸入的特征向量是7維,包括傳感器節(jié)點(diǎn)編號(hào)、坐標(biāo)以及收集的幾種數(shù)據(jù)等,從中取出連續(xù)時(shí)間內(nèi)的500條數(shù)據(jù)作為測(cè)試。算法中多粒度掃描的滑動(dòng)窗口大小分別設(shè)置為2、4、6,采樣距離為1,在多粒度掃描中使用隨機(jī)森林與完全隨機(jī)森林進(jìn)行訓(xùn)練,每個(gè)森林包含100棵決策樹(shù);級(jí)聯(lián)森林設(shè)置每一層包括4個(gè)森林,兩個(gè)隨機(jī)森林和兩個(gè)完全隨機(jī)森林,每個(gè)森林包含100棵決策樹(shù);如果兩次分類(lèi)精度沒(méi)有0.1%以上的提高就終止級(jí)聯(lián)森林的繼續(xù)擴(kuò)展。故障分類(lèi)結(jié)果如圖8所示。
圖8 故障分類(lèi)實(shí)驗(yàn)結(jié)果圖
可以看出本故障分類(lèi)模型對(duì)WSN的分類(lèi)比較準(zhǔn)確,準(zhǔn)確率達(dá)到了97.8%,接下來(lái)從數(shù)據(jù)集中抽取不同時(shí)間段的數(shù)據(jù)實(shí)驗(yàn)10次取平均值,將改進(jìn)過(guò)的算法(IGcForest)與原始算法(GcForest)進(jìn)行比較如表2所示。
表2 故障分類(lèi)性能
可以看出,在優(yōu)化過(guò)深度森林中的級(jí)聯(lián)森林部分之后,算法的分類(lèi)準(zhǔn)確性有了提高,算法的改進(jìn)有效。由于在實(shí)際應(yīng)用中可能存在訓(xùn)練量少的情況,測(cè)試了本故障診斷模型在不同訓(xùn)練集占比下的故障診斷能力,得到結(jié)果如圖9所示。
圖9 訓(xùn)練集占比不同情況下的結(jié)果圖
由圖9可知,本故障分類(lèi)模型對(duì)電源故障、損壞故障、停止故障、恒偏差故障這幾類(lèi)故障在訓(xùn)練集占比低時(shí)依然能保持準(zhǔn)確分類(lèi),在通信故障方面,隨著訓(xùn)練集占比的降低分類(lèi)準(zhǔn)確率有一些下降,在電源故障和漂移故障兩種故障中也有影響,這是由于在最開(kāi)始出現(xiàn)故障時(shí)的表現(xiàn)不明顯,綜合多種故障的檢測(cè)結(jié)果,可以看出IGcForest算法在WSN故障分類(lèi)問(wèn)題上的平均結(jié)果在90%以上,因此適合于解決WSN故障分類(lèi)問(wèn)題。
完整的故障診斷過(guò)程包括故障的檢測(cè)和故障的分類(lèi),在WSN的故障檢測(cè)方法中隨機(jī)森林算法可以準(zhǔn)確的檢測(cè)出發(fā)生故障的節(jié)點(diǎn)[12-13]。在已完成的工作中我們對(duì)隨機(jī)森林的投票方式進(jìn)行改進(jìn),減少分類(lèi)能力差的決策樹(shù)對(duì)整個(gè)模型輸出結(jié)果的影響,并通過(guò)烏鴉搜索算法對(duì)參數(shù)進(jìn)行調(diào)優(yōu)。再結(jié)合本文提出的改進(jìn)后的深度森林算法提出一種基于隨機(jī)森林與深度森林的故障診斷模型。本W(wǎng)SN故障診斷模型包括故障檢測(cè)與故障分類(lèi)兩部分,故障診斷流程如圖10所示。
圖10 WSN故障診斷流程圖
本W(wǎng)SN故障診斷模型主要包括以下步驟。
1)模型訓(xùn)練:
由于匯聚節(jié)點(diǎn)具有較強(qiáng)的計(jì)算能力,可以使用復(fù)雜的檢測(cè)結(jié)構(gòu),第一步是訓(xùn)練匯聚節(jié)點(diǎn)處的隨機(jī)森林分類(lèi)器,對(duì)普通傳感器節(jié)點(diǎn)傳來(lái)的數(shù)據(jù)進(jìn)行初步分析,如果檢測(cè)到異常數(shù)據(jù)就對(duì)數(shù)據(jù)進(jìn)行標(biāo)記上傳到基站。第二步是基站對(duì)數(shù)據(jù)進(jìn)行分析,基站可以進(jìn)行高強(qiáng)度的計(jì)算和數(shù)據(jù)的存儲(chǔ),采用深度森林對(duì)故障數(shù)據(jù)進(jìn)行分類(lèi),如果檢測(cè)結(jié)果達(dá)不到預(yù)期則通過(guò)調(diào)整參數(shù)來(lái)適當(dāng)提高。
2)模型測(cè)試:
在故障診斷模型建立完成之后,使用第三章得到的數(shù)據(jù)集來(lái)進(jìn)行測(cè)試,如果滿(mǎn)足需求則不在進(jìn)行訓(xùn)練,結(jié)束過(guò)程,否則繼續(xù)訓(xùn)練過(guò)程直到滿(mǎn)足要求。
為了充分利用匯聚節(jié)點(diǎn)有一定的計(jì)算能力的優(yōu)點(diǎn),在匯聚節(jié)點(diǎn)處應(yīng)用改進(jìn)的隨機(jī)森林模型[16-18],在基站應(yīng)用改進(jìn)的深度森林模型,使用分層式的方法提高模型的分類(lèi)準(zhǔn)確度[19-20]。本故障診斷模型對(duì)WSN的故障分類(lèi)性能如圖11所示。
圖11 故障診斷模型實(shí)驗(yàn)結(jié)果圖
可以看出在對(duì)WSN的故障診斷中本故障診斷模型的準(zhǔn)確度為98.6%,相比于單獨(dú)的故障分類(lèi)本模型得到的準(zhǔn)確度更高,能夠有效地區(qū)分所發(fā)生故障的故障類(lèi)型。
由于在WSN的實(shí)際應(yīng)用中可能沒(méi)有足夠的時(shí)間進(jìn)行數(shù)據(jù)的累積,存在訓(xùn)練量少的情況,因此測(cè)試了本故障診斷模型在不同訓(xùn)練集占比下的故障診斷能力,如圖12所示。
圖12 故障診斷模型結(jié)果圖
可以看出,本章提出的WSN故障診斷模型對(duì)WSN可能出現(xiàn)的故障分類(lèi)精度都在96%以上,綜合平均精度在98.4%。相比于直接對(duì)故障數(shù)據(jù)進(jìn)行分類(lèi)本方法在準(zhǔn)確率上有較大提升。
將本算法與在WSN故障診斷效果較好的DNN和SVM算法進(jìn)行對(duì)比,在DNN算法的實(shí)驗(yàn)中,建立的DNN模型由輸入層、輸出層和一層隱藏層組成,其中輸入層有8個(gè)節(jié)點(diǎn),分別是傳感器節(jié)點(diǎn)編號(hào)、數(shù)據(jù)采集時(shí)間、傳感器節(jié)點(diǎn)二維平面下的地理位置(x、y)、傳感器節(jié)點(diǎn)采集的數(shù)據(jù)(溫度、濕度、光照強(qiáng)度以及自身剩余電量)。輸出層有7個(gè)節(jié)點(diǎn),分別代表了傳感器節(jié)點(diǎn)可能產(chǎn)生的故障類(lèi)型。在訓(xùn)練中損失函數(shù)選擇categorical_crossentropy,優(yōu)化器選擇RMSprop,將dropout應(yīng)用于輸入來(lái)防止過(guò)擬合的產(chǎn)生,最終將隱藏層神經(jīng)元數(shù)量設(shè)置為128得到了最佳的故障診斷結(jié)果。
在SVM算法的實(shí)驗(yàn)中,輸入與輸出和DNN的輸入輸出相同,在核函數(shù)的選擇中從線性核函數(shù)、多項(xiàng)式核函數(shù)以及徑向基核函數(shù)中分別進(jìn)行訓(xùn)練,最終選擇徑向基函數(shù),在懲罰系數(shù)設(shè)定為0.1,核函數(shù)系數(shù)設(shè)定為1時(shí)故障診斷效果最佳。算法分類(lèi)精度對(duì)比如圖13所示。
圖13 算法分類(lèi)精度對(duì)比圖
由圖13可知,本章提出的WSN故障診斷模型可以準(zhǔn)確判斷大多數(shù)故障,在對(duì)故障分類(lèi)時(shí)也可以準(zhǔn)確的識(shí)別出不同的故障類(lèi)型,在損壞故障和電源故障的識(shí)別達(dá)到了最高精度,對(duì)偏移故障、漂移故障和通信故障的識(shí)別略低于CNN算法,但綜合訓(xùn)練時(shí)間、參數(shù)調(diào)節(jié)來(lái)看,本故障診斷模型更適用于WSN故障診斷。
本文對(duì)無(wú)線傳感器網(wǎng)絡(luò)故障分類(lèi)算法進(jìn)行了研究,首先提出了一種改進(jìn)的深度森林算法,解決了隨著級(jí)聯(lián)層數(shù)的加深,每一層的輸入維數(shù)都會(huì)不斷增加,形成“維數(shù)災(zāi)難”的問(wèn)題。再使用改進(jìn)的隨機(jī)森林算法實(shí)現(xiàn)對(duì)故障節(jié)點(diǎn)的檢測(cè),提出了一種分層式的故障診斷方法。通過(guò)實(shí)驗(yàn)證明了本故障診斷方法診斷準(zhǔn)確率相比于單獨(dú)的深度森林方法有了提升,達(dá)到了預(yù)期的效果。在WSN故障診斷的研究上,除了提升算法的檢測(cè)與分類(lèi)的準(zhǔn)確度以外,還需要提高檢測(cè)速度以及減少能耗,這也是未來(lái)在WSN故障診斷的研究中需要著重研究的方向。