«上一篇 下一篇»
  计算机工程  2022, Vol. 48 Issue (4): 133-142  DOI: 10.19678/j.issn.1000-3428.0060949
0

引用本文  

李贝贝, 彭力, 戴菲菲. 结合马氏距离与自编码器的网络流量异常检测方法[J]. 计算机工程, 2022, 48(4), 133-142. DOI: 10.19678/j.issn.1000-3428.0060949.
LI Beibei, PENG Li, DAI Feifei. Abnormal Network Traffic Detection Method Combining Mahalanobis Distance and Autoencoder[J]. Computer Engineering, 2022, 48(4), 133-142. DOI: 10.19678/j.issn.1000-3428.0060949.

基金项目

国家重点研发计划(2018YFD0400902);国家自然科学基金(61873112)

作者简介

李贝贝(1995—),男,硕士研究生,主研方向为异常数据检测、网络入侵检测;
彭力,教授、博士生导师;
戴菲菲,硕士研究生

文章历史

收稿日期:2021-02-26
修回日期:2021-04-01
结合马氏距离与自编码器的网络流量异常检测方法
李贝贝1 , 彭力1 , 戴菲菲2     
1. 江南大学 物联网工程学院, 江苏 无锡 214122;
2. 台州市产品质量安全检测研究院, 浙江 台州 318000
摘要:当前网络流量数据规模较大且分布不均衡,传统网络流量异常检测方法检测准确率较低。提出一种结合马氏距离和自编码器的检测方法,使用马氏距离倒数及判别阈值快速检测部分正常数据以减少训练数据量,同时,在自编码器代价函数中添加马氏距离度量项以增强自编码器的特征提取能力。在此基础上,将自编码器与分类器相结合以解决网络参数初始化问题,并通过调整自编码神经网络交叉熵损失函数中各项的权重,提高自编码神经网络对数据分布不均衡数据集的训练效果。实验结果表明,该方法在CICIDS2017数据集、NSL-KDD数据集上的异常检测准确率分别高达97.60%、99.84%,在CICIDS2017数据集上的F1值为0.941 3,高于DNN、LSTM、C-LSTM等方法。
关键词网络流量异常检测    神经网络    马氏距离    自编码器    自编码神经网络    
Abnormal Network Traffic Detection Method Combining Mahalanobis Distance and Autoencoder
LI Beibei1 , PENG Li1 , DAI Feifei2     
1. School of IoT Engineering, Jiangnan University, Wuxi, Jiangsu 214122, China;
2. Taizhou Product Quality and Safety Testing Research Institute, Taizhou, Zhejiang 318000, China
Abstract: The existing abnormal traffic detection methods are limited in the accuracy due to the large scale of network traffic data and its imbalanced distribution.To address the problem, a method combining Mahalanobis distance and autoencoder is proposed to detect abnormal network traffic.This method employs the reciprocal Mahalanobis distance and discriminant threshold to quickly identify part of the normal data, so the amount of network training can be reduced.At the same time, the Mahalanobis distance item is added to the autoencoder cost function to improve the autoencoder, enhancing its ability of feature extraction.On this basis, the autoencoder is combined with the classifier to solve the problem of network parameter initialization.Then by adjusting the weight of each item in the cross-entropy loss function of the autoencoder neural network, the training effect of imbalanced data sets for the autoencoder neural network is improved.The experimental results show that the proposed method exhibits an anomaly detection accuracy of 97.60% on the CICIDS2017 data set, and 99.84% on the NSL-KDD data set.It also displays the F1 score on the CICIDS2017 is 0.941 3, higher than DNN, LSTM, C-LSTM and other methods.
Key words: abnormal network traffic detection    neural network    Mahalanobis distance    autoencoder    autoencoder neural network    

开放科学(资源服务)标志码(OSID):

0 概述

随着“互联网+”时代的到来,网络技术被广泛应用于金融、教育、军事、治安等领域。但网络技术是把双刃剑,一些不法分子利用网络技术中各种协议和应用程序的漏洞违法犯罪,不仅影响了网络基础设施的稳定运行,还造成人民群众的经济损失,甚至威胁到了国家安全[1]。互联网中的信息交流和传输以网络流量为载体,及时发现异常的网络流量并采取针对性措施,对于抵御网络攻击、维护网络安全、增强网络稳定性等均具有重要意义。

网络流量异常检测是一种有效的网络防护手段,异常网络流量是指对网络的正常使用造成不良影响的流量,与正常流量差别较大[2]。异常网络流量可分为两类[3]:一是由于网络结构不合理或者网络使用不当造成的异常流量;二是由DDoS、蠕虫病毒等网络攻击行为造成的异常流量。

传统的网络流量异常检测方法包括基于端口、基于统计、基于聚类、基于信息论等方法[2]。其中基于端口的方法异常检测准确度较低,而基于统计、聚类、信息论的方法使许多机器学习算法能用于网络流量异常检测,如K近邻算法(K-Nearest Neighbor,KNN)、孤立森林算法(Isolation Forest,iForest)、支持向量机(Support Vector Machine,SVM)等。如今,网络流量规模越来越大,数据维度越来越高,对异常检测的要求更高,但传统的机器学习算法存在训练效率低、特征提取繁琐、相关参数过多、检测准确度较低等问题。

深度神经网络(Deep Neural Network,DNN)可自适应地进行数据特征提取,具有传统机器学习无法比拟的优越性,在图像识别、故障诊断、数据分类等领域得到广泛应用[4]。自编码器(AutoEncoder,AE)是一种用于无监督学习的深度神经网络,最早由RUMELHARD等[5]提出,BOURLARD等[6]对其进行了更加详细的阐述。随后,NG等[7]提出具有更强特征提取能力的稀疏自编码器。基于自编码器的改进模型被陆续提出,并应用于各种研究领域。在网络流量等数据异常检测问题上,自编码器因其优越的重建数据和特征提取能力得到了广泛的关注[8]

目前网络流量监控和数据采集系统较为完善,但采集到的网络流量数据往往规模较大,降低了自编码器和神经网络的训练效率且无法有效提高网络的训练效果[9]。由于网络流量数据特征较多、维度较高,且计算机网络的基本原理、网络基础设施、网络流量数据特征之间的相关性不可忽视,因此考虑数据特征相关性的马氏距离(Mahalanobis distance)[10]更适合用于网络流量数据之间的距离表达。

本文提出一种结合马氏距离和自编码器的检测方法,通过实验得到马氏距离倒数的判别阈值,并根据马氏距离及判别阈值快速检测出部分正常网络流量,以提高网络流量异常检测的效率。在此基础上,将马氏距离度量项加入自编码器的代价函数中,提高自编码器对网络流量数据的特征学习能力。此外,将自编码器和Sigmoid分类器相结合,构建用于网络流量异常检测的自编码神经网络,以避免网络陷入局部最优[9]。另外,调整自编码神经网络交叉熵损失函数中各项的权重,从而增强自编码神经网络对数据分布不均衡网络流量数据集的训练效果,提高异常检测的准确性。

