夏炳森,唐元春,汪智平
(1.国网福建省电力有限公司 经济技术研究院,福州 350012;2.重庆邮电大学 通信与信息工程学院,重庆 400065)
随着电网规模的不断扩大及电力系统的不断升级改造,电网的信息化与智能化程度越来越高,电力数据量及种类呈现几何级数倍增的趋势,促使电网发展进入了大数据时代[1]。基于电力信息网络的广泛业务带来了海量的业务数据,随之也大大增加了网络异常流量带来的风险[2-3]。以电力无线专网系统为目标的网络攻击和异常流量入侵等突发事件会引发用户端的不正常断电和中断,造成巨大的经济损失和安全事故。因此,基于机器学习的电力系统异常检测具有重要的研究价值和现实意义[4]。
目前,电力接入专网配电终端常采用基于国际电工委员会(IEC)60870-5-10规约(IEC 104)进行控制,由于无线接入信道质量伴随着业务存在着多变性,电力网络均存在多变不可靠的业务流量,如延迟、吞吐量等。因此,其流量具有特征维度高、规律性强、非线性的特点,导致异常流量检测处理时间长、实时性差等,然而选择较少的特征可能会导致畸形数据包、木马、缓冲区溢出等攻击类型难以被发现[5]。
由于大多数网络流量数据具有时序性,因此,长短期记忆网络(convolution-long short-term memory network,LSTM)作为检测方法也得到诸多研究。如S.A.Althubiti等[6]将rmsprop(学习率自适应)优化器用于LSTM模型的入侵检测,使用rmsprop优化器可以构造一个适合网络入侵的分类检测器。
LSTM网络具备一定的处理时序数据的信息挖掘能力,但当输入增多时,随着数据量的增大,单一LSTM网络训练时会出现梯度消失现象,并且伴随着模型的不稳定[7]。因此,研究人员开始融合CNN与LSTM用于网络异常检测、语音识别、图像处理等领域[8]。如Zhang等[8]一种基于网络流量的CNN-LSTM混合预测无线网络故障模型:首先对网络流量进行预处理,通过两级时间窗提取样本,然后通过CNN提取样本特征,最后将提取的特征输入LSTM进行预测。
因此,消除梯度消失问题以及提高检测精度成为电力网异常检测的首要目的,通过对电网流量数据特点的分析,本文结合前人研究内容,提出一种基于注意力机制的CNN-LSTM模型用来电网异常检测。加入注意力机制可以加强对重要特征的提取,从而防止序列过长信息丢失的问题。并且由于电力网数据具有海量、复杂、冗余等特点,因此,加入注意力机制可以更加合理地处理数据。通过与各类经典算法实验对比,本文所提方法具有更高的检测精度。
本文提出一个面向电力无线接入专网的异常流量检测方法,如图1,控制服务运行于OpenFlow控制器之上[9],自动转换开关电器(automatic transfer device, ATD)与无线核心网设备相连接。在异常流量识别方面,ATD 对底层数据流进行采样导入到控制器中,对数据流的异常状态进行动态识别、预警和阻断。
通过对数据流的预处理以及标准归一化之后,使用基于注意力机制的CNN-LSTM算法来进行异常流量实时检测。
图1 面向电力无线接入网的异常流量检测架构Fig.1 Abnormal flow detection architecture for electric power wireless access network
卷积神经网络(convolutional neural network,CNN)是一种具有高效识别能力的人工神经网络。
CNN网络采用局部连接和权重共享的方式,降低了网络模型的复杂度,并且减少了权重的数量。通过交替使用卷积层和池化层,从原始数据中自动提取数据的局部特征,并建立特征向量。
1)输入层。要将电力网络数据输入CNN网络,首先需要在输入层输入流量数据Xi,以便向量化成矩阵。输入长度限制为m,每条流量数据转换成n维向量。最后输出层输出二维矩阵Z=[W1,…,Wi,…,Wm],其中,Wi=[Xi1,…,Xij,…,Xin]表示为流量Xi的矩阵。
图2 CNN网络结构Fig.2 CNN network structure
2)卷积层。卷积层的目的是提取特征,每个卷积核对应提取某一部分特征。卷积核对输入层输出的矩阵Z进行如下卷积运算
S=f(WZ+b)
(1)
(1)式中:S是卷积运算得到的特征矩阵;W是权重矩阵;b是偏移向量;f()表示为卷积运算;W和b是通过网络学习得到的参数。在卷积运算中,滤波器的权重保持不变,需要学习的模型参数数量减少,简化了传统的神经网络结构。卷积层之后,在卷积层的输出中加入激活函数,在映射卷积层的输出中起到非线性作用。在本文实验中使用了ReLU激活函数,表示为
ReLU=max(0,x)
(2)
3)池化层。在卷积运算之后,提取的特征被传递到K-max池化层。池化层进一步聚集这些特征,选择K个最重要的特征,并简化特征的表达。
在CNN单元中引入一种注意力机制来提高对重要特征的关注。需要注意的是,由于信息处理的瓶颈,人们会选择性地关注信息的重要部分,而忽略其他可见信息[10]。受上述事实启发,人们提出了注意力机制,以提高在计算机视觉和自然语言处理等各种任务中的特征提取能力。因此,注意力机制可以通过关注重要特征来提高模型的性能。注意力得分机制的定义如下
ei=a(u,vi)
(3)
(4)
(5)
(3)—(5)式中:u是匹配的特征向量基于当前任务和用于与环境交互;vi是时间序列中时间戳的特征向量;ej是非规范注意力分数;αj为规范化注意力分数;c是根据注意力分数和特征序列vi计算出来的当前时间戳上的上下文特征。
W(i,c)=WCNN(i,c)⊗Wattention(i,c)
(6)
(6)式中:⊗表示元素乘式;i为时间序列在特征层中的对应位置;c表示通道。使用AMCNN的最终特征层输出作为LSTM层的输入。
LSTM是循环神经网络(recurrent neural network, RNN)的改进。LSTM可以学习长期依赖,尤其是在文本处理方面。在语言模型中,可以通过一定范围的上下文信息来预测下一个单词信息。它解决了长序列数据处理中梯度消失和长期记忆不足的问题。LSTM被广泛应用于语音识别和自然语言学习。LSTM的基本结构如图3。
图3 LSTM网络结构Fig.3 LSTM network structure
LSTM使用设计良好的“门”结构来删除信息或向单元的状态添加信息。“门”结构是一种选择性过滤信息的方法。LSTM单元包括遗忘门ft,输入门it和输出门Ot。3种门结构的计算定义如下
ft=σl(Wf·[ht-1,xi]+bf)
(7)
it=σl(Wi·[ht-1,xt]+bi)
(8)
Ct=tanh(WC·[ht-1,xt]+bC)
(9)
ot=σl(WO·[ht-1,xt]+bO)
(10)
ht=ot·tanh(Ct)
(11)
(7)—(11)式中:Wf,Wi,WC,Wo和bf,bi,bC,bo分别为时间步长t时输入向量xt的权矩阵和偏置向量;σl是激活函数;*表示矩阵的元素乘法;Ct表示单元状态;ht-1是时间步长t-1时隐藏层的状态;ht是时间步长t时隐藏层的状态。
将OpenFlowS上读取的时间序列数据归一化处理,以加速模型收敛。数据归一化,即用以消除不同维度数据之间的差异。对设备采集到的数据集中的数值型特征全部采用线性函数归一化处理进行等比例缩放。每一种特征数值转换为[0,1] ,转换公式为
(12)
在完成数据归一化标准处理后,将使用两级时间窗口提取样本。第1时间窗记录作为输入序列的当前网络工作状态;第2时间窗记录作为标签预测的未来网络状态。将2个时间窗口设置为长度相等,本文将根据不同时间窗的长度来比较模型的性能。
AMCNN-LSTM模型用于检测电力网络异常检测的工作流程如图4。首先,CNN的卷积层和池化层分别通过卷积运算和最大池化运算提取网络流量的特征,随后使用注意力模块进一步提取序列细粒度特征,将CNN单元处理后的输出与注意力单元的输出结合,得到AMCNN模块对序列数据特征提取后的输出矩阵。然后,将提取到的特征矩阵输入到LSTM神经网络结构中进行网络异常预测,从LSTM模型中输出的矢量矩阵输入到Dropout层以防止数据过拟合。具体算法流程如算法1。
算法1 基于注意力机制的CNN-LSTM检测算法
Step 1:OpenFlows读取电网流量数据,并做归一化、标准化处理;
Step 2:使用两级时间窗口提取样本数据,并输入至CNN单元;
Step 3:标准训练集数据通过CNN卷积层及最大池化层提取特征;
Step 4:并行注意力机制模型同时与CNN模块进行细粒度特征提取,并输出特征矩阵;
Step 5:通过LSTM网络训练分析特征矩阵,并对下一时间窗口数据进行预测;
Step 6:LSTM矢量矩阵经过Dropout层防止过拟合;
Step 7:使用验证集及测试集评估模型性能。
最后,通过sigmoid函数对全连通层的输出进行处理,得到0-1的结果概率p,并设置阈值对预测结果进行分类。本文设定的阈值为0.5。当p大于0.5时,预测未来会出现网络故障,当p小于0.5时,预测未来不会出现网络故障。
图4 基于AMCNN-LSTM异常检测框架图Fig.4 Anomaly detection framework based on AMCNN-LSTM
用于测试本文所提模型的数据集取自爱尔兰社会科学数据档案(ISSDA),由爱尔兰能源监管委员会(CER)提供。该数据集包含2009年至2010年收集的5 000名用户的用电设备上传数据。参与该计划的用户有住宅消费者、中小行业等。每隔30分钟收集一次流量上传数据。在验证所提出的模型之前,对数据集进行了预处理。为避免过拟合和欠拟合问题,本文将预处理后的数据集划分为训练集、验证集和测试集,按数据条数划分比例为6∶3∶1。其中训练集、验证集用来训练模型性能,在测试集上测试模型的泛化性能和准确性。
在训练过程中,以训练精度和模型损失函数作为参考,调整模型的超参数,使系统模型达到最优状态。在模型收敛后,在测试数据集上组织测试,评估模型的有效性。然后,对比几类经典机器学习算法,来验证本文所提算法在预测精度以及模型损失方面的性能。
ISSDA数据集收集的为AMI中智能电表流量数据,智能电网是智能电网系统的重要组成部分。在AMI中,智能电表取代了传统的数字和模拟电表。因此,网络异常具体可以体现在智能电表的被攻击与反常数据。
在本文中,使用Xl=[x1,x2,…,x48]表示第l天智能电表的良性数据和Yl=[y1,y1,…,y48]表示第l天的恶意功耗数据。为了测试所提出的方法,本文考虑了5种不同类型的异常。
1)A1:Yl=X24-(l-1);
2)A2:Yl=mean(Xl-1)
3)A3:Yl=αlmean(Xl-1),αl=[αl1,αl2,…,αl48];
where:αli=random(mini,maxi)
4)A4:Yl=αlXl,αl=[αl1,αl2,…,αl48];
where:αli=random(mini,maxi);
5)A5:Yl=αXl,α=random(min,max)。
在A1中,攻击者反转前一天的用户数据,并将这些被操纵的数据发送到网络。在A2中,攻击者将前一天的消费平均值发送到数据收集中心。在A3中,具有均匀分布的随机数与前一天的平均值相乘;在A4中,一个不同的随机数乘以当天的每个消费读数;在A5中,某一天的所有能量读数都乘以一个随机数。
在本文中,采用4种模型预测评价指标:准确率、精准率、召回率和F-Measure被用作评估指标。准确率(Accuracy)能够体现出检测模型能正确检测出正常和异常行为的概率,精确率(Precision)值能体现出模型判定为异常行为的数据中真实的异常行为所占的比重,召回率(Recall)值能体现出模型正确检测出异常行为的概率,综合评价指标F-measure是精确率和召回率的综合。各类指标的具体计算方法为
(13)
(13)式中:TP表示实际为样本正常预测也为正常;FP表示样本实际为异常但预测为正常;TN表示样本实际为异常预测也为异常;FN样本表示实际为正常预测为异常。
3.4.1 模型关键参数设置
运用固定参数法选取本文模型的关键参数,其中包括AMCNN单元的注意力深度、CNN模型深度以及 LSTM模型步长,各类测试的评价结果如图5。随着模型的深度以及步长的加大,整体效果均表现为先变好后逐渐下降,因为随着模型深度及步长的加深,模型处理的数据量不断加大,并且随着注意力深度的加深,模型整体拟合能力超过一定预期,过拟合效果使得模型的预测能力变差。
图5 模型参数设置对比Fig.5 Comparison of model parameter Settings
3.4.2 模型收敛性分析
为了验证模型的收敛性,本文选择在训练集与验证集上进行模型损失对比,在ISSDA数据集上训练AMCNN-LSTM模型。图6显示了200个轮次的训练和验证损失。
3.4.3 不同预测算法对比
为了验证本文算法模型的优越性,按照3.3节介绍的4个评价标准,将该模型算法与CNN,LSTM,CNN-LSTM算法进行对比,结果如图7。图7a中展示了不同算法在不同迭代轮次下的预测准确率;图7b体现为不同算法的精准率对比;图7c为不同算法的预测召回率对比;图7d为综合Precision与Recall的评价指标F-measure得分对比。
3.4.4 实验结果分析
通过对实验结果的分析得出,本文提出的AMCNN-LSTM算法在检测电力网络环境中的正确样本有着更加优越的性能。
预测召回率,即正常样本中检测为正常方面,经过150轮迭代后达到了89.14%的召回率,表明本文所提的算法具有更高的灵敏度,对于一些隐蔽的难以发觉的网络异常具有更好的响应。此外,根据图7a的结果显示,基于注意力机制的CNN-LSTM算法具有更高的检测正确率。加入了注意力机制,可以有效提高对时间序列数据的细粒度特征的提取,因此,相较于其他类深度学习检测模型,AMCNN-LSTM算法能够达到更高的精度要求。
图6 模型Loss对比Fig.6 Model Loss comparison
图7 不同算法性能对比结果Fig.7 Comparison results of performance of different algorithms
在信息检索中,准确率和召回率是互相影响的,高准确率不一定会给网络检测带来正相关的收益,在检测为负样本,即网络攻击或异常数据,一定程度上会带来误判。根据图7b结果显示,本文算法在预测准确率上高于其他几类算法,因此,综合准确率及召回率结果,本文最终采用F-measure得分来评判模型预测性能。从图7d可以得出,基于注意力机制的CNN-LSTM算法具有89.67%的综合F-measure得分,高于CNN-LSTM模型的81.24%。
通过对电力网络系统流量的分析,针对网络数据增多和人工特征提取不足等问题,提出了一种基于注意力机制的CNN-LSTM的电力网络故障预测模型来检测网络异常状态。在实验中,首先对日志数据进行预处理,然后将对数文本输入嵌入层进行向量转换为矩阵,将矩阵输入神经网络,由注意力机制模块与CNN并行提取细粒度特征,然后使用LSTM进行预测。对该数据集的实验仿真结果表明,本文提出的基于注意力机制的CNN-LSTM混合神经网络的预测性能优于CNN,LSTM和CNN-LSTM预测模型。
结合上文分析,基于AMCNN-LSTM的电力无线接入专网流量异常检测机制可以提供较高的检测准确率以及较低的漏报误报率。针对电力网环境下,可以快速地应对因为流量异常而发生网络故障,从而大大提高整体电力网络的鲁棒性,增强电力信息网络的安全性。