加密流量分类-论文3:FS-Net: A Flow Sequence Network For Encrypted Traffic Classification

本文主要是介绍加密流量分类-论文3:FS-Net: A Flow Sequence Network For Encrypted Traffic Classification,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

加密流量分类-论文3:FS-Net: A Flow Sequence Network For Encrypted Traffic Classification

  • 0、摘要
  • 1、问题引入
  • 2、问题定义
  • 3、模型结构
    • 3.1总览
    • 3.2 嵌入层
    • 3.3 编码层
    • 3.4 解码层
    • 3.5 分类器
  • 4、实验
  • 5、总结与思考

0、摘要

  FS-Net是一个端到端的分类模型,它从原始流中学习代表性特征,然后在一个统一的框架中对它们进行分类。采用多层编码器-解码器结构,可以深入挖掘流的潜在序列特征,并引入重构机制,提高特征的有效性。

1、问题引入

  传统的基于统计特征加上机器学习的流量分类,太依赖与专业经验,即人类的特征工程,特征工程的好坏直接影响分类性能。以往的基于DL的流量分类方法如Deep Packet:,只使用了网络流量的有效载荷进行分类,没有考虑到流量中的其他信息。因此提出基于DL的端到端的分类模型,尝试设计一种新的适合流序列特征的神经网络结构,可以直接从原始输入中学习特征,学习到的特征以真实标签为指导,从而提高性能。因此,它可以节省设计和验证功能的人力。

2、问题定义

  • FS-Net是基于网络流量的应用分类,即应用识别。
  • 一个原始流量可以表示为不同的类型序列,如消息类型序列或者包长度序列,本文将一个原始流量看作包长度序列。具体的,Xp表示第p个样本的序列表示:
    X p = [ L 1 p , L 2 p , . . . , L n p ) ] X_p=[L_1^p,L_2^p,...,L_n^p)] Xp=[L1p,L2p,...,Lnp)]
    其中n是Xp的长度,Lip是时间步长i的数据包值。

3、模型结构

3.1总览

类似于AE半监督的思想,模型由五大块组成

  • 嵌入层
  • 编码层
  • 解码层
  • 重构层
  • 分类器
    模型整体结构

3.2 嵌入层

  

  • 任务:将L1到Ln的序列信息转化为e1到en的向量表示。如果有K个数据,且嵌入向量的维度为d,那么K个数据经过嵌入层将转化为一个矩阵EK*d,矩阵E是可以在模型训练过程中训练出来的,矩阵的每一个行向量都对应着一个数据样本的嵌入向量表示。
  • 使用嵌入向量的优点:
    1. 一些非数值(如消息类型)可以很容易地表示为数值进行计算。
    2. 向量表示丰富了一个序列中每个元素保存的信息。嵌入向量的每个维度都是影响流生成的潜在特征。同一元素在不同的序列中可能有不同的含义和方面。
    3. 模型可以学习每个元素的嵌入向量的面向任务的较优秀的向量表示,从而提高分类性能。

3.3 编码层

  • 输入为嵌入向量,输出压缩后的特征
  • 编码采用的是堆叠的Bi-GRU神经网络模型。低层的编码器学习到局部特征,高层的编码器学习到相对全局的特征,最后将所有层的最终前向与后向的隐藏状态串联Ze作为编码器压缩后的特征。此时,Ze就包含了整个编码流程序列的双向上下文信息,将会作为分类器的输入的一部分。(既有局部的,又有全局的)

3.4 解码层

  • 解码器的结构如同编码器一样,为折叠的Bi-GRU网络结构。
  • 输入为Ze,输出由两个部分组成
    1.第一部分类似于编码器的输出,为解码器所有层的前向状态与后向状态的拼接,称之为,Zd这部分输出将会作用与最终的分类器输出的一部分。
    2.第二部分则是最后一层解码器的自身输出,这部分将会送入重构层,进行重构,重构目标是还原起初的模型输入。