1 相关概念 1.1 自编码器

自编码器的结构模型如图 1所示,主要包括编码层、隐层和输出层,分为编码和解码两个阶段。将输入层数据编码为隐层表达,将隐层表达解码为输出层数据,其目标为重构输入数据,最小化重构误差使输出层数据尽可能等于相对应的输入数据以获得最佳的隐层表达[13]

Download:
图 1 自编码器结构 Fig. 1 Autoencoder structure

将输入数据表示为$ \mathit{\boldsymbol{X}}=({X}_{1}, {X}_{2}, \cdots , {X}_{n}) $,其中$ {\mathit{\boldsymbol{X}}}_{i}\in {\mathbb{R}}^{m}(i=\mathrm{1, 2}, \cdots , n) $,数据个数为$ n $,维度为$ m $。输出数据记为$ {\mathit{\boldsymbol{X}}}_{i}^{'} $。自编码器的编码和解码过程如下:

$ {h}_{i}={\sigma }_{e}(W{X}_{i}+b) $ (1)
$ {\mathit{\boldsymbol{X}}}_{i}^{'}={\sigma }_{d}({W}^{'}{h}_{i}+{b}^{'}) $ (2)

其中:$ W $为编码阶段权重;$ {W}^{'} $为解码阶段权重;$ b $为编码阶段偏置;$ {b}^{'} $为解码阶段偏置;$ {\sigma }_{e} $$ {\sigma }_{d} $为激活函数,较为常用的激活函数有Relu、Tanh、Sigmoid等[9]

自编码器的目标为使输出$ {\mathit{\boldsymbol{X}}}_{\mathit{\boldsymbol{i}}}^{'} $尽可能接近输入$ {\mathit{\boldsymbol{X}}}_{\mathit{\boldsymbol{i}}} $,使两者之间的重构误差最小。自编码器的代价函数如下:

$ \begin{array}{l}J(W, b)=\frac{1}{n}\sum\limits_{i=1}^{n}L({\mathit{\boldsymbol{X}}}_{\mathit{\boldsymbol{i}}}, {\mathit{\boldsymbol{X}}}_{\mathit{\boldsymbol{i}}}^{'})=-\frac{1}{n}\sum\limits_{i=1}^{n}\left({\mathit{\boldsymbol{X}}}_{\mathit{\boldsymbol{i}}}\mathrm{l}\mathrm{n}{\mathit{\boldsymbol{X}}}_{\mathit{\boldsymbol{i}}}^{'}\right.+\\ \;\;\;\;\;\;\;\;\;\left.(1-{\mathit{\boldsymbol{X}}}_{\mathit{\boldsymbol{i}}})\mathrm{l}\mathrm{n}(1-{\mathit{\boldsymbol{X}}}_{\mathit{\boldsymbol{i}}}^{'})\right)\end{array} $ (3)

其中:$ L $为单个数据的损失函数,本文使用的是交叉熵损失函数。网络流量的异常检测任务为二分类任务,对于最终分类网络的激活函数选择Sigmoid函数较为合适。均方误差损失函数存在权重更新过慢的问题,但交叉熵损失函数可以完美解决以上问题,其具有误差大但权重更新快,误差小但权重更新慢的优势[15]。所以,当使用Sigmoid函数作为激活函数时,交叉熵损失函数更加适合。另外在常用代价函数中添加L2正则化项[15]可避免过拟合,$ \lambda $为L2正则化项的惩罚因子,常用代价函数如下:

$ \begin{array}{l}J(W, b)=\frac{1}{n}\sum\limits_{i=1}^{n}L({\mathit{\boldsymbol{X}}}_{\mathit{\boldsymbol{i}}}, {\mathit{\boldsymbol{X}}}_{\mathit{\boldsymbol{i}}}^{'})+\frac{\lambda }{2}{||\mathit{\boldsymbol{W}}||}^{2}=\\ \;\;\;\;\;\;\;\;\;-\frac{1}{n}\sum\limits_{i=1}^{n}\left({\mathit{\boldsymbol{X}}}_{\mathit{\boldsymbol{i}}}\mathrm{l}\mathrm{n}\left({\mathit{\boldsymbol{X}}}_{\mathit{\boldsymbol{i}}}^{'}\right)\right.+\left.(1-{\mathit{\boldsymbol{X}}}_{\mathit{\boldsymbol{i}}})\mathrm{l}\mathrm{n}(1-{\mathit{\boldsymbol{X}}}_{\mathit{\boldsymbol{i}}}^{'})\right)+\\ \;\;\;\;\;\;\;\;\;\frac{\lambda }{2}{||\mathit{\boldsymbol{W}}||}^{2}\end{array} $ (4)
1.2 马氏距离

马氏距离由印度统计学家Mahalanobis提出,其利用向量间的协方差矩阵表示距离,考虑了各变量之间的相关性,因此在诸多领域具有一定的优越性[10]

设有一均值为$ \mathit{\boldsymbol{\mu }}=({\mu }_{1}, {\mu }_{2}, \cdots , {\mu }_{m}{)}^{\mathrm{T}} $,协方差矩阵为$ \mathit{\boldsymbol{ \boldsymbol{\varSigma} }} $的数据集$ \mathit{\boldsymbol{X}}=({X}_{1}, {X}_{2}, \cdots , {X}_{n}) $$ n $为数据个数,$ m $为数据维度,其中一个数据表示为$ \mathit{\boldsymbol{x}}=({x}_{1}, {x}_{2}, \cdots , {x}_{m}{)}^{\mathrm{T}} $,则其马氏距离表示为:

$ {D}_{M}\left(\mathit{\boldsymbol{x}}\right)=\sqrt{{(\mathit{\boldsymbol{x}}-\mathit{\boldsymbol{\mu }})}^{\mathrm{T}}{\mathit{\boldsymbol{ \boldsymbol{\varSigma} }}}^{-1}(\mathit{\boldsymbol{x}}-\mathit{\boldsymbol{\mu }})} $ (5)

其中:$ {\mathit{\boldsymbol{ \boldsymbol{\varSigma} }}}^{-1} $$ \mathit{\boldsymbol{ \boldsymbol{\varSigma} }} $的逆矩阵。马氏距离的计算公式使用了协方差矩阵,其最大优势在于考虑了数据特征之间的相关性[10]

文献[11]使用方差分析、方差阈值等方法提取网络流量数据的特征,并结合多个聚类算法进行联合异常检测,在聚类算法中使用欧式距离进行聚类,实验效果对特征的选择依赖性较大,需要多种聚类算法融合才能提升效果,因此使用欧式距离进行网络流量数据的距离计算的效果一般,不具有优越性。文献[12]利用KL距离进行网络流量异常检测,利用指数加权移动平均模型建立滑动窗口机制,获取数据的KL距离预测值并得到自适应阈值范围。此外,通过判断数据的KL距离是否在此范围内进行网络流量的异常检测。该方法具有一定优越性,然而更适用于动态变化的网络环境,需要不断变换阈值,对于数据规模较大的网络流量数据异常检测时,网络流量数据的KL距离并没有明显的不同。

综上所述,本文选用马氏距离进行网络流量数据间的距离表达。

由式(5)可知,在数据集中,数据的马氏距离越小,说明其与数据集均值越接近。若一数据为正常数据,则其通过式(5)计算得到的马氏距离应符合正常数据马氏距离分布,否则该数据更可能为异常数据,所以网络流量数据的马氏距离是其正常与否的一个重要判别依据。

2 网络流量异常检测方法 2.1 数据判别

将数据维度为$ m $的网络流量数据集记为$ \mathit{\boldsymbol{X}}=({X}_{1}, {X}_{2}, \cdots , {X}_{n}) $$ n $为数据个数。利用其中一部分正常数据集,计算其均值并记为$ {\mathit{\boldsymbol{\mu }}}_{N}=({\mu }_{1}, {\mu }_{2}, \cdots , {\mu }_{m}{)}^{\mathrm{T}} $,其协方差矩阵记为$ {\mathit{\boldsymbol{ \boldsymbol{\varSigma} }}}_{N} $。由式(5)可知,马氏距离的计算使用了数据集的均值,而均值受每个数据的影响,所以马氏距离放大了少量数据的影响[10]。为避免此影响,本文在对所有数据计算其马氏距离时,采用不受数据变化影响的独立正常数据集的均值$ {\mathit{\boldsymbol{\mu }}}_{N} $和协方差矩阵$ {\mathit{\boldsymbol{ \boldsymbol{\varSigma} }}}_{N} $。所以数据$ {\mathit{\boldsymbol{X}}}_{\mathit{\boldsymbol{i}}} $的马氏距离表示为:

$ {D}_{M}\left({\mathit{\boldsymbol{X}}}_{\mathit{\boldsymbol{i}}}\right)=\sqrt{({\mathit{\boldsymbol{X}}}_{\mathit{\boldsymbol{i}}}-{\mathit{\boldsymbol{\mu }}}_{N}{)}^{\mathrm{T}}{\mathit{\boldsymbol{ \boldsymbol{\varSigma} }}}_{\mathit{\boldsymbol{N}}}^{-1}({\mathit{\boldsymbol{X}}}_{\mathit{\boldsymbol{i}}}-{\mathit{\boldsymbol{\mu }}}_{N})} $ (6)

根据式(6)计算网络流量数据集中数据的马氏距离,将数据的马氏距离集记为:

$ \mathit{\boldsymbol{M}}=({M}_{1}, {M}_{2}, \cdots , {M}_{q}, \cdots , {M}_{n}) $ (7)

其中:$ {M}_{q} $表示在数据集中第$ q $个数据的马氏距离。

如果某一数据为正常数据,利用$ {\mathit{\boldsymbol{\mu }}}_{N} $$ {\mathit{\boldsymbol{ \boldsymbol{\varSigma} }}}_{N} $,通过式(6)计算得到的马氏距离应符合正常数据的马氏距离分布;如果该数据为异常数据,则通过式(6)计算得到的马氏距离可能不符合正常数据的马氏距离分布。在实验过程中发现,正常与异常数据通过式(6)计算得到的马氏距离分布不同,尤其正常与异常数据的马氏距离倒数的分布相差较大,相关分布图在4.1节给出。将数据的马氏距离倒数集记为:

$ {\mathit{\boldsymbol{M}}}_{r}=\left(\frac{1}{{M}_{1}}, \frac{1}{{M}_{2}}, \dots , \frac{1}{{M}_{q}}, \dots , \frac{1}{{M}_{n}}\right) $ (8)

通过实验观察$ {\mathit{\boldsymbol{M}}}_{r} $的分布,发现正常与异常数据的马氏距离倒数的分布之间存在一个阈值,记为$ T $。在实验中,若网络流量数据$ {\mathit{\boldsymbol{X}}}_{\mathit{\boldsymbol{i}}} $的马氏距离倒数$ \frac{1}{{M}_{i}}\ge T $,则数据$ {\mathit{\boldsymbol{X}}}_{\mathit{\boldsymbol{i}}} $为正常数据,否则判定该数据为未确定数据,并进入自编码神经网络进行判断。

此判别阈值$ T $需要通过实验分析确定合适的数值以保证数据判别的正确性。通过实验可知,超过此阈值的均为正常数据。将未超过此判别阈值的数据判定为未确定数据,将未确定数据集作为训练数据用于自编码器和分类网络的训练。如此可快速判别出部分正常数据,将其余的未确定数据作为接下来网络的训练数据,大幅缩减了训练数据规模。在实际检测时,通过数据马氏距离及判别阈值可快速判别是否为正常数据,提高了检测效率。

2.2 改进自编码器的构建

为使自编码器获得更好的隐层表达及进一步提高其提取特征的能力,利用$ \mathrm{K}\mathrm{L} $散度对隐层神经元输出进行约束并将其添加到代价函数中,从而抑制隐层神经元的输出,使网络达到稀疏效果,并构成稀疏自编码器[7]。稀疏自编码器代价函数表示如下:

$ {J}_{\mathrm{s}\mathrm{p}\mathrm{a}\mathrm{r}\mathrm{e}}(W, b)=J(W, b)+\beta \sum\limits_{\mathit{\boldsymbol{j}}=1}^{\mathit{\boldsymbol{k}}}KL(\rho \Vert {\widehat{\rho }}_{j}) $ (9)

其中:稀疏惩罚项为$ \mathrm{K}\mathrm{L} $散度即$ \mathrm{K}\mathrm{L}(\rho \Vert {\widehat{\rho }}_{j}) $$ k $为隐层神经元数量;$ \beta $控制稀疏惩罚项的权重;$ \rho $为稀疏常数;$ \widehat{\rho } $为隐层神经元上的平均激活量。

$ \mathrm{K}\mathrm{L} $散度[13]表示如下:

$ \mathrm{K}\mathrm{L}(\rho \Vert {\widehat{\rho }}_{j})=\rho \mathrm{l}\mathrm{n}\frac{\rho }{{\widehat{\rho }}_{j}}+(1-\rho )\mathrm{l}\mathrm{n}\frac{1-\rho }{1-{\widehat{\rho }}_{j}} $ (10)

其中:当$ {\widehat{\rho }}_{j}=\rho $时,$ \mathrm{K}\mathrm{L}(\rho \Vert {\widehat{\rho }}_{j}) $的值为0,从而使隐层神经元处于“不活跃”状态[13];当$ {\widehat{\rho }}_{j} $偏离$ \rho $时,$ \mathrm{K}\mathrm{L} $散度将增大,所以在自编码器代价函数中加入此项,可实现隐层稀疏化,从而获得更好的隐层表达。

如上所述,数据的马氏距离可以作为该数据是否为异常数据的判断依据,因此考虑在自编码器的代价函数中添加一个马氏距离度量项,使自编码器在训练过程中,输出与输入的马氏距离尽量接近,从而使自编码器更好地学习数据特征,提升异常检测效果。本文提出的改进自编码器代价函数表示如下:

$ {J}_{\mathrm{A}\mathrm{E}}(W, b)={J}_{\mathrm{s}\mathrm{p}\mathrm{a}\mathrm{r}\mathrm{e}}(W, b)+\gamma \frac{1}{n}\sum\limits_{i=1}^{n}M({\mathit{\boldsymbol{X}}}_{\mathit{\boldsymbol{i}}}, {\mathit{\boldsymbol{X}}}_{\mathit{\boldsymbol{i}}}^{'}) $ (11)

其中:$ \gamma $为马氏距离度量项权重;$ M({\mathit{\boldsymbol{X}}}_{\mathit{\boldsymbol{i}}}, {\mathit{\boldsymbol{X}}}_{\mathit{\boldsymbol{i}}}^{\mathit{\boldsymbol{'}}}) $为马氏距离度量项。

马氏距离表示如下:

$ \begin{array}{l}M({\mathit{\boldsymbol{X}}}_{\mathit{\boldsymbol{i}}}, {\mathit{\boldsymbol{X}}}_{\mathit{\boldsymbol{i}}}^{'})=\left|\left({D}_{M}\left({\mathit{\boldsymbol{X}}}_{\mathit{\boldsymbol{i}}}\right)-{D}_{M}\left({\mathit{\boldsymbol{X}}}_{\mathit{\boldsymbol{i}}}^{'}\right)\right)\right|=\\ \;\;\;\;\;\;\;\;\;\;\left|\left(\sqrt{({\mathit{\boldsymbol{X}}}_{\mathit{\boldsymbol{i}}}-{\mathit{\boldsymbol{\mu }}}_{N}{)}^{\mathrm{T}}{\mathit{\boldsymbol{ \boldsymbol{\varSigma} }}}_{\mathit{\boldsymbol{N}}}^{-1}({\mathit{\boldsymbol{X}}}_{\mathit{\boldsymbol{i}}}-{\mathit{\boldsymbol{\mu }}}_{N})}\right.\right.-\\ \;\;\;\;\;\;\;\;\;\;\left.\left.\sqrt{({\mathit{\boldsymbol{X}}}_{\mathit{\boldsymbol{i}}}^{'}-{\mathit{\boldsymbol{\mu }}}_{N}{)}^{\mathrm{T}}{\mathit{\boldsymbol{ \boldsymbol{\varSigma} }}}_{\mathit{\boldsymbol{N}}}^{-1}({\mathit{\boldsymbol{X}}}_{\mathit{\boldsymbol{i}}}^{'}-{\mathit{\boldsymbol{\mu }}}_{N})}\right)\right|\end{array} $ (12)

在式(12)中,计算输入与输出马氏距离时仍然使用2.1节中得到的正常数据集的均值$ {\mathit{\boldsymbol{\mu }}}_{N} $和协方差矩阵$ {\mathit{\boldsymbol{ \boldsymbol{\varSigma} }}}_{N} $。本文构建的改进自编码器如图 2所示。

Download:
图 2 改进自编码器的结构 Fig. 2 Structure of the improved autoencoder

由于本文主要关注马氏距离度量项对自编码器的影响,因此构建了最简单的3层自编码器结构,其代价函数如式(11)所示,自编码器训练时通过无监督贪婪算法[15]最小化代价函数,使用未确定数据集进行自编码器的训练,最终得到隐层表达$ {\mathit{\boldsymbol{h}}}_{\mathit{\boldsymbol{k}}} $

2.3 自编码器与分类器的结合

上述自编码器训练完成后,将隐层结合分类器构建成自编码神经网络。将得到的合适权值$ W $和偏置$ b $参数作为分类网络的初始化参数,避免了传统网络参数随机初始化可能会使网络陷入局部最优的风险,提高了分类网络的稳定性。如图 3所示,将$ {\mathit{\boldsymbol{h}}}_{\mathit{\boldsymbol{k}}} $作为Sigmoid分类层$ \mathit{\boldsymbol{S}} $的输入,输出分类结果$ {\mathit{\boldsymbol{X}}}_{\mathit{\boldsymbol{o}}} $,同时,输入带有标签的未确定数据以完成有监督的训练及参数微调[16]

Download:
图 3 参数微调 Fig. 3 Parameter fine-tuning

自编码神经网络的代价函数为交叉熵损失函数:

$ L({y}_{o}, {x}_{o})=-\left({y}_{o}\mathrm{l}\mathrm{n}{x}_{o}+(1-{y}_{o})\mathrm{l}\mathrm{n}(1-{x}_{o})\right) $ (13)

其中:$ {x}_{o} $为神经网络输出结果;$ {y}_{o} $为该数据真实标签,$ {y}_{o}\in \left(\mathrm{0, 1}\right) $

在网络流量的采集过程中,若不处理网络流量数据集,则大多数数据为正常数据,异常数据占比较小,数据分布不均衡。使用这种不均衡的数据集进行神经网络训练时,可能会让神经网络倾向于将所有的样本都预测为正常数据,于是本文使用调整交叉熵损失函数中各项权重的方式来缓解此问题。

在进行实验时,将正常数据的标签标记为0、异常数据的标签标记为1。令$ {W}_{0} $表示用于训练的未确定数据集中正常数据占总数据量的比重,$ {W}_{1} $表示异常数据占总数据量的比重,改进该自编码神经网络的代价函数如式(14)所示:

$ {L}^{'}({y}_{o}, {x}_{o})=-\left({W}_{0}{y}_{o}\mathrm{l}\mathrm{n}{x}_{o}+{W}_{1}(1-{y}_{o})\mathrm{l}\mathrm{n}(1-{x}_{o})\right) $ (14)

由于$ {W}_{0} > {W}_{1} $,因此当占比较少的异常数据(标签为1)被错误预判为正常数据(即预判为0)时,代价就非常大。而一旦占比较多的正常数据(标签为0)被错误预判为异常数据(即预判为1)时,代价较小,对网络训练的影响也较小。

因此,通过对自编码神经网络代价函数改进,一定程度上解决了数据分布不均衡对网络训练的影响,提高了自编码神经网络的训练效果,有利于网络流量的异常检测。

3 实验准备

实验使用Windows10操作系统,计算机CPU为Intel Core i5-6500 3.20 GHz、8 GB RAM,基于Keras框架使用python3.6实现。

3.1 实验数据

本文使用的数据集为CICIDS2017数据集[17]和NSL-KDD数据集[18],这两个数据集在网络异常检测研究中被广泛应用。

CICIDS2017数据集是加拿大网络安全研究所于2017年采集并公开的网络流量数据集,该数据集包含周一到周五采集的5天网络流量数据,其中包含了正常流量与常见攻击导致的异常流量。进行的攻击包括暴力文件传输协议(FTP)、暴力安全外壳协议(SSH)、拒绝服务(DoS)等,本文只进行网络流量的异常检测研究,故将这些攻击导致的网络流量数据定义为异常网络流量。该数据集共包含2 830 743条数据,其样本分布如表 1所示。

下载CSV 表 1 CICIDS2017数据集样本分布 Table 1 CICIDS2017 data set sample distribution

NSL-KDD是研究人员为解决KDDCup99数据集的缺陷而开发的网络流量数据集[18],该数据集由KDDCup99数据集改进,其不包含冗余数据和重复数据,数据分布更加平衡,更能体现异常检测效果。该数据集包含正常数据及拒绝服务攻击、监视、探测、非法访问等异常攻击或操作造成的异常网络流量数据,共包含125 972条数据,该数据集样本分布如表 2所示。

下载CSV 表 2 NSL-KDD数据集样本分布 Table 2 NSL-KDD data set sample distribution
3.2 实验流程

实验主要使用CICIDS2017数据集,然后使用NSL-KDD进行相关对比实验,并进一步观察所提方法的异常检测效果。实验步骤如下:

步骤1  由于数据集中某些特征为离散型特征,因此需要对实验数据集进行预处理,将这些特征值处理为数值型。为保证离散型特征值的无序性,本文采用One-Hot编码[19]处理离散型特征,随后对数据进行归一化处理。

步骤2  训练数据集为实验数据集随机采样的80%数据,测试数据集为剩余的20%数据。

步骤3  通过训练数据集中的正常数据集得到式(6)中的均值$ {\mathit{\boldsymbol{\mu }}}_{N} $、协方差矩阵$ {\mathit{\boldsymbol{ \boldsymbol{\varSigma} }}}_{N} $$ {\mathit{\boldsymbol{ \boldsymbol{\varSigma} }}}_{\mathit{\boldsymbol{N}}}^{-1} $,并根据式(6)计算训练数据集中所有数据的马氏距离,再计算数据的马氏距离倒数,得到训练数据的马氏距离倒数集$ {\mathit{\boldsymbol{M}}}_{r} $。根据实验观察$ {\mathit{\boldsymbol{M}}}_{r} $中正常数据与异常数据的马氏距离倒数分布,确定判别阈值$ T $的值。

步骤4  将$ {\mathit{\boldsymbol{M}}}_{r} $中超过阈值$ T $的数据判定为正常数据,未超过阈值$ T $的数据判定为未确定数据,将未确定数据集作为自编码器和分类网络的训练数据。

步骤5  构建如图 2所示的改进自编码器,代价函数为添加马氏距离度量项的式(11),并通过未确定数据训练自编码器,得到最佳隐层表达$ {\mathit{\boldsymbol{h}}}_{k} $

步骤6  确定正常数据占未确定数据量的比重$ {W}_{0} $、异常数据占未确定数据量的比重$ {W}_{1} $,构建如图 3所示的以式(14)为代价函数的改进自编码神经网络。将$ {\mathit{\boldsymbol{h}}}_{k} $作为Sigmoid分类器的输入,通过带标签的未确定数据进行有监督地微调完成整个自编码神经网络的训练。

步骤7  使用测试数据集进行测试实验。使用步骤3中确定的$ {\mathit{\boldsymbol{\mu }}}_{N} $$ {\mathit{\boldsymbol{ \boldsymbol{\varSigma} }}}_{\mathit{\boldsymbol{N}}}^{-1} $计算得到测试数据的马氏距离,并计算其马氏距离倒数。若数据马氏距离倒数超过阈值$ T $,则将该数据判定为正常数据;若数据马氏距离倒数未超过阈值$ T $,将其判定为未确定数据。随后将该数据输入进训练完成的自编码神经网络中并输出其判定结果。通过测试实验,观察所提方法的异常检测效果。本文提出的网络流量异常检测模型如图 4所示。

Download:
图 4 异常检测模型 Fig. 4 Anomaly detection model
3.3 评价标准

本文实验的评价指标混淆矩阵[20]表 3所示。

下载CSV 表 3 评价指标混淆矩阵 Table 3 Confusion matrix of evaluation indicators

本文使用如下指标评价异常检测效果:

准确率(Accuracy)表示分类正确的样本占全部样本的比重,其表达如下:

$ {A}_{\mathrm{A}\mathrm{c}\mathrm{c}\mathrm{u}\mathrm{r}\mathrm{a}\mathrm{c}\mathrm{y}}=\frac{{T}_{\mathrm{T}\mathrm{P}}+{T}_{\mathrm{T}\mathrm{N}}}{{T}_{\mathrm{T}\mathrm{P}}+{T}_{\mathrm{T}\mathrm{N}}+{F}_{\mathrm{F}\mathrm{P}}+{F}_{\mathrm{F}\mathrm{N}}} $ (15)

精确率(Precision)表示正确分类为正样本的数据量占全部分类为正样本数据量的比重,其表达如下:

$ {P}_{\mathrm{P}\mathrm{r}\mathrm{e}\mathrm{c}\mathrm{i}\mathrm{s}\mathrm{i}\mathrm{o}\mathrm{n}}=\frac{{T}_{\mathrm{T}\mathrm{P}}}{{T}_{\mathrm{T}\mathrm{P}}+{F}_{\mathrm{F}\mathrm{P}}} $ (16)

召回率(Recall)表示正确分类为正样本的数据量占全部实际为正样本的数据量的比重,其表达如下:

$ {R}_{\mathrm{R}\mathrm{e}\mathrm{c}\mathrm{a}\mathrm{l}\mathrm{l}}=\frac{{T}_{\mathrm{T}\mathrm{P}}}{{T}_{\mathrm{T}\mathrm{P}}+{F}_{\mathrm{F}\mathrm{N}}} $ (17)

F1值(F1)能有效地说明异常检测效果,其为精确率和召回率的综合考量,表达如下:

$ \mathrm{F}1=\frac{2{P}_{\mathrm{P}\mathrm{r}\mathrm{e}\mathrm{c}\mathrm{i}\mathrm{s}\mathrm{i}\mathrm{o}\mathrm{n}}\times {R}_{\mathrm{R}\mathrm{e}\mathrm{c}\mathrm{a}\mathrm{l}\mathrm{l}}}{{P}_{\mathrm{P}\mathrm{r}\mathrm{e}\mathrm{c}\mathrm{i}\mathrm{s}\mathrm{i}\mathrm{o}\mathrm{n}}+{R}_{\mathrm{R}\mathrm{e}\mathrm{c}\mathrm{a}\mathrm{l}\mathrm{l}}}=\frac{2{T}_{\mathrm{T}\mathrm{P}}}{2{T}_{\mathrm{T}\mathrm{P}}+{F}_{\mathrm{F}\mathrm{P}}+{F}_{\mathrm{F}\mathrm{N}}} $ (18)

若实验异常检测效果越好,则上述4个指标越接近1[19]

4 实验过程

本文首先使用CICIDS2017数据集进行实验,由于CICIDS2017数据集的数据量较大,为提高实验效率,本实验随机选取CICIDS2017数据集的20%数据作为实验数据集,该实验数据集共包含566 149条数据。CICIDS2017实验数据集样本分布如表 4所示,经过预处理后,该实验数据集中网络流量数据包含70个特征。

下载CSV 表 4 CICIDS2017实验数据集样本分布 Table 4 CICIDS2017 experimental data set sample distribution

本实验首先随机选取CICIDS2017实验数据集的80%数据作为训练数据,剩余20%作为测试数据。训练数据集样本分布如表 5所示,测试数据集样本分布如表 6所示。

下载CSV 表 5 CICIDS2017训练数据集样本分布 Table 5 CICIDS2017 training data set sample distribution
下载CSV 表 6 CICIDS2017测试数据集样本分布 Table 6 CICIDS2017 test data set sample distribution
4.1 数据判别

选取训练数据集中的正常数据集,从而计算得到正常数据集的均值$ {\mathit{\boldsymbol{\mu }}}_{N} $和协方差矩阵$ {\mathit{\boldsymbol{ \boldsymbol{\varSigma} }}}_{N} $,根据式(6)计算所有训练数据的马氏距离,训练数据的马氏距离分布如图 5所示。

Download:
图 5 训练数据集的马氏距离分布 Fig. 5 Mahalanobis distance of training data set

图 5可知,在训练数据集中,正常与异常数据通过式(6)得出的马氏距离分布不同,接下来计算得到训练数据集的马氏距离倒数,观察其马氏距离倒数的分布,如图 6所示。

Download:
图 6 训练数据集的马氏距离倒数分布及判别阈值 Fig. 6 Inverse distribution of Mahalanobis distance and discrimination threshold of training data set

图 6可知,训练数据集中数据的马氏距离倒数分布差异较为明显。根据图 6可确定判别阈值$ T $,为保证检测准确性,需确保超过判别阈值的均为正常数据,异常数据均未超过判别阈值,本实验确定判别阈值$ T $的值为0.4,已在图 6中标示。

图 6所示,将马氏距离倒数超过判别阈值$ T $的数据判定为正常数据,未超过判别阈值$ T $的判定为未确定数据。经过实验证明,马氏距离倒数超过判别阈值而被判定为正常数据的数据实际均为正常数据,接下来将未超过判别阈值的未确定数据集作为训练数据用于自编码器和分类网络的训练,未确定数据集包含318 400条数据,其样本分布如表 7所示。

下载CSV 表 7 未确定数据集样本分布 Table 7 Uncertain data set sample distribution

通过判别阈值共判别出134 519条正常数据,占训练数据集中正常数据量的37.0%,占训练数据集总数据量的29.7%,明显减少了训练数据量。在实际网络流量异常检测中利用判别阈值可快速判别数据是否为正常数据,提高了检测效率。

4.2 改进自编码器的构建

本实验构建的自编码器在稀疏自编码器的基础上加入马氏距离度量项,其代价函数为式(11)。由于在隐层中加入了稀疏性限制,式(9)中的稀疏惩罚项的权重$ \beta $和稀疏常数$ \rho $需要通过实验确定合适的数值,同时隐层的维度$ k $也需要通过实验确定。在这些参数的确定过程中,本实验将自编码器训练次数设为50,单次训练选取样本数为1 000,观察这些参数的变化对自编码器训练损失的影响,每个参数进行5次实验取平均训练损失。

图 7所示为自编码器训练损失随隐层维度$ k $的变化,可知维度设为28时训练损失最低。图 8所示为自编码器训练损失随$ \beta $的变化,图 9所示为自编码器训练损失随$ \rho $的变化,由此可知$ \beta $$ \rho $分别设为0.1和0.04时训练损失最低。表 8所示为改进自编码器的参数设置。

Download:
图 7 自编码器训练损失随$ k $的变化 Fig. 7 Training loss of autoencoder changes with $ {{k}} $
Download:
图 8 自编码器训练损失随权重$ {{\beta }} $的变化 Fig. 8 Training loss of autoencoder changes with weignt $ {{\beta }} $
Download:
图 9 自编码器训练损失随稀疏常数$ {{\rho }} $的变化 Fig. 9 Training loss of autoencoder changes with sparse constanti $ {{\rho }} $
下载CSV 表 8 改进自编码器的参数设置 Table 8 Parameters setting of improved autoencoder

构建的改进自编码器在训练次数为100、单次训练选取样本数为1 000的情况下训练损失曲线如图 10所示,可以看到改进自编码器具有良好的收敛性。

Download:
图 10 改进自编码器的训练损失 Fig. 10 Improved autoencoder training loss
4.3 改进自编码神经网络的构建

将训练完成的自编码器的隐层连接Sigmoid分类层,构建如图 3所示的改进自编码神经网络。通过自编码器训练获得的最优权值$ \mathit{\boldsymbol{W}} $和偏置$ \mathit{\boldsymbol{b}} $参数作为分类网络的初始参数。该自编码神经网络的代价函数为式(14),通过得到的用于训练的未确定数据集计算得知,其中正常数据占未确定数据量的比重$ {W}_{0} $为0.72、异常数据占未确定数据量的比重$ {W}_{1} $为0.28。

通过输入带标签的未确定数据集对改进自编码神经网络进行有监督的微调,训练次数为100,单次训练选取样本数为1 000,其训练损失曲线如图 11所示。可看到其损失曲线呈连续下降趋势,说明通过将自编码器的$ W $$ b $参数作为初始参数使网络具有较好的收敛性,避免了网络陷入局部最优的风险;并且通过调整交叉熵损失函数中两项的权重,使自编码神经网络的损失下降较快,有利于取得更好的训练效果。

Download:
图 11 改进自编码神经网络的训练损失 Fig. 11 Improved autoencoder neural network training loss
4.4 测试实验

使用测试数据测试本文提出的结合马氏距离和自编码器的网络流量异常检测方法的异常检测效果。通过式(6)计算测试数据的马氏距离再得到其马氏距离倒数,经过判别阈值$ T $首先判别出一部分正常数据,再将剩余数据放入训练完成的改进自编码神经网络中得到其预测结果。

为增强实验的可靠性和准确性,采用5折交叉验证方式[7]进行实验:将实验数据集随机均匀分为5份,轮流将其中1份作为测试数据,剩余4份作为训练数据,共进行5次实验,将5次实验结果取均值作为最终实验结果。实验结果如表 9所示,可见本文提出的网络流量异常检测方法具有较好的效果。

下载CSV 表 9 测试实验结果 Table 9 Results of the test experiment
5 实验结果

为更进一步考察本文所提方法的异常检测效果,设计4组不同对比实验:1)一般自编码器与加入马氏距离度量项的改进自编码器的实验效果对比;2)一般自编码神经网络与调整交叉熵损失函数的改进自编码神经网络的实验效果对比;3)本节提出的网络流量异常检测方法与其他网络流量异常检测方法的对比;4)使用NSL-KDD数据集进行实验,观察其异常检测效果。

5.1 一般自编码器与改进自编码器的对比

为了观察在自编码器代价函数中加入马氏距离度量项的影响,本实验构建了一个未加入马氏距离度量项的,以式(9)为代价函数的一般自编码器,并与4.2节构建的加入马氏距离度量项的改进自编码器进行对比,两个自编码器除代价函数外,参数和结构完全与4.2节构建的改进自编码器相同。

使用得到的未确定数据集分别对两个自编码器进行训练,训练次数均为100,单次训练所选样本数均为1 000,两者的训练损失对比如图 12所示。由图 12可知,两个自编码器的训练损失相差较小,改进自编码器由于添加了马氏距离度量项,训练损失下降较慢,其最终训练损失值较一般自编码器稍大。随后,分别使用两个自编码器构建如图 3所示的自编码神经网络,通过未确定数据进行有监督的微调以完成整个自编码神经网络的训练。仍然采用5折交叉验证方式进行4.4节中描述的测试实验,测试实验结果如表 10所示,可知改进自编码器组成的自编码神经网络具有更好的异常检测效果,说明改进自编码器对于网络流量数据具有更好的特征学习能力,能够获得更佳的隐层,有利于自编码神经网络的网络流量异常检测。

Download:
图 12 自编码器训练损失比较 Fig. 12 Comparison of autoencoder training loss
下载CSV 表 10 两个自编码器测试实验结果对比 Table 10 Comparison of test experiment results of two autoencoders
5.2 一般自编码神经网络与改进自编码神经网络的对比

为观察调整自编码神经网络的交叉熵损失函数中各项权重对自编码神经网络训练及异常检测效果的影响,本实验使用4.2节中训练完成的改进自编码器构建如图 3所示的自编码神经网络,其代价函数为普通交叉熵损失函数如式(13)所示,记为一般自编码神经网络。使用带标签的未确定数据对一般自编码神经网络进行训练,与4.3节中构建并训练的改进自编码神经网络进行对比,两个自编码神经网络除代价函数外,参数及结构与4.3节中构建的改进自编码神经网络完全相同。

两个自编码神经网络的训练次数均为100,单次训练所选样本数均为1 000,两个自编码神经网络的训练损失对比如图 13所示。可知改进自编码神经网络收敛速度更快、训练损失更小,具有更好的收敛性。

Download:
图 13 自编码神经网络训练损失比较 Fig. 13 Comparison of autoencoder neural network training loss

两个自编码神经网络完成训练后,按照5折交叉验证方式进行4.4节中描述的测试实验,实验结果如表 11所示。可知通过调整交叉熵损失函数中各项权重,对于数据分布不均衡的CICIDS2017数据集,改进自编码神经网络具有更好的训练效果,能够提高其网络异常检测效果。

下载CSV 表 11 两个自编码神经网络测试实验结果对比 Table 11 Comparison of test experiment results of two AE neural networks
5.3 与其他网络流量异常检测方法的对比

为进一步验证本文所提网络流量异常检测方法的效果,在CICIDS2017数据集上将本文所提方法与其他网络流量异常检测方法和成果进行对比。同样采用5折交叉验证方式进行实验,对比的方法包括DNN[1]、LSTM[21]、C-LSTM[21]、CWGAN-CSSAE[22]、GA-CNN[23]、CVAE[22]、IPC[24]等。实验结果如表 12所示。

下载CSV 表 12 与其他网络流量异常检测方法的对比 Table 12 Comparison with other network traffic anomally detection methods

表 12可知,本文所提方法在对网络流量异常检测的效果上优于其他方法。

文献[24]同样使用马氏距离代替传统的欧式距离,提出了一种基于马氏距离的增量可能聚类算法来检测异常网络流量,该算法逐渐选择离群点作为新的聚类中心并合并重叠的聚类中心,将不属于任何正常模型的数据视为异常数据,也证明了马氏距离较欧式距离的优越性。其虽然取得了不错的异常检测效果,但不适合实时的网络流量数据,是一种无监督的算法,需要将整个数据集作为输入,且分类效率较低,无法对单一网络流量数据做出判别。

5.4 NSL-KDD数据集上的实验

为观察本文所提方法的泛化能力,使用同样被广泛应用于网络异常检测和分类研究中的NSL-KDD数据集进行实验。本实验仍然采用5折交叉验证方式进行第4节所述的实验过程。实验中训练数据的马氏距离倒数及判别阈值$ T $图 14所示,其中判别阈值$ T $的值为0.6。训练数据共100 778条数据,通过马氏距离倒数及判别阈值快速判别出15 509条正常数据,占总数据量的15.39%。

Download:
图 14 NSL-KDD训练数据集的马氏距离倒数分布及判别阈值 Fig. 14 Inverse Mahalanobis distrance distance and discrimination threshold of NSL-KDD training data set

构建改进自编码器和改进自编码神经网络,测试实验结果如表 13所示。由表 13可知,本文所提异常检测方法在NSL-KDD数据集上仍然具有优秀的异常检测效果,对网络流量数据具有一定泛化能力。

下载CSV 表 13 NSL-KDD数据集测试实验结果 Table 13 Results of the test experiment under NSL-KDD data set
6 结束语

本文从网络流量数据特征间具有相关性及数据量大的特点出发,提出一种结合马氏距离和自编码器的检测方法。通过马氏距离倒数及判别阈值快速检测出部分正常数据,减少自编码器和分类网络的训练数据量。将自编码器和Sigmoid分类器相结合,以避免网络陷入局部最优。在自编码器代价函数中添加马氏距离度量项,增强自编码器对网络流量数据的特征学习能力。调整自编码神经网络交叉熵损失函数中各项的权重,从而提高自编码神经网络的训练效果。实验结果表明,本文方法具有一定泛化能力,且对网络流量具有较好的异常检测效果。

参考文献
[1]
LIU H Y, LANG B. Machine learning and deep learning methods for intrusion detection systems: a survey[J]. Applied Sciences, 2019, 9(20): 4396-4420. DOI:10.3390/app9204396
[2]
AHMED M, MAHMOOD A N, HU J K. A survey of network anomaly detection techniques[J]. Journal of Network and Computer Applications, 2016, 60(1): 19-31. DOI:10.1016/j.jnca.2015.11.016
[3]
BHATTACHARYYA D K, KALITA J K. Network anomaly detection: a machine learning perspective[M]. Los Angeles, USA: CRC Press, 2013.
[4]
JIA F, LEI Y, GUO L. A neural network constructed by deep learning technique and its application to intelligent fault diagnosis of machines[J]. Neurocomputing, 2018, 272(1): 619-628.
[5]
RUMELHART D E, HINTON G E, WILLIAMS R J. Learning representations by back-propagating errors[J]. Nature, 1986, 323(6088): 533-536. DOI:10.1038/323533a0
[6]
BOURLARD H, KAMP Y. Auto-association by multilayer perceptrons and singular value decomposition[J]. Biological Cybernetics, 1988, 59(4): 291-294. DOI:10.1007/BF00332918
[7]
NG A. Sparse autoencoder[EB/OL]. [2021-01-02]. https://www.mendeley.com/catalogue/a06882b2-8546-33a0-9803-53cf01f649cc/.
[8]
YANG Y Q, ZHENG K F, WU C H, et al. Improving the classification effectiveness of intrusion detection by using improved conditional variational autoencoder and deep neural network[J]. Sensors, 2019, 19(11): 2528-2547. DOI:10.3390/s19112528
[9]
张西宁, 向宙, 唐春华. 一种深度卷积自编码网络及其在滚动轴承故障诊断中的应用[J]. 西安交通大学学报, 2018, 52(7): 51-59.
ZHANG X N, XIANG Z, TANG C H. A deep convolutional auto-encoding neural network and its application in bearing fault diagnosis[J]. Journal of Xi'an Jiaotong University, 2018, 52(7): 51-59. (in Chinese)
[10]
IMANI M. Difference-based target detection using mahalanobis distance and spectral angle[J]. International Journal of Remote Sensing, 2019, 40(4): 811-831. DOI:10.1080/01431161.2018.1519280
[11]
DORESWAMY, HOOSHMAND M K, GAD I. Feature selection approach using ensemble learning for network anomaly detection[J]. CAAI Transactions on Intelligence Technology, 2020, 5(4): 283-293. DOI:10.1049/trit.2020.0073
[12]
蒋华, 张红福, 罗一迪, 等. 基于KL距离的自适应阈值网络流量异常检测[J]. 计算机工程, 2019, 45(4): 108-113.
JIANG H, ZHANG H F, LUO Y D, et al. Adaptive threshold network traffic anomaly detection based on KL distance[J]. Computer Engineering, 2019, 45(4): 108-113. (in Chinese)
[13]
袁非牛, 章琳, 史劲亭, 等. 自编码神经网络理论及应用综述[J]. 计算机学报, 2019, 42(1): 203-230.
YUAN F N, ZHANG L, SHI J T, et al. Theories and applications of auto-encoder neural networks: a literature survey[J]. Chinese Journal of Computers, 2019, 42(1): 203-230. (in Chinese)
[14]
张志敏, 柴变芳, 李文斌. 基于稀疏自编码器的属性网络嵌入算法[J]. 计算机工程, 2020, 46(7): 98-103.
ZHANG Z M, CHAI B F, LI W B. Attribute network embedding algorithm based on sparse autoencoder[J]. Computer Engineering, 2020, 46(7): 98-103. (in Chinese)
[15]
LI J P, HUANG R Y, LI W H. Intelligent fault diagnosis for bearing dataset using adversarial transfer learning based on stacked auto-encoder[J]. Procedia Manufacturing, 2020, 49(1): 75-80. DOI:10.1016/j.promfg.2020.06.014
[16]
DING S, SU C, YU J. An optimizing BP neural network algorithm based on genetic algorithm[J]. Artificial Intelligence Review, 2011, 36(2): 153-162. DOI:10.1007/s10462-011-9208-z
[17]
YADAV M S, KALPANA R. Data preprocessing for intrusion detection system using encoding and normalization approaches[C]//Proceedings of the 11th International Conference on Advanced Computing. Washington D. C., USA: IEEE Press, 2019: 265-269.
[18]
MORABOENA S, KETEPALLI G, RAGAM P. A deep learning approach to network intrusion detection using deep autoencoder[J]. Revue d'Intelligence Artificielle, 2020, 34(4): 457-463. DOI:10.18280/ria.340410
[19]
MAO J, HU Y, JIANG D, et al. CBFS: a clustering-based feature selection mechanism for network anomaly detection[J]. IEEE Access, 2020, 8(1): 116216-116225. DOI:10.1109/ACCESS.2020.3004699
[20]
LÜ P, YU Y, FAN Y, et al. Layer-constrained variational autoencoding kernel density estimation model for anomaly detection[J]. Knowledge-Based Systems, 2020, 196(1): 105753. DOI:10.1016/j.knosys.2020.105753
[21]
KIM T Y, CHO S B. Web traffic anomaly detection using C-LSTM neural networks[J]. Expert Systems with Applications, 2018, 106(1): 66-76. DOI:10.1016/j.eswa.2018.04.004
[22]
ZHANG G L, WANG X D, LI R, et al. Network intrusion detection based on conditional wasserstein generative adversarial network and cost-sensitive stacked autoencoder[J]. IEEE Access, 2020, 8: 190431-190447. DOI:10.1109/ACCESS.2020.3031892
[23]
NGUYEN M T, KIM K. Genetic convolutional neural network for intrusion detection systems[J]. Future Generation Computer Systems, 2020, 113(1): 418-427. DOI:10.1016/j.future.2020.07.042
[24]
YANG T Y, LIU S Y, LIU J Y. Network traffic anomaly detection based on incremental possibilistic clustering algorithm[C]//Proceedings of the 3rd International Conference on Data Mining, Communications and Information Technology. Beijing, China: Asia Pacific Institute of Science and Engineering, 2019: 536-543.