時 磊
(浙江工商大學 信息與電子工程學院, 杭州 310018)
物聯網技術的迅速發展為人們提供了諸多便利,其借助無線傳感器網絡(WSN)來搭建智慧教室、智慧工廠等智能系統[1-2].然而為了提高數據采集的準確度和檢測質量,并避免外界環境對數據造成干擾,WSN需要部署大量傳感器節點,導致節點冗余、數據重疊并縮短網絡生命周期.
針對該問題,根據不同的應用場景的方法被提出.如潘琢金等[3]提出使用E-CPDA算法,通過減小動態簇的能耗來降低節點總能耗;崔艷玲等[4]根據交通流量特征提出了Megrez算法對車輛檢測WSN中的數據進行了壓縮;鄒洪森等[5]提出了貪婪融合算法,根據具體應用需求設計相應的過濾機制和查詢匹配規則來實現WSN數據的融合;Li等[6]則根據WSN的體系結構、QoS參數和鏈路流量限制來分析WSN數據融合方法.目前隨著層次性傳感器網絡的廣泛應用,Falorsl等[7]提出了LEACH算法;Zhuang等[8]提出了HEED算法對節點數據進行分簇融合,從而解決WSN發生動態變化時系統存在較大時延的問題;Wu等[9]則提出了一種高效的節點數據聚類算法,來解決基于集群的無線傳感器網絡的數據融合問題.
此外,由于無線傳感器網絡與智能計算中的神經網絡具有一致的計算和感知能力,各種基于神經網絡的WSN數據融合機制被提出來用以解決具有限制條件和外界環境變化的節點信息處理問題.Yang等[10]提出使用三層BP神經網絡對采集的數據進行壓縮,從而降低數據的冗余度;Gong等[11]則結合分簇協議和神經網絡的特點,提出先根據數據的特征進行分類,然后將同類數據發送給同一個節點來降低數據通信量的方法.Balavoine等[12]則使用神經網絡來提取數據的特征,并將特征值發送給傳感器節點來提升數據的采集率.然而當數據量增加、BP神經網絡層數增加時,網絡容易陷入局部最優解,無法實現數據的壓縮優化[13].
針對上述問題,本文提出使用深度自編碼網絡對實驗室WSN數據進行壓縮編碼與分類.將同類別數據的深度特征發送給相同的數據匯聚節點實現大量無線傳感器數據的壓縮,從而減小數據規模.同時,本文提出使用貝葉斯估計算法對壓縮后的數據特征進行融合,來減小數據的冗余度.仿真測試與實驗結果表明,所提出的算法能夠明顯減少數據量,提升網絡的生命周期.
實驗室WSN通常由隨機分布在整個實驗室的傳感器節點構成,節點在采集到傳感器數據后經過單跳或者多跳的方式進行數據轉發.本文采用層次路由協議構建WSN,該協議使用分簇的概念將節點分層并形成簇結構.在每個簇中,由簇首節點將簇內其他節點的信息進行匯總和壓縮,并最終發送至Sink節點傳輸給數據存儲服務器.由于在實驗室環境下單個節點采集的數據短時間內不會發生突變,且在一定區域內的傳感器節點采集的數據具有相似性,故本文設計的WSN模型如圖1所示.在該模型中,傳感器節點被劃分為K={k1,k2,…,kn}個聚類集合,其中n為集合個數,且每個聚類集合包含一個融合節點負責數據融合以及與Sink節點的通信.

圖1 WSN分層模型
為了記錄傳感器節點內包含的信息,本文使用Json類型的非關系型數據格式記錄每個節點的ID、狀態、坐標、剩余電量和采集的信息.
本文基于深度自編碼網絡對上述WSN分層模型采集的數據進行融合,算法整體流程如圖2所示.該算法主要流程如下:

圖2 基于深度自編碼網絡的數據融合算法流程
1) 對傳感器采集數據進行預處理操作;
2) 使用K-means算法根據傳感器的位置對所有節點進行聚類劃分,生成n個聚類集合;
3) 使用深度自編碼網絡提取n個傳感器節點聚類集合信息的特征;
4) 使用Softmax模型對采集的信息特征進行分類;
5) 根據分類結果來設置傳感器節點分簇,并將電量最高的節點作為簇首節點;
6) 使用貝葉斯估計對每個簇內的元素進行數據融合,并將融合后的數據發送給Sink節點.
基于深度自編碼的WSN數據融合算法的目標是對相似的數據進行壓縮融合,然而當兩節點的間距大于無線通信能耗模型閾值d0時,對兩節點采集的數據進行融合前需要進行多跳通信,從而導致節點能量的過渡消耗.為了節省節點的能耗,文中使用K-means算法根據傳感器的位置對所有節點進行聚類劃分,其最大聚類中心數m為
(1)
式中,h與w分別為實驗室的長和寬.
基于K-means的節點聚類過程為:
1) 從N個節點隨機選取n個節點作為初始聚類中心,并將其他節點劃分到距離最近的聚類中心所屬類別中;
2) 將所有聚類中心的平均坐標作為新的聚類中心,并遍歷剩余的節點將其加入到新的類中;
3) 重復執行上述步驟,直至聚類中心不再更新.
本文使用深度棧式自編碼網絡對傳感器節點采集的信息進行特征提取,然后將最終一個隱藏層的激活值作為Softmax分類器的輸入,并對數據進行分類.基于深度自編碼網絡的特征提取與分類模型如圖3所示.
圖3中,xi為神經元節點,h為隱含節點,‘+1’是激活值恒為1的偏置項,則在自編碼網絡中有

