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