余正軍
(汕頭職業技術學院,汕頭 515078)
隨著智能物聯網(AIoT)的興起,人們對智能化服務的需求也越來越多.無線傳感網(WSN)作為AIoT的關鍵組成部分,其運行狀態,直接影響AIoT的服務質量.然而,WSN 通常部署在環境惡略的地方.員工無法對WSN 中的所有節點進行24 小時實時觀察和檢查.但是,一旦WSN 中節點出現故障,將直接影響系統最終的研判.為此,研究高效可靠的WSN 節點故障診斷方法尤為重要,它對延長WSN 壽命,保持系統穩定和提高系統服務質量具有重要的現實意義.目前,WSN節點故障診斷方法可分為基于統計學原理、故障分類和感知數據的時空特性分析三大類.常用的診斷算法,如文獻[1]采用2-回合投票故障診斷算法對故障進行診斷,文獻[2]以ICA 進行故障屬性的約簡,通過樸素貝葉斯進行故障診斷,文獻[3]利用WSN 感知數據的時空相關性原理將診斷正常的候選簇頭的觀測值與簇內成員節點的觀測值比較來對簇內成員節點進行診斷,文獻[4] 以粗糙集進行故障屬性的約簡,通過GAKELM 算法對對故障診斷.這些方法要么存在故障屬性約簡不徹底,要么算法模型的參數復雜等問題.本文鑒于他們的研究經驗,提出一種基于RS-CSA-ELM的WSN 節點故障診斷方法,以RS 對故障屬性進行約簡,并以CSA 優化EML 參數作為故障診斷模型,完成WSN 節點故障診斷.該算法仿真結果表明,此法算法模型參數設置簡單、易實現,故障診斷的精確度高、誤診率低.
WSN是一種高度自組織智能型數據處理網絡,通過節點的密集部署,實現數據的量化收集、聚合和傳輸操作.典型的WSN 組成分為傳感節點、中繼節點、網關節點、調控中心4 個部分.其結構如圖1所示.
WSN 節點自身就是一個高內聚低耦合的結構化產品,它由感知單元、處理單元、信息收發單元及能量保障單元,其結構如圖2所示.這4 個獨立的單元相互協作完成節點的任務,任何一個單元出現出現故障將導致最終數據的錯誤影響WSN的正常工作.而每個單元都具有自己的特征,因此查找節點故障等同于查找節點產生故障的功能單元.這種檢測方法精度高,便于維修[5-7],本文針對WSN 網絡結構及其節點結構,將故障分為能量保障單元故障、處理單元故障、信息收發單元故障以及感知單元故障.
粗糙集理論屬性約簡算法(簡稱RS)能從模糊數據本身歸納出數據關鍵信息,刪除冗余信息,求得最小表達式,建立決策表.正好可用于對WSN 節點故障診斷屬性的約簡,其過程如下:設故障診斷決策表為S=(U,R,V,f),其中,S為WSN 節點故障診斷決策表;R=P∪D節點故障屬性集合,P,D分別代表條件屬性集合和決策屬性集合;U={x1,x2,···,xm}為論域;屬性值域V=∪VR(m[i])∈R;則信息函數為f:U×R→V,表示對每個m∈R,x∈U,f(x,m)∈VR.其分辨矩陣可設置成:

其中,CD(i,j)為分辨矩陣的第i行第j列處的元素,m[k]∈P.

圖1 典型WSN 網絡結構

圖2 WSN 節點結構
基于上述分辨矩陣的故障屬性約簡算法步驟如下:
(1)利用上文描述,根據故障樣本決策表構建分辨矩陣CD(i,j).
(2)約簡分辨矩陣CD(i,j),將其中的單屬性元素對應位置零.
(3)若CD(i,j)≠0,且CD≠?時,則構建RS 屬性樣本T約簡的操作范式:

(4)向步驟(3)的RS 屬性樣本T中每一項都添加步驟(2)中的單屬性,RS 屬性樣本約簡T',其每項都代表一個故障屬性約簡.
RS-CSA-ELM 算法對故障診斷原理描述為:以WSN 節點故障預兆構建故障樣本數據集,以故障種類屬性和特征屬性構建故障決策表.首先,根據RS 剔除原始故障樣本屬性冗余信息,獲得約簡后的故障屬性組合;其次,利用屬性之間的相關性選取最優屬性約簡;以最優屬性約簡構建新的故障樣本作為算法模型的訓練樣本,最后,建立RS-CSA-ELM 故障診斷模型對WSN節點故障進行診斷,如圖3所示.

