基于双向门控卷积神经网络的网络流量异常检测分类方法
未命名
10-09
阅读:139
评论:0
1.本发明属于网络流量异常检测技术领域,具体涉及基于双向门控卷积神经网络的网络流量异常检测分类方法。
背景技术:
2.随着数据量的快速增长和网络应用的广泛使用,网络安全引起了越来越多专家学者的关注。在网络流量中,异常现象是安全问题的主要症状。网络异常会造成网络拥堵、资源分配不均衡、性能下降以及一些安全问题,最终可能导致数据泄露和经济损失。网络异常流量检测可以检测网络中的突发攻击事件,检测到攻击后可以做出应对,减少损失,而分类可以把攻击的类型识别出来,针对不同的攻击采取不同的应对措施,对症下药。因此,进行网络异常检测,识别异常流量就具有重要的应用价值。目前深度网络已经被大量应用于网络异常检测中,如卷积神经网络、长短期记忆神经网络、多层感知机等。但这些方法盲目的将所有数据放入模型中进行检测,造成模型的计算成本较大,检测精度降低的情况。同时,这些模型在异常检测中,不能很好的处理网络异常流量的多分类任务,存在分类准确率较低的问题。
技术实现要素:
3.本发明的目的在于提供一种基于双向门控卷积神经网络的网络流量异常检测分类方法,以解决现有技术中存在的检测精度低、分类准确率较低的问题。
4.为了实现上述目的,本发明采用如下技术方案予以解决:
5.一种基于双向门控卷积神经网络的网络流量异常检测分类方法,具体包括以下步骤:
6.步骤1,对cic-ids2017数据集进行数据预处理;
7.步骤2,构建基于双向门控卷积神经网络的网络流量异常检测模型,该模型用于实现如下流程:
8.步骤2.1,通过双向长短期记忆神经网络层提取步骤1预处理后的数据的时间相关性特征;
9.步骤2.2,通过batchnorm归一化层和dropout正则化层对步骤2.1提取的特征进行处;
10.步骤2.3,通过门控卷积神经网络对步骤2.2处理的结果提取数据的时空特征;
11.步骤2.4,通过全连接层对步骤2.3提取的数据的时空特征进行最终分类;
12.步骤3,通过crossentropyloss损失函数对基于双向门控卷积神经网络的网络流量异常检测模型进行监督训练,得到训练好的基于双向门控卷积神经网络的网络流量异常检测模型。
13.步骤4,将待检测网络流量数据进行预处理后输入步骤3得到的训练好的基于双向门控卷积神经网络的网络流量异常检测模型,输出异常检测结果。
14.进一步的,所述步骤1的具体操作如下:
15.步骤1.1,去除无用数据:删除网络流量异常数据中包含nan和infinity值的行;删除类别较少的infiltration、heartbleed攻击;
16.步骤1.2,合并标签:将属于同一大类的攻击类型数据合并;
17.步骤1.3,对数据的标签等符号型特征做one-hot编码,对数据的特征进行归一化映射到[0,1]区间内;
[0018]
步骤1.4,计算每个数据特征的fisher分数,选择fisher分数排在前60的特征作为输入模型的特征集。
[0019]
进一步的,所述步骤2.1的具体操作如下:将预处理后的数据送入双向长短期记忆层进行特征提取,首先使用两层bilstm层对数据进行提取特征阶段,再使用一层bilstm层根据提取后的特征生成新的特征,每层bilstm层的输出特征数依次为40、20、40。
[0020]
进一步的,所述步骤2.2具体操作如下:对bilstm处理后的数据先使用batchnorm归一化层,再使用参数为0.3的dropout正则化层处理数据。
[0021]
相较于现有技术,本发明的有益效果如下:
[0022]
1、使用的fisher分数对数据特征进行筛选,去除数据集中无关紧要或庸余的特征,以此减少模型的计算成本,得到重要的特征集。
[0023]
2、提出的双向长短期记忆神经网络进行特征提取时能够提取流量数据中的时间相关性特征。
[0024]
3、提出的门控卷积神经网络层进行特征提取时能够过滤特征中的无用信息,保留有用信息,进一步提取数据的时空特征,得到更准确的特征信息。
[0025]
实验表明,本发明的分类方法在多分类任务中优于其他现有模型,检测精度高,分类准确率具有一定的提升,本发明得到更具有代表性的特征信息进行分类判决,实现高性能的网络流量异常检测。
附图说明
[0026]
附图用来提供对本公开的进一步理解,并构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。
[0027]
图1为本发明的基于双向门控卷积神经网络的网络流量异常检测分类方法的流程示意图;
[0028]
图2为各模型对比性能指标得分示意图。
[0029]
以下结合附图和具体实施方式对本发明进一步解释说明。
具体实施方式
[0030]
需要说明的是,本发明中的所有的模型和算法,如无特殊说明,全部均采用现有技术中已知的模型和算法。
[0031]
本发明的整体技术构思为:将经过处理的数据首先使用fisher分数去除不重要的数据特征。然后使用双向长短期记忆神经网络层进行特征提取,该层主要提取数据的时间相关性特征。对经过双向长短期记忆神经网络层的数据进行batchnorm归一化和dropout正则化处理,可有效减少模型过拟合的风险。再将处理后的数据放入门控卷积层处理,该层进
行特征提取时能够过滤特征中的无用信息,保留有用信息,得到更准确的特征信息。经过上述的处理后,再对提取后的数据进行全连接层分类,可得到更准确的分类结果。
[0032]
遵从上述技术方案,以下给出本发明的具体实施方法,需要说明的是本发明并不局限于以下具体实施方法,凡在本技术技术方案基础上做的等同变换均落入本发明的保护范围。
[0033]
本发明的一种基于双向门控卷积神经网络的网络流量异常检测分类方法,如图1所示,该方法包括以下步骤:
[0034]
步骤1,对cic-ids2017数据集进行数据预处理。
[0035]
由于cic-ids2017数据集的数据是高维数据,因此需要对其进行数据预处理才能输入神经网络模型使用;
[0036]
步骤2,构建基于双向门控卷积神经网络的网络流量异常检测模型,该模型用于实现如下流程:
[0037]
步骤2.1,通过双向长短期记忆神经网络层(bilstm)提取步骤1预处理后的数据的时间相关性特征;
[0038]
步骤2.2,通过batchnorm归一化层和dropout正则化层对步骤2.1提取的特征进行处理,降低过拟合风险;
[0039]
步骤2.3,通过门控卷积神经网络(gated cnn)对步骤2.2处理的结果提取数据的时空特征。
[0040]
该层进行特征提取时能够过滤特征中的无用信息,保留有用信息,得到更准确的特征信息;
[0041]
步骤2.4,通过全连接层(linear)对步骤2.3提取的数据的时空特征进行最终分类;
[0042]
步骤3,通过crossentropyloss损失函数对基于双向门控卷积神经网络的网络流量异常检测模型进行监督训练,得到训练好的基于双向门控卷积神经网络的网络流量异常检测模型。
[0043]
步骤4,将待检测网络流量数据进行预处理后输入步骤3得到的训练好的基于双向门控卷积神经网络的网络流量异常检测模型,输出异常检测结果。
[0044]
进一步,所述步骤1的具体操作如下:
[0045]
步骤1.1,去除无用数据,删除网络流量异常数据中包含nan和infinity值的行,因为包含这两个值的行数在整个数据集中占比很少,所以直接删除。删除类别较少的infiltration、heartbleed攻击,这两个攻击的数据量只有几十条,占比极少,因此将此攻击删除。
[0046]
步骤1.2,合并标签,将属于同一大类的攻击类型数据合并,主要操作为将dos hulk、dos goldeneye、dos slowloris、dos slowhttptest攻击都归于dos攻击,将web attack-brute force、web attack-xss、web attack-sql injection攻击都归于web attack攻击。
[0047]
步骤1.3,对数据的标签等符号型特征做one-hot编码,方便后续交叉熵操作。对数据的特征进行归一化映射到[0,1]区间内。
[0048]
网络流量异常数据的每一维特征都有着不同的取值范围,如果能将这些取值范围
转化至[0,1]区间的话,每条数据的特征属性值将有很大程度的减小,模型中运算速度就能有很大的提升。本发明选用min-max归一化方法,公式为:
[0049][0050]
xscaler为变换后的输出值,x为原始数据的各维度属性值,x.min(axis=0)是每列中的最小值组成的行向量,x.max(axis=0)是每列中的最大值组成的行向量,max是要映射到的区间最大值,默认是1,min是要映射到的区间最小值,默认是0。
[0051]
步骤1.4,计算每个数据特征的fisher分数,选择fisher分数排在前60的特征作为输入模型的特征集。
[0052]
fisher分数是特征选择的有效方法之一,其主要思想是鉴别性能较强的特征表现为类内距离尽可能小,类间距离尽可能大。因此fisher分数能够去除无关紧要或庸余的特征,且保留其他原始特征,从而获得特征子集,从而以最小的性能损失更好地描述给出的问题。
[0053]
进一步,所述步骤2.1的具体操作如下:
[0054]
将预处理后的数据送入双向长短期记忆层(bilstm)进行特征提取,该模型一共有三层bilstm层,为了深度提取特征中的时间相关性,首先使用两层bilstm层对数据进行提取特征阶段,再使用一层bilstm层根据提取后的特征生成新的特征。每层bilstm层的输出特征数依次为40、20、40,先降维再升维的目的主要是为了深度提取数据的时间特征。
[0055]
bilstm是由前向lstm与后向lstm组合而成,一个是正向去处理输入序列,另一个反向处理序列,处理完成后将两个lstm的输出拼接起来,因此通过bilstm可以更好的捕捉双向的语义依赖。
[0056]
进一步,所述步骤2.2的具体操作如下:对bilstm处理后的数据先使用batchnorm归一化层,再使用参数为0.3的dropout正则化层处理数据。
[0057]
因为模型的性能会随着网络宽度和深度的增加而下降,往往会存在过拟合和梯度消失等问题,尤其在增加网络的深度过程中,对输入层的非线性参数训练将变得异常困难,不可避免的对准确率造成影响。针对上述问题,提出了加入batchnorm归一化层和dropout正则化层。
[0058]
归一化层的主要作用是让模型的中间层的输入分布稳定在合适的范围,加快模型训练过程的收敛速度,并提升模型对输入变动的抗干扰能力。dropout层让某个神经元的激活值以一定的概率p停止工作,这样可以使模型泛化性更强,因为它不会太依赖某些局部的特征,因此可以防止模型过拟合,并提升模型泛化能力。
[0059]
进一步,所述步骤2.3中,所述门控卷积神经网络包括三层门控卷积层,每一层都是在标准卷积层后接一个由sigmoid函数激活的标准卷积输出来作为软门控,从而构造出一个glu单元。门控卷积层使用的卷积核尺寸都为8,输出通道依次为[16,8,1]。
[0060]
glu的表达式如下:
[0061][0062]
其中,x是每个卷积层的输入数据,w和v是两个不同卷积核的权重参数,b和c是它们各自的偏差参数,σ是sigmoid激活函数。其实表达式σ(x*v+c)就是标准卷积输出(x*w+b)的“激活函数”。相比与常规的激活函数,用glu的软门控作为标准卷积层的激活层,可以判
断提取的特征中应该被重点关注以及可以被忽略的成分。相较于tanh激活函数,glu有线性通道,梯度比较稳定,反向传播时不会锐减,因此采用glu做为激活训练时收敛速度更快。
[0063]
门控卷积是在每个卷积层中添加一个门控线性单元,模拟lstm的遗忘门,即判断权重的思想,另外做一个和cnn卷积一样参数的filter,取值在0到1之间,判断提取的特征中哪些应该被关注,哪些应该被忽略。其中输出是两个标准卷积层的输出的逐个元素相乘,一层后跟elu激活函数,另一层后跟一个sigmoid激活函数。
[0064]
进一步,所述步骤3的具体操作如下:
[0065]
步骤3.1,将步骤2.4得到的全连接层预测的数据结果与真实的数据标签进行对照,代入crossentropyloss损失函数中计算预测误差值,该损失函数中内置了softmax层,将误差值实时记录并反馈给模型,通过多轮次的数据迭代训练,不断优化更新网络节点的权值与偏置,使最终分类结果更加接近真实标签,在完成上述参数训练后,对测试数据进行决策响应。
[0066]
softmax公式如下:
[0067][0068]
其中,zi表示样本预测为类别i的输出值,n表示数据集总的类别数量,通过softmax函数可将多分类的输出值转换为范围在[0,1]和为1的概率分布。pytorch中crossentropyloss损失函数的表达式如下:
[0069]
h(p,q)=-∑
x
(p(x)logq(x))
[0070]
其中x样本的类别,概率分布p为期望输出,概率分布q为实际输出,h(p,q)为交叉熵。该损失函数主要是将softmax-log-nllloss合并到一块得到的结果。
[0071]
为了验证本发明的可行性和有效性,以下通过混淆矩阵来评判本发明给出的bilstm-gcnn分类模型的结果,本发明主要做的是不平衡样本下的8分类任务。在分类任务下,预测标记(predicted label)与正确标记(true label)之间存在四种不同的组合,构成混淆矩阵。这4种不同组合分别为tp(true positive)表示真实值是positive,模型预测是positive的数量、fn(false negative)表示真实值是positive,模型预测是negative的数量、fp(false positive)表示真实值是negative,模型预测是positive的数量、tn(true negative)表示真实值是negative,模型预测是negative的数量。通过混淆矩阵可以计算出4个指标,分别为准确率(accuracy)、召回率(recall)、精确率(precision)和f1分数(f1-score)。计算公式如下:
[0072][0073]
如图2所示,本发明的模型各指标中的得分情况为:accuracy=88.29%,
precision=87.94%,recall=88.29%,f1-score=87.03%,在对比的模型中性能最佳。
[0074]
以上结合附图详细描述了本公开的具体实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。
[0075]
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。
[0076]
此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。
技术特征:
1.一种基于双向门控卷积神经网络的网络流量异常检测分类方法,其特征在于,具体包括以下步骤:步骤1,对cic-ids2017数据集进行数据预处理;步骤2,构建基于双向门控卷积神经网络的网络流量异常检测模型,该模型用于实现如下流程:步骤2.1,通过双向长短期记忆神经网络层提取步骤1预处理后的数据的时间相关性特征;步骤2.2,通过batchnorm归一化层和dropout正则化层对步骤2.1提取的特征进行处;步骤2.3,通过门控卷积神经网络对步骤2.2处理的结果提取数据的时空特征;步骤2.4,通过全连接层对步骤2.3提取的数据的时空特征进行最终分类;步骤3,通过crossentropyloss损失函数对基于双向门控卷积神经网络的网络流量异常检测模型进行监督训练,得到训练好的基于双向门控卷积神经网络的网络流量异常检测模型。步骤4,将待检测网络流量数据进行预处理后输入步骤3得到的训练好的基于双向门控卷积神经网络的网络流量异常检测模型,输出异常检测结果。2.如权利要求1所述的基于双向门控卷积神经网络的网络流量异常检测分类方法,其特征在于,所述步骤1的具体操作如下:步骤1.1,去除无用数据:删除网络流量异常数据中包含nan和infinity值的行;删除类别较少的infiltration、heartbleed攻击;步骤1.2,合并标签:将属于同一大类的攻击类型数据合并;步骤1.3,对数据的标签等符号型特征做one-hot编码,对数据的特征进行归一化映射到[0,1]区间内;步骤1.4,计算每个数据特征的fisher分数,选择fisher分数排在前60的特征作为输入模型的特征集。3.如权利要求1所述的基于双向门控卷积神经网络的网络流量异常检测分类方法,其特征在于,所述步骤2.1的具体操作如下:将预处理后的数据送入双向长短期记忆层进行特征提取,首先使用两层bilstm层对数据进行提取特征阶段,再使用一层bilstm层根据提取后的特征生成新的特征,每层bilstm层的输出特征数依次为40、20、40。4.如权利要求1所述的基于双向门控卷积神经网络的网络流量异常检测分类方法,其特征在于,所述步骤2.2具体操作如下:对bilstm处理后的数据先使用batchnorm归一化层,再使用参数为0.3的dropout正则化层处理数据。
技术总结
本发明公开了一种基于双向门控卷积神经网络的网络流量异常检测分类方法:步骤1,对CIC-IDS2017数据集进行数据预处理;步骤2,构建基于双向门控卷积神经网络的网络流量异常检测模型;步骤3,通过CrossEntropyLoss损失函数进行监督训练,得到训练好的基于双向门控卷积神经网络的网络流量异常检测模型。步骤4,将待检测网络流量数据进行预处理后输入步骤3得到的训练好的基于双向门控卷积神经网络的网络流量异常检测模型,输出异常检测结果。本发明的分类方法在多分类任务中优于其他现有模型,检测精度高,分类准确率具有一定的提升,本发明得到更具有代表性的特征信息进行分类判决,实现高性能的网络流量异常检测。实现高性能的网络流量异常检测。实现高性能的网络流量异常检测。
技术研发人员:侯爱琴 陈竹莲 屈新纪 王瑜琨 汝乐
受保护的技术使用者:西北大学
技术研发日:2023.06.26
技术公布日:2023/10/8
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