3.5 分类器

  • 分类器之前,设置了Dense层对分类器的输入(即Ze与Zd向量的拼接)进行压缩,得到新的特征向量z.
    压缩公式
    然而,z的维度还是太高,使用两层带Selu的激活函数的MLP对z进行降维得到Zc,降维过后能有效避免过拟合问题。
    降维
    公式中的W1,b1,b2都是可以学习的参数。
  • 输入为Zc,经过softmax分类器,得到预测标签A-,与真实标签A之间构造一个交叉熵损失LC
  • 在重构器后面,解码器中的Bi-GRU经过重构,输出的Li^与原始的输入特征Li之间可以构造另外一个交叉熵损失LR
  • 因此,最终的损失函数
    L = L C + α L R L=L_C+αL_R L=LC+αLR
    α是超参数。

4、实验

  • 实验设置:以报文长度序列作为FS-Net的输出,嵌入向量维度d设置为128,GRU的隐藏状态维度也是128,α设置为1,dropout设置为0.3,Adam优化器的lr设置为0.0005

  • 与其他模型结果实验对比的结论:加密流分类任务中,报文长度比消息类型更具有代表性。主要原因可能是[11]发现的不同应用程序的消息类型序列高度重叠。有更多的信息蕴含在包长度集合中而不是消息类型的集合中。

  • 对FS-Net的一些分析

    1. 摒弃解码器层、重构层和重构损失,即只将基于编码器的特征向量Ze传递到密集层进行分类。该变体称为FS-ND.此时FS-Net与其变体FS-ND的默认输入仍旧为包长度序列(The packet length sequence)

    个人感觉这种变体特别像BERT,BERT就是只使用了Transformer的编码器结构,经历预训练后,在诸多下游任务中均获得了不错的效果。当然,BERT是有MLM与NSP的预训练任务的,而此处的FS-ND貌似并没有提及,只是单纯砍掉了解码器与重构器那一部分。

    1. 因为传统的消息类型马尔可夫方法(FoSM、SOCRT、SOB)以**消息类型序列(The message type sequences)**作为输入。为了便于比较,FS-Net和FS-ND也结合消息类型序列进行测试,对应的方法记为FS-Net- s和FS-ND- s。
    2. 采用多属性序列(消息类型序列和报文长度序列)来提高性能。即同时关注包长度序列(The packet length sequence)消息类型序列(The message type sequences),这两种不同的模型被称为FS-Net-SL和FS-ND-SL。
      实验结构
    • 结果分析
      1. 重构机制(即包含解码层、重构层)有用,提高分类性能。与不同序列比较,FS-Net的FTF性能始终优于FS-ND,提高了0.01左右。利用重构机制,引导从编码器学习到的特征存储更丰富的信息。
      2. 重构机制有用,但是对比FS-ND提示不大,并且加了那么多结构,有点不太划算。变体模型FS-ND也优于现有的模型,而且FS-Net和FS-ND之间的性能差距不大。然而,FS-ND模型比FS-Net需要更少的层,可以更快地训练。
      3. 报文长度序列的信息比消息类型序列的信息更丰富。消息类型序列的信息几乎被合并到包长度序列中。从FS-Net到FS-Net- sl的改进不显著(如FTF为0.0005)。FSND和FS-ND-SL之间也存在类似的现象。
  • 调参分析

    1. GRU的隐藏状态维度:太大,模型冗余,过拟合的同时容易从噪声中学习无用信息;太小,不足以提取数据的隐藏特征。研究中设置为128。
    2. 超参数α:建议α值设为[0.125,2]。

5、总结与思考

  • 模型结构,类似与NLP中的Seq2Seq结构,可否在中间的编码器与解码器之间照葫芦画瓢加上Attention机制来进一步优化捏?
  • 去除解码器与重构器,模型复杂度减少,并且实验证明在数据集上的表现FS-ND也跟FS-Net差之无几,能否在FS-ND上做出改进,使之效率与复杂度要比现在的模型好。

这篇关于加密流量分类-论文3:FS-Net: A Flow Sequence Network For Encrypted Traffic Classification的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

基于人工智能的图像分类系统

目录 引言项目背景环境准备 硬件要求软件安装与配置系统设计 系统架构关键技术代码示例 数据预处理模型训练模型预测应用场景结论 1. 引言 图像分类是计算机视觉中的一个重要任务,目标是自动识别图像中的对象类别。通过卷积神经网络(CNN)等深度学习技术,我们可以构建高效的图像分类系统,广泛应用于自动驾驶、医疗影像诊断、监控分析等领域。本文将介绍如何构建一个基于人工智能的图像分类系统,包括环境

