APP下载

具有异常检测功能的无线边缘计算网关设计

2023-05-30褚云霞吴晓娜王海成赵泽强张军

关键词:异常检测边缘计算物联网

褚云霞 吴晓娜 王海成 赵泽强 张军

【摘  要】目前,在物联网监测中,传感器数据和现场设备数据均和云端进行交互,这使得云服务器的带宽负载和实时性反馈等方面压力增大。针对以上问题,论文设计了一种边缘计算网关,边缘计算网关既保留了连接多种传感器、设备和云端交互等基础功能,也增加了为节点设备提供本地服务、通过传感器相关性分析屏蔽异常数据、分流服务器的计算任务从而减少数据上传量等新功能。在边缘端利用词袋模型实现数据异常检测,词袋模型中输入信息是多傳感器数据,输出结果是数据异常或正常。最后,论文对农业大棚中传感器监测的湿温度、光照等数据进行了对比分析,结果表明,基于词袋模型的异常检测方法能够利用采集数据的时空相关性准确检测异常数据。

【关键词】词袋模型;异常检测;边缘计算;物联网

【中图分类号】TP391                                             【文献标志码】A                                                 【文章编号】1673-1069(2023)01-0133-04

1 引言

随着物联网技术的日新月异,有数以万计的在线节点被部署在各种环境监测和控制工作当中,由此,节点连接数量的快速增加也为物联网整体系统提出了更高的要求。边缘计算技术应运而生,边缘计算常用的设备有智能网关、轻量级服务器以及小型基站等,网关位于整个系统的中间,发挥着连接节点和云端的作用;网关为终端节点提供本地化服务与实时服务,降低终端节点的时延;网关对节点数据进行初级处理,分担云端任务,减少云端交互数据量,降低链路负载。但在物联网系统中,经常发生数据异常,为保证采集数据的准确和物联网系统的安全,利用数据自身的时空特性,本文提出了一种基于词袋的人工神经网络模型的异常检测方法。人工神经网络模型词袋具有处理复杂数据的能力,既能够分析线性相关的数据,也能够处理非线性相关的数据。由于神经网络模型训练的复杂性,训练过程被安排在云端,所得到的模型及参数将被回传至边缘计算网关用以进行后续的异常检测[1]。

2 基于边缘计算的物联网监测系统

在本文中,按照节点、网关和云端3层结构,设计了无线传感器监测节点、LoRaWAN边缘计算网关和MQTT服务器。利用LoRa无线技术低成本、广覆盖的特征,开发出具有多种传感特性及故障保护功能的线路监控单元以及基于大数据技术的具有故障诊断功能的云储存和云服务平台,以构建完整的物联网解决方案。基于边缘计算的物联网监测系统如图1所示。

2.1 无线传感器监测节点

在物联网监测系统中,节点是整个系统的基础。在监测区域,大量的无线传感器节点被用来实时感知周边环境数据,用来实时监测环境。在基于边缘计算的物联网系统框架中,无线传感器节点主要与边缘网关进行通信,与MQTT服务器的通信也由边缘计算网关作为中继进行。整个监测系统采用LoRa无线传输,连接传感器的接口类型为RS485接口,通信距离可达1 200 m;传感器设备采用进口探头,具有精度高、量程宽、一致性好等优点;由于无线传输的特点,监测系统的安装更加简单。本系统采用的是标准MODBUS RTU协议,该无线传感器监控系统具有超强的稳定性、抗干扰能力以及较强的保护性能和一流的防雷保护。

2.2 边缘计算网关

在大规模的物联网监测系统中,边缘计算网关作为中间层,向下连接传感器节点,向上连接云端。同时,对采集的数据进行异常检测,一旦检测出数据发生异常,边缘计算网关会立即将异常报告给MQTT服务器,并驱动位于底层的控制器,提供紧急应对方案。该网关采用被誉为“世界上最流行最便宜的小型电脑”的树莓派,由于树莓派的体积很小、质量很轻,而且功能丰富强大,其属于一款性价比超高的迷你电脑主机。系统采用Raspbian;网关数据接收采用LoRaWAN SX1302;传输模块采用4G或5G。在检测算法上采用离群点算法或自编码神经网络进行传感器异常数据检测。