圖3 基于深度自編碼網絡的特征提取與分類模型

(2)
式中:a為自編碼網絡的激活值;W為神經元權重;b為偏置;f為激活函數,則第l+1層編碼的特征為
(3)
式中,W(l,1)、b(l,1)為第l個神經元對應的W(1)、b(1)參數.
因此,可以得到基于深度自編碼網絡的特征提取與分類模型的具體訓練步驟如下:
1) 初始化網絡參數,假設自編碼神經網絡的隱含層數目為ml,輸入樣本量為x={x1,x2,…,xm};
2) 使用輸入樣本計算自編碼網絡第1層的權重W(1,1)、b(1,1)和激活值a(1),并將激活值作為自編碼網絡第2層的輸入,并計算權重W(2,1)、b(2,1)和激活值a(2);
3) 重復步驟2)直至計算完自編碼網絡所有層的權重和激活值;
4) 將第mi層計算得到的激活值作為Softmax分類器的輸入,對輸入樣本向量進行分類;
5) 執行完成上述步驟后,使用有標簽的樣本向量進行反向傳播,對所有層的參數進行微調.
經過上述訓練步驟后,即可得到自編碼網絡與Softmax分類器的參數.
為了節省傳感器數據轉發所消耗的能量,本文對分簇中的數據進行融合.對于傳感器節點聚類集合,文中為每個節點設置相應的分簇,并從中選擇剩余能量最高的節點作為數據融合節點對壓縮后的數據進行融合.
考慮到每個分簇節點具有相同的數據類型,文中數據融合方法通過置信距離篩選出可靠的數據.置信距離即實際數值與測量數據間的緊密程度,通過減小置信距離可以保證采集的數據更接近于實際值.對于兩傳感器節點si與sj,其置信距離為
(4)

(5)
其中,p(GF)為效益函數,作為概率密度函數的權重來保證在特征融合的前提下能獲取更有效的數據.



(6)
式(6)可等效為兩個獨立同分布函數相乘的結果,對h個測量數據進行融合可以得到
(7)
本文使用UC Berkeley開發的面向網絡技術開源離散時間模擬器NS2分析所提出的數據融合算法的性能.文中搭建的仿真環境為在100 m×100 m的空間內布置由100~300個傳感器組成的無線傳感器網絡.本文設置各傳感器節點的初始能量為2 J,傳輸數據包的長度為200 bit.同時,文中使用TensorFlow框架實現深度自編碼網絡.本文設置輸入自編碼網絡的輸入神經元數量為100,隱含神經元為20,輸出神經元為10.
本文首先分析傳感器聚類數與網絡生命周期的關系.當布置100個傳感器節點時,傳感器網絡生命周期隨著聚類數的變化情況如圖4所示.從圖4可以看出,當聚類數量小于6時,網絡的生命周期隨著聚類數的增加而增長.表明此時類別數較少,每個類所需處理的傳感器節點數量較大,且經過傳感器節點間的距離較長,信息傳遞需要消耗較多的能量,從而加速傳感器電量的消耗.當聚類數大于6時,WSN的生命周期隨著聚類數的增加而減小.這是由于聚類數過多,導致相同區域內具有相似數據的節點融合效率沒有達到最大值,且對信息的處理不夠充分.同時數據經簇頭傳輸給Sink節點的多跳次數也較多,使得傳感器的工作量變大,因此,本文后續設置WSN的聚類數為6.

圖4 傳感器網絡生命周期隨聚類數的變化情況
本文采用均值方差的形式計算數據融合的精度,具體計算表達式為
(8)

本文通過在100 m×100 m的仿真測試區域布置100、200和300個傳感器節點來驗證所提出算法在不同數目節點下網絡的生命周期結果,如圖6所示.從圖6可以看出,隨著節點數目的增加,網絡的生命周期在逐漸變大,同時在節點數目較少時不同算法間的差異較小.而當節點數目明顯增加時,文中算法的WSN生命周期增加較大,表明所提出的方法能夠明顯增加無線傳感器網絡的生命周期.
本文提出了一種基于深度自編碼網絡的實驗室WSN數據壓縮編碼方法.該方法將同類別數據的深度特征發送給相同的數據匯聚節點,實現了大量無線傳感器數據的壓縮,從而有效減小數據規模.采用貝葉斯估計算法對壓縮后的特征進行融合,以減小數據的冗余度.仿真測試與實驗結果分析表明,所提出的算法能夠顯著減少數據量,提升網絡的生命周期.同時相比以往算法的數據融合精度有較為明顯的提高,且增加了無線傳感器網絡的生命周期.