认识、理解、分类——acm之搜索

普通搜索方法有两种:1、广度优先搜索;2、深度优先搜索; 更多搜索方法: 3、双向广度优先搜索; 4、启发式搜索(包括A*算法等); 搜索通常会用到的知识点:状态压缩(位压缩,利用hash思想压缩)。

poj 1258 Agri-Net(最小生成树模板代码)

感觉用这题来当模板更适合。 题意就是给你邻接矩阵求最小生成树啦。~ prim代码:效率很高。172k...0ms。 #include<stdio.h>#include<algorithm>using namespace std;const int MaxN = 101;const int INF = 0x3f3f3f3f;int g[MaxN][MaxN];int n

poj 2349 Arctic Network uva 10369(prim or kruscal最小生成树)

题目很麻烦,因为不熟悉最小生成树的算法调试了好久。 感觉网上的题目解释都没说得很清楚,不适合新手。自己写一个。 题意:给你点的坐标,然后两点间可以有两种方式来通信:第一种是卫星通信,第二种是无线电通信。 卫星通信:任何两个有卫星频道的点间都可以直接建立连接,与点间的距离无关; 无线电通信:两个点之间的距离不能超过D,无线电收发器的功率越大,D越大,越昂贵。 计算无线电收发器D

AI hospital 论文Idea

一、Benchmarking Large Language Models on Communicative Medical Coaching: A Dataset and a Novel System论文地址含代码 大多数现有模型和工具主要迎合以患者为中心的服务。这项工作深入探讨了LLMs在提高医疗专业人员的沟通能力。目标是构建一个模拟实践环境,人类医生(即医学学习者)可以在其中与患者代理进行医学

如何在Visual Studio中调试.NET源码

今天偶然在看别人代码时,发现在他的代码里使用了Any判断List<T>是否为空。 我一般的做法是先判断是否为null,再判断Count。 看了一下Count的源码如下: 1 [__DynamicallyInvokable]2 public int Count3 {4 [__DynamicallyInvokable]5 get

2、PF-Net点云补全

2、PF-Net 点云补全 PF-Net论文链接:PF-Net PF-Net (Point Fractal Network for 3D Point Cloud Completion)是一种专门为三维点云补全设计的深度学习模型。点云补全实际上和图片补全是一个逻辑,都是采用GAN模型的思想来进行补全,在图片补全中,将部分像素点删除并且标记,然后卷积特征提取预测、判别器判别,来训练模型,生成的像

poj 2135 有流量限制的最小费用最大流

题意: 农场里有n块地,其中约翰的家在1号地,二n号地有个很大的仓库。 农场有M条道路(双向),道路i连接着ai号地和bi号地,长度为ci。 约翰希望按照从家里出发,经过若干块地后到达仓库,然后再返回家中的顺序带朋友参观。 如果要求往返不能经过同一条路两次,求参观路线总长度的最小值。 解析: 如果只考虑去或者回的情况,问题只不过是无向图中两点之间的最短路问题。 但是现在要去要回

poj 3422 有流量限制的最小费用流 反用求最大 + 拆点

题意: 给一个n*n(50 * 50) 的数字迷宫,从左上点开始走,走到右下点。 每次只能往右移一格,或者往下移一格。 每个格子,第一次到达时可以获得格子对应的数字作为奖励,再次到达则没有奖励。 问走k次这个迷宫,最大能获得多少奖励。 解析: 拆点,拿样例来说明: 3 2 1 2 3 0 2 1 1 4 2 3*3的数字迷宫,走两次最大能获得多少奖励。 将每个点拆成两个

poj 2195 bfs+有流量限制的最小费用流

题意: 给一张n * m(100 * 100)的图,图中” . " 代表空地, “ M ” 代表人, “ H ” 代表家。 现在,要你安排每个人从他所在的地方移动到家里,每移动一格的消耗是1,求最小的消耗。 人可以移动到家的那一格但是不进去。 解析: 先用bfs搞出每个M与每个H的距离。 然后就是网络流的建图过程了,先抽象出源点s和汇点t。 令源点与每个人相连,容量为1,费用为