褚云霞 吳曉娜 王海成 趙澤強 張軍
【摘 ?要】目前,在物聯(lián)網(wǎng)監(jiān)測中,傳感器數(shù)據(jù)和現(xiàn)場設(shè)備數(shù)據(jù)均和云端進行交互,這使得云服務(wù)器的帶寬負載和實時性反饋等方面壓力增大。針對以上問題,論文設(shè)計了一種邊緣計算網(wǎng)關(guān),邊緣計算網(wǎng)關(guān)既保留了連接多種傳感器、設(shè)備和云端交互等基礎(chǔ)功能,也增加了為節(jié)點設(shè)備提供本地服務(wù)、通過傳感器相關(guān)性分析屏蔽異常數(shù)據(jù)、分流服務(wù)器的計算任務(wù)從而減少數(shù)據(jù)上傳量等新功能。在邊緣端利用詞袋模型實現(xiàn)數(shù)據(jù)異常檢測,詞袋模型中輸入信息是多傳感器數(shù)據(jù),輸出結(jié)果是數(shù)據(jù)異常或正常。最后,論文對農(nóng)業(yè)大棚中傳感器監(jiān)測的濕溫度、光照等數(shù)據(jù)進行了對比分析,結(jié)果表明,基于詞袋模型的異常檢測方法能夠利用采集數(shù)據(jù)的時空相關(guān)性準確檢測異常數(shù)據(jù)。
【關(guān)鍵詞】詞袋模型;異常檢測;邊緣計算;物聯(lián)網(wǎng)
【中圖分類號】TP391 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 【文獻標志碼】A ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 【文章編號】1673-1069(2023)01-0133-04
1 引言
隨著物聯(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ù)量,降低鏈路負載。但在物聯(lián)網(wǎng)系統(tǒng)中,經(jīng)常發(fā)生數(shù)據(jù)異常,為保證采集數(shù)據(jù)的準確和物聯(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]。
2 基于邊緣計算的物聯(lián)網(wǎng)監(jiān)測系統(tǒng)
在本文中,按照節(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所示。
2.1 無線傳感器監(jiān)測節(jié)點
在物聯(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接口,通信距離可達1 200 m;傳感器設(shè)備采用進口探頭,具有精度高、量程寬、一致性好等優(yōu)點;由于無線傳輸?shù)奶攸c,監(jiān)測系統(tǒng)的安裝更加簡單。本系統(tǒng)采用的是標準MODBUS RTU協(xié)議,該無線傳感器監(jiān)控系統(tǒng)具有超強的穩(wěn)定性、抗干擾能力以及較強的保護性能和一流的防雷保護。
2.2 邊緣計算網(wǎng)關(guā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ù)檢測。
2.3 云計算平臺
云平臺因其超強的計算性能和超高的存儲能力,發(fā)揮著遠程數(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é)議選擇和平臺的負載要求也越來越高。為提供更優(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ā)難度。
3 異常檢測方法
邊緣計算網(wǎng)關(guān)的設(shè)計目標是利用分布式的網(wǎng)絡(luò)設(shè)施來執(zhí)行異常判斷以減輕云服務(wù)器的壓力,即盡可能靠近數(shù)據(jù)源,在邊緣計算網(wǎng)關(guān)上直接處理部分異常數(shù)據(jù),以減少傳輸?shù)綌?shù)據(jù)中心的數(shù)據(jù)量。
3.1 多元時間序列(MTSS)分類
當(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)前,最先進的模型(MLSTM-FCN)由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分類器。
3.2 網(wǎng)關(guān)的分布式機器學(xué)習(xí)算法
本文介紹了分布式多傳感器網(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)練方法的第二步。
分布式算法需要分兩步執(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ù)量。
3.3 異常問題
在物聯(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ù)異常進行檢測,不對造成異常的原因進行分析。
3.4 基于詞袋的異常檢測方法
潛在的主題模式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]。
P(dj,wi)=P(dj)P(wi|dj) ? ? ? ? ? (1)
觀察值(dj,wi)假定是獨立的,可以忽略主題詞zk來獲取條件概率P(wi|dj)。
P(wi|dj)=P(zk|dj)P(wi|zk) ? ? ?(2)
式中,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ù)中時空詞最大可能性概率模型,對目標函數(shù)使用最大期望值算法來得到參數(shù)的最大相似度估計值:
(3)
由于算法已經(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)的英文縮寫,即:
Action Category=arg P(zk,dtest) ? ? (4)
此外,我們?nèi)栽谶M一步研究如何在一個傳感器數(shù)據(jù)序列中定位多個異常。盡管時空詞包模型本身并不能明確地表示局部傳感器數(shù)據(jù)區(qū)域的空間或時間關(guān)系,但它能夠在每個傳感器數(shù)據(jù)中定位不同的類型。
4 測試實驗
在本節(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所示。
以上實驗表明,基于詞包的網(wǎng)關(guān)異常數(shù)據(jù)檢測能有效地檢測異常數(shù)據(jù),對減輕服務(wù)器壓力具有一定的作用,減少了網(wǎng)關(guān)不必要的通信量。由于訓(xùn)練集和方法的問題,網(wǎng)關(guān)對單一傳感器異常的檢測效果較好,但對多節(jié)點多傳感器異常的識別能力仍有待提高,傳感器異常相關(guān)性問題也有待研究。
【參考文獻】
【1】于天琪,朱詠絮,王現(xiàn)斌.基于邊緣計算的物聯(lián)網(wǎng)監(jiān)測系統(tǒng)中利用自編碼神經(jīng)網(wǎng)絡(luò)實現(xiàn)的異常檢測[J].物聯(lián)網(wǎng)學(xué)報,2018,2(4):14-21.
【2】Kevin Fauvel,Daniel Balouek-Thomert,Diego Melgar,et al.A Distributed Multi-Sensor Machine Learning Approach to Earthquake Early Warning[J].Proceedings of the AAAI Conference on Artificial Intelligence,2020,34(1):403-411.
【3】張軍,劉志鏡.可變場所的異常行為識別方法[J].中國圖象圖形學(xué)報,2009,14(10):2097-2101.
【4】Juan Carlos Niebles,Hongcheng Wang,Li Fei-Fei.Unsupervised Learning of Human Action Categories Using Spatial-Temporal Words[J].International Journal of Computer Vision,2008,79(3):299-318.