APP下载

基于HMM的通信流量异常检测

2018-09-29张天雄

智能计算机与应用 2018年4期
关键词:时间序列

张天雄

摘 要:选用HMM在原模型的基础上针对算法下溢、概率转移矩阵过大、计算结果P(O|Ψ)值过小等问题分别进行优化。使用优化后的HMM对训练集进行训练,并根据训练结果,调整部分参数使模型正确率得到提高。实验结果证明HMM在通信流量时间序列异常检测方面效果更好。HMM作为异常检测的基本算法,因其不需要针对每种类型的异常点分别进行优化,从而降低了复杂度,且对未知异常值也有一定的检测能力。

关键词:异常检测; HMM; 时间序列

Abstract: The optimized HMM is used to train the training set, and some parameters are adjusted to improve the accuracy of the model according to the training results. The experimental results show that the accuracy of HMM is better than that of ARIMA model. As the basic algorithm of anomaly detection, HMM reduces the complexity because it does not need to optimize the exception point for each type, and also has certain detection ability for the unknown outliers. This paper uses distributed Euclidean distance algorithm, distributed ARIMA optimization model and distributed HMM optimization model to detect abnormal test set data. In order to compare the differences of distributed algorithms, a comparative experiment is designed and implemented.

Key words: anomaly detection; Hidden Markov Model; Time series

引言

一直以来,通信流量数据的分析是一个热门话题,很多网络管理人员都很注重通信流量的异常检测。在很多大公司以及企业中,主机的通信流量异常可直接作为检测主机通信故障的依据。因此,如何快速发现和定位主机通信流量中的异常成为时下的一个热门研究课题。近年来有些研究人员提出了一种新的主机通信流量异常检测方法,该方法的原理是通过一定的方法将时域流量信息转变到频域,并根据频域的特征来进行异常检测[1-2]。也有研究人员提出可以利用小波分析理论的结果来进行通信流量异常检测,实质上该结果为类异常检测的结果。但该理论有其局限性,因为使用的算法实现起来极其复杂,所以在处理海量数据实时计算方面效果不尽人意。除了域变换的方法,也有研究人员提出可以利用通信流量数据自相似性的特征来进行异常流量检测,根据流量的参数变化情况来判断该时刻是否出现异常。但是这种方法准确性不是很稳定,在网络繁忙且样本量大的时候检测结果较为准确,而当网络处于空闲时段时,由于流量的自相似性不强,其精度会有所下降[3]。

1 HMM模型及算法研究

应用HMM异常检测的一般步驟可以分为以下4点[4-5]:

(1)对数据进行标准化处理,可以使用Min-Max或者Z-Score标准化方法。

(2)构建HMM,初始化模型。

(3)反复训练确定模型参数以及阈值。

(4)检测测试集,给出分析检验结果。HMM异常检测步骤如图1所示。

在时间序列的异常检测中引入五元组的HMM,Ψ=(S,O,A,B,π)。异常检测中状态有2个值0或1,0为正常状态,1为异常状态。

其中:S为马尔科夫链中的状态数;O为观察值集合;A为状态转移矩阵;B为给定状态下观察值概率矩阵;π为初始化概率。

基于HMM的异常检测方法在对训练集数据学习时使用的是Baum-Welch算法和Viterbi算法,异常检测时使用的是前向算法。

1.1 数据预处理

本文使用的数据是主机通信流量数据,其中异常点均有标注。将数据存储于MySQL中,通信流量序列的每点之间的时间间隔为5 s,即在样本采集时每隔5 s采集一次通信流量值。主要内容是类似于(20151028142645,520 697)这样的键值对,该组数据表示2015年10月28日14时26分45秒时该主机的通信流量为520 697。由于通信流量数据是周期性变化的数据,如图2所示,通过观察数据的特征以及异常值的分布情况,发现其异常点均在峰值时出现。

图2为使用部分数据绘制的通信流量时序图,可以明显观察到数据具有周期性的特点,并且通过观察被标为异常的点,会发现异常值均出现在波峰的位置,即黑色实线以上部分。

在Viterbi算法中,也会出现算法下溢的情况,在连续相乘之后,用于判断是否为最优序列的P(O|Ψ)值会越来越小,因为该值仅代表一个衡量的标准,并不代表真实的概率数值,所以将该值取对数后,再参与比较。

