APP下载

基于AE-BNDNN模型的入侵检测方法

2019-08-13陈铁明

小型微型计算机系统 2019年8期
关键词:编码器准确率神经网络

江 颉,高 甲,陈铁明

(浙江工业大学计算科学与技术学院,杭州310000)

E-mail:jj@zjut.edu.cn

1 引言

模型的超参数自动寻优,获得较高的检测精度.

入侵检测系统(Intrusion Detection System,IDS)作为防止网络攻击的一种重要手段,是对传统安全设备(如防火墙)的重要补充,弥补了传统安全技术的不足.IDS最早是通过实时监视网络流量或主机数据来判断系统行为是否异常,可以将其抽象为多分类问题.随着网络应用规模扩大,安全事件频发,IDS系统已经成为当前网络安全主要防控手段之一.

由于机器学习、深度学习技术在解决复杂数据分类问题时所展现出的强大能力,研究人员提出了使用各种机器学习模型用于提高入侵检测系统的准确率[1].但是,在面对特征规模较大的入侵检测时,存在着两个主要问题:第一,入侵检测数据中人工设置的特征常包含着许多冗余,影响模型的检测效果;另外,冗余的特征会增加模型训练时间.针对以上两个问题,本文提出了一种基于深度神经网络的检测模型.该模型首先采用自编码器对数据特征进行学习,降低训练数据特征的维度、去除冗余特征,然后采用经过改进的深度神经网络(Deep Neural Networks,DNN)对经过特征降维的数据集进行分类,提高模型收敛速度并减少过拟合,并通过设计多层网格搜索算法实现对

2 相关研究

传统的机器学习算法如朴素贝叶斯(Naive Bayesian,NB)[2]、逻辑回归(Logistic Regression,LR)[3]和支持向量机(Support Vector Machine,SVM)[4]等在入侵检测的研究中取得一定的效果[5],随着计算机硬件技术的不断更新,计算机运行速度及计算性能的不断提升,以神经网络[6]为基础的深度学习算法在大规模特征数据处理方面带来了新的突破[7].1992年,Debar等人[8]首次将神经网络应用于网络入侵检测,提出采用神经网络对用户行为进行建模,并将其作为入侵检测专家系统的一个补充.此后多种深度学习方法被应用于入侵检测领域[9],以解决网络连续收集的流量数据导致的入侵检测数据量大和多维特征的问题.Staudemeyer等人[10]首次使用循环神经网络的变体长短期记忆神经网络(Long Short Term Memory,LSTM)用于入侵检测,通过大量的调参实验,使用KDD CUP99数据集进行验证,取得93.82%的准确率,但由于LSTM模型更适合于处理时序特征,所以适合于对高频攻击进行分类,对于低频攻击,LSTM效果欠佳.Ni Gao等人[11]将深度信念网络(Deep Belief Networks,DBN)引入到入侵检测领域,经过参数调试和预训练,模型准确率最高达到93.49%,模型性能优于 SVM 和 ANN.Aygun等人[12]采用自编码器(Auto Encoder,AE)和去噪自编码器(Denoising Autoencoder,DA)作为分类方法,对KDD CUP99数据集进行实验,分别取得了88.28%和88.65%的准确率.直接采用深度学习模型对入侵数据进行分类取得了一定的检测效果,但由于没有对入侵数据进行充分的处理,导致提出的多种入侵检测模型没有发挥出最好的检测效果.因此,本文拟对网络入侵数据进行特征降维处理,再采用调整过的深度学习模型对降维后的数据进行训练.

3 AE-BNDNN入侵检测模型的设计

3.1 设计思路和模型总体框架

为解决入侵数据高维数据特征给检测模型带来的两个问题,即影响训练准确率和增加训练时间,本节给出如下设计思路.