2.3 云计算平台

云平台因其超强的计算性能和超高的存储能力,发挥着远程数据处理和控制中心的作用。在异常检测方法中,使用词袋模型检测环境监测数据并分析数据的空间相关性。物联网终端数量的快速增加为物联网整体系统提出了更高的要求,支撑设备的网络环境要求越来苛刻,由此对于物联网的协议选择和平台的负载要求也越来越高。为提供更优良的信息服务,综合现有的通信协议,选择基于TCP协议的MQTT协议作为主要的通信协议,使用EMQX消息服务器作为设备的物联网平台的接入层,由此建立一套完整的物联网系统,满足小型物联网平台或个人开发者的各类需求,赋予此系统更多的现实意义。该系统采用前后端分离的B/S架构以及跨平台应用技术开发,前端主要采用Vue框架构建用户界面,使用Axios获取数据并渲染到页面;后端主要使用Django Web框架,使用ORM进行数据操作,同时,安装REST framework库来构建REST API,只向前端页面提供JSON数据;使用EMQX中间件实现物联网设备与平台的连接,实现终端设备与平台的数据交换;用户APP使用跨平台技术开发,减少维护成本与开发难度。

3 异常检测方法

边缘计算网关的设计目标是利用分布式的网络设施来执行异常判断以减轻云服务器的压力,即尽可能靠近数据源,在边缘计算网关上直接处理部分异常数据,以减少传输到数据中心的数据量。

3.1 多元时间序列(MTSS)分类

当多个变量的测量序列存在时,时间序列是多元的。不同传感器在不同时间采集的值,形成多变量时间序列,输出结果分为两类:数据正常和数据异常。因此,多传感器数据传输可以表述为MTSS分类问题。

MTSS分类器分为3类:基于相似度的分类器、基于特征的分类器和深度学习的分类器。基于相似性的方法利用相似性度量(如欧几里得距离)来比较两个MTSS。动态时间规整(DTW)使用K最近鄰算法来计算相似度,也称kNN-DTW。MTSS的kNN-DTW有两种算法:被动的DTWD和主动的DTWI,二者没有明显的差别。DTWI使用DTW独立测量的所有维度的累积距离。DTWD利用一维时间序列进行类似的计算,它考虑了多维上的平方欧氏累积距离[2]。

基于特征的方法包括形状元和词袋BoW模型。形状元模型使用子序列(形状元)将原始时间序列转换为更易于分类的低维空间。gRSF和UFS是MTSS分类中当前最先进的形状元模型。这两种模型放宽了时间限制,通过随机选择形状元在多维空间中寻找有区别的子序列(形状元探索)。gRSF在随机抽取的形状元素上创建决策树,gRSF在随机抽取的shapelets上创建决策树,平均表现出比UFS更好的性能(14MTSS数据集)。同时,BoW模型、mv ARF、SMTSS和WEASEL+MUSE将时间序列转换成一个离散的词袋,并利用一个词的直方图表示来进行分类。与gRSF、LPS、mv ARF和SMTS相比,WEASEL+MUSE的平均结果最好(20 MTSS数据集)。WEASEL+MUSE通过在每个离散维(符号傅立叶近似)上应用不同大小的滑动窗口来捕获特征生成词袋。

深度学习方法使用长短期记忆(LSTM)和/或卷积神经网络(CNN)来提取潜在特征。当前,最先进的模型(MLSTM-FCN)由LSTM层和层叠CNN层以及挤压和激发块组成,以生成潜在特征。MLSTM-FCN在大数据集上的平均表现优于WEASEL+MUSE(相对于测试的20个MTSS数据集)。

因此,在这项工作中,我们在以上3类MTSS分类器中选择了同类中最好的分类器DTWD、DTWI、WEASEL+MUSE和MLSTM-FCN分类器。

3.2 网关的分布式机器学习算法

