杜 楚,杜新新,刁 金
(1.中國電子科技集團公司第五十四研究所,河北 石家莊 050081;2.中國地質大學(北京)信息工程學院,北京 100083)
近年來,物聯網(Internet of Things,IoT)已經被廣泛應用到不同的領域(如智能交通系統中的車流量監控)[1-2],通過連續地收集邊緣端的感知數據,對環境進行實時監控和異常檢測[3]。然而,由于物聯網節點能量受限,為了檢測一個異常是否發生和異常的嚴重程度,云服務器通常不需要一個精確的感知數據,感知數據所屬的區間足以滿足應用的需求。只有當一個異常已經發生后,才需要將精確的感知數據發送給云服務器,確定異常的詳細信息。如何實現節能數據聚集來支持工業物聯網的異常檢測受到了學術界和工業界的廣泛關注。
現有的感知數據聚集技術通常不能兼顧數據傳輸的時延和能耗。例如,壓縮感知算法通過利用感知數據的時空相關性來減少被傳輸的數據量[4]。壓縮感知算法會受到底層路由方法的影響,并且路由方法通常包括基于樹的路由方法[5]和基于簇的路由方法[6]等。本文通過采用基于簇的壓縮感知算法來聚集密集部署的網絡中的二進制類別數據[7]。數據預測技術通過利用預測值代替真實值,減少網絡中感知數據的傳輸[8]。由于數據預測模型的精度會影響路由到云服務器感知數據的數量,因此選擇一個合適的數據預測模型至關重要。這些策略在確定的條件下能夠獲得非常好的性能,例如,感知數據的變化趨勢非常簡單等等。但是,這些方法并不適用于本文的場景。
因此,在密集部署的網絡中,為了對工業環境進行實時監控和異常檢測,以節能的方式連續地收集感知數據是一個非常有挑戰性的任務。為了解決這個挑戰,根據異常檢測的特點和數據的時空相關性,提出了一個基于壓縮感知的節能數據收集策略,通過利用云邊端的協作實現節能的感知數據收集來支持工業物聯網異常檢測,在保證服務質量的同時減少網絡能耗。
目前,針對節能數據收集的研究主要包括基于數據壓縮的節能數據收集算法、基于數據預測的節能數據收集方法、基于睡眠喚醒的節能數據收集算法和基于移動傳感器路徑規劃的節能數據收集算法。
基于數據壓縮的節能數據聚集研究通過利用數據的相關性和數據壓縮技術,去除冗余數據,得到壓縮后的數據,在保證數據恢復精度的同時,減少數據量[9-11]。傳統的壓縮算法包括香農-范諾編碼[12]、哈夫曼編碼法[13]、預測編碼[14]、基于線性擬合的壓縮算法[15]和主成分分析算法[16]等,這些算法具有壓縮過程復雜、解壓過程簡單的特點,使其在資源受限的邊緣設備上節能效果并非最優。壓縮感知算法具有壓縮過程簡單、解壓過程復雜的特點,使其非常適用于資源受限的邊緣設備。
基于數據預測的節能數據聚集機制通過利用數據變化的特點,對下一時刻的數據進行預測[17]。因此,物聯網設備不需要連續地感知和收集環境信息,可以減少網絡中的數據傳輸。在文獻[8]中,一個簡單的線性函數(DBP算法)同時部署在云端和物聯網節點,用于預測感知數據,只有當預測值不滿足確定應用需求時,才將傳感器節點的感知數據和模型參數上傳到云服務器,用于和云上的數據同步。當數據的變化趨勢很簡單并且可預測時,該策略能夠極大地減少網絡傳輸的數據量和網絡能耗。然而,一旦數據變化比較劇烈,該策略的性能會急劇降低。
對于不同的物聯網設備,同一時隙的感知數據具有空間相關性,導致網絡中存在大量冗余數據。因此,通過利用數據的空間相關性,利用近鄰節點的數據估計其他節點的感知數據,能夠在一定程度上減少感知數據的傳輸。一些學者提出睡眠/喚醒調度策略[18],使部分傳感器節點處于睡眠狀態,通過最小化空閑監聽時間和減小傳感器節點狀態轉換次數,極大地降低網絡的能耗。但這類方法存在網絡熱點問題,使一些物聯網設備過早死亡,導致網絡癱瘓,對網絡生命周期造成一定的影響。基于移動匯點的數據聚集算法[19]利用系統外部的移動設備能夠成功解決該問題。移動設備的成本高、能耗大,對低成本的應用并不適用。另外,移動設備的移動速度過慢會導致時延增加甚至數據包的丟失。
綜上所述,這些方法在特定的場景下節能效果十分顯著,但是并不適用于本文的場景。因此,迫切需要提出一個節能數據收集算法來支持本文的應用。
本節介紹物聯網節點、物聯網以及物聯網節點分布偏度的具體定義,并給出了本文算法運行網絡的具體構建過程和能量模型。
定義1 物聯網節點(IoT node)。一個物聯網節點是一個元組IoTnd= (id,loc,type,cr,engy,sv),其中,id是物聯網節點的唯一標識;loc是物聯網節點的地理位置,包括經度和緯度;type是物聯網節點的類型,可能是智能終端,也可能是邊緣服務器;cr是物聯網節點的通信半徑,對于不同類別的物聯網節點通信半徑都相同;engy是在當前時隙物聯網節點的剩余能量,邊緣服務器的初始能量比智能終端的初始能量更高;sv是物聯網節點的感知數據。
一個物聯網包括邊緣網絡和一個云服務器。云服務器負責管理邊緣網絡。在邊緣網絡中,根據資源數量的不同,將物聯網節點分為智能終端和邊緣服務器。邊緣服務器比智能終端擁有更多的資源并且負責管理其所在邊緣網絡中的智能終端。
定義2 物聯網(IoT network)。一個物聯網是一個有向圖,由一個元組表示IoT_net= (ND,LK),其中ND包括一個云服務器和一些物聯網節點(包括邊緣服務器和智能終端);LK是ND中物聯網節點之間連線的集合。只有當2個節點之間的距離在通信半徑內,這2個節點之間才會有連線。
定義3 偏度(Skewness Degree)。 一個偏度表示物聯網節點分布的不均勻情況,網絡偏度的計算公式sd=(dn-sn)÷(dn+sn),式中,dn和sn分別指在密集區域和稀疏區域物聯網節點的數量。偏度0%意味著物聯網節點均勻且隨機地部署在物聯網區域。
在物聯網中,網絡結構通常包括基于樹的網絡結構和基于簇的網絡結構等。本文中的物聯網節點密集部署在物聯網中。一個基于簇的網絡結構作為本文的網絡模型,該模型的建立過程如下:
① 物聯網部署:物聯網節點部署在二維矩形區域內,它可能不均勻地部署在物聯網區域并且足夠密集,以協作的方式來監控網絡環境。無論物聯網節點是否均勻地部署在網絡中,構建網絡模型的過程都是相似的。本文以在網絡中均勻地部署物聯網節點為例介紹網絡的構建過程。首先,均勻且隨機地在L×L的正方形區域內部署N個物聯網節點,并且為每個物聯網節點分配一個唯一的標識符id用于區分它們。

