读论文:ByteSGAN: A semi-supervised Generative Adversarial Network for encrypted traffic classification

ByteSGAN:半监督生成对抗网络,用于 SDN Edge 网关中的加密流量分类

0、摘要

SDN Edge Gateway作为距离用户最近的网络元素,可以通过流量分类能力来提升用户体验。目前针对于捕获大型标记数据集是繁琐且耗时的体力劳动,半监督学习可以有效的解决这个问题。本文提出一种基于生成对抗网络GAN的半监督学习加密流量分类方法ByteSGAN,嵌入到SDN Edge网关中,以实现细粒度流量分类的目标,进一步提高网络资源利用率。ByteSGAN通过以半监督学习的方式修改常规GAN判别器网络的结构和损失函数,仅使用少量标记流量样本和大量样本就可以实现良好的流量分类性能。最后在公共数据集"ISCX 2012 VPN-non VPN“和"Crossmarket”两个实验结果表明,ByteSGAN可以有效提高流量分类器的性能。
关键词:加密流量分类、生成对抗网络、半监督学习、流量识别、SDN网关

1、介绍

FF Flow Feature
TS Time Series
PP Packet Payload
TC Traffic Classification
AE Auto Encoders
CNN Convolutional Neutral Networks
RF Random Forest
FC Fully-Connected
主要贡献:
(1)ByteSGAN可以充分利用少量标记流量样本和大量未标记流量样本来实现良好的性能
(2)ByteSGAN不仅可以处理常规流量,也可以处理加密流量
(3)ByteSGAN是轻量级分类器,只能消耗SDN-EGW较少计算资源

GAN提供了一种无需大量注释的训练数据即可学习深度表示的有前途的方法。他们通过涉及一对网络的竞争过程导出反向传播信号来实现这一目标。
读论文:ByteSGAN: A semi-supervised Generative Adversarial Network for encrypted traffic classification_第1张图片

2、ByteSGAN加密流量分类方法论

读论文:ByteSGAN: A semi-supervised Generative Adversarial Network for encrypted traffic classification_第2张图片

1、ByteSGAN主要包括两个步骤:

输入数据预处理和基于ByteSGAN的流量分类
首先过滤数据集中的一些与特定应用无关的数据包数据,例如ARP/DHCP/ICMP。数据包数据将被截断或者用零来填充,来标准化数据包字节向量PBV。然后标准化的PBV将被发送到ByteSGAN。PBV中的标签和数据都作为真实数据输入到鉴别器网络D中。然后生成器网络G和判别器网络D交替训练并迭代更新,收敛并输出分类效果。在ByteSGAN中,可以同时对多个流量样本进行分类和训练,有效解决了常规GAN必须针对每个应用单独训练的问题。此外,使用半监督学习能够克服标记数据的限制。

2、训练步骤:

1、生成带有高斯噪声z的随机向量,输入到生成网络G,得到生成的流量G(z)
2、将生成的流量G(z)、标记流量x和真实流量x批量输入到判别器网络D中,然后通过激活函数softmax输出D(x)和D[G(z)]的概率之和
3、固定生成器网络G的参数。如果输入流是生成流(即假数据),我们可以使用∼ log [model ( = + 1 ∣ )]作为损失函数;如果真实流x已经被标记,我们可以使用Llabeled作为损失函数;如果真实流x没有被标记,我们可以使用L作为损失函数。通过Adam梯度下降法调整判别器D的参数
4、固定判别器网络D的参数,对真实流量数据x和生成的流量G(z)进行特征匹配操作,然后选择全连接层的输出作为中间层,利用特征匹配来调整生成网络G的参数
5、重复1~4直至完成迭代步骤

3、ByteSGAN网络结构

1、使用带stride的卷积层代替池化层
2、判别器网络D采用卷积代替池化层,生成器网络G模型采用反卷积代替池化层
3、LeakyReLU在生成器G和判别器D中均用于激活。此外,生成器G的输出层采用tanh作为激活函数
4、判别器D的输出层被构建为具有共享权重的堆叠模型。首先使用k类输出和softmax激活函数构建监督模型。然后定义无监督模型接受监督模型在softmax激活函数前的输出,然后计算指数输出的归一化和。

4、生成器模型

生成器G由一层反卷积网络和一层卷积网络构成。首先将一个高斯分布的100维随机噪声z输入到FC网络中,并通过维度变换将其变为三维张量。然后我们将这个张量输入到内核大小为33、步长为2的反卷积层。该层由LeakyReLU激活。最后,反卷积层的输出将被输入到内核大小为33,步长为2的卷积层,使用Tanh激活生成的流量样本张量。
读论文:ByteSGAN: A semi-supervised Generative Adversarial Network for encrypted traffic classification_第3张图片

5、判别器模型

读论文:ByteSGAN: A semi-supervised Generative Adversarial Network for encrypted traffic classification_第4张图片
判别器由3个卷积层和2个FC层组成。将输入数据预处理后长度为1480的PBV真实流量样本通过维度变换转换为三位张量20741,然后送入尺寸为3层的卷积核3*3。LeakyReLU用于每次卷积后的激活。 LeakyReLU可以在负半轴上保留一个小的斜率(本文设置为0.2)。与ReLU激活函数相比,LeakyReLU可以避免训练过程中梯度消失的问题。经过Flatten层扁平化后,输入FC网络,FC网络构建为具有共享权值的堆叠网络,采用Lambda作为激活函数,然后使用softmax输出归一化的类别概率。

3、实验

3.1 第一个实验读论文:ByteSGAN: A semi-supervised Generative Adversarial Network for encrypted traffic classification_第5张图片

为了与所提出的SGAN进行比较,本文设计并实现了一个基于AE的半监督分类模型,具体结构如图所示,模型包括两个部分:自动编码器和分类模型。自动编码器主要由两个主要组件构成:编码器和解码器。编码器用作特征提取器,随着数据进入更深的层,它会检测从低级到高级的特征。提取的特征存储在潜在向量中。解码器获取这些特征并将他们转换为原始形状,输入流数据,并尝试重建原始流。使用CNN网络作为分类器来接受来自编码器的特征进行分类。自动编码器是一种无监督学习模型,我们将其与CNN分类器结合形成半监督学习模型。
1.输入层数据采用分组字节向量(PBV),以(20,74,1)作为输入。
2.编码器采用三层卷积神经网络。每层都有一个形状为(3, 3)的卷积核。编码器接收PBV,输出形状为(32,1) 的特征向量。
3.解码器设计为与SGAN生成器具有相同的结构,使用形状为(32, 1)的特征向量来恢复原始流量
4.编码器还连接到分类器。分类器有两层,卷积核的形状为(3, 3),使用softmax激活函数输出分类结果。
5. 使用未标记的样本训练编码器和解码器,并将损失函数设置为MAE。使用标记样本训练编码器和分类器,并使用分类交叉熵作为损失函数

3.2 第二个实验

读论文:ByteSGAN: A semi-supervised Generative Adversarial Network for encrypted traffic classification_第6张图片
为了进行比较,设计并实现了一个简单的基于CNN的分类模型,其网络结构如图9所示。基于CNN的加密流量分类模型由一个输入层、三个卷积和池化连接层组成,和输出层。输入层是经过预处理后的分组数据。卷积核池化层的具体参数如图所示。输出层采用softmax分类。输出层的神经元代表 15 种不同的应用。

4、总结

首先,本文作者说将ByteSGAN嵌入到网关,但是文中并没有涉及到将SGAN嵌入到SDN edge网关中
(感觉实验部分对于实验结果的分析有部分有歧义)

你可能感兴趣的:(论文,深度学习,分类)