本文介绍了分布式多传感器网关算法,这是一种新的两步叠加集成方法。叠加集成是一种将子模型的预测作为输入,再尝试学习如何最好地组合输入,从而作出更好的输出预测的方法。网关根据每个传感器收集的数据预测数据是否正常,并且使用词袋聚合并表示这些类预测,以便计算最终类别的最佳预测。第一步,在传感器级别预测MTSS类别:系统中有多种类型的传感器,在实验中为每种传感器类型训练一个MTSS分类器。分类器使用固定时间长度组成的数据集进行训练,其中时间长度可在网关中设置。在图2的上半部分说明了训练方法的第一步。为了在单个传感器水平上预测异常类别,采用了WEASEL+MUSE MTSS分类器。WEASEL+MUSE在每个维度上创建一个MTSS符号,生成一组由长度、单图、双图、维度构成的混合特征,最后形成基于MTSS的热度编码。WEASEL+MUSE有以下3个特征:第一,它的符号表示过滤掉数据集中的噪声;第二,它是相位固定的,这提高了泛化能力;第三,它保持了相互作用,这允许描述不同维度上事件的同时发生。第二步,通过组合传感器来预测数据异常:收集来自不同传感器的类预测,并形成词袋。将每个传感器预测类别作为一类词,利用每个异常词的相对频率向量对其进行分类。该频率向量通过实例数进行归一化,以获得相对频率向量。最后结合各个传感器异常性的文字包来描述具有破坏潜力的异常的全谱。在图2的下半部分说明了训练方法的第二步。

分布式算法需要分两步执行。算法的第一步执行在基础设施的传感器层级,在每个传感器上运行MTSS分类器,以便根据每个传感器产生的数据生成传感器层级的预测,再将来自每个传感器的MTSS分类器的输出通过网络传输到网关的云数据中心部分,随后在云数据中心层执行第二部分算法,即先汇总来自传感器的所有类预测,再利用机器学习的方法,形成最终的类预测。与传统的集中式EEW网络结构相比,这种方法减少了网络上的数据量,因为传感器产生的大多数数据与异常事件无关,因此,可以过滤掉。此外,传感器级别的预测实际上是数据的聚合,因此,这有助于减少发送到数据中心的数据量。

3.3 异常问题

在物联网监测系统中,异常问题主要是指传感器数据的异常,即在时域或空间域中具有高度规律性的传感器数据中出现不符合规律的数据。造成数据异常的原因很多,既可能是监测区域的突发事件,也包括传感器节点自身的异常如硬件模块损坏、节点电量偏低以及无线通信过程中的干扰等。本文只针对数据异常进行检测,不对造成异常的原因进行分析。

3.4 基于词袋的异常检测方法

潜在的主题模式pLSA适用于容量为V的词汇表,为了学习词汇表中的时空词,假定在训练数据集中,描述符集合对应所有检测到的传感器时空数据。利用K-means算法和欧氏距离作为聚类尺度来生成代码本。每个聚类的中心定义一个时空词,这样每个传感器检测到的值被划分到唯一的类成员,也就是时空词,因而每一类传感器可以从代码表中找出一个时空词的集合与之对应。在文本字典中,潜在主题模型pLSA依赖于M个传感器。