到目前為止,已經提出了一些能量模型用于計算物聯網中數據包傳輸的能耗。其中最頻繁使用的一個能量模型是一階無線電模型[20]。在本文中,通過利用該模型,計算網絡中數據包傳輸所消耗的能量。該模型的參數如表1所示。

表1 能量模型中的參數Tab.1 Parameters in the energy model
ETx(k,d)和ERx(k,d)分別表示傳輸一個k比特的數據包到距離為d的物聯網節點和從距離為d的物聯網節點接收一個k比特的數據包,即:
ETx(k,d)=ETx-elec(k)+ETx-amp(k,d)=
Eelec×k+εamp×k×dn,
(1)
ERx(k,d)=ERx-elec(k)=Eelec×k。
(2)
因此,從物聯網節點i傳輸一個數據包到物聯網節點j所需要的總能耗為:
Eij(k,d)=ETx(k,d)+ERx(k,d)。
(3)
需要注意的是,傳輸一個數據包到物聯網節點所消耗的能量不同于傳輸一個數據包到云服務器。通常假設云服務器擁有的能量是不受限的,因此,云服務器接收數據包所消耗的能量可以忽略不計。計算Eij(k,d):
(4)
式中,n為傳輸衰減索引的值,該值由周圍的環境所決定。如果物聯網節點在網絡中轉發數據包的過程中沒有障礙,將參數n設置為2;否則,將參數n設置為3~5的一個值。不失一般性,本文假設網絡部署在無障礙的區域內,因此,將n設置為2。
在物聯網環境中,考慮到感知數據是有時空相關性的。在云端通過利用一個精確的時空數據預測模型預測邊緣端物聯網節點的感知數據,并且在物聯網節點根據數據的統計特征和時間相關性,將感知數據分類和稀疏化編碼,然后發送到邊緣服務器。在邊緣服務器,利用壓縮感知算法將類別數據壓縮后,通過最短路徑發送給云服務器,作為異常檢測的評判標準。下面將詳細介紹物聯網節點、邊緣服務器和云服務器上的執行操作和異常感知數據路由的過程。
在物聯網中,物聯網節點實時感知環境信息以獲得數據,這些感知數據構建了一個時間序列數據。當前時刻的感知數據與前一些時刻的感知數據有很強的相關性,并且差值可能非常小甚至可能是相等的。按照一定的區間間隔將其劃分到不同的區間之后,相鄰時隙的感知數據很可能屬于相同的區間,其類別值可能是一致的。通常情況下在工業應用中,感知數據的類別值的比特數遠小于感知數據的比特數,并且根據實際應用的需求,自適應地調整二進制編碼的長度比,用8 bit的固定長度的二進制編碼表示感知數據的類別,會使用更少的比特數。基于以上分析,通過以下策略將感知數據編碼為稀疏的二進制類別數據。
首先,根據數值區間將感知數據劃分到相應的類別中。利用歷史數據的統計特征,將感知數據的類別進行稀疏化編碼。假設根據實際應用需求,需要按照(0,100),(100,200),(200,300),(300,400),(400,500)和(500,+∞),這6個數據區間將感知數據進行類別劃分。由于區間的個數是6,感知數據的類別所對應的二進制編碼為000,001,010,100,011,101,110和111。通過統計歷史時隙的感知數據,這6個數據區間的頻數分別為1 000 000,100 000,10 000,1 000,100和10。基于數據區間所對應的二進制編碼和歷史數據所屬區間的頻數,感知數據的區間和稀疏的二進制類別數據一一映射,將感知數據進行類別劃分并實現對類別數據的稀疏化編碼。例如區間(0,100)的二進制類別編碼為001,區間(100,200)的二進制編碼為010,具體的區間和類別編碼之間的映射關系如表2所示。