圖3 WSN 節點的RS-CSA-ELM 故障診斷模型
(1)極限學習機(ELM)原理
設給定N組WSM 節點數據樣本(xi,ti)∈Rn,對于輸入層、隱含層和輸出層的節點數分別為n,L,m的ELM的學習機,若采用Sigmoid 類型的激勵函數G(x),則EML 隱含層輸出即為:


其中,

當G(x)無限可微時,參數 αi與 γi隨機產生,且在訓練過程中不需要被調整,ELM 模型訓練過程可看作求解線性系統Hβ=T關于 β的最小二乘解,即 β=H+T,其中H+為H的Moore-Penrose 廣義逆.
(2)CSA 優化ELM
極限學習機(ELM)是一類基于前饋神經網絡的訓練算法,其具有學習速度快、泛化性能強、不易陷入局部極值的特性,因此被廣泛應用[9];但由于該算法中輸入權值 αi和隱含層閥值 γi是隨機選取故導致其隱含層神經元不具備自我調節能力.針對此缺陷本文采用CSA 算法對ELM 輸入權值 αi和隱含層閥值 γi進行優化,構建CSA-ELM 神經網絡,提高模型診斷的精確度和穩定性[10].
烏鴉搜索算法(CSA)是仿效烏鴉在儲備食物和盜竊食物的智能行為而形成的一種基于種群的優化算法,CSA 與其它神經網絡參數優化算法如GA、POS 一樣,均是利用種群的優勢來增加尋找最優解的概率,同時避免陷入局部最優解.但優化算法的參數設置對其性能影響很大,所以參數越少的算法越易應用.種群優化算法除種群大小和最大迭代次數外,還要設置其它參數,如GA 還需再設置選擇方法、交叉方法、交叉概率、變異方法以及變異概率;PSO 還需再要設置有慣性權重、粒子自身的學習因子和社會學習因子;而只需再設置烏鴉的飛行長度和辨識概率即可[11-13].
另外,CSA 不是貪心算法,如在搜索空間范圍內只要沒有比烏鴉產生的新位置更優,它依然會飛向新位置,這樣產生的解是多樣的,使得算法具有最大概率尋找最優解功能.烏鴉跟蹤行為是隨機的,這樣就增大了算法搜索空間,即CSA 具有全局搜索能力.算法在迭代過程中,種群中所有烏鴉都在不斷地更新藏食地點,從而保證種群中所有的藏食地點是最優的,并利用烏鴉記憶記錄最優存食位置.迭代結束后,找到種群中烏鴉的適應度值最優的記憶作為最后求到的最優解.表1為CSA 與GA和PSO 算法的性能比較.

表1 CSA 與GA和PSO 算法性能比較
CSA 算法應用到ELM的輸入權值 αi和隱含層閥值 γi選取,構建CSA-ELM 算法.在該算法中,將ELM訓練數據的輸入權值 αi和隱含層閥值 γi映射為CSA 種群中烏鴉所處的每個位置和藏食物的記憶,CSA的適應度值對應于ELM的訓練誤差,將求取最優輸入權值、閥值問題轉化為計算CSA 適應度值即選擇最優烏鴉記憶問題.圖4給出CSA-ELM 算法流程,主要包括ELM 網絡確定、CSA 算法優化和ELM 網絡的訓練、預測等.

圖4 CSA-ELM 算法流程
該算法的詳細操作要領如下:
Step 1.算法初始化.確定ELM 各層的神經元個數,隨機生成ELM的輸入權值 αi和隱含層閥值 γi.CSA的種群搜索空間設置成二維,并將 αi和γi作為烏鴉初始所處位置和記憶即公式表示為:xi,iter=(αi,γi)、mi,iter=(αi,γi),對CSA 進行初始化.
Step 2.計算烏鴉適應度.適應度計算公式為:

其中,Ne為正確的樣本數,N為訓練樣本總數.
Step 3.更新烏鴉記憶.更新的計算公式為:

