阅读笔记-PacketCGAN Exploratory Study of Class Imbalance for Encrypted Traffic Classification Using CGAN

本文主要是介绍阅读笔记-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的网络结构。

image-20220526145458427

CGAN的原理、结构和训练过程与GAN相似。成本函数略有不同,如(1)所示:

image-20220526145700650

如图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的加密流量分类的工作流程

image-20220526153914591

分为三个阶段

数据包预处理

来自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的模型架构与算法描述

image-20220526160032570

我们提出的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的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/154249

相关文章

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟 开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚 第一站:海量资源,应有尽有 走进“智听

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

论文阅读笔记: Segment Anything

文章目录 Segment Anything摘要引言任务模型数据引擎数据集负责任的人工智能 Segment Anything Model图像编码器提示编码器mask解码器解决歧义损失和训练 Segment Anything 论文地址: https://arxiv.org/abs/2304.02643 代码地址:https://github.com/facebookresear

数学建模笔记—— 非线性规划

数学建模笔记—— 非线性规划 非线性规划1. 模型原理1.1 非线性规划的标准型1.2 非线性规划求解的Matlab函数 2. 典型例题3. matlab代码求解3.1 例1 一个简单示例3.2 例2 选址问题1. 第一问 线性规划2. 第二问 非线性规划 非线性规划 非线性规划是一种求解目标函数或约束条件中有一个或几个非线性函数的最优化问题的方法。运筹学的一个重要分支。2

【C++学习笔记 20】C++中的智能指针

智能指针的功能 在上一篇笔记提到了在栈和堆上创建变量的区别,使用new关键字创建变量时,需要搭配delete关键字销毁变量。而智能指针的作用就是调用new分配内存时,不必自己去调用delete,甚至不用调用new。 智能指针实际上就是对原始指针的包装。 unique_ptr 最简单的智能指针,是一种作用域指针,意思是当指针超出该作用域时,会自动调用delete。它名为unique的原因是这个

查看提交历史 —— Git 学习笔记 11

查看提交历史 查看提交历史 不带任何选项的git log-p选项--stat 选项--pretty=oneline选项--pretty=format选项git log常用选项列表参考资料 在提交了若干更新,又或者克隆了某个项目之后,你也许想回顾下提交历史。 完成这个任务最简单而又有效的 工具是 git log 命令。 接下来的例子会用一个用于演示的 simplegit

记录每次更新到仓库 —— Git 学习笔记 10

记录每次更新到仓库 文章目录 文件的状态三个区域检查当前文件状态跟踪新文件取消跟踪(un-tracking)文件重新跟踪(re-tracking)文件暂存已修改文件忽略某些文件查看已暂存和未暂存的修改提交更新跳过暂存区删除文件移动文件参考资料 咱们接着很多天以前的 取得Git仓库 这篇文章继续说。 文件的状态 不管是通过哪种方法,现在我们已经有了一个仓库,并从这个仓

忽略某些文件 —— Git 学习笔记 05

忽略某些文件 忽略某些文件 通过.gitignore文件其他规则源如何选择规则源参考资料 对于某些文件,我们不希望把它们纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。通常它们都是些自动生成的文件,比如日志文件、编译过程中创建的临时文件等。 通过.gitignore文件 假设我们要忽略 lib.a 文件,那我们可以在 lib.a 所在目录下创建一个名为 .gi

取得 Git 仓库 —— Git 学习笔记 04

取得 Git 仓库 —— Git 学习笔记 04 我认为, Git 的学习分为两大块:一是工作区、索引、本地版本库之间的交互;二是本地版本库和远程版本库之间的交互。第一块是基础,第二块是难点。 下面,我们就围绕着第一部分内容来学习,先不考虑远程仓库,只考虑本地仓库。 怎样取得项目的 Git 仓库? 有两种取得 Git 项目仓库的方法。第一种是在本地创建一个新的仓库,第二种是把其他地方的某个