表2 數據區間和二進制類別數據之間的映射表Tab.2 Mapping table between data interval and binary category data
針對確定的應用場景,該過程只需要經過簡單的判斷即可將感知數據編碼為二進制類別編碼,因此,該代碼能夠在資源受限的智能終端完成。
感知數據的類別數據被稀疏化編碼完成后,網絡中會存在很多稀疏的二進制類別數據,促使基于簇的壓縮感知算法在類別數據聚集過程中的應用。基于簇的物聯網如圖1所示,圖1中黑點代表智能終端,藍色的塔代表邊緣服務器,藍色的云代表一個云服務器,CS代表利用壓縮感知算法壓縮類別數據。
首先,根據物聯網節點所在的位置,將網絡區域劃分為多個簇。在每個簇中,邊緣服務器收集智能設備的稀疏二進制類別數據,然后利用壓縮感知算法壓縮類別數據生成CS測量值,并通過最短路徑將其發送到云服務器,云服務器利用基追蹤算法(BP)將其解壓后得到所有類別數據。
假設在物聯網區域內部署N個物聯網節點,編號1~N,并且這些物聯網節點的感知數據的類別可以用向量x表示,即x=[x1,x2,…,xi,…,xn],其中xi代表第i個物聯網節點的類別數據,且它的長度是d。例如,如果xi是001,那么d的值是3。如果在x中非0元素個數是k,那么數據x是k稀疏的(如果xi是001,那么k的值是1)。因此,在已知物聯網節點的個數N、類別數據的長度d以及類別數據的稀疏度k的前提下,可以計算最小的測量數Mmin:
(5)
式中,a,b,c,d是常數。根據M(M≥Mmin)和N(代表數據x的長度)的值,利用隨機數生成器,在每一列中隨機生成一系列確定個數的非零元素,從而構成一個M行N列的稀疏二進制矩陣,作為測量矩陣Φ(Φ∈RM×N(K 在已知向量y和矩陣Φ的情況下,精確地重構稀疏的類別數據x的過程能夠轉換成如下所示的l1-norm最小化問題: (6) 在已知測量矩陣和類別數據的情況下,利用矩陣乘法即可得到壓縮后的CS測量值。該過程只需要乘法和加法計算,因此數據壓縮過程非常簡單,可以在邊緣服務器上快速完成。 在云服務器上,部署一個精確的時空數據預測模型,預測未來時隙的感知數據。以智能交通系統為例,不同傳感器所測量不同時隙的車流量數據之間具有動態的時空相關性。為了學習歷史車流量數據中的時間和空間特征,基于Attention的時空圖卷積神經網絡模型(ASTGCN)被提出來[7]。它能夠同時考慮數據的時空相關性、數據在時間維度上的周期性和趨勢性,從而更精確地預測未來時隙的車流量。如圖2所示,ASTGCN模型主要包括3個獨立的組件,分別抽取近期、日周期和周周期的數據特征。每個組件包括6個主要部分:①Tattention,一個時間attention機制,有效地獲取車流量數據的動態的時間相關性;②Sattention,一個空間attention機制,有效地獲取車流量數據的動態的空間相關性;③GCN,一個圖卷積網絡,有效地獲取圖結構數據的空間特征;④Tconv,一個時間維度的卷積網絡,獲取相鄰時隙的數據的時間依賴;⑤Rconv,一個殘差卷積網絡,優化模型的訓練效率;⑥FC,一個標準全連接網絡,保證模型的輸出維度與預測目標的維度一致。 圖2 ASTGCN框架Fig.2 The framework of ASTGCN 圖2中Dhour代表最近時隙訓練數據,Dday代表日周期的訓練數據,Dweek代表周周期的訓練數據,D12代表接下來12個時隙的預測值,Tattention代表時間attention,Sattention代表空間attention,GCN代表圖卷積網絡,Tconv代表時間卷積,Rconv代表殘差卷積,FC代表標準的全連接。假設當前的時隙是T0,預測窗口的大小是Tp,網絡中所有節點在過去τ時間片內的歷史數據為X,將臨近于預測時隙的車流量數據Th作為最近時隙組件的輸入,即Dhour;將前一天同一時間段內的車流量數據Td作為天組件的輸入,即Dday;將上一周同一天同一時間段內的車流量數據Tw作為周組件的輸入,即Dweek。需要注意的是,Dhour,Dday和Dweek這3個輸入的長度是Tp的整數倍(本文中Dhour是Tp長度的3倍,Dday和Dweek長度是Tp長度的1倍)。通過利用這3個組件分別從輸入數據中抽取數據的最近、天周期以及周周期特征,將這些特征傳輸給全連接層,全連接層基于歷史數據中學到的權重融合這些特征,得到預測值D12。 感知數據同步算法1如下所示。 算法1:感知數據同步輸入:d(i)0:第i個物聯網節點在當前時隙的感知數據輸出:在不降低應用的服務質量的前提下對邊緣網絡進行實時監控和異常檢測。算法流程:1:for allndi∈all_nodedo2: L(ndi)0←value2label(d(ndi)0)3: upload(L(ndi)0,eni)4:end for5:for all eni∈edge_nodedo6: ki←cal_sparse(eni.L0)7: Mi←a*ki*logd*Niki+b +c8: ifMi 對于每個物聯網節點,當前時隙的感知數據被采樣后,通過3.1節介紹的數據分類和編碼方法將感知數據編碼為二進制類別數據,然后通過路由樹將其路由到相應的邊緣服務器(行1~4)。在每個邊緣網絡中,邊緣服務器利用3.2節介紹的壓縮感知算法將類別數據壓縮后通過最短路徑上傳到云服務器。為了保證壓縮感知算法的有效性,根據數據的稀疏度來決定是否壓縮類別數據。如果數據的稀疏度滿足一個確定的條件(行6~8),將數據壓縮后上傳到云服務器;否則,直接通過路由樹將類別數據上傳到云服務器(行5~15)。 在云服務器,通過利用預訓練的ASTGCN模型,基于歷史數據預測當前時隙的感知數據。為了檢測預測值的類別是否與真實值所屬的類別一致,以智能設備和邊緣服務器相互協作的方式將類別數據上傳到云服務器,云服務器將其作為判斷預測值準確性的標準。具體步驟如下: (1) 按照與邊緣端IoT節點相同的編碼策略,將預測值映射為類別數據(行16~19); (2) 預測值的類別與邊緣端上傳的類別的對比: ① 如果預測值的類別與邊緣端上傳的類別相等,用預測值更新歷史數據; ② 如果預測值的類別與邊緣端上傳的類別不相等,預測值不能被用來代替真實值。同時,云服務器通知相應的物聯網節點上傳該時隙的感知數據,并利用真實值更新歷史數據(行20~25)。 通過2.2節的能量模型計算網絡中數據傳輸的能量消耗。網絡的能耗主要用于以下3個過程(包括數據傳輸和接收): ① 智能設備發送kbit的數據包給邊緣服務器并且邊緣服務器接收kbit的數據包。 ② 邊緣服務器發送kbit的數據包給一跳物聯網節點并且一跳的物聯網節點接收kbit的數據包。 ③ 物聯網節點發送kbit的數據包給云服務器,但是云服務器接收該數據包的能量消耗可以忽略不計。 實驗在筆記本電腦中進行配置,采用Intel(R) Core(TM) i7-7700 CPU 2.80 GHz,16 GB內存,64位Windows操作系統,Python編寫實驗。 加利福尼亞的高速公路數據集PeMSD4由加州運輸性能測量系統(PeMS)收集,該網絡中有307個物聯網節點。為了收集在2018年1—2月期間該高速公路上的車流量數據,每個物聯網節點每隔5 min采樣一次感知數據。最后,在307個物聯網節點中,每個物聯網設備都有16 992個感知數據。 一個物聯網中有307個物聯網節點和一個云服務器,設備分布在100 m×100 m的區域中。該區域中,物聯網節點均勻或者以0%,10%或20%的偏度部署,云服務器位于該區域的中心(50 m,50 m)或者邊界(100 m,50 m)。為了保障網絡的連通性,將通信半徑設置為35 m,并將簇數設置為1,25和64。在壓縮感知算法中,測量數為: (7) 式中,N代表物聯網節點的個數;k代表類別數據的稀疏度。文獻[10]中,類別數據的長度比本文中的類別數據的長度更大。因此,Mmin的值更大,數據恢復的精度更高。本文實驗的參數設置如表3所示。 表3 實驗參數設置Tab.3 Experimental parameter setting 本文通過和DBP方法對比進行驗證,實驗結果如圖3所示。 圖3 在不同偏度和云的位置的情況下DBP機制和本文的方法(CCS&ASTGCN)的能耗比較Fig.3 Comparison of energy consumption of DBP and CCS&ASTGCN mechanism with various skewness of nodes distribution and locations of the cloud 由圖3可以看出,在物聯網節點和云服務器位置相同的情況下,本文的機制比DBP機制消耗更少的能量。導致該現象的主要原因不是路由到云服務器的感知數據量的減少,而是模型參數不需要路由到云服務器。實驗表明,DBP數據預測模型的精度與ASTGCN數據預測模型的精度相近,使這2種策略路由到云服務器的感知數據的數量相等。然而,作為一種神經網絡模型,ASTGCN模型不需要實時更新模型參數。當預測值不滿足某些應用的需求時,不需要將ASTGCN模型參數路由到云服務器,使網絡中傳輸的數據量大幅度地減小,從而使本文的算法更節能。 為了驗證本算法的有效性,將其與PCA策略進行對比,實驗結果如圖4所示。 圖4 在不同偏度和云的位置的情況下PCA機制和本文的方法(CCS&ASTGCN)的能耗比較Fig.4 Comparison of energy consumption of PCA and CCS&ASTGCN mechanism with various skewness of nodes distribution and locations of the cloud 由圖4可以看出,在物聯網節點分布偏度和云服務器位置相同的情況下,本文的機制比PCA策略更節能。主要是因為PCA策略中,邊緣服務器實時地將壓縮后的感知數據上傳到云服務器。本文策略中,邊緣服務器實時地將壓縮后的類別數據上傳到云服務器,只有當預測值不滿足應用需求時,云服務器才通知相應的邊緣設備上傳該時隙的真實值。因此,減少了大量的感知數據在網絡中的傳輸。然而,與PCA策略相比,類別數據會產生額外的能耗。通常情況下,相比于感知數據,類別數據有更少的比特數,產生更少的能耗。因此,由類別數據傳輸所增加的能耗遠小于感知數據減少所節約的能耗,使本文的策略比PCA策略更節能。 本文創新性地提出了一種邊緣云協作下異常感知數據分級收集方法,提高網絡能效。在本文所提出的算法中,對于每個邊緣網絡,在邊緣服務器使用壓縮感知算法對類別數據進行壓縮,然后通過最短路徑將其路由到云服務器。在云服務器中,利用預訓練的基于Attention的時空圖卷積神經網絡模型對邊緣端的感知數據進行預測。當預測值的類別與感知值的類別不同時,云服務器才會通知相應的物聯網節點上傳該時隙的感知數據。通過利用該機制連續地收集感知數據,支持環境監控。實驗結果表明,本文提出的算法在能耗方面優于DBP方法。因此,本文的方法是可行且節能的。
3.3 感知數據預測

3.4 異常感知數據路由

3.5 能量計算
4 結果評估
4.1 數據集
4.2 實驗設置

4.3 實驗結果


5 結束語