Adaptive Incremental Kalman Filter Based on Innovation
-
摘要: 在一定环境条件下,当系统的量测方程没有进行验证或校准时,使用该量测方程往往会产生未知的系统误差,从而导致较大的滤波误差。增量方程的引入可以有效解决欠观测系统的状态估计问题。该文考虑带未知噪声统计的线性离散增量系统,首先提出一种基于新息的噪声统计估计算法。可以得到系统噪声统计的无偏估计。进而,提出一种新的增量系统自适应Kalman滤波算法。相比已有的自适应增量滤波算法,该文所提算法得到的状态估计精度更高。两个仿真实例证明了其有效性和可行性。
-
关键词:
- 自适应Kalman滤波 /
- 增量滤波器 /
- 欠观测系统 /
- 增量系统 /
- 滤波精度
Abstract: Under certain environmental conditions, the unknown system errors often occur and yield to larger filtering errors when the unverified or uncalibrated measurement equation is used. Incremental equation can be introduced, which can effectively solve the problem of state estimation for the systems under poor observation condition. In this paper, the linear discrete incremental system with unknown noise statistics is considered. Firstly, a noise statistics estimation algorithm is proposed based on innovation. The unbiased estimation of system noise statistics can be obtained. Furthermore, a new incremental system adaptive Kalman filtering algorithm is proposed. Compared with the existing adaptive incremental filtering algorithm, the state estimation accuracy of the proposed algorithm is higher. Two simulation examples prove its effectiveness and feasibility. -
1. 引言
无线传感器网络(Wireless Sensor Networks, WSN)流量异常检测技术运用数据挖掘、机器学习等方法对流量数据进行统计分析,以判断网络是否存在异常运行或入侵行为,对维护网络安全具有重要意义,如何及时、准确地检测出异常流量是当前WSN流量异常检测技术亟需解决的问题[1]。目前,网络流量异常检测技术主要包括基于神经网络模型、基于统计分析方法和基于聚类分析算法[2]。
在WSN流量异常实时检测中,直接通过连续采样获得的流量数据是没有标记的,考虑到通常需要利用大量带标签的数据训练神经网络模型以增强模型的泛化能力[3,4],因此,基于神经网络模型的检测技术不适用于实时的WSN流量异常检测环境。基于统计分析方法的检测技术在检测实时性、算法计算复杂度等方面具有优势,但现有方案大多缺乏合理的异常判决机制,且忽略了统计误差对判决结果的影响,检测准确度较低[5-7]。基于聚类分析算法的检测技术无需预先处理输入样本,通过分析网络流量数据内部特征的相关性,以聚合具有相似特征的流量,并将稀疏簇内的流量判决为异常数据,逐渐成为网络流量异常检测技术的主要研究方向[8-10]。
现有的聚类分析算法可以被归纳为层次聚类分析、划分聚类分析和智能聚类分析3类[11]。智能聚类分析技术主要基于深度学习、核函数等机器学习方法,该技术在WSN异常流量检测应用中存在与基于神经网络模型的检测技术相同的不适用性。划分聚类分析更倾向处理各个聚类簇大小比较接近的样本,因此该技术往往无法将孤立点数据或异常点数据从样本中分离出来,且聚类中心的选择也会对其聚类结果产生较大影响,同时由于划分聚类一般从总体上评判样本间的相似性,导致其不支持增量式数据源。平衡迭代规约层次聚类(Balanced Iterative Reducing and Clustering using Hierarchies, BIRCH)作为一种经典的层次聚类分析算法,仅通过一次扫描即可有效地组织大规模数据,在聚类质量、效率、稳定性和扩展性方面具有明显优势[12]。BIRCH的基本思想是通过肯定每一个样本点的差异性,先将他们视作一个个单独的聚类簇,再根据簇之间相似性的高低将他们分层合并。通过这种方式,BIRCH聚类分析算法不需要预先设定聚类值和聚类中心,在处理离散点方面表现突出,可以将异常点数据划分到独立的簇中,相较于划分聚类分析技术,更适用于网络流量异常检测。Pitolli等人[13]利用BIRCH聚类算法对样本特征进行分类,用以识别海量软件样本集中的恶意数据,具有较高的检测率和计算效率。Peng等人[14]提出一种基于主成分分析的P-BIRCH聚类算法,时间成本随着聚类数的增加而线性减少,有效地解决移动云环境下的大数据入侵检测问题。
一方面,通过连续采样获得的WSN流量是典型的连续时间序列。根据时间序列相邻值之间具有的时间相关性[15],针对出现在网络流量平稳阶段或固定周期的突变流量,对比其前后一段时间内的采样流量可以发现,这些流量的急剧变化是反常的,有理由相信他们为异常流量。然而,由于流量值仅仅体现了网络在该采样周期内的流量大小,如果利用BIRCH对单一维度的流量序列进行聚类分析,会因为忽略了流量与其前后临近流量的相关性,从而导致将异常突变流量划分到高峰期或低谷期流量对应的聚类簇中,使得异常检测结果存在较大的偏差。
另一方面,Lorbeer等人[16]指出经典BIRCH基于相同距离划分簇类,存在不能处理自然数据形状集合,对样本输入顺序高度敏感等不足。针对此,Guo等人[17]提出一种基于链接的LBIRCH算法,通过建立邻居表实现对任意形状进行聚类。同时,由于经典BIRCH采用全局静态阈值建立聚类特征树(Clustering Feature Tree, CF-Tree),只能获得具有相同体积的聚类。因此,尚家泽等人[18]结合朴素贝叶斯算法,提出一种基于自适应阈值的改进BIRCH,一定程度上解决了其不适用于聚类体积差异较大簇类的局限性,但算法执行效率明显下降。
综上所述,针对WSN流量异常实时检测需求,该文提出一种基于BIRCH的WSN流量异常检测方案。首先,扩充WSN流量的特征维度,在此基础上,设计一种优化特征聚类树(Optimized Clustering Feature Tree, OCF-Tree)结构对BIRCH进行优化。然后,提出基于拐点的综合判决机制,进一步弥补聚类偏差对检测结果的影响。最后,根据基于仿真平台获得的WSN流量数据,对比该文方案与其他方案的流量异常检测效果。
2. 模型建立
2.1 符号与定义
为方便对方案进行描述,该文相关符号及其含义如表1所示。
表 1 符号定义符号 含义 符号 含义 S WSN流量序列 {Ci} BIRCH聚类簇 si 流量值 tp(Y) 序列Y的拐点 ˆS 预测序列 cluster_T 聚类截断阈值 SΔ 预测误差序列 predict_T 预测截断阈值 X 3维流量特征序列 P 聚类可疑点集合 Xi 3维流量特征值 Q 预测可疑点集合 定义1 利用WSN的前m个连续时间流量值
s1,s2,⋯,sm ,预测后p个连续时间流量值sm+1,sm+2,⋯,sm+p ,称为m-p流量预测函数,记作Γm−p(⋅) 。定义2 假设WSN流量序列
S=[s1,s2,⋯,sn] ,称Γm−p(S)=[ˆs1, ˆs2,⋯, ˆsn] 为S 的预测序列,记作ˆS 。定义3 对于WSN流量序列
S ,其预测序列ˆS ,称[Δs1,Δs2,⋯,Δsn] 为S 的预测误差序列,记作SΔ ,其中Δsi=|si−ˆsi|(i=1,2,⋯,n) 。定义4 假设簇C由n个d维数据
Xi=[x1,i,x2,i,⋯,xd,i]T 构成,称[x1,0,x2,0,⋯,xd,0]T 为C的质心,记作X0 ,其中xk,0=∑n=1xk,i/n(k=1,2,⋯,d) 。定义5 假设簇C1和C2的质心分别为
X10 和X20 ,称X10 与X20 的欧氏范数‖X10−X20‖ 为C1与C2的距离,记作dist(C1,C2) 。定义6 假设单调递减序列Y,称斜率
(Y(b)−Y(a))/(b−a) 为Y在区间[a,b]的平均变化率,记作kba 。定义7 (拐点)[19] 基于定义6,若
itp 满足itp=argmax(ki+1i/ki1) ,则称itp 为单调递减序列Y的拐点,记作tp(Y) 。2.2 流量异常检测模型
基于BIRCH的WSN流量异常检测模型如图1所示,主要包括流量特征聚类分析和流量异常判决两个关键部分。
2.2.1 流量特征聚类分析
流量特征聚类分析分为特征维度扩充和BIRCH聚类分析两个环节。
WSN流量预测技术以网络历史流量信息为依据推测未来一段时间内的流量趋势[20]。根据定义2和定义3可知,某时刻流量预测值代表了该时刻流量的变化趋势及基准值,即正常流量的变化可能在预测值附近小范围波动,所以流量预测序列和预测误差序列均隐含了原始流量的时序特征。因此,针对WSN流量的聚类特征维度较低的问题,特征维度扩充环节根据输入的WSN流量序列
S ,利用其预测序列ˆS 和预测误差序列SΔ 作为原始流量的新增特征,以扩充聚类分析输入样本的特征维度。BIRCH聚类分析环节设计一种特殊的OCT-Tree结构,根据流量特征
X 将流量划分成簇{Ci}(i=1,2,⋯,K) ,其中K为簇个数。一方面,由于WSN流量具有突发性、分布不均匀等特征,且存在稀疏的异常流量点,基于此,通过为每个聚类特征(Clustering Feature, CF) 单独设置增量式的动态阈值T,使其适用于聚类体积存在较大差异的簇。另一方面,对于经典BIRCH算法,每个节点只能容纳固定数目的CF,聚类结果不总对应于自然集群。同时,根据流量的输入顺序,特征差异较大的流量可能会被聚类到同一簇中,针对此,根据每个叶子特征CFL 的邻居簇对聚类结果进行全局优化。2.2.2 流量异常判决
流量异常判决环节根据拐点确定聚类截断阈值cluster_T和预测截断阈值predict_T,将cluster_T作为区分簇体积大小的依据,predict_T作为区分预测误差大小的依据。利用cluster_T从
{Ci} 中筛选出体积较小的簇,将小体积簇中的流量构成聚类可疑点集合P,同时利用predict_T从SΔ 中筛选出预测误差较大的流量,构成预测可疑点集合Q,并基于P, Q综合判决WSN流量是否异常。3. 流量特征聚类分析算法
WSN流量的特征维度扩充如图2所示,分别将流量序列作为第1维特征,预测序列作为第2维特征,预测误差序列作为第3维特征,合并
S ,ˆS 和SΔ ,组成3维流量特征序列X=[X1,X2,⋯,Xn] ,其中Xi=[siˆsiΔsi]T,i=1,2,⋯,n 。特征维度扩充基于流量预测技术,由于目前已有较为成熟的研究,众多流量预测算法具有计算复杂度低、预测速度快、预测精度高等优势[21],因此m-p流量预测函数Γm−p(⋅) 的内部结构不在该文讨论范围内。BIRCH聚类分析的实质是构建一棵优化聚类特征树,为不失一般性,假设一棵高度为h+1的OCF-Tree,如图3所示。由下至上,BIRCH将所有样本点划分成若干个聚类簇,第h+1层叶子节点代表一个由若干个聚类簇组成的第h+1层集群,第i层非叶节点代表一个由若干个第i+1层子集群组成第i层集群,则整个OCF-Tree可以被视作一个由所有样本点组成的具有嵌套式结构的集群。其中,叶子特征
CFLj=(N,LS,SS,T,NB) 是对第j个聚类簇中样本点总体特征的摘要,非叶特征CFNLi,j=(N,LS,SS) 是对第j个第i+1层集群中样本点特征的总体描述,N为CF含有的样本点个数,LS=∑Ni=1Xi 为CF内所有样本点的线性和,SS=∑Ni=1Xi2 为CF内所有样本点的平方和,T为动态簇阈值,NB 为邻居簇序号。从层次聚类角度来看,OCF-Tree的构建过程基于欧氏距离最近原则,把相互靠近的样本点聚集成聚类簇,再不断将相近的聚类簇汇聚成更大的集群,最终汇聚成一个包含整个样本的集群。对于每个待聚类的样本点,假设其特征摘要为CF,首先在第1层集群中搜索质心与其欧氏距离最近的
CFNL1,j1 ,再在CFNL1,j1 对应的第2层集群中搜索质心与其欧氏距离最近的CFNL2,j2 ,以此类推由上至下逐层搜索最近的集群,直至搜索到质心与其欧氏距离最近的CFLjh+1 ,最后根据CFLjh+1 对应聚类簇的簇内平均距离与其阈值的关系,判断该样本点能否划分到该聚类簇中。通过这种方式,BIRCH在构建OCF-Tree的同时,实现对所有样本点的动态聚类。当样本点插入最近的聚类簇后,需要依次向上更新搜索路径上叶子节点的
CFL 和非叶节点的CFNL 。根据定义4和定义5,假设由n个CFi(i=1,2,⋯,n) 合并的CF,对于CFNL ,其更新规则由式(1)—式(3)给出;对于CFL ,其更新规则由式(1)~式(5)给出,其中:TC=0.15⋅RC2+0.3⋅S(C) ,RC=√∑ni=1‖Xi−X0‖2/n 为CF代表的簇C的半径,S(C) 为CF代表的簇C与其质心距离的标准差。N=n∑i=1Ni (1) LS=n∑i=1LSi (2) SS=n∑i=1SSi (3) T=max (4) {{\bf {NB}}} {\rm{ = }}{{{\bf {NB}}} _0} (5) 流量特征聚类分析算法具体如下:
输入:3维流量特征序列
{\boldsymbol{X}} 。输出:BIRCH聚类簇
{\rm{\{ }}{C_i}{\rm{\} }}(i = 1,2, \cdots ,K) 。(1) 扩充特征维度
步骤1 利用
{\varGamma _{m - p}}( \cdot ) 预测{{\boldsymbol S}} 的{\boldsymbol {\hat S}} ;步骤2 根据
{{\boldsymbol S}} 和{\boldsymbol {\hat S}} ,计算{{{\boldsymbol S}}_\Delta } ;步骤3 合并
{{\boldsymbol S}} ,{\boldsymbol {\hat S}} ,{{{\boldsymbol S}}_\Delta } ,组成{\boldsymbol{X}} ;(2) 初始化OCF-Tree
步骤4 生成一个根节点
{\rm CF}_{1,1}^{\rm {NL}}{\rm{ = }}(0,0,0) ;步骤5 扫描
{\boldsymbol{X}} ,为{{{\boldsymbol X}}_i} 生成一个{\rm CF}{_i}{\rm{ = }}({N_i},{{{\bf {LS}}} _i},{{\rm SS}_i}) ,由上至下搜索距离{\rm CF}{_i} 最近的{\rm CF}_j^{\rm L} ;步骤6 根据式(6)计算
{\rm CF}{_i} 与{\rm CF}_j^{\rm L} 的簇内平均距离D。D = \sqrt {{{\sum\limits_{i = 1}^n {\sum\limits_{j = 1}^n {{{\left\| {{{{{\boldsymbol X}}}_i} - {{{{\boldsymbol X}}}_j}} \right\|}^2}} } } / {n(n - 1)}}} (6) 若
D < T ,将{\rm CF}{_i} 插入{\rm CF}_x^{\rm L} ,根据式(1)—式(5)更新{\rm CF}_j^{\rm L} ,转至步骤9;否则,将{\rm CF}{_i} 转化为{\rm CF}_i^{\rm L}{\rm{ = }} ({N_i},{{{\bf {LS}}} _i},{{\rm SS}_i},{T_0},{{{\bf {NB}}} _0}) 插入该叶子节点中,其中{T_0} = 0.15 \cdot {R_X}^2 + 0.3 \cdot {\boldsymbol S}({\boldsymbol{X}}) 为初始簇阈值,{{{\bf {NB}}} _0} = [\varnothing ] 为初始邻居簇序号,{R_X} 为整体样本的半径,{\boldsymbol S}({\boldsymbol{X}}) 为整体样本与其质心距离的标准差,转至步骤7;步骤7 判断该叶子节点中
{\rm CF}{^{\rm L}} 是否超过L,若超过,将节点分裂为两个新节点,将距离最远的两个{\rm CF}{^{\rm L}} 分别放到两个新节点中,其余的{\rm CF}{^{\rm L}} 按照距离最近原则划分到两个新节点中,转至步骤8;否则,转至步骤9;步骤8 针对子节点发生分裂的非叶节点,判断该节点中
{\rm CF}{^{\rm {NL}}} 是否超过B,若超过,将节点分裂为两个新节点,将距离最远的两个{\rm CF}{^{\rm {NL}}} 分别放到两个新节点中,其余的{\rm CF}{^{\rm {NL}}} 按照距离最近原则划分到两个新节点中,转至步骤8;否则,转至步骤9;步骤9 从
{\rm CF}{_i} 插入的叶子节点开始由下至上,根据式(1)—式(3)依次更新路径上的每一个{\rm CF}{^{\rm {NL}}} ,转至步骤5重复上述步骤,直至扫描完所有特征值;(3) 合并邻居簇阶段
步骤10 将OCF-Tree中所有
{\rm CF}{^{\rm L}} 从左至右排序{\rm CF}_j^{\rm L}(j = 1,2, \cdots ,K') ,分别对应聚类簇{C_j}(j = 1,2, \cdots ,K') ;步骤11 对于第k个
{\rm CF}_k^{\rm L} ,计算{\rm dist}({C_k},{C_{\rm other}}) ({\rm {other}} = k + 1,k + 2, \cdots ,K') ,若{\rm dist}({C_k},{C_{\rm other}}) < {T_k} + {T_{{\rm {other}}}} ,则{C_k} 与{C_{\rm other}} 互为邻居簇,分别将对方的簇序号添加到{{\bf {NB}}} 中。重复上述步骤,直至更新每一个{\rm CF}_j^{\rm L} 的{{\bf {NB}}} ;步骤12 根据式(7)在
{{{\bf {NB}}} _k} 中寻找{C_k} 的最适邻居簇{C_a} ,其中a = {\rm best}{_{{\rm {NB}}}}({C_k}) \in {{{\bf {NB}}} _k} ,\gamma = 0.5 ,{\rm{intersect}}({{{\bf {NB}}} _k},{{{\bf {NB}}} _a}) 为{C_k} 与{C_a} 的共有邻居簇个数。若a = {\rm best}{_{{\rm {NB}}}}({C_{{\rm best}{_{{\rm {NB}}}}({C_k})}}) ,即{C_k} 与{C_a} 互为最适邻居簇,则将两者合并为一个簇,同时将k和a从簇{C_b} 的{{{\bf {NB}}} _b} 中剔除,b \in ({{{\bf {NB}}} _k} \cup {{{\bf {NB}}} _a}) 。重复上述步骤,直至合并所有最适邻居簇;\begin{split} & {\rm best}{_{{\rm{NB}}}}({C_k}) \\ & \quad = {\rm{argmax}}\left( {{{{\rm{intersect}}({{{{\bf {NB}}} }_k},{{{{\bf {NB}}} }_a})} / {(N_k^\gamma + N_a^\gamma )}}} \right) \end{split} (7) 步骤13 将合并后的C重新排序,输出
\{ {C_i}\} (i = 1,2, \cdots ,K) 。值得注意的是,BIRCH聚类算法所需内存与阈值T有关。T越大,构建的CT-Tree规模就越小,则所占用的内存也越小。然而,如果T过大,会导致单个聚类簇的规模较大,则聚类程度十分粗略,从而影响聚类效果。由于本文着重研究如何提高BIRCH的聚类质量,因此,假设流量特征聚类分析算法步骤均在内存足够的前提下进行。
4. 流量异常判决方法
相较于正常流量,在异常流量的特征值
{{\boldsymbol X}} 中,第1维特征值s 与第2维特征值\hat s 会存在明显差异,即第3维特征值\Delta s 较大,经BIRCH聚类后,每个异常流量通常会单独构成一个小簇,可以根据BIRCH聚类簇\{ {C_i}\} 的体积大小来判断流量是否异常。然而,如何选取一个合适的截断阈值以区分簇体积的大小仍需进一步讨论。根据定义6,对于一个单调递减的离散序列Y,
k_i^{i + 1} 表示Y在区间\{ i,i + 1\} 的斜率,k_1^i 表示Y在区间{\rm{\{ }}1,2, \cdots ,i{\rm{\} }} 的平均变化率,则将两者的比值{{k_i^{i + 1}} / {k_1^i}} 称为序列Y在第i个点的趋势变化幅值,可以用来描述序列“总体”变化的急缓趋势。由于趋势变化幅值{{k_i^{i + 1}} / {k_1^i}} 体现了序列Y在第i个点的“总体”趋势变化的快慢,因此基于定义7,拐点{\rm{tp}}(Y) 即为趋势变化幅值最大值{\rm{max}}({{k_i^{i + 1}} / {k_1^i}}) 对应的横坐标点{i_{{\rm{tp}}}}{\rm{ = argmax}}({{k_i^{i + 1}} / {k_1^i}}) ,其物理意义是序列Y中“总体”趋势变化最快的位置,是区分序列变化从骤变到平缓的临界点。基于此,流量异常判决环节设计一种基于拐点的综合判决机制,利用拐点确定区分聚类簇体积大小的截断阈值,如图4(a) 所示。进一步,利用拐点确定区分流量预测是否失真的截断阈值,如图4(b) 所示,以避免当网络流量出现突发性变化或流量预测误差较大时,正常流量被划分到小体积的簇中的情况。流量异常判决方法具体步骤如下:
输入:BIRCH聚类簇
\{ {C_i}\} (i = 1,2, \cdots ,K) ,预测误差序列{{{\boldsymbol S}}_\Delta } = [\Delta {s_1},\Delta {s_2}, \cdots ,\Delta {s_n}] 。输出:流量异常检测结果。
(1) 确定截断阈值
步骤1 分别将
\{ {C_i}\} 中的流量个数序列、{{{\boldsymbol S}}_\Delta } 由大到小排列并删除重复值,得到关于流量个数的单调递减序列{{{\boldsymbol C}}^*} = [C_1^ * ,C_2^ * , \cdots ,C_{K'}^ * ] 与预测误差单调递减序列{{\boldsymbol S}}_\Delta ^* = [\Delta s_1^ * ,\Delta s_{\rm{2}}^ * , \cdots ,\Delta s_{n'}^ * ] ;步骤2 根据定义7分别求解
{{{\boldsymbol C}}^*} 的拐点{\rm {tp}}({{{\boldsymbol C}}^*}) 与{ {\boldsymbol S}}_\Delta ^* 的拐点{\rm {tp}}({{\boldsymbol S}}_\Delta ^*) ;步骤3 分别选取拐点
{\rm {tp}}({{{\boldsymbol C}}^*}) 对应的流量点个数{{{\boldsymbol C}}^*}\left( {{\rm {tp}}({{{{\boldsymbol C}}}^*})} \right) 作为聚类截断阈值cluster_T;拐点{\rm {tp}}({{\boldsymbol S}}_\Delta ^*) 对应的预测误差{{\boldsymbol S}}_\Delta ^*\left( {{\rm {tp}}({{\boldsymbol S}}_\Delta ^*)} \right) 作为预测截断阈值predict_T;(2) 判定流量正异
步骤4 将
\{ {C_i}\} 中流量个数小于cluster_T的簇判定为小体积簇,簇中的流量构成聚类可疑点集合P;将预测误差大于等于predict_T的流量判定为大误差流量,构成预测可疑点集合Q;步骤5 取流量值
{s_i} \in (P \cup Q) ,若{s_i} \in (P \cap Q) ,则判决{s_i} 为异常流量;否则,转至步骤6;步骤6 判决
{s_i} 为正常流量。若{s_i} \in Q ,则认为{s_i} 对应的预测误差\Delta {s_i} 在误差允许范围内;否则,认为{s_i} 对应的预测误差\Delta {s_i} 较大;步骤7 若完成遍历
(P \cup Q) ,则流量异常判决结束;否则,转至步骤5。根据上述方法步骤,实现对WSN流量异常的综合检测。
5. 实验及结果分析
实验基于Ubuntu系统平台,利用NS-2网络模拟器进行WSN仿真实验,采用Python3.6语言和eclipse环境检验该文方案的有效性。
5.1 实验数据与参数配置
5.1.1 实验数据
实验利用NS-2网络仿真平台搭建WSN仿真环境,配置如表2所示。
表 2 WSN仿真环境配置环境 配置 操作系统 Ubuntu 18.04.1 仿真平台 NS-2.35网络模拟器 WSN网络设置 区域规模 100×100 (m2) 节点个数 终端节点20 (个) 汇聚节点3 (个) 路由协议 AODV 工作模式 周期报告模式 实验数据基于上述WSN仿真环境,以采样频率0.25 Hz统计WSN区域内的流量以模拟实时采样环节,得到500个流量样本点。将第1至400个样本点作为
{\varGamma _{m - p}}( \cdot ) 输入,以预测第401至500个流量样本点,作为流量特征的扩充维度。针对本文方案提出的m-p流量预测函数{\varGamma _{m - p}}( \cdot ) ,采用文献[21]提出的优化FAEMD-OSELM流量预测模型,其中m=400, p=100。在上述流量采样过程中,分别采用Blackhole, Flooding和Grayhole攻击模型[22]在第451至480个样本时间段模拟网络异常情况,如图5所示。将包含异常流量的第401至500个网络流量分别作为Blackhole, Flooding和Grayhole测试数据集,其中第451至480个为网络异常时的采样流量,其余为网络正常时的采样流量。
5.1.2 实验参数设置
实验选择文献[23]中的ENDTW-O-CFSFDP流量异常检测模型、文献[24]中的BasisEvolution流量异常检测模型和文献[14]中的BIRCH流量异常检测模型与本文方案进行对比,结合Blackhole, Flooding, Grayhole 3种测试数据集,综合比较方案的流量异常检测性能。相较于基于PCA-BIRCH的方案,本文方案设计的启发式阈值T无需人为设定,更具自适应性,其初始值T0由测试数据集Blackhole, Flooding, Grayhole确定,分别为4.18, 3.89, 3.94。
本文方案需要设定的参数为非叶节点分支因子B和叶子节点分支因子L,通常B取4, 5, 6,L取4, 5, 6, 7为最佳聚类效果经验值。由于B, L一定程度上决定了OCF-Tree的形状以影响聚类效果,因此实验针对3种测试数据集,分别设置B取2至10,L取1至10,研究B, L取值对本文方案检测结果的F1值和准确率的影响。如图6所示,若选取的B或L过大,距离簇质心较远的正常样本将被划分成独立的聚类簇,并被判决为异常流量,从而增加了正常样本被错误判决的比例;相反地,若选取的B或L过小,受限于OCF-Tree的节点分支数量,异常样本将被强制划分到距离最近的聚类簇中,并增大该聚类簇的规模,导致其被判决为正常流量,从而增加了异常样本被错误判决的比例。在上述两类情况下,本文检测结果的F1值、准确率较低,检测效果较差。因此,实验选择聚类效果最好时的B=4, L=5作为本文方案的实验参数。
5.2 结果分析
实验选择精确率 (Precise, Pr) 、召回率 (Recall, Re) 、F1值和准确率 (Accuracy, Ac) 作为方案流量异常检测效果的评价指标。Pr为被正确判决的正常样本占所有被判决为正常点的比例,Re为被正确判决的正常样本占所有正常样本的比例,F1为反映方案整体检测效果的综合评价指标,Ac为被正确判决的样本占所有样本的比例,其中Pr, Re, F1∈[0,1],其值越大表明方案检测效果越好。通过20次独立重复实验,检测方案针对3种测试数据集的Pr, Re, F1和Ac如表3所示。
表 3 各方案检测性能对比(%)方案 测试集 Pr Re F1 Ac ENDTW-O-CFSFDP Blackhole 82.4 100.0 90.3 85.0 Flooding 82.9 90.0 86.3 80.0 Grayhole 75.3 87.1 80.8 71.0 BasisEvolution Blackhole 100.0 85.7 92.3 90.0 Flooding 96.5 78.5 86.6 83.0 Grayhole 92.6 71.4 87.0 76.0 BIRCH Blackhole 79.7 90.0 84.6 77.0 Flooding 78.1 81.4 79.7 71.0 Grayhole 75.7 75.7 75.7 66.0 本文方案 Blackhole 97.1 94.3 95.7 94.0 Flooding 92.8 91.4 92.1 89.0 Grayhole 92.4 87.1 89.7 86.0 针对3种测试集,基于BasisEvolution方案将网络流量判决为异常样本的数量明显高于其他方案,虽然该方案可以正确检测出大部分的异常流量,在Pr方面具有绝对优势,但同时也将较多的正常流量错误地判决为异常样本,导致其Re较低。相反地,基于ENDTW-O-CFSFDP方案正常流量的误判率低于其他方案,在Re方面具有一定的优势,且略高于该文方案,但由于该方案的异常流量检出率较低,其Pr较低。基于BIRCH的方案仅根据BIRCH聚类结果判断流量是否异常,缺乏合理的异常判决机制,其Pr与Re均低于该文方案。
进一步,相较于基于ENDTW-O-CFSFDP, BasisEvolution, BIRCH的方案,在综合指标F1值方面,本文方案对Blackhole测试集分别提高了5.3%, 3.3%, 11.0%,对Flooding测试集分别提高了5.8%, 5.4%, 12.4%,对Grayhole测试集分别提高了8.9%, 9.1%, 14.0%;在Ac方面,本文方案对Blackhole测试集分别提高了9.0%, 4.0%, 17.0%,对Flooding测试集分别提高了9.0%, 6.0%, 18.0%,对Grayhole测试集分别提高了15.0%, 10.0%, 20.0%,表明本文方案在检出异常流量的同时,可以有效避免将正常样本判决为异常样本,且针对不同网络攻击造成的流量异常现象都具有较好的检测能力。
如表4所示,相较于基于ENDTW-O-CFSFDP, BasisEvolution, BIRCH的方案,本文方案F1值的均值分别提高了6.7%, 6.0%, 12.5%,Ac的均值分别提高了11.0%, 6.7%, 18.3%,具有较好的异常流量的检出能力,表明本文方案对整个测试样本的正负类判别准确度较好。同时,本文方案根据网络流量特征之间的差异先筛选出可疑流量点,再结合预测值综合判决流量是否异常,因此,本文方案对应的F1值与Ac的标准差最小,表明本文方案针对不同类型网络攻击造成的异常流量都具有较为稳定的检测性能。
表 4 各方案F1值、Ac的均值(%) 与标准差对比方案 F1 Ac 均值 标准差 均值 标准差 ENDTW-O-CFSFDP 85.8 0.039 78.7 0.056 BasisEvolution 86.5 0.048 83.0 0.057 BIRCH 80.0 0.036 71.3 0.045 本文方案 92.5 0.030 89.7 0.040 综上所述,本文提出的流量异常检测方案可以有效检测由不同WSN网络攻击导致的异常流量,且检测性能稳定。
6. 结束语
本文在深入研究网络流量异常检测技术的基础上,提出了一种基于BIRCH的WSN流量异常检测方案。本文方案设计了基于OCF-Tree的BIRCH聚类分析算法,有效克服样本的特征类型和输入顺序对BIRCH造成的影响,提高了聚类的质量和稳定性。同时,提出一种基于预测的特征维度扩充方法,通过在流量特征中增加隐含流量时序关系的预测序列和误差序列,以适应BIRCH聚类分析算法。进一步,根据流量序列特征分析,定义拐点概念,设计基于拐点的综合判决机制,减少BIRCH聚类分析过程对检测结果的影响,保证了流量异常检测的准确性。实验结果表明,相较于同类方案,本文方案在检测效果和性能稳定性方面具有明显优势。
下一步研究中,将针对OCF-Tree结构中分支因子B, L的选择,设计启发式算法求解最优值,同时,解决如何在保证聚类质量的前提下尽可能减小构建OCF-Tree所需内存的问题。
-
SAGE A P and HUSA G W. Adaptive filtering with unknown prior statistics[C]. Joint Automatic Control Conference, Boulder, American, 1969: 760–769. KALMAN R E. A new approach to linear filtering and prediction problems[J]. Journal of Basic Engineering, 1960, 82(1): 35–45. doi: 10.1115/1.3662552 邓自立. 自校正滤波理论及其应用——现代时间序列分析方法[M]. 哈尔滨: 哈尔滨工业大学出版社, 2003: 6.1. 何丽, 汤莉. 基于Kalman滤波的云数据中心能耗和性能优化[J]. 计算机工程与科学, 2018, 40(7): 1165–1172. doi: 10.3969/j.issn.1007-130X.2018.07.003HE Li and TANG Li. Energy and performance optimization based on Kalman filtering in the cloud data center[J]. Computer Engineering &Science, 2018, 40(7): 1165–1172. doi: 10.3969/j.issn.1007-130X.2018.07.003 张宏伟, 谢维信. 平滑约束无迹卡尔曼滤波器[J]. 信号处理, 2019, 35(3): 466–471. doi: 10.16798/j.issn.1003-0530.2019.03.019ZHANG Hongwei and XIE Weixin. Smoothly constrained unscented Kalman filter[J]. Journal of Signal Processing, 2019, 35(3): 466–471. doi: 10.16798/j.issn.1003-0530.2019.03.019 耿友林, 解成博, 尹川, 等. 基于卡尔曼滤波的接收信号强度指示差值定位算法[J]. 电子与信息学报, 2019, 41(2): 455–461. doi: 10.11999/JEIT180268GENG Youlin, XIE Chengbo, YIN Chuan, et al. Received signal strength indication difference location algorithm based on Kalman filter[J]. Journal of Electronics &Information Technology, 2019, 41(2): 455–461. doi: 10.11999/JEIT180268 汪玲, 朱栋强, 马凯莉, 等. 空间目标卡尔曼滤波稀疏成像方法[J]. 电子与信息学报, 2018, 40(4): 846–852. doi: 10.11999/JEIT170319WANG Ling, ZHU Dongqiang, MA Kaili, et al. Sparse imaging of space targets using Kalman filter[J]. Journal of Electronics &Information Technology, 2018, 40(4): 846–852. doi: 10.11999/JEIT170319 SUN Xiaojun, GAO Yuan, DENG Zili, et al. Multi-model information fusion Kalman filtering and white noise deconvolution[J]. Information Fusion, 2010, 11: 163–173. doi: 10.1016/j.inffus.2009.06.004 刘利生, 吴斌, 杨萍. 航天器精确定轨与自校准技术[M]. 北京: 国防工业出版社, 2005: 9.2.LIU Lisheng, WU Bin, and YANG Ping. Orbit Precision Determination & Self-Calibration Technique of Spacecraft[M]. Beijing: National Defense Industry Press, 2005: 9.2. 傅惠民, 娄泰山, 吴云章. 欠观测条件下的扩展增量Kalman滤波方法[J]. 航空动力学报, 2012, 27(4): 777–781. doi: 10.13224/j.cnki.jasp.2012.04.004FU Huimin, LOU Taishan, and WU Yunzhang. Extended incremental Kalman filter method under poor observation condition[J]. Journal of Aerospace Power, 2012, 27(4): 777–781. doi: 10.13224/j.cnki.jasp.2012.04.004 傅惠民, 娄泰山, 吴云章. 增量粒子滤波方法[J]. 航空动力学报, 2013, 28(6): 1201–1207. doi: 10.13224/j.cnki.jasp.2013.06.005FU Huimin, LOU Taishan, and WU Yunzhang. Incremental particle filter method[J]. Journal of Aerospace Power, 2013, 28(6): 1201–1207. doi: 10.13224/j.cnki.jasp.2013.06.005 傅惠民, 吴云章, 娄泰山. 欠观测条件下的增量Kalman滤波方法[J]. 机械强度, 2012, 34(1): 43–47. doi: 10.16579/j.issn.1001.9669.2012.01.014FU Huimin, WU Yunzhang, and LOU Taishan. Incremental Kalman filter method under poor observation condition[J]. Journal of Mechanical Strength, 2012, 34(1): 43–47. doi: 10.16579/j.issn.1001.9669.2012.01.014 SUN Xiaojun, YAN Guangming, and ZHANG Bo. A Kind of incremental Kalman smoother under poor observation condition[C]. The 36th Chinese Control Conference, Dalian, China, 2017: 2524–2527. doi: 10.23919/ChiCC.2017.8027740. SUN Xiaojun and YAN Guangming. Multi-sensor optimal weighted fusion incremental Kalman smoother[J]. Journal of Systems Engineering and Electronics, 2018, 29(2): 262–268. doi: 10.21629/JSEE.2018.02.06 徐景硕, 秦永元, 彭蓉. 自适应卡尔曼滤波器渐消因子选取方法研究[J]. 系统工程与电子技术, 2004, 26(11): 1552–1554. doi: 10.3321/j.issn:1001-506X.2004.11.006XU Jingshuo, QIN Yongyuan, and PENG Rong. New method for selecting adaptive Kalman filter fading factor[J]. Systems Engineering and Electronics, 2004, 26(11): 1552–1554. doi: 10.3321/j.issn:1001-506X.2004.11.006 鲁平, 赵龙, 陈哲. 改进的Sage-Husa自适应滤波及其应用[J]. 系统仿真学报, 2007, 19(15): 3503–3505. doi: 10.3969/j.issn.1004-731X.2007.15.034LU Ping, ZHAO Long, and CHEN Zhe. Improved Sage-Husa adaptive filtering and its application[J]. Journal of System Simulation, 2007, 19(15): 3503–3505. doi: 10.3969/j.issn.1004-731X.2007.15.034 傅惠民, 吴云章, 娄泰山. 自适应增量Kalman滤波方法[J]. 航空动力学报, 2012, 27(6): 1125–1129.FU Huimin, WU Yunzhang, and LOU Taishan. Adaptive incremental Kalman filter method[J]. Journal of Aerospace Power, 2012, 27(6): 1125–1129. 徐英蛟. 一种改进自适应增量Kalman滤波的传递对准算法[J]. 指挥控制与仿真, 2018, 40(4): 33–37. doi: 10.3969/j.issn.1673-3819.2018.04.008XU Yingjiao. A improved adaptive incremental filtering algorithm of transfer alignment[J]. Command Control &Simulation, 2018, 40(4): 33–37. doi: 10.3969/j.issn.1673-3819.2018.04.008 傅惠民, 吴云章, 娄泰山. 自适应增量粒子滤波方法[J]. 航空动力学报, 2013, 28(8): 1764–1768.FU Huimin, WU Yunzhang, and LOU Taishan. Adaptive incremental particle filter method[J]. Journal of Aerospace Power, 2013, 28(8): 1764–1768. 傅惠民, 吴琼. 线性独立增量过程分析方法[J]. 航空动力学报, 2010, 25(4): 930–935.FU Huimin and WU Qiong. Analysis method for linear process with independent increments[J]. Journal of Aerospace Power, 2010, 25(4): 930–935. 期刊类型引用(13)
1. 张天骐,周琳,梁先明,徐伟. 基于Blob-Harris特征区域和NSCT-Zernike的鲁棒水印算法. 电子与信息学报. 2021(07): 2038-2045 . 本站查看
2. 陆金江. 基于深度卷积神经网络的模糊字迹图像识别方法. 佳木斯大学学报(自然科学版). 2021(05): 42-46 . 百度学术
3. 黄媛. 数字视频图像加密域水印嵌入鲁棒性评估仿真. 计算机与数字工程. 2018(05): 1012-1016+1057 . 百度学术
4. 石慧,冯斌,王相海,李明楚,宋传鸣. 用于盗版追踪的格雷码加密域可逆水印研究. 中国图象图形学报. 2018(11): 1635-1651 . 百度学术
5. 石红芹,余鹰,王艳. 基于NSCT和压缩感知的数字图像水印算法. 包装工程. 2017(11): 176-180 . 百度学术
6. 邱育桥. 基于智能图像视觉的船舱内部监控与识别. 舰船科学技术. 2017(04): 178-180 . 百度学术
7. 孙丽,高娜. 密文域下3D激光雷达图像认证方法研究. 激光杂志. 2017(07): 151-155 . 百度学术
8. 陈建辉. 混合云环境下基于椭圆曲线加密的隐私保护模型. 微电子学与计算机. 2017(08): 128-132 . 百度学术
9. 丛红艳. 基于多帧二维动画图像的三维自动生成技术. 现代电子技术. 2017(18): 98-100 . 百度学术
10. 肖迪,马青青,王兰,向艳萍. 基于稀疏表示的云协助安全数字水印技术. 信息网络安全. 2017(01): 1-7 . 百度学术
11. 刘艳波. 基于JPEG图像的改进小波变换信息隐藏算法. 北华大学学报(自然科学版). 2017(05): 697-700 . 百度学术
12. 吴秋玲,吴蒙. 基于小波变换的语音信息隐藏新方法. 电子与信息学报. 2016(04): 834-840 . 本站查看
13. 姚军财,刘贵忠. 一种基于人眼对比度敏感视觉特性的图像自适应量化方法. 电子与信息学报. 2016(05): 1202-1210 . 本站查看
其他类型引用(30)
-