LSA是通过词之间的关联意思来对长文本进行解读的一种理论方法。假设有M(j=1,2,…,M)个数据序列包含词汇表V(1,2,…,V)个时空词。数据的集合可以表示为V×M的共生表M,其中,m(wi,dj)表示在数据dj出现时空词wi的数量,一个潜在的主题变量zk与在数据dj中出现的时空词wi相联系。每个主题对应着传感器类别,如温湿度、照度等传感器。联合概率P(wi,dj,zk)的图模型由图3水平部分表示。节点表示随机变量,带阴影的节点是观察变量,不带阴影的是隐含量。在本节中,d是数据序列;z是传感器类别;w是时空词。模型的参数使用最大期望值来进行无监督数的学习[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发生在数据dj中的概率;P(wi|zk)是时空词wi划分为传感器zk的概率。现在有K个主题词,也就是有K个传感器,这个模型就有K种传感器种类组合,即通过表面凸组合或行为概率P(wi|zk)得到指定数据词分布P(wi|dj)。使用权重特定因子P(zk|dj)来表示特定的数据。每个数据流作为传感器类别建模,由混合柱状图组成特殊数据的柱状图对应传感器种类。通过计算得到模型直方图P(wi|zk)和混合系数P(zk|dj)来确定传感器种类。通常,每个传感器数据都被建模为异常类别的混合物:特定传感器数据的直方图由对应于每个异常类别的直方图的混合物组成,此后通过确定异常类别直方图P(wi|zk)(所有传感器数据通用)和混合系数P(zk|dj)(每个传感器数据专用)来拟合模型。为确定出现在数据中时空词最大可能性概率模型,对目标函数使用最大期望值算法来得到参数的最大相似度估計值:

(3)

由于算法已经学习了异常类别模型,下一步的任务是对新的传感器数据序列进行分类。从一组不同的训练序列中获得了特定于异常类别的传感器数据单词分布P(wi|zk),当接收到一个新的传感器数据时,看不见的传感器数据通过P(w|z)投射到简单的平面。接着找出混合系数P(zk|dtest),需要找到混合系数,以使测量的经验分布与实际分布之间的KL偏差最小化。与学习场景类似,使用EM算法来寻找解决方案。因此,通过选择最能解释观察结果的行动类别来作出分类决策,arg为变元(即自变量argument)的英文缩写,即:

Action Category=arg P(zk,dtest)     (4)

此外,我们仍在进一步研究如何在一个传感器数据序列中定位多个异常。尽管时空词包模型本身并不能明确地表示局部传感器数据区域的空间或时间关系,但它能够在每个传感器数据中定位不同的类型。

4 测试实验

在本节实验中,采用农业大棚的数据进行实验,选取250 m×200 m的区域,模拟布设30套无线传感器节点,节点MCU为STM32,传输芯片为LoRa 1278,传感器包括温度、湿度、光照和二氧化碳传感器。放置了两套树莓派网关,搭载SX1302芯片,WAN口为RJ45有线传输,一台内置有词袋异常检测算法,一台为透传网关。在Windows 10系统上布设MQTT服务器。异常的词袋学习训练为单个节点单个温度传感器异常训练,当网关检测出数据异常时,不向MQTT发送消息。所有实验在此环境中分别测试。

实验方法1:通过人为突然改变单个节点单个传感器的值,用手电筒突然照射固定照度传感器,检查边缘计算网关能否检测出异常值。实验方法2:通过人为突然改变单个节点多个传感器的值,在固定传感器边上点火,检查边缘计算网关能否检测出异常值。实验方法3:通过人为突然改变多个节点单个传感器的值,用手电筒突然照射多个照度传感器,检查边缘计算网关能否检测出异常值。实验方法4:通过人为突然改变多个节点多个传感器,在多个传感器边上点火,检查边缘计算网关能否检测出异常值。

本次实验节点设定每2 min采集发送数据,实验时长为4 h,以上每种实验方法人为控制发生次数为50次。以透传网关发送的消息数为基数,带词包网关检测异常后消息不发送,二者的差就是网关检测出的异常次数。实验结果如表1所示。

以上实验表明,基于词包的网关异常数据检测能有效地检测异常数据,对减轻服务器压力具有一定的作用,减少了网关不必要的通信量。由于训练集和方法的问题,网关对单一传感器异常的检测效果较好,但对多节点多传感器异常的识别能力仍有待提高,传感器异常相关性问题也有待研究。

【参考文献】

【1】于天琪,朱咏絮,王现斌.基于边缘计算的物联网监测系统中利用自编码神经网络实现的异常检测[J].物联网学报,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].中国图象图形学报,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.

猜你喜欢

异常检测边缘计算物联网
边缘计算下移动智能终端隐私数据的保护方法
边缘计算在农业物联网中的应用
从“边缘计算”看未来企业办公场景
基于度分布的流量异常在线检测方法研究
无线Mesh网络安全性研究
无线Mesh网络基础知识
基于高职院校物联网技术应用人才培养的思考分析
中国或成“物联网”领军者