田黎明,张冬梅
一种基于信息熵的传感器数据异常检测方法
田黎明,张冬梅
(北京邮电大学 网络空间安全学院,北京 100876)
传感器数据采集作为系统感知信息和获取数据的重要手段,其数据的真实性和可靠性至关重要,数据异常检测能提升数据的质量,挖掘出数据的潜在信息。基于分类、聚类等的检测方法依赖于数据的空间相关性,且复杂度很高,不适用于智能家居等小型物联网环境。基于数据距离的检测方法适用于此场景,但是存在误报率高的问题。针对这些问题,本文将传感器滑动窗口内的数据值作为离散随机变量,定义了数据流的信息熵,在此基础上提出了一种通过计算滑动窗口内信息熵进而检测数据异常的方法。模拟实验表明,本文提出的方法能高效地检测异常,并且有更高的检测率及更低的误报率,符合预期结果。
信息熵;滑动窗口;异常概率;异常检测;时间相关性;统计特征
传感器作为系统感知信息和获取数据的重要设备,在生态环境监测、工农业生产监控乃至国防军工等领域都有广泛的应用。由于传感器部署区域不确定且设备资源有限,其易受到外界因素的干扰和破坏,故广泛存在传感器数据的不可靠性问题,如何保障和提高传感器数据的质量是一个亟需解决的问题。
当前针对传感器数据异常检测的研究集中于无线传感器网络(WSN)环境[1]。在WSN环境下,为了提高系统整体的可用性,大量的无线传感器被分散部署在能量和带宽均受限的地区,这些传感器节点密集组网、相互协作地提供数据服务。在该环境下可以利用不同传感器节点数据流的时间与空间相关性进行异常检测[2]。但是将这些检测方法应用于一些智能家居或智能楼宇等小型物联网环境时,由于环境中部署的同类型传感器节点数量少,数据的空间相关性不足,基于空间相关性进行检测不仅增加方法的复杂度,而且检测效果也不理想。在该场景下,应综合利用数据的时间相关性和统计特性对数据进行异常检测。
本文结构如下:第一部分综述传感器网络领域现有的数据异常检测方法;第二部分介绍本文的相关定义;第三部分详细阐述以信息熵为基础的异常检测方法的检测原理和具体设计;第四部分通过实验验证方法的效果。
无线传感器网络领域内的数据异常检测方法主要分为以统计为基础的、以距离为基础的、以分类为基础的和以聚类为基础的。
文献[3]提出通过计算数据的变宽直方图进行异常数据检测,即采用数据融合的技术将网络中的动态数据聚合为变宽直方图进而检测出异常数据。文献[4]提出一种基于假设数学统计模型和核密度函数的异常检测方法。但该型方法需要传感器数据分布的先验知识,依赖于确定的数学模型,存在局限性,通用性弱。文献[5~7]提出通过计算数据实例间的距离来判断数据异常的方法,这种类型的方法便于理解和实现,但在检测因开启空调等引起数据正常变化的情况时存在误报率过高的问题,有进一步改进算法的空间。文献[8]提出一种基于SVM(Support Vector Machine)的异常检测算法,该算法先使用训练数据集来学习出一个分类模型,然后将数据实例分到所学习的类中,数据所属的类数据较少时或不属于任何分类时就被认为是异常数据。该算法需要较大的数据样本作为训练集,样本的数量会成为算法的瓶颈,而且异常检测的效果不理想。文献[9]提出了一种基于K-means算法的异常检测算法,该算法通过将相似的数据实例分到具有相似行为的数据簇中来实现对异常的检测。该方法基于数据的空间相关性,未能引入和利用数据流的统计特征。文献[10]提出一种通过结合K-means算法和FP增长算法进行异常检测的算法,该方法先对数据建模,而后检测异常数据。该方法聚类中心位置与数量的选择对检测结果有很大的影响,算法检测效果不稳定,复杂度很高。文献[11]提出了一种利用多模态数据流的相干性进行异常检测的方法,该方法只适用于高数据维度的数据流,在数据维度低时的效果不好。文献[12,13]提出基于分布式计算进行异常检测的方法,该类型方法在大型分布式环境下具有良好的检测效果,但是算法复杂不易实现,不适合部署在家居环境中。
在无线传感器网络领域,数据异常检测常通过检测数据之间的时间、空间相关性来实现。但是在特定的小型物联网环境下,同类型传感器节点数量不足,利用数据流的时序特征进行检测有更好的效果。现有的基于距离的检测方法适用于此场景,但是对数据流等距正常变化的场景存在误报率高的问题。本文针对该场景和现有方法的缺陷,设计了一种基于信息熵的传感器数据异常检测方法。相比文献中提及的方法,该方法不需要额外的传感器节点提供数据,节省了通讯、存储和计算的开支,并引入了滑动窗口,通过计算信息熵改进了在空调开启时引起数据流等距变化等正常场景下的检测,降低了误报率。在单传感器数据流的环境下,可高效准确地检测到数据异常。
即传感器数据流的时间序列具有无限延展性,但传感器节点的存储空间和计算能力有限,故本文利用滑动窗口模型对数据流进行处理。
信息熵(Information entropy)是系统中数据有序程度的度量,和离散随机变量出现概率相关,即一个系统越是有序,分布越集中,信息熵就越小,反之,一个系统越是混乱无序,分布越平均,信息熵就越大。通常在正常数据的邻域里,数据有序且紧凑,信息熵保持稳定,而在异常数据的邻域里,信息熵出现较大波动[14]。
本文异常检测的对象为单个传感器节点,首先获取一段时间内的数据序列,然后计算得到滑动窗口信息熵序列,再计算出滑动窗口内数据值异常概率和信息熵异常概率,最后通过计算联合异常概率判断数据流是否发生异常。当传感器节点的联合异常概率过高时,可以认为发生了数据异常。
对于一个温度传感器,其每天的温度数据均遵循着相同的规律,温度采样值在此基础上小幅波动。其数据值序列具有时序特征,在时间上存在相关性,信息熵序列反映了数据流的统计特征,具有统计特征的相关性。通过综合计算数据值异常概率和信息熵异常概率,达到了综合利用数据流的时间相关性及统计特征的目的,从而可以更加准确地检测出异常数据。
在抽样概率的基础上计算滑动窗口信息熵:
随着窗口滑动,依次计算窗口数据的信息熵,故信息熵的时间序列可表示为:
在文献[15]中,Knorr EM等人提出一种通过计算数据对象之间距离进行异常检测的方法,这种方法对数据异常的定义为:在数据集中,对于一个数据对象,在距离的圆内存在的数据对象数小于,则认为是异常。在每个检测条件下都存在一个相邻数据对象数阈值k且相互独立,故难以在多个检测条件下进行综合判定。本文在上述基础上,定义了异常概率与联合异常概率,使之适用于多条件下异常的综合判定,从而应用于数据流时间相关性及统计特征的综合利用。
假设数据集中有个数据对象,若对于数据集中一个数据对象O,中存在个数据对象与对象的距离大于,则定义数据对象的异常概率p为/。其中取数据集的标准差。
图2 滑动窗口示意图
如图2所示,滑动窗口大小为5。对于数据对象7,在窗口内的邻居对象为(3,4,5),不相邻的对象为6,数据点7的数据值异常概率为20%。
如果满足下式,那么该测量值可能为异常数据。
实验环境:Intel Core 4代i5-4210H笔记本,8G内存,256G硬盘,操作系统为Windows 10,使用python软件平台对所提出的算法进行仿真分析。实验数据来自于研究领域共同认可的英特尔伯克利研究所传感器数据集,并通过向其中注入异常数据产生带有数据异常标签的数据流。实验中滑动窗口的大小分别选择为200、400、600、800和1000。
评价指标:本文选择检测率和误报率作为算法的主要评价指标。检测率TP(True Positive rate)是指算法检测到的异常数据样本数与实际的异常数据样本总数的比值;误报率FP(False Positive rate)是指算法将正常数据误判为异常数据的样本数与正常数据样本总数的比值[16]。
本文设计的异常检测算法综合利用了数据流的时间相关性及统计特征,因此选择将本文方法(方案1)与仅利用数据距离的检测方法[6](方案2)以及仅利用信息熵距离的检测方法(方案3)进行对比。分别基于方案1、方案2、方案3进行实验,每次实验时滑动窗口的大小分别设定为200、400、600、800和1000。实验的检测率对比结果如图2所示,误报率对比结果如图3所示。
图3 检测率对比
图4 误报率对比
从结果中可以看出,方案1检测率和误报率的表现都优于方案2和方案3。在滑动窗口值起始较小时,随着滑动窗口的增大,方案1的检测率比方案2的提升幅度更大,误报率也有更大幅度地下降。当滑动窗口增大到800后,方案1的检测率和误报率性能不再明显提升,此时达到了该算法的瓶颈。从算法稳定性上看,随滑动窗口的增大,方案1和方案3检测率稳定上升,误报率稳步下降,而方案2出现了一定的波动。基于上述实验接轨,本文采用的方法有更高的检测率、更低的误报率和更佳的稳定性。
本文针对智能家居传感器等小型物联网应用场景,结合现有的研究方法和成果,提出了一种基于信息熵的滑动窗口内异常检测算法。该方法通过综合利用单传感器数据流的时间相关性及统计特征,可以更加准确地区分数据流的正常和异常变化,相比现有的仅利用数据距离进行判定的检测方法,提高了检测率的同时降低了误报率。实验结果表明,该方法在大数据规模下具有理想的检测效果。该方法计算联合异常概率时需要权重参数,未来需要对参数的选择依据进行研究,进一步提升方法的检测率,降低误报率。
[1] Branch J W, Giannella C, Szymanski B, et al. In-network outlier detection in wireless sensor networks[J]. Knowledge and information systems, 2013, 34(1): 23‒54.
[2] 崔莉, 鞠海玲, 苗勇等. 无线传感器网络研究进展[J]. 计算机研究与发展, 2005, 42(1): 163‒174.
[3] 姜旭宝, 李光耀, 连朔.基于变宽直方图的无线传感器网络异常数据检测算法[J].计算机应用, 2011, 31(3): 694-697
[4] Samparthi V S K, Verma H K. Outlier Detection of Data in Wireless Sensor Networks Using Kernel Density Estimation[J]. International Journal of Computer Applications, 2010, 5(6): 28-32.
[5] 赵学良, 朱庆生. 基于距离的数据流离群点快速检测[J].世界科技研究与发展, 2013, 35(4): 462-464.
[6] 龙滢, 裘晓峰. 基于滑动窗口的单传感器数据异常检测[J]. 软件, 2014, 35(12): 49-57
[7] Oussama Ghorbel, Walid Ayedi, Hichem Snoussi, Mohamed Abid. Fast and Efficient Outlier Detection Method in Wireless Sensor Networks. IEEE Sensors Journal, 2015, 15(6): 3403 - 3411
[8] Zhang Y, Meratnia N, Havinga P J M. Distributed Online Outlier Detection in Wireless Sensor Networks Using Ellipsoidal Support Vector Machine[J]. Ad Hoc Networks, 2013, 11(3): 1062-1074
[9] Kiss I, Genge B, Haller P, et al. Data clustering-based anomaly detection in industrial control systems[C]//Proc of International Conference on Intelligent Computer Communication and Processing. 2014: 275-281
[10] Elijorde F, Kim S, Lee J. A wind turbine fault detection approach based on cluster analysis and frequent pattern mining[J]. Ksii Transactions on Internet & Information Systems, 2014, 8(2): 664-677
[11] 费欢, 肖甫, 李光辉等. 基于多模态数据流的无线传感器网络异常检测方法[J]. 计算机学报, 2017, 40(8): 1829- 1842.
[12] Wenjie Li, Francesca Bassi, Davide Dardari, Michel Kieffer, Gianni Pasolini. Low-complexity distributed fault detection for wireless sensor networks. IEEE International Conference on Communications (ICC). 2015.
[13] Wenjie Li, Francesca Bassi, Davide Dardari, Michel Kieffer, Gianni Pasolini. Iterative Distributed Outlier Detection for Wireless Sensor Networks: Equilibrium and Convergence Analysis. IEEE 54th Annual Conference on Decision and Control (CDC). 2015.
[14] 李少波, 魏中贺, 孟伟. 基于距离的数据流在线检测算法研究[J]. 计算机应用研究, 2015, 32(12): 3579-3581.
[15] Knorr E M, Ng R T. Algorithms for Mining Distance-Based Outliers in Large Datasets[C]// International Conference on Very Large Data Bases. Morgan Kaufmann Publishers Inc. 1998: 392-403.
[16] 胡石, 李光辉, 冯海林. 基于Top-k(σ)的无线传感器网络异常数据检测算法[J]. 南京大学学报(自然科学), 2016, 52(2): 261-269.
An Anomaly Detection Method of Sensor Data Based on Information Entropy
TIAN Li-ming, ZHANG Dong-mei
(School of Cyberspace Security, Beijing University of Post and Telecommunication, Beijing 100876, China)
As an important means to perceive information and obtain data, it is crucial to make sensor datas accurate and reliable. Data anomaly detection can improve the quality of data and the mining of potential information. The detection method based on classification and clustering relies on the spatial correlation of data, and the complexity is very high. It is not suitable for smart home and other micro IOT environments. Besides, the detection method based on data distance is suitable for this scenario, but it has a high false positive rate. In order to solve these problems, the data values in the sliding window of the sensor are used as discrete random variables, and then the information entropy of the data flow is defined. On this basis, a method of anomaly detection for data in sliding window based on information entropy is proposed. Simulation experiments show that the proposed method can detect anomalies efficiently and has higher true positive rate and lower false positive rate, which is in line with the expected results.
Information entropy; Sliding window; Anomaly probability; Outlier detection; Temporal correlation; Statistical characteristics
TP393
A
10.3969/j.issn.1003-6970.2018.09.015
田黎明(1993-),男,硕士研究生,主要研究领域:物联网安全;张冬梅(1972-),女,副教授,博士,主要研究方向:物联网安全、网络安全与软件安全。
本文著录格式:田黎明,张冬梅. 一种基于信息熵的传感器数据异常检测方法[J]. 软件,2018,39(9):69-73