一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于改进自编码器的网络入侵流量分类方法与流程

2022-02-22 08:35:41 来源:中国专利 TAG:


1.本发明属于网络安全技术领域,具体涉及一种基于改进自编码器的网络入侵流量分类方法。


背景技术:

2.随着互联网的发展,网络安全领域出现了很多新的网络攻击手段,复杂性高,流量大,传统的网络入侵检测技术难以有效应对这样的局面。
3.深度学习技术的出现为网络入侵检测提供了新的思路。当前,已有研究者将深度学习方法应用于网络流量的分类中,包括使用深度神经网络和自编码器对入侵流量进行检测识别。但该领域已有方法均存在明显的不足:网络安全领域存在大量的未知攻击方式,而基于特征构建的机器学习方法过于依赖专家的先验知识,现有人力难以覆盖;已有的基于自编码器的检测分类方法对于不同入侵流量特征的学习过程随机性太强,在实际工程应用中效果难以保证。


技术实现要素:

4.为了克服上述现有技术存在的不足,本发明的目的在于提供一种基于改进自编码器的网络入侵流量分类方法,可以简单有效地提取不同种入侵流量的显著特征,提升最终的检测分类准确率。
5.为了实现上述目的,本发明采用的技术方案是:
6.一种基于改进自编码器的网络入侵流量分类方法,包括如下步骤:
7.步骤一,对自编码器网络结构进行改进,具体步骤如下:
8.1.将自编码器网络的输入输出由单维变为多维;
9.2.将分别属于m种入侵类别的样本数据输入多维自编码器网络,得到与样本数据一一对应的m个特征向量;
10.3.提出一种基于特征向量两两点乘积之和的损失函数,称之为特征差异损失,即:
[0011][0012]
其中,m为入侵类型种类数;h为分别属于m种入侵类别的样本数据经自编码器降维后的特征向矩阵;hi和hj为h中不相同的两个特征向量,各自对应不同的入侵类别样本;c为组合数计算符;
[0013]
特征差异损失的优化目标是最大化不同类型样本对应特征向量间的差异性,当特征差异损失为零时,不同类型样本对应特征向量两两正交;
[0014]
4.将步骤3所述的特征差异损失作为自编码器网络损失函数的正则项,以参与到网络的训练优化过程中;
[0015]
步骤二,对改进的自编码器网络进行训练,具体步骤如下:
[0016]
1.构造训练数据:改进的自编码器网络的输入是将nsl-kdd数据集中四种入侵样本重构得到的多维矩阵;
[0017]
2.特征编码:采用属性映射(one-hot)方法,对符号型数据进行数值化处理,从而得到规范的数据集;
[0018]
3.数据归一化:在对改进的自编码器网络进行训练时,为了使网络更快的收敛,需要将输入数据进行归一化处理,统一映射到[0,1];
[0019]
4.逐层训练改进的自编码器网络;
[0020]
5.将已逐层训练好的单层网络进行合并得到完整的自编码器网络;
[0021]
6.以步骤一中损失函数为优化目标,对完整的自编码器网络进行训练,直至该完整的自编码器网络的损失趋于稳定,不再下降;
[0022]
步骤三,构建并训练分类器网络
[0023]
1.构造训练数据:将nsl-kdd数据集通过改进的自编码器网络进行降维处理,得到带标签的特征数据;
[0024]
2.训练分类器网络:构造一个四分类的分类器网络,并以上一步的特征数据为训练数据,对分类器网络进行训练,直至该分类器网络的损失趋于稳定,不再下降;
[0025]
步骤四,构建网络入侵流量分类网络并对网络流量进行分类
[0026]
1.将步骤二中得到的训练后自编码器网络和步骤三中得到的分类器网络合并得到完整的网络入侵流量分类网络;
[0027]
2.采集网络入侵流量分类网络环境中各个连接的特征信息,构建流量样本;
[0028]
3.将构建的流量样本进行数据预处理,预处理分为特征编码和数据归一化两个步骤,具体处理和改进的自编码器网络的训练过程一致;
[0029]
4.通过步骤二已收敛的完整的自编码器网络对预处理数据进行特征提取;
[0030]
5.由分类器对提取到的特征进行判定,得出该流量所属的入侵类别。
[0031]
优选地,nsl-kdd数据集采用开源的nsl-kdd数据集进行训练,nsl-kdd数据集涵盖了四种主要网络入侵的样本数据,具体为:拒绝服务攻击(denial of service,dos)、远程攻击(remote to local,r2l),本地攻击(user to root,u2r),探测攻击(probing)。针对kdd cup 99数据集出现的不足,nsl-kdd数据集除去了kdd cup 99数据集中冗余的数据,克服了分类器偏向于重复出现的记录的问题,对正常和异常的数据比例进行了调整,测试和训练数据数量更合理,因此更适合在不同的机器学习技术之间进行有效准确的评估。
[0032]
优选地,改进后的自编码器网络中各层自编码器为稀疏自编码器(spare autoencoder,sae),该稀疏自编码器通过在隐藏层中添加稀疏性限制,迫使网络学习数据的抽象特征,避免了对恒等函数的简单复刻。
[0033]
优选地,四分类的分类器网络采用支持向量机(support vector machine,svm)作为分类器,支持向量机svm可以在样本所处的多维向量空间中找到不同类别样本间的分割超平面,非常适合对经过自编码器处理的样本特征进行分类。
[0034]
本发明提供了一种基于改进自编码器的网络入侵流量分类方法,对自编码器训练过程的损失函数进行改进,增加了反映提取特征矩阵向量正交性的特征差异损失。改进后的自编码器网络可以有效学习到不同入侵类型样本间更为显著的特征。
[0035]
本发明的有益效果:
[0036]
本发明所提供的一种基于改进自编码器的入侵流量分类系统及方法,能够以较少的网络安全特征构建相关的先验知识,建立起具有良好效果的网络入侵检测系统。由于采用了特殊设计的优化函数,本发明方法显著增强了不同入侵方式样本降维后特征向量之间的非线性,大大降低了对分类器网络参数调优的要求,可以有效避免陷入神经网络训练的“局部最优陷阱”。
附图说明
[0037]
图1是自编码器的网络结构示意图。
[0038]
图2是本发明改进的自编码器网络结构示意图。
[0039]
图3是本发明改进的自编码器网络的训练过程示意图。
具体实施方式
[0040]
下面结合附图对本发明作进一步详细说明。
[0041]
本发明基于改进自编码器的网络入侵流量分类方法主要涉及自编码器网络和分类器网络两部分。通过对传统自编码器损失函数进行改进,并对网络结构做出相应调整,实现了自编码器对不同类别样本所提取特征差异最大化,然后将提取特征经由分类器网络进行处理,得到对应样本的网络入侵流量类别。具体过程如下:
[0042]
步骤一,对方法中涉及的自编码器网络结构进行改进,改进过程如下:
[0043]
一般而言,自编码器包括两个主要的部分:编码器和解码器。编码器的作用是把高维输入x编码成低维的隐变量h,从而强迫神经网络学习最有信息量的特征;而解码器的作用是把隐藏层的隐变量h重构还原到初始维度,最好的情况就是解码器的输出可以完美或者近似的恢复出原来的输入,即其中为网络输出,x为网络输入。
[0044]
如图1所示,从输入层到隐藏层的编码过程可以表示如下:
[0045][0046]
其中,h为隐藏层输出向量;θ1为自编码器网络中编码器部分的参数集合;表示自编码器中编码器部分对应的函数映射过程;x=(x1,x2,x3…
xn),为输入层输入;w1为隐藏层权重矩阵;b1是偏置向量;σ表示隐藏层使用的sigmoid激活函数。
[0047]
从隐藏层到输出层的解码过程可以表示为:
[0048][0049]
其中,为网络输出列向量;h为隐藏层输出向量;θ2为自编码器网络中解码器部分的参数集合;表示解码器部分对应的函数映射过程;w2为输出层权重矩阵;b2是偏置向量;σ表示隐藏层使用的sigmoid激活函数。
[0050]
那么网络的优化目标函数就记作:
[0051][0052]
其中,loss表征网络的损失值;w表征整个网络各层的参数;dist为二者的距离度
量函数,通常用mse(均方误差)表示;分别表示网络得输入输出。
[0053]
本发明提出的改进自编码器网络结构如图2所示,其与普通自编码器网络在结构上的主要差异在于输入和输出是多维的。
[0054]
记入侵方式共有m种,每个样本特征共n维,则网络的多维输入为来自不同入侵类型的m个样本向量构成,记作x=(x1,x2,x3,

xm),其中),其中隐藏层权重矩阵记为w1;偏置矩阵记为b1;输出矩阵记为h;
[0055]
那么改进自编码器网络种从输入层到隐藏层的编码过程表示为:
[0056][0057]
其中,θ1为自编码器网络中编码器部分的参数集合;表示自编码器中编码器部分对应的函数映射过程;σ表示隐藏层使用的sigmoid激活函数。
[0058]
注意到,σ(w1xi)是属于第i种入侵方式的样本xi对应的隐藏层输出,也即特征向量,记为hi,则h=(h1,h2,h3…hm
)
[0059]
我们希望隐藏层可以尽可能学习到不同入侵方式最本质最有区分度的特征,从向量空间的角度出发,就是希望隐藏层输出矩阵h的各个列向量尽可能的正交。
[0060]
于是,本发明在改进自编码器网络中构造特征差异损失:
[0061][0062]
最小化特征差异损失,就是让h的两两列向量乘积尽可能为零,当该损失为零时,自编码器对应不同入侵方式学习到的特征两两正交。
[0063]
此时,网络的整体优化目标函数表示为:
[0064][0065]
其中λ为特征差异损失的正则系数,0<λ≤1。
[0066]
步骤二,对改进的自编码器网络进行训练。训练过程如下:
[0067]
1.构造训练数据。改进的自编码器网络的的输入是将nsl-kdd数据集中四种入侵样本重构得到的多维矩阵。输入矩阵尺寸为4*42,由四条不同种类入侵样本构成,每一条样本包由一次网络连接的42项特征构成,包括:tcp连接基本特征、tcp连接的内容特征、基于时间的网络流量统计特征、基于主机的网络流量统计特征,最后一种为标记特征,指示该连接为正常或异常。
[0068]
表一 nsl-kdd数据集特征明细
[0069]
[0070][0071]
2.特征编码。本发明采用属性映射(one-hot)方法,对符号型数据进行数值化处理,从而得到规范的数据集。在实验数据集nsl-kdd中,需要对protocol_type、service、flag这三个字段特征进行数值化处理,例如把特征protocol_type的三个特征值tcp、udp、icmp分别编码为二进制向量(0,0,1),(0,1,0),(1,0,0)。同理,特征service所包含的70种符号通过编码变为70维的二进制向量,特征flag所包含的11种类符号属性通过编码也变成了11维的二进制向量。最终,经过编码后得到特征维数是122。
[0072]
3.数据归一化。在对改进的自编码器网络进行训练时,为了使网络更快的收敛,需
要将输入数据进行归一化处理,统一映射到[0,1]。
[0073]
4.逐层训练改进的自编码器网络。
[0074]
如图3所示,首先训练第一个隐藏层,构建一个仅包含单隐藏层的自编码器网络,输入为122维,隐藏层节点数为96,以重构损失作为优化函数,训练直至收敛,保存隐藏层参数矩阵w
01
和w
10

