邱 勁,吳宏杰
(蘇州科技大學(xué)電子與信息工程學(xué)院,江蘇 蘇州215009)
當(dāng)今無(wú)線通信網(wǎng)絡(luò)快速發(fā)展,特別是無(wú)線傳感器具有環(huán)境感知、無(wú)線傳輸和數(shù)據(jù)處理等諸多優(yōu)勢(shì)已廣泛應(yīng)用在工業(yè)、農(nóng)業(yè)等多個(gè)領(lǐng)域[1]。一般情況下,該網(wǎng)絡(luò)主要由兩個(gè)節(jié)點(diǎn)所構(gòu)成,分別是匯聚、傳感器兩個(gè)節(jié)點(diǎn),工作模式就是由傳感器節(jié)點(diǎn)來(lái)進(jìn)行數(shù)據(jù)的采集,最后用匯聚節(jié)點(diǎn)整合經(jīng)過(guò)采集所得到的所有數(shù)據(jù),再把整合好的數(shù)據(jù)傳到數(shù)據(jù)中心。因?yàn)闊o(wú)線傳感器網(wǎng)絡(luò)復(fù)雜性較高,且數(shù)據(jù)呈現(xiàn)海量化,無(wú)法實(shí)時(shí)監(jiān)控該網(wǎng)絡(luò),導(dǎo)致該網(wǎng)絡(luò)被攻擊的概率上升[2],尤其是對(duì)節(jié)點(diǎn)或是拓?fù)溥M(jìn)行攻擊后,會(huì)導(dǎo)致級(jí)聯(lián)故障的出現(xiàn),從而有可能會(huì)導(dǎo)致網(wǎng)絡(luò)癱瘓[3]。無(wú)線傳感器網(wǎng)絡(luò)級(jí)聯(lián)故障是指當(dāng)某一節(jié)點(diǎn)超過(guò)負(fù)載時(shí),其負(fù)載會(huì)根據(jù)相關(guān)資源分配規(guī)則由該節(jié)點(diǎn)轉(zhuǎn)移至其它節(jié)點(diǎn),而當(dāng)資源負(fù)載超過(guò)其它節(jié)點(diǎn)負(fù)載時(shí),會(huì)導(dǎo)致新一輪的負(fù)載轉(zhuǎn)移從而導(dǎo)致節(jié)點(diǎn)故障,一旦受到攻擊,會(huì)導(dǎo)致整個(gè)網(wǎng)絡(luò)嚴(yán)重受損,因此對(duì)無(wú)線傳感網(wǎng)絡(luò)級(jí)聯(lián)故障識(shí)別新方法的研究就顯得十分重要[4]。
針對(duì)無(wú)線傳感網(wǎng)絡(luò)級(jí)聯(lián)故障識(shí)別方案研究,文獻(xiàn)[5]提出了一種基于節(jié)點(diǎn)和鏈路容量的無(wú)線傳感器網(wǎng)絡(luò)級(jí)聯(lián)故障識(shí)別方法。該方法主要獲取無(wú)線傳感器網(wǎng)絡(luò)流量數(shù)據(jù),以此獲取網(wǎng)絡(luò)負(fù)載分析結(jié)果。在此基礎(chǔ)上構(gòu)建網(wǎng)絡(luò)級(jí)聯(lián)抗毀性模型并對(duì)故障節(jié)點(diǎn)進(jìn)行了識(shí)別,當(dāng)識(shí)別到的節(jié)點(diǎn)數(shù)量達(dá)到閾值的情況下得到無(wú)線傳感器網(wǎng)絡(luò)級(jí)聯(lián)故障識(shí)別結(jié)果。但是該方法存在無(wú)線傳感器網(wǎng)絡(luò)級(jí)聯(lián)故障識(shí)別正確率較低的問(wèn)題,實(shí)際應(yīng)用效果較差。文獻(xiàn)[6]提出了一種基于蟻群算法和BP神經(jīng)網(wǎng)絡(luò)模型的無(wú)線傳感器網(wǎng)絡(luò)級(jí)聯(lián)故障識(shí)別方法。首先,利用蟻群算法通過(guò)節(jié)點(diǎn)位置尋優(yōu)實(shí)現(xiàn)無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)定位,采用隨機(jī)搜索算法對(duì)節(jié)點(diǎn)性質(zhì)進(jìn)行判斷,以此區(qū)分故障節(jié)點(diǎn)與正常節(jié)點(diǎn),構(gòu)建BP神經(jīng)網(wǎng)絡(luò)模型并對(duì)其進(jìn)行訓(xùn)練,利用訓(xùn)練好是模型識(shí)別無(wú)線傳感器網(wǎng)絡(luò)級(jí)聯(lián)故障,但是該方法過(guò)于繁復(fù),導(dǎo)致識(shí)別時(shí)間消耗上升。文獻(xiàn)[7]提出基于改進(jìn)蛙跳算法的無(wú)線傳感器網(wǎng)絡(luò)級(jí)聯(lián)故障識(shí)別方法。分析了線傳感器網(wǎng)絡(luò)級(jí)聯(lián)結(jié)構(gòu)以及故障分類體系,利用蛙跳算法改進(jìn)了BP小波神經(jīng)網(wǎng)絡(luò),將無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)據(jù)輸入至該網(wǎng)絡(luò)中,BP小波神經(jīng)網(wǎng)絡(luò)輸出即為無(wú)線傳感器網(wǎng)絡(luò)級(jí)聯(lián)故障識(shí)別結(jié)果。但是該方法存在無(wú)線傳感器網(wǎng)絡(luò)級(jí)聯(lián)故障識(shí)別正確率較低,與理想的應(yīng)用效果相差甚遠(yuǎn)。
因此針對(duì)上述問(wèn)題,本文給出了一種基于多任務(wù)深度學(xué)習(xí)的無(wú)線傳感器網(wǎng)絡(luò)級(jí)聯(lián)故障識(shí)別新方法,它整體設(shè)計(jì)方案如下:
首先先算出無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)負(fù)載并采用重分發(fā)策略調(diào)整它。根據(jù)節(jié)點(diǎn)負(fù)載調(diào)整結(jié)果,利用指數(shù)型關(guān)系函數(shù)優(yōu)化的流量調(diào)整方法使調(diào)整參數(shù)達(dá)到最優(yōu)情況下構(gòu)建無(wú)線傳感器網(wǎng)絡(luò)負(fù)載模型。
其次,建立多任務(wù)深度學(xué)習(xí)新模型并采用聯(lián)合訓(xùn)練方式對(duì)模型進(jìn)行訓(xùn)練,利用批歸一化方法優(yōu)化該模型并將無(wú)線傳感器網(wǎng)絡(luò)負(fù)載數(shù)據(jù)輸入到優(yōu)化后的模型中,實(shí)現(xiàn)級(jí)聯(lián)故障識(shí)別。
最后,將識(shí)別正確率以及識(shí)別時(shí)間消耗作為評(píng)價(jià)指標(biāo),對(duì)于該方法的實(shí)際應(yīng)用效果進(jìn)行了驗(yàn)證。
設(shè)無(wú)線傳感器網(wǎng)絡(luò)負(fù)載為G(V;E),網(wǎng)絡(luò)中的各個(gè)元素即為節(jié)點(diǎn),且每個(gè)節(jié)點(diǎn)間所存在的關(guān)系為邊。G(V;E)中的V、E分別表示邊與頂點(diǎn)的集合。任意時(shí)刻每個(gè)節(jié)點(diǎn)對(duì)都可通過(guò)最短路徑完成流量交換與信息傳輸,當(dāng)m、n兩個(gè)節(jié)點(diǎn)間有多個(gè)最短路徑時(shí),會(huì)對(duì)流量進(jìn)行平均分配,使得每條最短路徑上所傳輸?shù)牧髁科降萚8]。
t時(shí)刻節(jié)點(diǎn)v的負(fù)載定義如下
(1)
節(jié)點(diǎn)容量Cv計(jì)算公式如下:
Cv=αLv(0),v=1,2,…,N
(2)
字母N表示初始網(wǎng)絡(luò)節(jié)點(diǎn)的數(shù)目,α表示的是容忍參數(shù),α≥1[10]。網(wǎng)絡(luò)節(jié)點(diǎn)有正常和故障兩種狀態(tài),當(dāng)正常節(jié)點(diǎn)不能及時(shí)完成處理自身負(fù)載,則它將轉(zhuǎn)為故障節(jié)點(diǎn)從而導(dǎo)致正常通信受到影響;節(jié)點(diǎn)可以正常運(yùn)傳輸信息是在Lv≤Cv的情況下[11]。當(dāng)發(fā)生故障節(jié)點(diǎn)狀態(tài)時(shí),為了保證業(yè)務(wù)與流量的正常運(yùn)行和傳輸,將遵照相應(yīng)次序把負(fù)載重新分配到別的節(jié)點(diǎn)上。執(zhí)行完該操作后節(jié)點(diǎn)y的負(fù)載被調(diào)整為:
Lj(t)=Lj(t-1)+ΔLij
(3)
一般負(fù)載的重分有局部與全局兩種負(fù)載重分發(fā)策略,是通過(guò)節(jié)點(diǎn)掌握信息的程度進(jìn)行劃分的。其中局部負(fù)載重分發(fā)策略指的是只掌握鄰居節(jié)點(diǎn)的信息,而全局負(fù)載重分發(fā)策略可以掌握全盤信息。此外通過(guò)鄰居節(jié)點(diǎn)的度可以故障節(jié)點(diǎn)負(fù)載分配到鄰居節(jié)點(diǎn)上,這也是局部負(fù)載重分發(fā)策略用的最多的手段,其最好的案例是交通網(wǎng)絡(luò)堵塞之后的分流機(jī)制[12]。在全局負(fù)載重分發(fā)策略中,若產(chǎn)生故障的是關(guān)鍵路由器,控制系統(tǒng)將會(huì)重新選擇路由,但不會(huì)局限于相鄰的路由器,將數(shù)據(jù)傳送到目標(biāo)地。針對(duì)上述,本文主要應(yīng)用全局負(fù)載重分發(fā)策略進(jìn)行負(fù)載的重新分配,具體如下:
(4)
lij表示i與j兩節(jié)間的距離,kj代表j的度,Ωi表示所有正常節(jié)點(diǎn)的集合。
要計(jì)算節(jié)點(diǎn)j在t時(shí)刻的負(fù)載,需要把式(4)進(jìn)行帶入,帶到式(3)中,如下所示
(5)
對(duì)于j節(jié)點(diǎn),假設(shè)Lj(t-1)+ΔLij>Cj,將會(huì)導(dǎo)致Lj(t-1)+ΔLij的負(fù)載被分配到其它節(jié)點(diǎn)另更多節(jié)點(diǎn)失效。由式(5)可知,與故障節(jié)點(diǎn)關(guān)系密切的節(jié)點(diǎn)則更受負(fù)載重分發(fā)策略青睞,從而會(huì)使這部分節(jié)點(diǎn)分到更多的負(fù)載[13]。
若網(wǎng)絡(luò)流量Ssd(t)的初始值是1,則隨著ρ、μ的增加而減小,在AR策略中最短路徑長(zhǎng)度的增減將導(dǎo)致網(wǎng)絡(luò)流量呈現(xiàn)指數(shù)衰減,并且在生活屮也能找到佐證。故流量調(diào)整策略優(yōu)化后,也會(huì)用指數(shù)型關(guān)系函數(shù)進(jìn)行如下描述
(6)
式中,在t時(shí)刻i、j兩節(jié)點(diǎn)間的最短路徑長(zhǎng)度用dij表示,Δdij(t)=dij(t)-Δdij(t-1)指的是節(jié)點(diǎn)i與j之間最短路徑長(zhǎng)度增減值,Δdij(t) ≥0,其中在ML模型中,節(jié)點(diǎn)都是沿著最短路徑進(jìn)行敘述的,重選后的最短路徑長(zhǎng)度只有兩種情況,變長(zhǎng)或是不變[14]。i與j兩節(jié)點(diǎn)間的最短路徑數(shù)目在t時(shí)刻的變化分別由nij(t)、Δnij(t)=nij(t)-nij(t)-1表示,只有變少或者不變兩種最短路徑數(shù)目的變化,所以Δnij(t)≤0。在t時(shí)刻i、j兩節(jié)點(diǎn)間的流量大小用sij(t)表示,其中距離的調(diào)整系數(shù)與相對(duì)應(yīng)的數(shù)目調(diào)整系數(shù)分別由ρ與μ表示,分別依據(jù)i、j兩節(jié)點(diǎn)間的最短路徑長(zhǎng)度和數(shù)目變化來(lái)調(diào)整流量[15]。
如果將參數(shù)調(diào)整到最優(yōu)值,則FR策略效果將發(fā)揮得更好,相對(duì)剩余流量R如下所示
(7)
將網(wǎng)絡(luò)中傳送的流量定義為所有節(jié)點(diǎn)所承擔(dān)的負(fù)載[16,17],可以得到下式
(8)
無(wú)線傳感器網(wǎng)絡(luò)負(fù)載模型描述如下所示
(9)
本文研究?jī)?nèi)容為無(wú)線傳感器網(wǎng)絡(luò)級(jí)聯(lián)故障,級(jí)聯(lián)故障較為復(fù)雜,因此本文構(gòu)建了多任務(wù)深度學(xué)習(xí)模型并以此來(lái)提升識(shí)別正確率與效率如圖1所示。
圖1 多任務(wù)深度學(xué)習(xí)模型
圖1方框A代表通過(guò)兩個(gè)卷積層來(lái)提取任務(wù)1和2共享特征的共享層,方框B、C分別是識(shí)別無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)與級(jí)聯(lián)故障的任務(wù)1層與2層。各網(wǎng)絡(luò)層結(jié)構(gòu)參數(shù)如表1所示。
表1 多任務(wù)深度學(xué)習(xí)網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)
采用聯(lián)合訓(xùn)練的方式訓(xùn)練上述模型,用交叉熵?fù)p失函數(shù)來(lái)定義損失函數(shù)Loss1及損失函數(shù)Loss2,公式如下:
(10)
(11)
式中,其中p(x)代表目標(biāo)實(shí)際分布,q(x)代表模型預(yù)測(cè)分布。
本文采用加權(quán)平均方法對(duì)Loss1和Loss2進(jìn)行重組,如下(12)。
(12)
批歸一化(Batch Normalization,BN)是解決深度學(xué)習(xí)領(lǐng)域較好方法,它操作過(guò)程與標(biāo)準(zhǔn)化過(guò)程類似:即用所在層輸入減去其 mini-batch 的均值,再除以標(biāo)準(zhǔn)差。對(duì)標(biāo)準(zhǔn)化后得到的值乘以縮放系數(shù)γ,然后加上乘性偏置項(xiàng)β,使縮放的區(qū)間變得更寬,其目的是大幅提高網(wǎng)絡(luò)模型表達(dá)能力。
下面是卷積層使用BN算法的過(guò)程,設(shè)第l個(gè)BN層的輸入為yl=(yl(i,1),…,yl(i,j),…,yl(i,p)),操作如下式:
(13)
(14)
(15)
(16)
式中,常數(shù)項(xiàng)用ε表示;Zl(i,j)、γl(i)和βl(i)分別是BN層的輸出值、縮放系數(shù)和偏置項(xiàng);
在連接層使用BN算法時(shí),設(shè)首個(gè)BN層的輸入為yl(i),則:
(17)
(18)
(19)
(20)
當(dāng)BN算法用在卷積層時(shí),其導(dǎo)數(shù)公式為:
(21)
(22)
(23)
(24)
(25)
(26)
當(dāng)BN算法用到連接層時(shí),導(dǎo)數(shù)公式為
(27)
(28)
(29)
(30)
(31)
(32)
利用訓(xùn)練好的多任務(wù)深度學(xué)習(xí)模型識(shí)別無(wú)線傳感器網(wǎng)絡(luò)級(jí)聯(lián)故障,將無(wú)線傳感器網(wǎng)絡(luò)負(fù)載數(shù)據(jù)輸入至該模型中從而得到無(wú)線傳感器網(wǎng)絡(luò)級(jí)聯(lián)故障識(shí)別結(jié)果。
為了驗(yàn)證本文提出的新方法的有效性,進(jìn)行了實(shí)驗(yàn)測(cè)試,整體實(shí)驗(yàn)方案如下:
1)實(shí)驗(yàn)環(huán)境:為了提升實(shí)驗(yàn)的真實(shí)性和可靠性,此次實(shí)驗(yàn)需要在同一環(huán)境中進(jìn)行,其參數(shù)為:操作系統(tǒng)、仿真軟件是Windows 10、Matlab R2014a,CPU是Intel Core i5-7300HQ,內(nèi)存與運(yùn)行內(nèi)存是32G與8G,硬盤、主頻是500GB、2.1GHz。
2)實(shí)驗(yàn)數(shù)據(jù):實(shí)驗(yàn)平臺(tái)采用WSN實(shí)驗(yàn)網(wǎng)絡(luò),由星型拓?fù)浣Y(jié)構(gòu)和以CC2530為核心的滿足Zig Bee協(xié)議的5個(gè)節(jié)點(diǎn)和1個(gè)協(xié)調(diào)器所組成的,提取該網(wǎng)絡(luò)的參數(shù)作為實(shí)驗(yàn)樣本數(shù)據(jù)。部分故障特征樣本如表2所示。
表2 故障特征樣本
表2中,D1~D2000、K1~K5分別是故障特征樣本的編號(hào)和不同的故障類型;S1~S8代表8個(gè)故障特征屬性。在此基礎(chǔ)上,將部分?jǐn)?shù)據(jù)輸入至仿真軟件中,經(jīng)過(guò)多次測(cè)試后獲取最優(yōu)仿真參數(shù),將該參數(shù)作為初始參數(shù),以此提升仿真的可靠性。
3)實(shí)驗(yàn)方法:對(duì)比文獻(xiàn)[5]、[6]、[7]方法以及本文方法,通過(guò)比較不同方法的無(wú)線傳感器網(wǎng)絡(luò)級(jí)聯(lián)故障識(shí)別正確率以及時(shí)間消耗作為實(shí)驗(yàn)指標(biāo),以驗(yàn)證不同方法的應(yīng)用效果。
3.2.1 無(wú)線傳感器網(wǎng)絡(luò)級(jí)聯(lián)故障識(shí)別正確率
為了驗(yàn)證本文方法的有效率,比較了文獻(xiàn)[5]方法、文獻(xiàn)[6]方法、文獻(xiàn)[7]方法以及本文方法的無(wú)線傳感器網(wǎng)絡(luò)級(jí)聯(lián)故障識(shí)別正確率,得到結(jié)果如圖2所示。
圖2 無(wú)線傳感器網(wǎng)絡(luò)級(jí)聯(lián)故障識(shí)別正確率
由分析圖2可知,不同方法下無(wú)線傳感器網(wǎng)絡(luò)級(jí)聯(lián)故障識(shí)別正確率存在一定的差異。當(dāng)實(shí)驗(yàn)次數(shù)為10次時(shí),文獻(xiàn)[5]方法、文獻(xiàn)[6]方法、文獻(xiàn)[7]方法的無(wú)線傳感器網(wǎng)絡(luò)級(jí)聯(lián)故障識(shí)別正確率分別為45.2%、58.3%、73.1%,本文方法正確率為93.8%;當(dāng)實(shí)驗(yàn)次數(shù)為50次時(shí),文獻(xiàn)[5]方法、文獻(xiàn)[6]方法、文獻(xiàn)[7]方法的識(shí)別正確率分別為58.2%、27.1%、25.5%,本文方法的識(shí)別正確率90.2%。與其它方法相比,使用本文方法得出的無(wú)線傳感器網(wǎng)絡(luò)級(jí)聯(lián)故障識(shí)別正確率較高,可以在實(shí)際中得到進(jìn)一步推廣。
3.2.2 無(wú)線傳感器網(wǎng)絡(luò)級(jí)聯(lián)故障識(shí)別時(shí)間消耗
為了驗(yàn)證本文方法的有效率,比較了文獻(xiàn)[5]方法、文獻(xiàn)[6]方法、文獻(xiàn)[7]方法以及本文方法的無(wú)線傳感器網(wǎng)絡(luò)級(jí)聯(lián)故障識(shí)別時(shí)間消耗,得到結(jié)果如表3所示。
表3 無(wú)線傳感器網(wǎng)絡(luò)級(jí)聯(lián)故障識(shí)別時(shí)間消耗(單位:s)
分析表2中的數(shù)據(jù)可知,文獻(xiàn)[5]方法的無(wú)線傳感器網(wǎng)絡(luò)級(jí)聯(lián)故障識(shí)別時(shí)間消耗平均值為2.57s,是四種方法中時(shí)間消耗最高的。文獻(xiàn)[6]方法的無(wú)線傳感器網(wǎng)絡(luò)級(jí)聯(lián)故障識(shí)別時(shí)間消耗平均值為1.40s,文獻(xiàn)[7]方法的無(wú)線傳感器網(wǎng)絡(luò)級(jí)聯(lián)故障識(shí)別時(shí)間消耗平均值為1.57s,與這三種方法相比,本文新方法的無(wú)線傳感器網(wǎng)絡(luò)級(jí)聯(lián)故障識(shí)別時(shí)間消耗平均值為0.73s,它是四種方法中時(shí)間消耗最低的,可以實(shí)現(xiàn)無(wú)線傳感器網(wǎng)絡(luò)級(jí)聯(lián)故障快速識(shí)別。
當(dāng)今現(xiàn)代科技水平快速提升,而無(wú)線傳感器與人們?nèi)粘9ぷ髋c生活密不可分,在無(wú)線傳感器網(wǎng)絡(luò)中,一旦節(jié)點(diǎn)發(fā)生故障或是其拓?fù)浣Y(jié)構(gòu)發(fā)生改變將造成網(wǎng)絡(luò)負(fù)載異常變化并導(dǎo)致新的節(jié)點(diǎn)故障問(wèn)題出現(xiàn),傳統(tǒng)無(wú)線傳感器網(wǎng)絡(luò)級(jí)聯(lián)故障識(shí)別方法存在識(shí)別正確率低以及時(shí)間消耗長(zhǎng)等多種問(wèn)題,因此設(shè)計(jì)一種無(wú)線傳感器網(wǎng)絡(luò)級(jí)聯(lián)故障識(shí)別新方法就顯得尤為重要。本文設(shè)計(jì)了一種基于多任務(wù)深度學(xué)習(xí)的無(wú)線傳感器網(wǎng)絡(luò)級(jí)聯(lián)故障識(shí)別研究新方法。通過(guò)實(shí)驗(yàn)證明該方法具有高識(shí)別正確率以及低識(shí)別時(shí)間消耗的特點(diǎn),它既能實(shí)現(xiàn)無(wú)線傳感器網(wǎng)絡(luò)級(jí)聯(lián)故障快速正確識(shí)別,又能保證無(wú)線傳感網(wǎng)絡(luò)的安全與穩(wěn)定。由于實(shí)驗(yàn)過(guò)程中所使用的數(shù)據(jù)還不夠多,因此在未來(lái)還需引進(jìn)一些新技術(shù)新手段對(duì)該方法進(jìn)行優(yōu)化并以此來(lái)大幅提升無(wú)線傳感器網(wǎng)絡(luò)級(jí)聯(lián)故障識(shí)別效果。