加密流量分类-论文6:Learning to Classify A Flow-Based Relation Network for Encrypted Traffic Classification


Encrypted Traffic Classification)

0、摘要

加密流量分类的挑战性问题:

  • 网络数据的不平衡性
  • 模型对真实数据的泛化能力
  • 模型对数据大小的过度依赖。

1、概念介绍

1.1 流量加密背景

  加密技术虽然保护了互联网用户的自由、隐私和匿名性,但也用户避开了防火墙的检测,绕过了监控系统

  由此导致的问题:

  • 攻击者通过加密恶意软件流量来匿名入侵和攻击系统。
  • 犯罪分子使用隐私增强工具(例如Tor)穿透黑暗网络,在那里他们可以购买毒品、武器和伪造的文件(如护照、驾照、提供合同杀手的媒体)来吸引客户.

1.2 流量分类技术的发展(综述部分)

  1. 基于端口号
  2. 基于有效载荷,也就是DPI方法。1,2只能针对非加密流量
  3. 基于流统计特征的方法,分类性能取决于人类的特征工程
  4. 基于深度学习的方法:
    • 优点:端到端、具有相当高的学习能力
    • 缺点:
      • 不能解决数据中类的不均衡问题
      • 训练好的模型不能很好适用于真是流量环境,泛化能力差
      • 过分依赖数据集的大小与数据分布的好坏

1.4 文章核心观点引入

  对于一个新奇概念的样本,人类可以轻易根据对事物共同变化模式的了解,想象该样本在其他环境的样子。如果机器从辨别出在不同环境(原文这里称作幻觉(hallucination))下的同一样本,那么通过一个**致幻器(hallucinator)**产生额外的训练样本,理论上就可以在少量数据样本的情况下学习到不错的泛化能力。

  将从有限的数据中提取先验知识并将其转移到不可见的任务或者环境中,元学习是一种解决方案。(不是半监督模型预训练那一套)

  • 关于元学习(学习如何去学习):

    1. 元级(meta-level)学习器:在不同的训练任务以及对应的训练数据上进行学习,以此作为网络结构的先验知识,下图的F。

    2. 基础级(base-level)学习器:为特定任务设计的学习器。由F针对测试任务学习出来的f
      在这里插入图片描述
      在这里插入图片描述

  在元学习阶段,进行多任务学习,称作Training Task,每个任务都有自己的训练集与测试集,也称为支持集(support set)与查询集(query set),学习到一个F。在基础级学习阶段,进行特定任务的学习,称作Testing Task,将Testing task的给入F,得出学习到的f,然后在f上进行传统的训练测试,用f的表现去反映F的泛化能力好坏。

  • 分类粒度:基于流的分类(这里是原文:流序列作为唯一的原始流量信息。原始流可以表示为几个具有相同流长度和不同类型的序列(例如,消息类型序列和包长度序列)。一般我们把一种序列看作流序列,其他的序列也可以用同样的方法。)类似于FS-Net的输入,所以此模型输入应该是类似与FS-Net的输入,比如是取原始流的包长序列或者消息类型序列作为流序列信息,输入到模型

  • 分类目标:应用分类

  • 本文的分为训练集、支持集、测试集(支持集和测试集共享相同的标签空间,但训练集有自己的标签空间),原则上只需要支持集与测试集就可以了,但是支持集中缺乏标记样本,使用训练集上的元学习将提取的知识转移到支持集

  • 训练集合切割成为支持集与查询集???

2、模型结构

2.1总览

  本文提出基于流的关系网络分类模型(FlowBased Ralation Network,RBRN),从原始流序列学习特征,是端到端的分类模型。

  • 致幻器:产生额外样本(相当于一个数据增强器?)
  • 编码器:生成样本特征
  • 解码器:恢复输入序列,也进行特征的学习。编码器解码器都是多层CNN结构
  • 基于元学习的分类器:分类粒度,对应用程序的分类

2.2 集合分割

从训练集中选择跟支持集一样规模的作为集合S:假定支持集n个类,每个类m个样本,从训练集也随机选n个类,每个类选m个样本,剩余的作为查询集。

2.3 致幻器(Hallucinator)

  • Hallucinator的测试流程:

    1. 从原始数据集S中对每一个类别进行采样。

    2. 将采用后的样本添加噪声z,送入流产生器Flow(图中红色部分),输出数据增强后的样本Sg

    3. 将Sg与原始数据S合并为Saug,并作为最终的训练数据,送入h(分类算法)中进行预测

  • Hallucinator的训练流程:

    • 采用元学习的方法来训练Hallucinator与后面的分类器h,要求h对于Saug的元素可微,以便进行梯度下降,Hallucinator与后面的网络结构是同步进行训练学习的。

    • 这里目前还没有提及到关于元学习的多任务。

致幻器细节

2.4 编码器(Encoder)与解码器(Decoder)

  • 编码器输入:Saug,输出压缩特征。
  • 体系结构:VGG16网络中的前13个卷积层,舍弃全连接层,理由:以便在最深的编码器输出处保留更高分辨率的特征映射(论文讲的理由)。
    • 这里说卷积后的特征应该存储起来,但是由于内存限制,采用存储池化层的索引
    • 即池化窗口的最大特征值的位置被存储起来
  • 解码器输入:编码器输出的压缩特征,输出提供给基于元学习的分类器。
    • 从相应解码器存储的最大池化层索引来进行采样
    • 卷积层的滤波器仍旧是可训练的

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Zx7PEFDI-1664689673685)(C:\Users\user\AppData\Roaming\Typora\typora-user-images\image-20220927192806304.png)]

2.5 基于元学习的分类器

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HG7Ax38W-1664689673686)(C:\Users\user\AppData\Roaming\Typora\typora-user-images\image-20221001204430669.png)]

  1. 假设样本xj来自查询集Q,样本**xi来自增强后的数据集Saug
  2. 通过编码器-解码器输出后为zj=fencoder-decoder(xj)zi=fencoder-decoder(xi)
  3. 定义样本通过特征抽取模块的输出为mj=fmeta-network(zj)mi=fmeta-network(zi)**
  4. 将**mjmi**联结起来,通过关系模型 **Jrelation**计算两个样本之间的相关度
  5. 采用与最后查询集的实际类形成的独热向量之间的均方差作为损失,构建损失函数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nKYuTLTi-1664689673686)(C:\Users\user\AppData\Roaming\Typora\typora-user-images\image-20221001214705729.png)]

4、实验

  • 在小样本学习有不错的表现:在Full ISCX vpn -非vpn流量数据集中,为每个应用程序选择1000条流量记录作为训练集,其他的作为测试集,仍旧有不错的效果。

  • 在数据不均衡样本集有不错的表现

  • 在复杂环境时能保证不错的泛化能力:在均衡样本集中训练,在非均衡上测试,对比其他模型,表现出不错的效果

    不太理解在均匀数据集上训练的模型在非均衡数据集上进行测试,如何能体现出泛化能力。

5、总结与思考

  • 从李宏毅老师学习到元学习的有关概念,感觉这里元学习作者没有太突出出来,我的理解是训练集很大,每次选一个子集合作为支持集,就相当于一个元学习任务了,这样多次选训练集子集,相当于对元分类器进行多任务训练。…不知道理解对不对。。。
  • 网络模型挺深,模块多,实验部分做了消融实验以此证明每部分都是有必要的。
  • 不太理解在编码器解码器中对于池化索引的记录的点,以及解码器的存在的意义,只需编码部分可不可以?
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值