本文主要是介绍阅读笔记-PacketCGAN Exploratory Study of Class Imbalance for Encrypted Traffic Classification Using CGAN,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
CCF C
Wang P , Li S , Ye F , et al. PacketCGAN: Exploratory Study of Class Imbalance for Encrypted Traffic Classification Using CGAN[J]. 2019.
基于CGAN的加密流量分类中类不平衡的探索性研究
文章目录
- 代码 - 无
- 概述
- Conditional GAN
- 方法
- 基于PacketCGAN的加密流量分类的工作流程
- 数据包预处理
- 使用PacketCGAN进行类平衡
- 流量分类器训练
- PacketCGAN的模型架构与算法描述
- 数据集
- 评价指标
代码 - 无
 ̄へ ̄
概述
DL分类模型的性能总是大大取决于数据集的质量
建立数据集是一项耗时和昂贵的任务
数据集中主要和次要的加密应用之间的类不平衡
本文提出PacketCGAN的数据增强方法。PacketCGAN利用CGAN的优势,以应用类型的输入为条件生成指定的样本,从而实现数据平衡。
通过以下四种手段生成新流量数据集
- 随机过度采样(ROS)
- SMOTE(Synthetic Minority Over-sampling Techinique)
- vanilla GAN
- PacketCGAN
对公共加密流量数据集进行分类。
实验评估结果表明,基于DL的加密流量分类器在我们由PacketCGAN增强的新数据集上可以取得比其他三种加密流量分类更好的性能。
Conditional GAN
CGAN将约束条件y作为附加参数添加到生成器G中,并希望生成相应的图像。
例如,在MNIST中,由GAN生成的数字可能是0-9的任何数字。图1为CGAN的网络结构。
CGAN的原理、结构和训练过程与GAN相似。成本函数略有不同,如(1)所示:
如图1所示,CGAN的训练过程包括以下步骤:
- 对真实数据进行采样,得到 P d a t a ( x ) P_{data}(x) Pdata(x),得到采样数据 P d a t a ( x ) P_{data}(x) Pdata(x)对应的标签y,将 P d a t a ( x ) P_{data}(x) Pdata(x)、 y y y输入鉴别器D,根据输出结果进行参数更新;
- 生成随机噪声 P z ( z ) P_z(z) Pz(z),然后在上述步骤中与标签y一起送入生成器G,G生成合成数据。
- 将合成数据和上述步骤生成的标签y输入鉴别器D,G根据D的输出结果对参数进行优化。
- 重复上述步骤,直到G和D达到纳什均衡。
方法
基于PacketCGAN的加密流量分类的工作流程
分为三个阶段
数据包预处理
来自PCAP文件的数据包不能直接用于模型训练,需要进行预处理。
分组数据的预处理包括以下三个步骤:
- 文件头删除和数据包过滤,如图2的(B)所示。PCAP文件头的前24个字节需要被删除,这只包含文件信息,对流量分类没有帮助。还需要对PCAP文件中无用的数据包进行分类过滤,如ARP和DHCP数据包等,这些数据包与特定流量类型无关。
- 截断或零填充,如图2的(C)所示。在DL模型的训练过程中,其输入需要转换为一个向量或矩阵,这就要求数据输入的长度是固定的。然而,在数据集中捕获的数据包的长度往往是不同的,所以有必要根据一个固定的和预定的长度值来截断长的数据包或填充短的数据包[16],在本文中是1480。
- 数据归一化,如图2的(D)所示。将预处理后的流量数据归一到[0,1]的范围内,可以提高模型训练的准确性和收敛速度。
在上述操作之后,每个处理的包将被格式化为包字节向量(PBV)[5],可以以csv格式存储。
使用PacketCGAN进行类平衡
数据平衡是这个阶段最关键的问题。从csv文件中读取PBV的向量以建立PBM的矩阵作为PacketCGAN的输入是非常重要的,如图2的(E)所示,这将在本节中详细说明。IV-B. 合成的数据包样本将由PacketCGAN以PBM格式生成,然后与原始数据集的样本相结合,建立新的平衡流量数据集,如图2的(E)和(F)所示。
流量分类器训练
流量分类器训练。在本文中,我们采用了一些DL流量分类器来评估由PacketCGAN增强的数据集的性能。新的平衡流量数据集将始终被分为三个部分:训练、测试和验证数据集。最后,分类器的相关性能指标将被评估,以间接验证不同数据增强方法产生的数据集的质量,如图2中的(H,I,J)所示。
PacketCGAN的模型架构与算法描述
我们提出的PacketCGAN的模型如图3所示,其中G和D都采用MLP作为基本架构。随机噪声 P z ( z ) P_z(z) Pz(z)作为正态分布模型的输入是N*100的向量,它将被送入具有G(z)分布的G。与vanilla GAN不同的是,流量/应用类型的标签也将作为条件c被送入我们的PacketCGAN。作为G的输出,合成的样本是N*1480个向量,它们将由PBM的矩阵组成,并最终以D(x)分布送入D。同时,来自原始不平衡数据集的PBM以 P d a t a ( x ) P_{data}(x) Pdata(x)分布被送入具有相同的1480分量的D中,通过微调训练,竞争达到纳什均衡状态。
数据集
- ISCX2012
我们选择了15个应用程序来构建原始数据集。显然,最初选择的数据集出现了类不平衡的问题 - USTC-TFC2016
10个应用选自USTC-TFC2016
评价指标
用于评估网络流量分类器的性能指标是精度、召回率和F1分数。
基于深度学习的网络流量分类器的描述:为了验证PacketCGAN算法的可行性和性能,我们采用三种经典的DL模型对不同生成方法合成的数据集上的流量进行分类,分别是MLP、CNN和SAE。
这篇关于阅读笔记-PacketCGAN Exploratory Study of Class Imbalance for Encrypted Traffic Classification Using CGAN的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!