首先,入侵检测数据特征维度较高,存在人工设置的冗余特征,例如KDD CUP99数据集的特征经过预处理后达到122个,这是导致入侵检测模型训练速度缓慢和影响模型准确率的主要原因,因此需要对特征维度较高的入侵数据进行特征降维.本文采用自编码器对特征进行降维,自编码器(Auto-Encoder,AE)[13]是神经网络的一种,通过对指定数据集的压缩编码,可以达到对训练数据进行特征降维的目的,且压缩效果优于主成分分析法(Principal Components Analysis,PCA)[14].该算法将数据的特征部分作为输入,经过训练后将输入近似地复制到输出[15],即输出尽可能复现输入.因为没用使用到标签数据,所以自编码器是一种非监督的网络模型.从自编码器中获得有用的特征,需要限制压缩表达层h的维度比输入层x的维度小,这种编码维度小于输入层维度的自编码器也称作欠完备自编码器,欠完备自编码器的压缩表达层捕获训练数据中最显著的特征.

然后,入侵检测数据中存在多个特征具有不同数量级,例如在KDD CUP99数据集中,表示连接持续时间的字段duration取值范围约为0到6×104,而表示从源主机到目标主机数据的字节数的字段src_bytes取值范围约为0到1.3×109.利用深层神经网络训练入侵检测数据,由于涉及到多层叠加,其中每一层输入数据的分布可能会发生变化,从而导致每层的参数也会改变.这使得在训练过程中必须降低学习的速率,将会影响网络的训练速度,也即内部相关变量转移(Internal Covariate Shift).本文采用 ICML文中[16]提出的规范化层(Batch Normalization,BN)概念,即在DNN隐藏层的激活函数之前添加批量规范化层,来降低特征具有不同数量级对模型训练速度的影响.将自编码器网络和改进后的深度神经网络结合,设计形成新的入侵检测模型——AE-BNDNN模型.

AE-BNDNN入侵检测模型中存在大量参数可分为两类:一类是根据训练数据学习到的参数,譬如模型的权重和偏差等;另外一类是人工设定的参数,用于定义模型属性或者训练过程的参数,也称为超参数.超参数不相同,则模型也不相同.由于没有公认最好的超参数设置方法,超参数一般根据经验确定,并不断的进行实验调优.自动调参方法中遗传算法(genetic algorithm,GA)[17]和粒子群算法(particle swarm optimization,PSO)[18]属于启发式算法,往往操作复杂,可能会陷入局部最优的处境.而网格搜索法(grid search)[19]是将待搜索的参数在其可能取值范围内划分成多个网格,遍历其中的所有可能交点来寻找最优的参数组合,当划分区间足够大,且步长足够小的情况下可以找到全局最优解,这样可以在允许的时间范围内找到使模型最优的参数组合.

图1 AE-BNDNN检测模型Fig.1 AE-BNDNN detection model

因此,本文提出的模型总体框架如图1所示,模型分为3个主要部分,第1部分即自编码器用于入侵检测数据特征降维;第2部分即改进的深度神经网络进行入侵行为的分类;第3部分即使用多层网格搜索算法对模型超参数进行自动寻优.

3.2 基于自编码器的特征降维

本文采用的自编码器网络结构由编码部分和解码部分组成.将入侵检测数据集预处理后得到122个特征作为自编码器网络的输入,首先采用3层隐藏层结构来对输入数据做压缩表达,压缩表达层得到5维的特征,压缩维度的选取将在

4.4.2 节实验部分给出,然后解码部分对压缩的特征进行解码重构,最后通过最小化重构项和原始数据之间的误差对权值进行训练.

具体步骤:

步骤1.编码器将输入层数据x进行压缩表达:

其中,f表示非线性激活函数,如relu或者tanh,W和b表示编码部分的权值和偏置,h表示编码部分的输出.

步骤2.解码器将压缩表达层数据h进行解码重构,输出为:

其中,W'和b'表示解码部分的权重和偏置.

步骤3.最小化重构数据和原始数据的误差,采用均方误差计算输出和输入之间的误差:

3.3 批量规范化层的深度神经网络结构

本文采用ICML文中提出的规范化层(Batch Normalization,BN)概念,在DNN隐藏层的激活函数之前添加批量规范化层,即在每次使用小批量的样本来训练时,通过对隐藏层的激活函数做规范化操作,使得每层输入的均值为0,方差为1.添加了批量规范化层的DNN的结构如图2所示.

对于大小为m的小批量样本mini-batch:B={x1…xm},其中xi表示批量中的第i条训练样本,批量规范化操作的具体步骤:

图2 添加批量规范化层的深度神经网络结构Fig.2 Deep neural network structure with batch normalization layer

