褚云霞,吳曉娜,王海成,趙澤強,張軍
(1.河北省物聯(lián)網(wǎng)智能感知與應(yīng)用技術(shù)創(chuàng)新中心,石家莊 050035;2.河北省物聯(lián)網(wǎng)安全與傳感器檢測工程研究中心,石家莊 050035;3.河北波薩物聯(lián)網(wǎng)科技有限公司,石家莊 050035)
隨著物聯(lián)網(wǎng)技術(shù)的日新月異,有數(shù)以萬計的在線節(jié)點被部署在各種環(huán)境監(jiān)測和控制工作當(dāng)中,由此,節(jié)點連接數(shù)量的快速增加也為物聯(lián)網(wǎng)整體系統(tǒng)提出了更高的要求。邊緣計算技術(shù)應(yīng)運而生,邊緣計算常用的設(shè)備有智能網(wǎng)關(guān)、輕量級服務(wù)器以及小型基站等,網(wǎng)關(guān)位于整個系統(tǒng)的中間,發(fā)揮著連接節(jié)點和云端的作用;網(wǎng)關(guān)為終端節(jié)點提供本地化服務(wù)與實時服務(wù),降低終端節(jié)點的時延;網(wǎng)關(guān)對節(jié)點數(shù)據(jù)進行初級處理,分擔(dān)云端任務(wù),減少云端交互數(shù)據(jù)量,降低鏈路負(fù)載。但在物聯(lián)網(wǎng)系統(tǒng)中,經(jīng)常發(fā)生數(shù)據(jù)異常,為保證采集數(shù)據(jù)的準(zhǔn)確和物聯(lián)網(wǎng)系統(tǒng)的安全,利用數(shù)據(jù)自身的時空特性,本文提出了一種基于詞袋的人工神經(jīng)網(wǎng)絡(luò)模型的異常檢測方法。人工神經(jīng)網(wǎng)絡(luò)模型詞袋具有處理復(fù)雜數(shù)據(jù)的能力,既能夠分析線性相關(guān)的數(shù)據(jù),也能夠處理非線性相關(guān)的數(shù)據(jù)。由于神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練的復(fù)雜性,訓(xùn)練過程被安排在云端,所得到的模型及參數(shù)將被回傳至邊緣計算網(wǎng)關(guān)用以進行后續(xù)的異常檢測[1]。
在本文中,按照節(jié)點、網(wǎng)關(guān)和云端3 層結(jié)構(gòu),設(shè)計了無線傳感器監(jiān)測節(jié)點、LoRaWAN 邊緣計算網(wǎng)關(guān)和MQTT 服務(wù)器。利用LoRa 無線技術(shù)低成本、廣覆蓋的特征,開發(fā)出具有多種傳感特性及故障保護功能的線路監(jiān)控單元以及基于大數(shù)據(jù)技術(shù)的具有故障診斷功能的云儲存和云服務(wù)平臺,以構(gòu)建完整的物聯(lián)網(wǎng)解決方案?;谶吘売嬎愕奈锫?lián)網(wǎng)監(jiān)測系統(tǒng)如圖1 所示。
圖1 基于邊緣計算的物聯(lián)網(wǎng)監(jiān)測系統(tǒng)
在物聯(lián)網(wǎng)監(jiān)測系統(tǒng)中,節(jié)點是整個系統(tǒng)的基礎(chǔ)。在監(jiān)測區(qū)域,大量的無線傳感器節(jié)點被用來實時感知周邊環(huán)境數(shù)據(jù),用來實時監(jiān)測環(huán)境。在基于邊緣計算的物聯(lián)網(wǎng)系統(tǒng)框架中,無線傳感器節(jié)點主要與邊緣網(wǎng)關(guān)進行通信,與MQTT 服務(wù)器的通信也由邊緣計算網(wǎng)關(guān)作為中繼進行。整個監(jiān)測系統(tǒng)采用LoRa 無線傳輸,連接傳感器的接口類型為RS485 接口,通信距離可達(dá)1 200 m;傳感器設(shè)備采用進口探頭,具有精度高、量程寬、一致性好等優(yōu)點;由于無線傳輸?shù)奶攸c,監(jiān)測系統(tǒng)的安裝更加簡單。本系統(tǒng)采用的是標(biāo)準(zhǔn)MODBUS RTU 協(xié)議,該無線傳感器監(jiān)控系統(tǒng)具有超強的穩(wěn)定性、抗干擾能力以及較強的保護性能和一流的防雷保護。
在大規(guī)模的物聯(lián)網(wǎng)監(jiān)測系統(tǒng)中,邊緣計算網(wǎng)關(guān)作為中間層,向下連接傳感器節(jié)點,向上連接云端。同時,對采集的數(shù)據(jù)進行異常檢測,一旦檢測出數(shù)據(jù)發(fā)生異常,邊緣計算網(wǎng)關(guān)會立即將異常報告給MQTT 服務(wù)器,并驅(qū)動位于底層的控制器,提供緊急應(yīng)對方案。該網(wǎng)關(guān)采用被譽為“世界上最流行最便宜的小型電腦”的樹莓派,由于樹莓派的體積很小、質(zhì)量很輕,而且功能豐富強大,其屬于一款性價比超高的迷你電腦主機。系統(tǒng)采用Raspbian;網(wǎng)關(guān)數(shù)據(jù)接收采用LoRaWAN SX1302;傳輸模塊采用4G 或5G。在檢測算法上采用離群點算法或自編碼神經(jīng)網(wǎng)絡(luò)進行傳感器異常數(shù)據(jù)檢測。
云平臺因其超強的計算性能和超高的存儲能力,發(fā)揮著遠(yuǎn)程數(shù)據(jù)處理和控制中心的作用。在異常檢測方法中,使用詞袋模型檢測環(huán)境監(jiān)測數(shù)據(jù)并分析數(shù)據(jù)的空間相關(guān)性。物聯(lián)網(wǎng)終端數(shù)量的快速增加為物聯(lián)網(wǎng)整體系統(tǒng)提出了更高的要求,支撐設(shè)備的網(wǎng)絡(luò)環(huán)境要求越來苛刻,由此對于物聯(lián)網(wǎng)的協(xié)議選擇和平臺的負(fù)載要求也越來越高。為提供更優(yōu)良的信息服務(wù),綜合現(xiàn)有的通信協(xié)議,選擇基于TCP 協(xié)議的MQTT 協(xié)議作為主要的通信協(xié)議,使用EMQX 消息服務(wù)器作為設(shè)備的物聯(lián)網(wǎng)平臺的接入層,由此建立一套完整的物聯(lián)網(wǎng)系統(tǒng),滿足小型物聯(lián)網(wǎng)平臺或個人開發(fā)者的各類需求,賦予此系統(tǒng)更多的現(xiàn)實意義。該系統(tǒng)采用前后端分離的B/S 架構(gòu)以及跨平臺應(yīng)用技術(shù)開發(fā),前端主要采用Vue 框架構(gòu)建用戶界面,使用Axios 獲取數(shù)據(jù)并渲染到頁面;后端主要使用Django Web 框架,使用ORM 進行數(shù)據(jù)操作,同時,安裝REST framework 庫來構(gòu)建REST API,只向前端頁面提供JSON 數(shù)據(jù);使用EMQX 中間件實現(xiàn)物聯(lián)網(wǎng)設(shè)備與平臺的連接,實現(xiàn)終端設(shè)備與平臺的數(shù)據(jù)交換;用戶APP 使用跨平臺技術(shù)開發(fā),減少維護成本與開發(fā)難度。
邊緣計算網(wǎng)關(guān)的設(shè)計目標(biāo)是利用分布式的網(wǎng)絡(luò)設(shè)施來執(zhí)行異常判斷以減輕云服務(wù)器的壓力,即盡可能靠近數(shù)據(jù)源,在邊緣計算網(wǎng)關(guān)上直接處理部分異常數(shù)據(jù),以減少傳輸?shù)綌?shù)據(jù)中心的數(shù)據(jù)量。
當(dāng)多個變量的測量序列存在時,時間序列是多元的。不同傳感器在不同時間采集的值,形成多變量時間序列,輸出結(jié)果分為兩類:數(shù)據(jù)正常和數(shù)據(jù)異常。因此,多傳感器數(shù)據(jù)傳輸可以表述為MTSS 分類問題。
MTSS 分類器分為3 類:基于相似度的分類器、基于特征的分類器和深度學(xué)習(xí)的分類器?;谙嗨菩缘姆椒ɡ孟嗨菩远攘浚ㄈ鐨W幾里得距離)來比較兩個MTSS。動態(tài)時間規(guī)整(DTW)使用K 最近鄰算法來計算相似度,也稱kNN-DTW。MTSS 的kNN-DTW 有兩種算法:被動的DTWD和主動的DTWI,二者沒有明顯的差別。DTWI使用DTW 獨立測量的所有維度的累積距離。DTWD利用一維時間序列進行類似的計算,它考慮了多維上的平方歐氏累積距離[2]。
基于特征的方法包括形狀元和詞袋BoW 模型。形狀元模型使用子序列(形狀元)將原始時間序列轉(zhuǎn)換為更易于分類的低維空間。gRSF 和UFS 是MTSS 分類中當(dāng)前最先進的形狀元模型。這兩種模型放寬了時間限制,通過隨機選擇形狀元在多維空間中尋找有區(qū)別的子序列(形狀元探索)。gRSF在隨機抽取的形狀元素上創(chuàng)建決策樹,gRSF 在隨機抽取的shapelets 上創(chuàng)建決策樹,平均表現(xiàn)出比UFS 更好的性能(14MTSS 數(shù)據(jù)集)。同時,BoW 模型、mv ARF、SMTSS 和WEASEL+MUSE 將時間序列轉(zhuǎn)換成一個離散的詞袋,并利用一個詞的直方圖表示來進行分類。與gRSF、LPS、mv ARF 和SMTS 相比,WEASEL+MUSE 的平均結(jié)果最好(20 MTSS 數(shù)據(jù)集)。WEASEL+MUSE 通過在每個離散維(符號傅立葉近似)上應(yīng)用不同大小的滑動窗口來捕獲特征生成詞袋。
深度學(xué)習(xí)方法使用長短期記憶(LSTM)和/或卷積神經(jīng)網(wǎng)絡(luò)(CNN)來提取潛在特征。當(dāng)前,最先進的模型(MLSTMFCN)由LSTM 層和層疊CNN 層以及擠壓和激發(fā)塊組成,以生成潛在特征。MLSTM-FCN 在大數(shù)據(jù)集上的平均表現(xiàn)優(yōu)于WEASEL+MUSE(相對于測試的20 個MTSS 數(shù)據(jù)集)。
因此,在這項工作中,我們在以上3 類MTSS 分類器中選擇了同類中最好的分類器DTWD、DTWI、WEASEL+MUSE 和MLSTM-FCN 分類器。
本文介紹了分布式多傳感器網(wǎng)關(guān)算法,這是一種新的兩步疊加集成方法。疊加集成是一種將子模型的預(yù)測作為輸入,再嘗試學(xué)習(xí)如何最好地組合輸入,從而作出更好的輸出預(yù)測的方法。網(wǎng)關(guān)根據(jù)每個傳感器收集的數(shù)據(jù)預(yù)測數(shù)據(jù)是否正常,并且使用詞袋聚合并表示這些類預(yù)測,以便計算最終類別的最佳預(yù)測。第一步,在傳感器級別預(yù)測MTSS 類別:系統(tǒng)中有多種類型的傳感器,在實驗中為每種傳感器類型訓(xùn)練一個MTSS分類器。分類器使用固定時間長度組成的數(shù)據(jù)集進行訓(xùn)練,其中時間長度可在網(wǎng)關(guān)中設(shè)置。在圖2 的上半部分說明了訓(xùn)練方法的第一步。為了在單個傳感器水平上預(yù)測異常類別,采用了WEASEL+MUSE MTSS 分類器。WEASEL+MUSE 在每個維度上創(chuàng)建一個MTSS 符號,生成一組由長度、單圖、雙圖、維度構(gòu)成的混合特征,最后形成基于MTSS 的熱度編碼。WEASEL+MUSE 有以下3 個特征:第一,它的符號表示過濾掉數(shù)據(jù)集中的噪聲;第二,它是相位固定的,這提高了泛化能力;第三,它保持了相互作用,這允許描述不同維度上事件的同時發(fā)生。第二步,通過組合傳感器來預(yù)測數(shù)據(jù)異常:收集來自不同傳感器的類預(yù)測,并形成詞袋。將每個傳感器預(yù)測類別作為一類詞,利用每個異常詞的相對頻率向量對其進行分類。該頻率向量通過實例數(shù)進行歸一化,以獲得相對頻率向量。最后結(jié)合各個傳感器異常性的文字包來描述具有破壞潛力的異常的全譜。在圖2 的下半部分說明了訓(xùn)練方法的第二步。
圖2 詞袋識別的結(jié)構(gòu)圖
分布式算法需要分兩步執(zhí)行。算法的第一步執(zhí)行在基礎(chǔ)設(shè)施的傳感器層級,在每個傳感器上運行MTSS 分類器,以便根據(jù)每個傳感器產(chǎn)生的數(shù)據(jù)生成傳感器層級的預(yù)測,再將來自每個傳感器的MTSS 分類器的輸出通過網(wǎng)絡(luò)傳輸?shù)骄W(wǎng)關(guān)的云數(shù)據(jù)中心部分,隨后在云數(shù)據(jù)中心層執(zhí)行第二部分算法,即先匯總來自傳感器的所有類預(yù)測,再利用機器學(xué)習(xí)的方法,形成最終的類預(yù)測。與傳統(tǒng)的集中式EEW 網(wǎng)絡(luò)結(jié)構(gòu)相比,這種方法減少了網(wǎng)絡(luò)上的數(shù)據(jù)量,因為傳感器產(chǎn)生的大多數(shù)數(shù)據(jù)與異常事件無關(guān),因此,可以過濾掉。此外,傳感器級別的預(yù)測實際上是數(shù)據(jù)的聚合,因此,這有助于減少發(fā)送到數(shù)據(jù)中心的數(shù)據(jù)量。
在物聯(lián)網(wǎng)監(jiān)測系統(tǒng)中,異常問題主要是指傳感器數(shù)據(jù)的異常,即在時域或空間域中具有高度規(guī)律性的傳感器數(shù)據(jù)中出現(xiàn)不符合規(guī)律的數(shù)據(jù)。造成數(shù)據(jù)異常的原因很多,既可能是監(jiān)測區(qū)域的突發(fā)事件,也包括傳感器節(jié)點自身的異常如硬件模塊損壞、節(jié)點電量偏低以及無線通信過程中的干擾等。本文只針對數(shù)據(jù)異常進行檢測,不對造成異常的原因進行分析。
潛在的主題模式pLSA 適用于容量為V 的詞匯表,為了學(xué)習(xí)詞匯表中的時空詞,假定在訓(xùn)練數(shù)據(jù)集中,描述符集合對應(yīng)所有檢測到的傳感器時空數(shù)據(jù)。利用K-means 算法和歐氏距離作為聚類尺度來生成代碼本。每個聚類的中心定義一個時空詞,這樣每個傳感器檢測到的值被劃分到唯一的類成員,也就是時空詞,因而每一類傳感器可以從代碼表中找出一個時空詞的集合與之對應(yīng)。在文本字典中,潛在主題模型pLSA 依賴于M 個傳感器。
LSA 是通過詞之間的關(guān)聯(lián)意思來對長文本進行解讀的一種理論方法。假設(shè)有M(j=1,2,…,M)個數(shù)據(jù)序列包含詞匯表V(1,2,…,V)個時空詞。數(shù)據(jù)的集合可以表示為V×M 的共生表M,其中,m(wi,dj)表示在數(shù)據(jù)dj出現(xiàn)時空詞wi的數(shù)量,一個潛在的主題變量zk與在數(shù)據(jù)dj中出現(xiàn)的時空詞wi相聯(lián)系。每個主題對應(yīng)著傳感器類別,如溫濕度、照度等傳感器。聯(lián)合概率P(wi,dj,zk)的圖模型由圖3 水平部分表示。節(jié)點表示隨機變量,帶陰影的節(jié)點是觀察變量,不帶陰影的是隱含量。在本節(jié)中,d 是數(shù)據(jù)序列;z 是傳感器類別;w 是時空詞。模型的參數(shù)使用最大期望值來進行無監(jiān)督數(shù)的學(xué)習(xí)[3,4]。
圖3 混合潛在含語義分析概率模型
觀察值(dj,wi)假定是獨立的,可以忽略主題詞zk來獲取條件概率P(wi|dj)。
式中,P(zk|dj)是主題詞zk發(fā)生在數(shù)據(jù)dj中的概率;P(wi|zk)是時空詞wi劃分為傳感器zk的概率?,F(xiàn)在有K 個主題詞,也就是有K 個傳感器,這個模型就有K 種傳感器種類組合,即通過表面凸組合或行為概率P(wi|zk)得到指定數(shù)據(jù)詞分布P(wi|dj)。使用權(quán)重特定因子P(zk|dj)來表示特定的數(shù)據(jù)。每個數(shù)據(jù)流作為傳感器類別建模,由混合柱狀圖組成特殊數(shù)據(jù)的柱狀圖對應(yīng)傳感器種類。通過計算得到模型直方圖P(wi|zk)和混合系數(shù)P(zk|dj)來確定傳感器種類。通常,每個傳感器數(shù)據(jù)都被建模為異常類別的混合物:特定傳感器數(shù)據(jù)的直方圖由對應(yīng)于每個異常類別的直方圖的混合物組成,此后通過確定異常類別直方圖P(wi|zk)(所有傳感器數(shù)據(jù)通用)和混合系數(shù)P(zk|dj)(每個傳感器數(shù)據(jù)專用)來擬合模型。為確定出現(xiàn)在數(shù)據(jù)中時空詞最大可能性概率模型,對目標(biāo)函數(shù)使用最大期望值算法來得到參數(shù)的最大相似度估計值:
由于算法已經(jīng)學(xué)習(xí)了異常類別模型,下一步的任務(wù)是對新的傳感器數(shù)據(jù)序列進行分類。從一組不同的訓(xùn)練序列中獲得了特定于異常類別的傳感器數(shù)據(jù)單詞分布P(wi|zk),當(dāng)接收到一個新的傳感器數(shù)據(jù)時,看不見的傳感器數(shù)據(jù)通過P(w|z)投射到簡單的平面。接著找出混合系數(shù)P(zk|dtest),需要找到混合系數(shù),以使測量的經(jīng)驗分布與實際分布之間的KL 偏差最小化。與學(xué)習(xí)場景類似,使用EM 算法來尋找解決方案。因此,通過選擇最能解釋觀察結(jié)果的行動類別來作出分類決策,arg 為變元(即自變量argument)的英文縮寫,即:
此外,我們?nèi)栽谶M一步研究如何在一個傳感器數(shù)據(jù)序列中定位多個異常。盡管時空詞包模型本身并不能明確地表示局部傳感器數(shù)據(jù)區(qū)域的空間或時間關(guān)系,但它能夠在每個傳感器數(shù)據(jù)中定位不同的類型。
在本節(jié)實驗中,采用農(nóng)業(yè)大棚的數(shù)據(jù)進行實驗,選取250 m×200 m 的區(qū)域,模擬布設(shè)30 套無線傳感器節(jié)點,節(jié)點MCU為STM32,傳輸芯片為LoRa 1278,傳感器包括溫度、濕度、光照和二氧化碳傳感器。放置了兩套樹莓派網(wǎng)關(guān),搭載SX1302芯片,WAN 口為RJ45 有線傳輸,一臺內(nèi)置有詞袋異常檢測算法,一臺為透傳網(wǎng)關(guān)。在Windows 10 系統(tǒng)上布設(shè)MQTT 服務(wù)器。異常的詞袋學(xué)習(xí)訓(xùn)練為單個節(jié)點單個溫度傳感器異常訓(xùn)練,當(dāng)網(wǎng)關(guān)檢測出數(shù)據(jù)異常時,不向MQTT 發(fā)送消息。所有實驗在此環(huán)境中分別測試。
實驗方法1:通過人為突然改變單個節(jié)點單個傳感器的值,用手電筒突然照射固定照度傳感器,檢查邊緣計算網(wǎng)關(guān)能否檢測出異常值。實驗方法2:通過人為突然改變單個節(jié)點多個傳感器的值,在固定傳感器邊上點火,檢查邊緣計算網(wǎng)關(guān)能否檢測出異常值。實驗方法3:通過人為突然改變多個節(jié)點單個傳感器的值,用手電筒突然照射多個照度傳感器,檢查邊緣計算網(wǎng)關(guān)能否檢測出異常值。實驗方法4:通過人為突然改變多個節(jié)點多個傳感器,在多個傳感器邊上點火,檢查邊緣計算網(wǎng)關(guān)能否檢測出異常值。
本次實驗節(jié)點設(shè)定每2 min 采集發(fā)送數(shù)據(jù),實驗時長為4 h,以上每種實驗方法人為控制發(fā)生次數(shù)為50 次。以透傳網(wǎng)關(guān)發(fā)送的消息數(shù)為基數(shù),帶詞包網(wǎng)關(guān)檢測異常后消息不發(fā)送,二者的差就是網(wǎng)關(guān)檢測出的異常次數(shù)。實驗結(jié)果如表1 所示。
表1 網(wǎng)關(guān)測試結(jié)果
以上實驗表明,基于詞包的網(wǎng)關(guān)異常數(shù)據(jù)檢測能有效地檢測異常數(shù)據(jù),對減輕服務(wù)器壓力具有一定的作用,減少了網(wǎng)關(guān)不必要的通信量。由于訓(xùn)練集和方法的問題,網(wǎng)關(guān)對單一傳感器異常的檢測效果較好,但對多節(jié)點多傳感器異常的識別能力仍有待提高,傳感器異常相關(guān)性問題也有待研究。