因为在该数据集中存在很多种不同类别的异常点,例如:加性异常点、水平位移异常点、革新异常点、暂时变化异常点以及组合异常点,而异常点所占的比例很小,大概为1.8%左右。如果对每一种异常点单独建立模型的话样本数量是远远不够的,因此这里假设训练集中的点均为正常点,仅对正常点建模,模型建好之后,只要确定该模型的一个合适的阈值,使用这个阈值来区分正常点和异常点即可。在本次实验的建模过程中不对异常点和正常点进行区分。

假定为理想状态,序列中无异常值,那么初始状态转移矩阵A(°){0, 1, 1, 0}。 表示不管当前为何种状态,下一步均跳转到正常态。那么初始概率分布为π{1,0}, 表示100%的正常点。

本文采用的数据为训练集数据。训练的过程是先初始化模型,然后使用Viterbi算法求得第一次计算后的状态序列,再经过Baum-Welch算法求得第一次计算后的五元组模型参数,最后经过重估公式的判断,进行迭代运算,求得最优五元组模型,建模步骤如图4所示。

s

2 实验

对于窗口大小和阈值的选择,使用训练集数据做出如下实验。为了找到合适大小的阈值,用五组只包含正常点的序列和五组只包含异常点的序列进行实验,计算每个序列的平均P(O|Ψ)值。考虑到在数据集中异常值所占比例极小,序列长度不宜选择过长,所以这里选取观察序列长度为L=10的固定长度序列,见表2,其中W为窗口宽度。

通过观察全部为正常点序列的实验结果,可以发现正常序列与异常序列之间存在明显的阈值,全部为正常点序列的平均值均在0.055以上,所以得到结论:在使用该模型对通信流量时间序列数据进行异常检测的时候,计算某段待测序列的平均P(O|Ψ)值,如果P(O|Ψ)>0.055,说明该序列为正常序列,反之为异常序列,即该序列中包含异常点。

对于滑动窗口大小的选择,由于HMM计算量比较大,同时会占用很大的内存空间。本文中,采用列举的方法,通过比较检出率来寻找适当的窗口的宽度值。见表3,其中L为观察序列长度,W为滑动窗口宽度。

可以看出,L对实验的影响不大,检出率随着W增大而略有增大,但由于实际问题中的计算量会比较大,所以选择窗口大小因实际需求而定。

通过实验结果来看HMM效果很好,正确率在90%以上,HMM作为异常检测的基本算法,其不需要针对每种类型的异常点分别进行优化,即降低了复杂度,且对未知异常值也有一定的检测能力。

3 结束语

本文主要工作是构建HMM,根据数据特点采取优化方案以及调整参数。HMM首先使用的是Baum-Welch算法和Viterbi算法对训练集数据进行训练,對训练中出现的算法下溢和概率矩阵过大等问题,分别采取了相应的优化方法。通过训练计算出模型的最佳参数,确定五元组模型Ψ=(S,O,A,B,π)。在对通信流量时间序列数据异常监测部分,使用前向算法,但由于其随着观测序列的不断增加,计算量会越来越大,并且其计算结果会越来越小,这不利于对异常点做出判断,所以采用添加滑动窗口的方法来固定序列长度。通过对训练集数据进行训练,调整阈值和窗口宽度,使模型的正确率得到提升。

参考文献

[1] 刘文. 海量时间序列数据处理的关键技术研究[D]. 大连:大连理工大学,2017.

[2] 宋若宁. 海量数据环境下的网络流量异常检测的研究[D]. 北京:北京邮电大学,2015.

[3] 马卫,熊伟. 基于协同神经网络的网络流量异常检测[J]. 华中师范大学学报(自然科学版),2012,46(5):537-539,568.

[4] 蒲天银,秦拯. 基于Netflow的流量异常检测技术研究[J]. 计算机与数字工程,2009,37(7):115-118.

[5] LANE T D. Machine learning techniques for the computer security domain of anomaly detection[M]. Indiana, USA: Purdue University,2000.

猜你喜欢

时间序列
基于分布式架构的时间序列局部相似检测算法
基于嵌入式向量和循环神经网络的用户行为预测方法
医学时间序列中混沌现象的初步研究
基于时间序列分析南京市二手房的定价模型
基于Eviews上证综合指数预测
上证综指收益率的影响因素分析
基于指数平滑的电站设备故障时间序列预测研究
基于时间序列的我国人均GDP分析与预测
基于线性散列索引的时间序列查询方法研究
基于组合模型的能源需求预测