步骤1.计算整个mini-batch的均值μB:

步骤2.计算整个mini-batch的方差σ2B:

步骤4.对于隐藏层第k个神经元x(k)都有一对参数γ和β:

步骤3.对xi进行规范化操作得到^xi:

其中Var[x(K)]表示一批训练数据在第k个神经元上的方差,E[x(K)]表示一批训练数据在第k个神经元上的均值.

3.4 检测模型的超参数优化

本文采用多层网格搜索策略对AE-BNDNN模型的超参数进行自动寻优,目的是为了找到一组最优的超参组合,使得模型对网络入侵行为识别准确率达到最优.例如对于批量大小batch-size和训练轮次epochs这组参数寻找最优组合,首先设置大步长,进行大范围的搜索,找出当前的最优参数组合,例如batch-size和epochs取值分别为200和300,然后重新划定搜索范围,缩小步长,进行细粒度的搜索,进一步确定精确的最优参数组合.例如batch-size和epochs取值分别为195和310,重复执行直到模型的分类准确率不再提高为止,多层网格搜索过程如图3所示.

图3 网格搜索示意图Fig.3 Grid search schematic diagram

令超参数组合P={A,B,…},其中A,B分别表示待搜寻的参数,{a1,a2,…}∈A 和{b1,b2,…}∈B 分别表示待搜寻参数的候选值,搜索策略优化过程如算法1所示:

算法1.多层网格搜索优化

输入:待寻的神经网络超参数

输出:超参数最优组合

算法开始

1给每个待寻优的超参数初始化一组间距较大的候选值;(a1,a2…),(bi,b2…),…;

2 遍历每一组超参数组合(a1,a2…),(bi,b2…),…;

2.1 当前超参数组合代入模型计算准确率:

Accuracy(ax,bx,…)

2.2 记录当前超参数组合及其准确率Accuracy;

3选择第2步得到使Accuracy最大的超参数组合,对其中的每一个超参数,在其邻域内重新划分较小的候选间距,使得上一层间距为新间距的α倍,α的具体值由实验确定,设置新的间距候选值;

4对新的超参数候选值重复第2步、第3步;

5直到模型准确率不再提高为止,得到一组超参数组合(^a1,^b1,…).算法结束

4 实验及结果分析

4.1 实验数据和实验环境

本文实验数据采用Tavallaee等人[20]在KDD99数据集的基础上提出的NSL-KDD数据集,它针对KDD CUP99数据集中存在的不足,删去了其中的冗余数据.NSL-KDD数据集每条记录的数据格式和KDD99数据集相同,每一条数据包括41个特征和1个标签.其中41个特征包括32个连续特征和9个离散的特征,标签包含拒绝服务攻击(Dos)、扫描攻击(Probing)、来自远程机器的非法访问(R2L)、普通用户对超级用户特权非法访问(U2R)和正常(Normal)五类.本文随机选取其中的30000条数据进行实验.

实验硬件环境为Windows7操作系统,CPU为i7-4790,内存4G.模型采用开源的深度学习框架Keras搭建.

4.2 数据预处理

对实验数据主要进行离散数据数值化和数据归一化处理.

对NSL-KDD数据集9个离散类型特征中的协议类型protocol_type、目标主机的网络服务类型service和连接正常或者错误的状态flag进行独热编码(one-hot编码).例如protocol_type共有三种取值,对其进行one-hot编码如表1所示.

表1 对离散数据进行one-hot编码Table 1 One-hot encoding of discrete data

对输入数据特征进行归一化使得特征被限定在一定的范围内(比如[0,1]或者[-1,1]),进而消除奇异样本数据引起的不良影响,可以加快模型的学习过程.对于数据分化较大的特征如duration(连接持续时间)、src_bytes(从源主机到目标主机的数据的字节数)和dst_bytes(从目标主机到源主机的数据的字节数)采用非线性归一化:

然后对所有特征进行最大最小标准化(Min-Max Normalization):

4.3 实验评价标准

AE-BNDNN模型是分类模型,分类模型最常用真阳性(True Positive,TP),假阳性(False Positive,FP),真阴性(True Negative,TN)和假阴性(False Negative,FN)4 个指标来度量模型的有效性.

