基于残差全连接神经网络的电力监控系统异常行为检测方法
2020-12-22霍雪松朱红勤
李 伟 霍雪松 张 明 朱红勤
(1 东南大学计算机科学与工程学院,南京211189)(2 国网江苏省电力有限公司,南京210000)
近年来,随着各类网络化应用的不断拓展和深化,蠕虫病毒、木马、黑客攻击等恶意网络行为日益猖獗,网络安全事件进入高发期.作为电力系统的关键信息基础设施,电力监控系统是确保电网安全稳定运行的核心,已被不少国家视为网络战的首选攻击目标.2017年乌克兰、2019年委内瑞拉等均已相继发生了严重的电力工控网络安全事件,给当地社会经济造成极大损失[1].随着能源互联网的全面推进,我国电力监控系统的智能化、网络化程度不断提升,同时网络攻击行为新变种也层出不穷,亟需实现快速、准确的电力监控系统异常行为检测,提升电力监控系统的安全防护能力.
早期通常采用人工分析的方式获取异常行为特征,随着网络攻击行为的不断变化,依靠人工方式获取异常行为特征的代价越来越高甚至不可行[2].机器学习技术能够从网络数据中自动提取异常行为特征,产生检测规则,识别未知行为,已成为近些年网络异常行为检测的研究重点[3].依据是否需要对样本数据进行标记,相关工作主要分为无监督学习、有监督学习和半监督学习.无监督学习利用无标记样本数据通过聚类[4-5]等方法实现异常行为识别,算法简单且无需标记样本数据,但识别准确率低.有监督学习基于标记样本数据,采用隐马尔可夫[6]、决策树[7]、支持向量机[8]等模型进行训练获取行为特征,识别准确率优于无监督学习,但要求对所有训练样本数据进行标记,开销巨大.半监督学习只需部分标记样本数据,通过生成若干成员分类器进行集成学习,降低训练样本数据标记开销的同时,提升了异常行为识别准确率.文献[9]提出了一种自适应集成学习模型,通过调整训练数据比例,构造一个多决策树算法实现网络入侵行为检测;文献[10]提出了一种基于集成的半监督学习方法,采用随机森林、支持向量机、决策树等多种分类器实现网络异常行为的分布式检测.该类方法多采用支持向量机、决策树等传统机器学习模型构建成员分类器,其识别准确率受人工经验选取的特征指标影响较大.
深度学习通过深层次神经网络逐层学习样本数据的内在规律和表示层次,完成复杂的分类学习任务,解决了传统机器学习模型中需要人工设计特征的问题,已广泛应用于图像识别、目标检测、个性化推荐等领域[11].文献[12]对多种基于深度学习的网络异常检测方法进行了分析比较,指出深度学习模型层次越深,对各类型特征的抽象提取越细致,异常行为的识别准确率就越高.但是,模型深度的增大会导致梯度爆炸或梯度消失问题,使有效信息被过分夸大或隐瞒,严重影响了深度神经网络模型的识别精度与收敛速度.为解决该问题,文献[13]率先在图像识别领域提出了将底层信息越过中间层直接送至高层的残差思想,通过构建残差卷积神经网络,使得网络高层可以对其邻接层的输出和底层的输出进行综合分析,从而提升图像识别的精准度.
本文将深度学习模型与半监督学习方法相结合,提出了一种基于残差全连接神经网络的电力监控系统异常行为检测方法.该方法选取能够反映电力监控系统异常行为的流量特征、系统日志、系统告警等历史数据来构建训练样本并进行部分标记,基于残差思想构建两级残差全连接神经网络模型,并将其作为构建成员分类器的核心分类模型;然后,采用混合扰动方法生成具有差异性的成员分类器,利用有标记样本数据进行离线训练;最后,基于有标记训练样本,计算各成员分类器的识别误差率,通过加权多数表决法对无标记训练样本进行增量学习,进一步强化成员分类器的识别能力,形成集成分类器,实现电力监控系统异常行为的快速、准确识别,同时降低了对训练样本数据进行人工标记的开销.
1 基于残差全连接神经网络的核心分类模型
为了能够快速准确地检测出电力监控系统的异常行为,首先需要选择能够反映电力监控系统行为的历史数据进行训练和学习,获取电力监控系统的行为特征.当电力监控系统受到网络攻击时,系统中的流量特征往往会伴随着某种异常行为的出现而发生变化;当电力监控系统存在非法操作或误操作时,这些异常操作均会记录在设备或系统的日志中,严重时还会产生告警信息.因此,本文选取能够反映电力监控系统异常行为的流量特征、系统日志、系统告警等已采集的历史行为数据,通过清洗、归一化等预处理操作,生成电力监控系统行为样本数据.在此基础上,根据监管经验和是否已造成危害等事实,选取部分样本数据进行标记.异常行为对应的样本数据标记为0,正常行为对应的样本数据标记为1.最终构成的训练样本T为
(1)
式中,ti(i∈[1,m])为经过预处理和标注的反映电力监控系统历史行为的第i条训练样本数据;tij为第i条训练样本数据中第j(j∈[1,n])个特征值,即电力监控系统的流量特征、系统日志、系统告警等行为特征样本数据;yi为第i条训练样本数据对应的电力监控系统行为类别标记,异常行为取值为0,正常行为取值为1.
在对训练样本进行半监督学习过程中,成员分类器所采用的核心分类模型的性能和学习效果直接影响着电力监控系统异常行为检测的准确性.为了提升核心分类模型的识别准确率,解决深度全连接神经网络梯度消失、梯度爆炸导致的算法收敛慢等问题,本文将残差思想引入全连接神经网络模型,将底层信息越过中间层直接送至高层,借助中间层对信息进行有效提炼分析的同时,加入原始信息避免有效信息在中间层被隐瞒篡改,构建两级残差全连接神经网络模型,并将其作为构建成员分类器的核心分类模型.该模型由输入层、残差全连接层、输出层和Softmax层4部分组成(见图1).
图1 两级残差全连接神经网络模型
1.1 输入层
输入层负责将有标记的训练样本数据中反映电力监控系统行为的流量特征、系统日志、系统告警等特征样本数据组织成输入向量x={x1,x2,…,xn},以便后续残差全连接层进行训练学习,其中xj(j∈[1,n])为电力监控系统行为特征数据的第j个特征值.
1.2 残差全连接层
残差全连接层是整个核心分类模型识别精度的根本保证,可根据需要设置多个残差全连接层.层数越多,分类模型对电力监控系统行为特征的抽取越细致,分类模型的识别精准度越高.为了解决残差全连接层层数增加带来的梯度消失、梯度爆炸等问题,本文采用两级残差结构对输入数据进行训练学习.每个残差全连接层由3个残差全连接块组成,第3个残差全连接块的输入由第1个残差全连接块的输入与第2个残差全连接块的输出共同构成;每个残差全连接块由3个隐含层和1个批标准化(batch normalization,BN)层构成,第3隐含层的输入由第1隐含层的输入与第2隐含层的输出共同构成(见图2).两级残差结构的使用可以使训练样本数据蕴含的信息在全连接神经网络隐含层之间更加充分地进行交互,从而避免有效信息在隐含层之间传递过程中被夸大或隐瞒.
图2 残差全连接块结构图
残差全连接块中第1隐含层的计算公式为
(5)
式中,向量x为第1隐含层的输入向量,可以来自整个残差全连接神经网络模型的输入层,也可以来自邻居残差全连接块的输出;w[i]、b[i]、a[i]分别为第i隐含层的权重矩阵、偏置向量和输出向量;z[i]为第i隐含层对其输入向量进行线性连接操作的输出向量;BN(·)为对输入参数进行归一化处理的函数;O为经过BN层进行归一化处理后的输出向量,并作为该残差全连接块的输出向量提供给下一层做进一步的特征抽象处理;leaky_ReLU(f)为激活函数,实现对输入参数f的非线性转换,即
(6)
与其他激活函数相比,该激活函数既具有非线性函数的处理效果,又具有线性函数收敛速度较快的优势,还能够避免出现反向传播梯度消失问题.
训练样本数据具有一定的波动性,如果不加处理,层与层之间的训练存在级联关系,相互影响较大,从而导致训练过程出现震荡现象,模型无法快速收敛.通过在每个残差全连接块内增加1个BN层[14],对输出数据做归一化处理,可以使每个残差全连接块的输出数据在[-1,1]区间内波动,削弱了残差全连接块之间的级联影响,使得各残差全连接块能够相对独立地进行训练,从而加快整个分类模型的收敛速度.
1.3 输出层
输出层根据残差全连接层的输出结果,分别计算训练样本数据与电力监控系统异常行为和正常行为的对应值并输出,计算公式为
P=woutα[h]+bout
(7)
式中,α[h]为第h个残差全连接层的输出向量;wout为输出层的权重矩阵;bout为输出层的偏置向量;P={P0,P1},其中P0、P1分别为电力监控系统异常行为和正常行为的对应值.
1.4 Softmax层
Softmax层根据输出层的计算结果,计算训练样本数据中的每一条记录分别对应电力监控系统异常行为和正常行为的概率值并输出.由于输出层得到的训练样本数据与电力监控系统异常或正常行为对应值Pk(k∈{0,1})的取值范围均为(-∞,+∞),为了得到对应每个行为类别的概率值,先通过ePk将对应值映射到(0,+∞),然后再归一化到(0,1),其计算公式为
(8)
式中,S0表示输入的训练样本数据中每一条电力监控系统行为数据对应异常行为的概率值;S1表示其对应正常行为的概率值.
为了衡量分类模型的分类准确性,需要综合评价模型各层在各自权重矩阵w和偏置向量b作用下训练T中m条样本数据时产生的平均损失值.平均损失值越小,模型的分类准确性就越高.本文选取交叉熵函数作为损失函数,即
(9)
整个模型的训练过程为,采用反向传播的梯度下降法进行优化调整,找到每层最佳的(w,b)组合,使得整个分类模型的平均损失值L(w,b)最小.
2 基于混合扰动和加权多数表决的集成分类器
2.1 基于混合扰动的成员分类器构建
对于半监督学习方法而言,用于训练的有标记样本数据规模较小,虽然能够降低标记训练样本数据所产生的开销,但是往往会导致分类器的识别准确率较低.集成分类则可以将一定数量具有差异性的弱分类器通过集成学习训练成一个强分类器.因此,本文以两级残差全连接神经网络模型为核心分类模型,选取不同的训练样本特征子空间、训练样本子集、残差全连接层层数进行多种组合,采用混合扰动的方法对核心分类模型进行离线训练,生成多个具有差异性的成员分类器G(x).在构建成员分类器时,要确保生成的成员分类器对相同电力监控系统行为数据的类型识别结果具有一定差异性,从而提升在对成员分类器进行集成学习时进行集体决策的准确性.基于混合扰动的成员分类器构造算法见算法1.
算法1 基于混合扰动的成员分类器构造算法
输入:表征电力监控系统行为的特征指标集D={d1,d2,…,dn},训练样本T.
输出:成员分类器集合Gall(x).
Gall(x) =∅;
foru=1 toN
{从特征指标集D中随机选取q项特征指标,生成特征指标子集Du;
forv=1 toM
{从训练样本T中随机选取60%的训练样本数据,生成训练样本子集Tv;
根据特征指标子集Du,对训练样本子集Tv进行投影,得到与特征指标子集Di对应的样本子集Tuv;
构建W个残差全连接层数两两不同的两级残差全连接神经网络模型F1,F2,…,FW;
forl=1 toW
}
}
}
2.2 基于加权多数表决的集成分类器
在成员分类器生成后,采用加权多数表决法将多个识别能力较弱的成员分类器线性组合成一个识别能力较强的集成分类器.
首先,基于相同的测试样本数据集,分别计算训练后每一个成员分类器的分类误差率.第k个成员分类器Gk(x)的分类误差率rk为分类错误的测试样本数据条数与测试样本数据总条数的比值,则第k个成员分类器Gk(x)的投票表决权重ck为
(10)
成员分类器的分类误差率越小,说明识别结果越可靠,则相应的投票权重就越大;反之,投票权重越小.
然后,基于投票表决权重将多个成员分类器线性组合成一个强分类器G(x),即
(11)
式中,K为组成强分类器的成员分类器个数.式(11)的意义是将所有成员分类器对电力监控系统行为样本数据x的识别结果(即将其判断为电力监控系统正常行为和异常行为的概率值)分别乘以该成员分类器的投票表决权重,再将所有成员分类器判断其属于某一种行为的概率值分别进行线性累加,取累加结果最大值对应的电力监控系统行为类型作为识别结果输出.
2.3 基于无标记样本数据的增量学习
为了进一步挖掘无标记的电力监控系统行为样本数据中蕴含的行为特征,可利用生成的集成分类器对无标记样本数据进行分类识别,根据设定的概率阈值和识别结果对相应的无标记样本数据进行自动标记,形成新增训练样本集,再将其作为有标记的训练样本对集成分类器进行增量学习,强化各成员分类器的识别能力,从而进一步提升集成分类器的识别准确率.在进行增量学习过程中,若每次只对单个训练样本进行学习,则会导致分类模型更新频繁,不易收敛.因此,本文在对无标记样本数据进行增量学习时,采用Minibatch优化方法[15],每次新增训练样本数量达到一定规模时才对成员分类器进行增量学习训练,从而避免单个训练样本的随机性对增量学习造成影响,具体学习过程见图3.
图3 基于无标记样本数据的增量学习
3 电力监控系统异常行为检测
基于残差全连接神经网络的电力监控系统异常行为检测过程主要分为数据采集、模型训练、行为识别3个环节(见图4).
图4 电力监控系统异常行为检测过程
在数据采集阶段,主要采集能够反映电力监控系统异常行为的流量特征、系统日志、系统告警等系统行为原始数据,一方面用于构建分类模型学习所用的训练样本数据,另一方面用于生成系统行为识别样本数据.
在模型训练阶段,对已积累的历史行为原始数据进行清洗,删除含有缺失值和异常值的记录,并进行归一化等数据预处理操作,选取部分预处理后的数据进行人工标记,构建训练分类模型所需的训练样本数据.然后,对基于混合扰动方法构建的若干成员分类器进行训练和学习,采用加权多数表决的方式,根据设定的概率阈值和识别结果,对无标记的样本数据进行增量学习,最终生成分类识别能力较强的集成分类器.
在行为识别阶段,对实时采集的反映电力监控系统行为的流量特征、系统日志、系统告警等原始数据进行清洗,删除含有缺失值和异常值的记录,进行归一化等数据预处理操作,生成电力监控系统行为识别样本数据,通过预先离线训练构建的集成分类器对电力监控系统异常行为进行在线识别.若识别结果判断为异常行为,则向系统管理员发出告警.
4 实验结果
为了验证本文方法的性能,通过实验从模型检测准确率和模型收敛速度2个方面,分别与决策树模型、多SVM协同学习模型、浅层人工神经网络模型、基于Adam优化的全连接神经网络模型进行对比分析.其中,实验数据采用国网江苏省电力有限公司南京供电分公司电力调度控制中心提供的经脱密处理的包含流量特征、系统日志、系统告警等信息的电力监控系统行为原始数据集,具体采用的特征指标集见表1.经过预处理后选择1×105条数据,分别按照5%、10%、15%、20%、25%、30%的比例进行样本数据标记,构成5个不同的训练样本集,选择5 000条数据并全部进行样本数据标记构成测试样本集.采用TensorFlow、SKlean、Numpy等机器学习开源框架构建上述各种机器学习模型.本文方法的核心分类模型采用3层残差全连接层.实验硬件环境为英特尔Core i7-3770(四核)、16 GB内存、Windows 7平台.
表1 实验采用的特征指标集
图5给出了不同标记数据规模下模型检测准确率的对比结果.由图可知,在不同样本标记规模情况下,本文方法的异常行为检测准确率最高.究其原因在于,该方法将基于残差思想的深度学习模型与半监督学习方法相结合,前者具有较深的网络层次保证,可以学习到更加细致的系统行为特征信息,后者则增加了基于无标记样本数据的增量学习功能,降低了对标记样本数据的需求,同时强化了各成员分类器的识别能力.
图5 不同标记数据规模下模型检测准确率对比
图6给出了标记数据比例为20%时模型训练收敛速度的对比结果.由图可知,基于Adam优化的全连接神经网络模型的收敛速度较慢,在训练开始20 min内,模型的检测准确率始终在85%左右波动;训练28 min后,模型检测准确率才达到90%以上,且训练过程中模型准确率出现较大波动.而本文方法在训练开始6 min后,模型检测准确率便超过90%;训练过程中,检测准确率未出现较大波动,且始终高于基于Adam优化的全连接神经网络模型.这说明本文方法引入的残差思想和BN层能够有效解决梯度消失、梯度爆炸、数据波动等问题,使模型训练收敛速度更迅速.
图6 标记数据比例为20%时模型训练收敛速度对比
5 结论
1) 为了提升电力监控系统的安全防护能力,本文将深度学习模型与半监督学习方法相结合,引入残差思想,提出了一种基于残差全连接神经网络的电力监控系统异常行为检测方法,实现电力监控系统异常行为的快速、准确识别,同时降低了对训练样本数据进行人工标记的开销.
2) 采用混合扰动方法,基于两级残差全连接神经网络模型构建具有差异性的成员分类器集群.在利用有标记样本数据进行离线集成学习的基础上,通过加权多数表决法,根据无标记训练样本数据对集成分类器进行增量学习,强化各成员分类器的识别能力,从而进一步提升集成分类器的识别准确率.
3) 实验结果表明,本文方法在无需对所有训练样本数据进行人工标记的情况下,其检测准确率和模型训练收敛速度明显优于其他已有方法.