檢查終止條件,若滿足則輸出最優的αi和γi,否則轉向Step 2.
Step 4.ELM 訓練和診斷.將最終烏鴉位置和記憶作為最優的ELM的輸入權值和閥值賦予ELM,使用訓練樣本對ELM 進行訓練,采用公式 β=H+T計算輸出層權值.最后將待診樣本注入到ELM 模型進行診斷輸出.
根據上文所述,將RS的故障屬性約簡算法與經CSA 優化的極限學習機有機結合,構建基于RS-CSAELM的WSN 節點故障診斷算法,其過程如下:
Step 1.根據WSN 節點組成結構,構建符合實際情況的WSN 節點故障屬性表并做量化處理.
Step 2.根據上文所提的故障屬性約簡算法對Step 1 構建的WSN 節點故障屬性表進行屬性約簡,刪除冗余的故障屬性信息,得到最優的故障診斷決策表.
Step 3.根據Step 2 得到的故障屬性決策表重構訓練樣本數據集.
Step 4.將Step 3 得到的訓練樣本數據集作為RSCSA-ELM 算法模型的輸入,利用CSA 優化ELM的參數,即利用訓練的故障樣本數據對ELM 進行訓練,使其達到最佳的ELM 故障模型,而后用該模型對待診樣本數據進行故障診斷,實現WSN 節點故障任務.
(1)WSN 節點故障屬性的約簡
為驗證上述算法得有效性,先構建其故障屬性及量化表(表2),再將表2轉換為故障診斷決策表(表3).最后采前文中設計的RS 故障屬性約簡算法對表2進行約簡,以獲得最優故障診斷決策.

表2 部分故障屬性及量化處理表

表3 部分故障診斷決策表
(2)算法參數設置
仿真設置算法初始條件:飛行長度fl=0.2,最大迭代次數tmax=50,意識概率AP=0.1,ELM的輸入權值αi=rand(0,1],隱含層閥值γi=rand(0,1],WSN 節點數量作為烏鴉只數N=200.
為驗證所提算法的性能及可行性,在Ubuntu16.04環境下用Python3.5+Tensorflow 編程仿真,同時考慮到WSN 實際工作環境,實際所收集的數據參與真實數據之間存在誤差.模擬在同一條件下對優化前后EML性能進行仿真試驗,同時也對本文所提算法與最新文獻所提算法作了對比仿真實驗.
首先,在相同條件下,對CSA 優化前的ELM 與優化后的ELM 模型進行了對比測試,其結果如圖5、圖6所示.

圖5 CSA 優化前后的ELM 故障診斷用時對比圖

圖6 CSA 優化前后的ELM 故障檢測精度比較圖
其次,對CSA 優化RS-CSA-ELM 模型的參數的做了仿真驗證.其結果如圖7所示.
最后,對可靠性為80%、85.5%、90%和99.5%樣本數據集進行約簡后,將本文提的RS-CSA-ELM 算法與文獻[14]的RSOPNN 算法及文獻[15]的RS-PSOKELM 算法進行比較測試.其結果如圖8及圖9所示.
從圖5、圖6可以看出經過CSA 優化之后的ELM 其穩定性得到了很大的提高;從圖7可以看出CSA 在迭代到15 次的時即可尋找到最優得ELM 輸入權值和隱含層閥值;從圖8可以看出3 種算法對WSN節點故障診斷用時都是隨樣本數據集可靠性增加而減少,但本文所提的RS-CSA-ELM 算法與其它兩種算法在相同條件下用時是最短的;從圖9可看出3 種算法的診斷準確性隨樣本數據集可靠性增加而提高,但本文所提的RS-CSA-ELM 算法與其它兩種算法在相同條件下診斷的準確性是最高的.綜上所述,本文所提算法能夠快而準的對WSN 節點故障進行診斷識別,且穩定性和診斷的準確性可滿足實際應用要求.

圖7 CSA 對RS-CSA-ELM 模型尋優迭代次數圖

圖8 算法診斷用時比較圖

圖9 算法性能比較圖
鑒于現有WSN 節點在故障診斷方法的缺陷[16],提出RS-CSA-KELM 算法予以解決,通過粗糙集理論屬性約簡算法(簡稱RS)對故障屬性約簡、利用CSA 算法對EML的參數進行優化,建立數據驅動式的RSCSA-ELM 故障診斷模型.該模型對WSN 節點故障的診斷快而準,并能有效的解決誤診和漏診等問題,特別適合用于拓撲結構實時變化的網絡的故障診斷.當然,所提之法仍需研究、改進,如進一步考慮算法中各參數設置及各算法之間的優缺互補等問題.