由于NSL-KDD数据集属于分类不平衡的数据集,其中正常样本所占比例远远高于其他四种异常样本,因此选择使用准确率(Accuracy),精确率(Precision),召回率(Recall)和F1分数(F1-score)四个指标评价AE-BNDNN模型以及其他对比模型的分类性能.

4.4 实验对比与分析

AE-BNDNN模型自编码器部分采用多层神经网络结构,输入层有122个神经元,输出层和输入层神经元相同,网络入侵数据的输入的特征向量既作为神经网络的输入又作为神经网络的标签,实验中采用的编码器和解码器各三层,分别有80、40、10和10、40、80个神经元.输入特征向量经过自编码器隐藏层的重构,在隐藏层的向量就可看作是输入特征向量的压缩.其中隐藏层的数据作为下一步深度神经网络分类器的输入.

4.4.1 训练轮次对模型的影响

模型训练时把所有训练数据完整训练一次为一个轮次(epoch),轮次的大小对模型分类准确率有很大影响.如图4所示,随着轮次次数的增加,AE-DNN模型检测准确率Accuracy逐渐升高并趋于稳定,准确率可达到97%.

图4 轮次大小对检测准确率的影响Fig.4 Effect of the number of epochs on the detection accuracy of model

4.4.2 自编码器压缩维度对模型的影响

自编码器将122维的特征压缩至低维特征的程度对AEDNN模型准确率的影响如图5所示.实验结果显示,特征降维的维度对模型的准确率产生一定的影响,特征缩放至10-20维时效果较好.

图5 压缩维度对模型检测准确率的影响Fig.5 Effect of compression dimensions on the detection accuracy of model

4.4.3 添加批量规范化层对模型的影响

模型添加BN层与未添加BN层实验对比如图6所示,结果显示,添加BN层模型收敛速度加快,并且模型的准确率有一定的提升,准确率最高可达到98%.

图6 添加BN层对模型检测准确率的影响Fig.6 Effect of adding BN layer on the detection accuracy of model

4.4.4 多层网格搜索优化超参数对模型的影响

使用多层网格搜索算法对批次大小、优化函数、初始权重、激活函数和隐藏层神经元个数等超参数进行自动参数寻优.搜索算法对AE-BNDNN模型超参数进行调优实验结果如图7所示,随着训练轮次的增加,模型收敛速度进一步提升,准确率最高达到99.28%.

图7 网格搜索对模型检测准确率的影响Fig.7 Effect of grid search on the detection accuracy of model

4.4.5 与其他方法对比

表2 不同模型对比Table 2 Comparison of different models

4.4.6 模型平均建模时间

图8展示了本文所提模型与传统DNN模型以及PCA-DNN模型的建模时间对比,包括模型训练时间和模型测试时间.从图8中可以看出,AE-BNDNN模型在训练时间上比传统DNN降低了18.8%,在测试时间上和传统 DNN相当.由于本文采用的自编码器属于神经网络,导致模型训练时间较长,略高于采用PCA降维的模型,但用于测试时的时间消耗是相近的.实验表明AE-BNDNN模型相对于DNN模型在提高检测准确率同时,能够进一步降低模型训练时间.

图8 建模时间对比Fig.8 Modeling time comparison

5 结论

本文针对入侵检测数据特征规模较大而导致机器学习算法检测准确率较低和训练时间较长的问题,提出了AEBNDNN模型,实验结果表明,本文提出的模型在多个评估指标上均优于其他对比方法,并且有效地降低了模型训练时间.但由于自编码器自身的不足,导致模型学习时间增加,所以模型在运行时间上还有改进空间.下一步工作将研究真实情况下的网络入侵,使用带有噪声的数据来验证AE-BNDNN模型的检测性能.

猜你喜欢

编码器准确率神经网络
融合CNN和Transformer编码器的变声语音鉴别与还原
基于神经网络的船舶电力系统故障诊断方法
基于递归模糊神经网络的风电平滑控制策略
设定多圈绝对值编码器当前圈数的方法
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
2015—2017 年宁夏各天气预报参考产品质量检验分析
转炉系统常用编码器选型及调试
颈椎病患者使用X线平片和CT影像诊断的临床准确率比照观察
舞台机械技术与设备系列谈(二)
——编码器