[0075]
接着训练第二层隐藏层,重新构建一个单层自编码器,以上一步收敛自编码网络的隐藏层的输出作为训练数据,输入为96维,隐藏层节点55个,以重构损失进行优化,训练直至收敛,保存隐藏层参数矩阵w
12
和w
21

[0076]
然后训练第三层隐藏层,同样是构建单隐藏层自编码器,以上一步收敛自编码网络的隐藏层的输出作为训练数据,输入为55维,隐藏层节点20个,以重构损失进行优化,训练直至收敛,保存隐藏层参数矩阵w
23
和w
32

[0077]
最后,构建如图3下方所示的最终网络结构,输入为122维,第一个隐藏层96个节点,第二个隐藏层55个节点,第三个隐藏层20个节点,后面解码器为对称设计。将上面训练得到的六个参数矩阵作为最终网络的参数初始值,以重构损失加上加权矩阵差异损失作为网络的优化目标函数,矩阵差异损失以第三层隐藏层的输出进行计算,训练网络直至收敛。
[0078]
步骤三,构建并训练分类器网络,过程如下:
[0079]
1.构造训练数据。在改进的自编码器网络训练完毕后,通过网络中的编码器,可以将nsl-kdd数据集样本降维为20维的样本特征和标签元祖。
[0080]
2.构建分类器网络。考虑到经过降维的不同的入侵方式类别样本特征数据具有较强的正交性,所以很适合通过支持向量机svm进行分类,svm擅于在向量空间中找到多个超平面对数据样本进行分割。所以,本发明实施例中采用3个级联svm实现对4种入侵样本的分类。
[0081]
3.训练分类器网络。以经过降维的特征和标签元祖数据作为训练数据,对分类器网络进行训练直至收敛。
[0082]
步骤四,构建网络入侵流量分类网络并对网络流量进行分类,过程如下:
[0083]
1.将步骤二中得到的训练后自编码器网络和步骤三中得到的分类器网络合并得到完整的网络入侵流量分类网络。
[0084]
2.采集网络入侵流量分类网络环境中各个连接的特征信息,构建流量样本。采集的特征明细和nsl-kdd数据集保持一致,具体如表一所示。
[0085]
3.将构建流量样本进行数据预处理。预处理分为特征编码和数据归一化两个步骤,具体处理和自编码器网络的训练过程一致。
[0086]
4.通过步骤二已收敛的完整的自编码器网络对预处理数据进行特征提取。
[0087]
5.由分类器对提取到的特征进行判定,得出该流量所属的入侵类别。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献