何翼 刘云
(贵阳学院数学与信息科学学院 贵州省贵阳市 550005)
无线传感器网络(Wireless Sensor Networks,WSNs)是利用易于部署的传感器节点和低成本的设备组成的分布式、互联的无线网络。目前已经被广泛用来采集土壤、水分、空气污染和健康等数据,适用于定位和跟踪、医疗保健、环境检测等各种应用。无线传感器网络往往被布置在各种恶劣的室外环境[1],加之传感器节点数量大,物理位置分散,极易发生故障。因此如何在这种环境[2]施加的约束现下,识别可能由传感器故障(错误/异常值)或感兴趣的事件引起的局部和全局异常变得至关重要。WSNs 中的异常值检测在灾害事件的检测和识别中有广泛的应用,如地下石油、天然气、煤炭、盐矿和火山景观[2]。
针对无线传感器网络中的异常数据检测问题,目前使用较为广泛的技术主要有基于统计的方法、最近邻技术、基于聚类的技术、基于分类的技术、信息论、基于谱分解的方法[3]。文献[4]对无线传感器网络中基于马氏核的集中式和分布式单类离群点检测分类器(COODC&DOODC)进行了比较研究,创建了一个基于核主成分分析(KPCA)的模型以识别数据为正常值或异常值。
考虑到无线传感器网络节点能量和传输距离有限,簇内节点的物理位置相近,测量的数据也相近时刻也基本接近。因此,首先采用使用低功耗自适应分簇拓扑协议(LowEnergy Adaptive Clustering Hierarchy,LEACH)[5]对节点进行分簇,簇内采用聚合路由协议(TinyAggregation,TAG)[6]生成树的方式进行数据传输;然后采用聚类的方法对传感器节点采集的数据进行预处理,接着采用(The support vector data description,SVDD)模型对处理后的数据进行训练,最后应用鲸鱼优化(Whale Optimization Algorithm,WOA)算法对SVDD 中的参数进行优化,从而达到提高检测效率,获得更高的异常值检测准确率的目标。算法的具体流程如图1所示。
对传感器节点采集的数据直接使用机器学习和参数优化算法,虽然能提高网络中异常值检测的准确率,但会增加系统能量开销,因此考虑在模型训练生成后不再变化以节约能量。在分簇的WSNs中,簇内各成员节点的物理地理位置相近,采集的数据在相近时刻也基本相近。对于单独的传感器节点而言,连续采样结果的变化范围也应该在一定的范围内。因此,在进行训练SVDD 前,使用快速搜索和密度峰值法的聚类方案[7]对数据进行预处理,在聚类时考虑下面两个量作为聚类标准,即:
其中,ρi为当前点的局部密度;δi为具有更高密度的点与当前点之间的最小距离。本方案在执行时可排除在密度边界或密度值ρi=0 的数据。设置xi=dij-dc,可得到:
把预处理后的数据带入支持向量机SVDD 中,可得到训练模型。
SVDD一种最著名的单分类支持向量学习方法,能够实现目标样本和非目标样本的区分。其理论最早由 Tax 和Duin[8]提出。该方法将原始数据被映射到高维特征空间,尝试使用定义在特征空间上的超球来区分其他可能的异常数据。对超球的要求半径最小且能够将大部分数据包裹在内,以实现不同类别的划分。位于球体内或边界上的数据为正常数据,位于超球外的数据将被认为是异常数据。其数学表示如下:
首先给定n 个数据点,标记为
其中ξi为松弛变量,C 是惩罚因子,用以实现决策边界和错分数据比例之间的某种平衡。先引入Lagrange 乘子将条件函数变形,上述问题可等价于如下的Lagrange 极值问题:
在式(4)中分别对 求偏导,并用核函数K(xi,xj)(一般使用高斯核函数)代替内积
可得到对偶问题:
因此,任意样本数据点X 到超球体球心距离的平方和表示为:
SVDD 将一个低维问题转换为一个高维问题,其中的各类参数,如:核函数K,惩罚参数C 以及松弛函数ξi等,这次参数的选取将直接影响到异常值检测的准确度。鲸鱼优化算法(WOA)是澳大利亚学者Mirjalil 提出的一种模拟驼背鲸捕食行为的新型群体智能算法[9],具有操作简单、参数少、计算复杂度低和计算数据快等特点。该算法参照鲸鱼捕食行为来求解目标问题的解,分为包围捕食、螺旋更新位置和随机搜索三个阶段,相应的数学模型如下。
阶段一:包围捕食
假设距离群体位置最近的那个个体为猎物,猎物的位置即为最优解,鲸鱼向目标位置前进,表述为以下公式:
X(t)表示鲸鱼的位置向量;t 表示当前迭代次数;Xp(t)表示目标猎物的位置向量;A 和C 均为系数向量。A 和C 具有如下关系:
其中,r 表示[0,1]上的随机变量;随着迭代次数逐渐增加,a将从2 逐步递减到0。因此,
式中的tmax表示最大迭代次数。WOA 将通过向量a 的值不断减小,从而模拟鲸鱼群靠近猎物。图2表示公式(7)的二维图。图中,鲸鱼根据当前最好的位置(X',Y')来跟新它的当前位置(X,Y),见图中的黑色实心原点,也可以调整系数向量A 和C 向最优解靠近。图3表示公式(7)的三维图。鲸鱼可以通过定义r达到途中任意位置。
阶段二:螺旋跟新位置
该阶段参考鲸鱼的气泡攻击行为,采用螺旋方式游走,以达到鲸鱼的局部寻优目的,其数学表示如下:
其中D=|Xp(t)-X(t)|是当前鲸鱼个体与目标猎物之间的最佳距离,l 表示[-1,1]上的随机变量,b 代表常量系数。如图4所示。
阶段三:随机搜索
通过|A|进行随机游来寻找目标猎物。当|A|>1,鲸鱼会根据参考位置随机对目标进行搜索和位置的更新,这样就可以使得鲸鱼个体的全局搜索能力提升,数学描述为:
其中,X(t+1)为当前群体随机获得的鲸鱼的位置向量。|A|≥1 时的可能位置如图5所示。
图1:算法流程图
图2:二维位置向量和可能位置
图3:三维位置向量和可能位置
图4:鲸鱼的螺旋式位置跟新
图5:鲸鱼算法的随机搜索过程
本文提出基于的机器学习的无线传感器网络节点异常值检测算法,是在充分考虑传感器节点能耗和检测准确率的基础上,首先利用分簇算法实现数据预处理,采用单分类支持向量机对异常值进行检测,并应用鲸鱼优化算法对SVDD 中的参数进行优化。与传统的异常值检算法相比,面对节点较多无线传感器网络,该算法能够节约网络能耗,延长网络生存周期,并能够提高节点异常数据检测的准确性。