张明明,刘文盼,宋 浒,夏 飞
(1.国网江苏省电力有限公司信息通信分公司,江苏 南京 210024;2.南瑞集团有限公司,江苏 南京 211106)
电力通信网络主要是为了保证电力系统能够安全稳定运行而存在的[1]。近年来,物联网进入了飞速发展阶段,已深入各行各业,其中就包括电力行业。由物联网中各个信息采集设备获取的信息经由电力通信系统整合与处理分析,从而更好地实现信息交互。与此同时,数据量异常庞大会导致网络堵塞甚至崩溃[2]。边缘计算主要是将一些不需要在云端进行的操作放在本地边缘计算层完成,时有效降低网络计算量,提高数据处理效率[3]。物联网中包含的数据量较大,网络故障以及外来入侵行为检测存在一定难度。目前,基于密度的噪声应用空间聚类(density-based spatial clustering of applications with noise,DBSCAN)算法被广泛应用于通信网络的故障及入侵检测[4]。DBSCAN算法能够检测离群点,应用于电力通信监测时有助于及时发现故障或外来非法入侵的情况,避免造成重大损失[5]。但DBSCAN算法受输入参数的影响较大,其设置存在经验性和盲目性的缺点,且传统的物联网边缘计算框架依旧面临计算成本高以及计算时间长等问题。
基于上述问题,本文构建了基于改进密度聚类算法的电力通信网络故障及入侵监测模型,以及基于深度强化学习的边缘计算优化方法。本文研究旨在为电力通信网络故障以及入侵行为的监测提供技术支撑。
1.1.1 DBSCAN算法
DBSCAN算法主要是通过数据类别的密度连通性快速识别任意形状的簇,将具有足够密度的区域划分为簇[6]。
(1)核心对象:将密度达到算法设定阈值的点视为核心点,即邻域半径(E)内点的数量不小于最小数目阈值。领域内点的集合表示为:
NE(m)={n∈D|d(m,n)≤E}
(1)
式中:NE为从m点出发的领域内点集合;D为全部点的集合;d(m,n)为m、n两点间的欧氏距离。
(2)将点m视为从点n直接密度可达的条件,其条件为当且仅当:
m∈NE(n),|NE(n)|≥Nminpts
(2)
式中:Nminpts为使点n为核心点的领域内最小数目阈值。
(3)若一系列点m1,m2,...,mp,有m1=n、mp=m且mi+1到mi直接密度可达,则点m从点n密度可达。
(4)若点m与点n均从点o密度可达,则点m与点n密度相连。
(5)对于集合D,将簇C视为D的子集,必须满足以下两个条件。
①∀m,n:ifm∈C,且点n从点m密度可达,则n∈C。
②∀m,n∈C:点m和点n密度可达。
(6)噪声是指不属于任何一个簇Ci的离散点,可表示为:
Cnoise={m∈D|∀i:m≠Ci}
(3)
综上所述,DBSCAN算法工作流程如图1所示。
图1 DBSCAN算法工作流程图
在采用DBSCAN算法划分簇时,需要提前手动输入E和Nminpts。这两个参数的设置是否合理对于算法的聚类效果影响较大[7]。本文将借助于K-means算法确定DBSCAN算法所需的参数值。
1.1.2 改进K-means聚类算法
传统K-means聚类算法在处理数据过程中计算量较大[8]。本文提出了一种单遍权重K-means(single pass weighted K-means,SPWK)聚类算法。该算法对初始点的选取和聚类时影响因素的权值选取进行了优化。SPWK算法是在Spark平台中运行的[9]。Spark平台是专门为大数据处理而设计的一种快速计算引擎。
改进K-means聚类算法工作流程如图2所示。
图2 改进K-means聚类算法工作流程图
首先,建立若干个大小为n的数据子集,将每个子集中的样本权重设置为1。通过计算第一组权值为1的样本 K-means 聚类中心y,得到最小的聚类误差平方和D(y):
(4)
式中:ωi为第i个指标的权重;yi为第i个指标的数据库映射值;yi,k为第k个聚类中心第i个指标数据库映射值。
定义本聚类算法的距离为欧几里德距离,两点之间的欧几里德距离计算如式(5)所示。
(5)
基于Spark平台可实现距离的快速计算,大大降低计算量。具体计算如式(6)所示。
(6)
基于改进密度聚类算法的电力通信网络故障及入侵监测模型架构如图3所示。
图3 电力通信网络故障及入侵监测模型架构图
1.2.1 物联网边缘计算执行过程设定
边缘计算执行过程如下。
(7)
式中:di为通信信道长度。
(8)
式中:pi为物联网中的能量密度。
(9)
物联网的数据传输速率si计算如式 (10)所示。
(10)
式中:W为物联网中无线带宽;β(t)为计算周期内物联网累计能量值;fi为物联网中用户数据传输功率;X2为高斯白噪声方差值。
过程延时的计算如式(11)所示。
(11)
1.2.2 物联网边缘计算资源分配
本文以卷积神经网络(convolutional neural networks,CNN)模型为基础,对物联网边缘计算资源进行合理分配。具体方法如下。
将两个信号的卷积结果r(n)以离散的形式表现,如式(12)所示。
(12)
式中:l(n)、j(n)为资源分配中的离散序列;h(n-1)为边缘计算中的信号。
根据CNN模型的参数特征,对资源分配过程中的权值以及偏置进行设定,以此作为连接数,则计算中的参数个数U可表示为:
U=Nk×(mc×sk×qk)
(13)
式中:mc为边缘计算中的通道数;sk、qk分别为卷积核的宽度与高度。
对计算量mc×sk×qk展开合理化分配,可表示为:
(14)
1.3.1 改进K-means算法性能测试
本文选取传统的K-means算法以及基于权值的K-means算法,以算法执行时间和并行加速比、迭代次数以及总聚类时间为指标,与本文设计的SWPK聚类算法进行算法的性能比较。其中,并行加速比Sp计算如式(15)所示。
(15)
式中:ts为单节点在运算过程中消耗的时间;tp为p个节点在运算过程中消耗的时间。
1.3.2 边缘计算优化方法测试
本文选取目前较为流行的改进猫群算法[10]以及边缘-云合作[11]作为对照,以服务器占用时间以及计算等待时间作为测试指标,与本文设计的优化方法进行比较。在测试过程中,将边缘计算环境设置为全部工作以及部分工作两种,以此来提升测试的有效性。
1.3.3 电力通信网络故障及入侵监测模型测试
①数据标准化。
数据标准化是对获得的全部数据做无量纲化处理,可以提升模型的收敛速度与精度。目前常用的标准化方法为Z分数。
(16)
②网络故障检测方法。
电力通信网络故障检测主要是基于国家电网通信管理系统进行的。本文从系统中抽取了H、I、J、K、L这5个省的实际电网通信数据对模型进行验证。首先,采用本监测模型标注电力网络中的异常数据,将结果与人工标注的结果进行对比。然后,选取传统的K-means聚类算法以及凝聚的层次聚类(AGglomerative NESting,AGNES)算法作为对照,研究本文模型的准确率。
③网络入侵检测方法。
电力通信网络入侵检测主要是在KDD CUP 99数据集进行的。KDD CUP 99数据集仿真了各种用户类型、不同的网络流量和攻击手段,主要用于网络入侵检测。本文从KDD CUP 99数据集中随机选取包含Smurf、Back和Nmap三种入侵攻击以及正常数据的大量数据构建模型训练集,测试集也在数据集上随机选取。在相同条件下,以文献[12]提出的基于划分和凝聚层次聚类的无监督异常检测方法以及文献[13]提出的基于并行聚类算法的无监督异常检测方法作为对照组,以正确率(correct rate,CR)和误报率(false positive rate,FPR)作为评价指标,与本文设计的监测模型进行对比。CR与FPR计算如式(17)、式(18)所示。
(17)
式中:C为正确率,%;CTotal为检测到的入侵总数;DTotal为数据集中的入侵总数。
(18)
式中:F为误报率,%;I为被认为是入侵的正常数据的数量;NTotal为数据集中正常数据的总数。
三种聚类算法的性能测试结果对比如图4所示。
图4 三种聚类算法的性能测试结果对比图
由图4可知,传统的K-means聚类算法以及基于权值的K-means聚类算法的平均执行时间分别为2.344 s、2.468 s,SWPK聚类算法为0.762 s,SWPK算法低于其他两种算法67.5%以上。三种算法的并行加速比平均值分别为1.52、1.575、2.093,SWPK算法高出其他算法76.4%以上。三种算法的迭代次数分别为23次、10次、8次,总聚类时间分别为2.909 s、1.455 s、0.909 s。SWPK算法的迭代次数更少,总聚类时间低于其他两种算法37.5%以上。这表明SWPK算法性能远远高于其他两种算法。
2.2.1 服务器占用时间
本文对改进猫群算法的优化方法、边缘-云合作的优化方法以及深度强化学习的优化方法在物联网边缘计算时的服务器占用时间进行了测试。三种优化方法计算时的服务器占用时间测试结果如图5所示。
图5 三种优化方法计算时的服务器占用时间测试结果
由图5可知,未进行优化时的边缘计算服务器占用时间平均为103 s;采用改进猫群算法平均约为60.8 s;采用边缘-云合作的优化方法平均约为54.7 s;经过深度强化学习优化后平均约为16.2 s。在部分工作环境下,未经优化的边缘计算服务器占用时间平均为53 s;改进猫群算法平均约为19.5 s;边缘-云合作优化方法平均约为26 s;深度强化学习优化方法平均约为4.2 s。
2.2.2 计算等待时间
三种优化方法的计算等待时间测试结果如图6所示。
图6 三种优化方法的计算等待时间测试结果
由图6可知,采用改进猫群算法进行优化后的计算等待时间平均约为118.8 ms;边缘-云合作优化平均约为108.4 ms;经深度强化学习优化后平均约为22.5 ms。
综上所述,在同一任务数量条件下,本文提出的基于深度强化学习的物联网边缘计算优化方法的服务器占用时间低于其他两种方法70.4%以上,计算等待时间低于其他两种方法79.2%以上,性能更优,更适用于边缘计算应用下的电力通信数据处理。
采用本文设计的监测模型、K-means算法以及AGNES算法所得到的异常数据标注结果与人工标注结果对比如图7所示。
图7 异常数据标注结果与人工标注结果对比图
由图7可知,采用本文构建的监测模型DBSCAN对数据集中异常数据标注的结果与人工标注结果只有微小的差异,最高时仅有9个数据的差值。K-means算法与AGNES算法平均准确率分别为72.89%以及73.18%,DBSCAN异常数据识别准确率最高可达100%,平均为90.64%,高于其他两种算法23.86%以上。
采用本文监测模型与其他两种方法对训练数据集中的各种攻击类型进行检测,将检测正确率以及各个算法在测试集上的总检测率和误报率进行对比。不同算法对各种攻击的检测结果对比如图8所示。
由图8可知,基于划分和凝聚层次聚类算法的无监督异常检测方法,以及基于并行聚类算法的无监督异常检测方法对三种类型的攻击平均检测率分别为79.98%以及86.98%,本文算法的平均检测率为93.75%,高出其他两种方法7.8%以上。两种对照算法的攻击总检测率分别为80.22%以及89.36%,本文算法则为93.68%,高出4.8%以上。此外,本文算法误报率也低于其他两种算法65.4%以上。
图8 不同算法对各种攻击的检测结果对比
综上所述,本文模型较其他两种算法具备更优异的性能,在电力通信网络故障以及入侵检测方面有广阔的应用前景。
传统的DBSCAN算法需要手动输入参数E和Nminpts,参数设置存在经验性以及盲目性的问题。边缘计算有效降低了传统的物联网计算成本高以及计算时间过长等问题。本文构建了基于改进密度聚类算法的电力通信网络故障及入侵监测模型以及基于深度强化学习的边缘计算优化方法。仿真试验结果表明: SPWK聚类算法的迭代次数更低,平均执行时间以及总聚类时间分别低于其它算法67.5%、37.5%,并行加速比高出76.4%以上,聚类效率更高;边缘计算优化算法的服务器占用时间以及计算等待时间分别低于其他算法70.4%以上和79.2%以上,性能更优;电力通信监测模型对异常数据的平均识别准确率高出其他算法23.86%以上,入侵检测率高出其他算法4.8%以上,误报率降低65.4%以上,具备优异的检测性能。本文的不足之处在于选取了部分省份的电力通信数据进行了研究,代表性不足。后期还需扩大数据集,以对模型的适应性作进一步的完善。本文模型研究的开展旨在为电力通信网络故障以及入侵行为的监测提供技术支撑。