网络流量分类中的多任务学习

加密流量分类-论文11 FlowPic: A Generic Representation for Encrypted Traffic Classification and Applications 文章利用了流中与时间相关和与大小相关的特性,将基本流量数据转换为直观的图片FlowPic,然后使用已知的图像分类深度学习技术cnn来识别流量类别(浏览、聊天、视频等)和正在使用的应用程序。但是不是使用负载数据形成的特征图。对于每个流,我们的方法根据数据包大小和数据包到达时间创建一个图像,我们称之为FlowPic。不依赖于数据包有效负载内容,因此不会侵犯隐私存储需求非常小,近乎实时的分类可行数据集:ISCX VPN-nonVPN、ISCX Tor-nonTor、作者团队自己捕获的数据集(命名为TAU) 阅读详情

写在前面:
本文翻译供个人研究学习之用,不保证严谨与准确
github链接:https://github.com/WithHades/network_traffic_classification_paper
本文原文:S. Rezaei and X. Liu, “Multitask learning for network traffic classification”, arXiv:1906.05248, 2019

网络流量分类中的多任务学习

摘要
  流量分类在当今互联网上有着各种各样的应用,从ISP中的资源分配、计费和QoS,到客户端中的防火墙和恶意软件检测。经典的机器学习算法和深度学习模型被广泛应用于解决流量分类问题。然而,训练这样的模型需要大量的标记数据。在构建分类器时,标记数据通常是最困难和最耗时的过程。为了解决这一难题,我们将流量分类重新构造为一个多任务学习框架,在该框架中,流量的带宽需求和持续时间将与流量类别一起预测。这种方法的动机有两个:首先,带宽需求和持续时间在许多应用中都很有用,包括路由、资源分配和QoS。其次,这两个值可以很容易地从每个流中获得,而无需在受控和隔离的环境中对流进行人工标记或捕获。结果表明,在带宽和持续时间预测任务中,使用大量容易获得的数据样本,而在流量分类任务中只使用少量的数据样本,可以获得较高的精度。因此,我们提出的多任务学习框架避免了对大标记流量数据集的需求。我们使用ISCX和QUIC公共数据集进行了两个实验,并展示了我们的方法的有效性。

  关键词: 多任务学习,监督学习,网络流量分类,QUIC协议分类

I. 介绍

  网络流量分类在当今Internet上有着广泛的应用,如资源分配、QoS、isp计费、异常检测等。最早的解决网络流量分类的方法是使用端口号或未加密的包有效负载。这些方法依靠人工不断地在未加密的有效载荷或匹配的端口号中寻找模式。由于效率低、精度低,出现了基于经典机器学习算法的新方法,如随机森林(RF)和k近邻(KNN)。
  多年来,经典的机器学习算法在流量分类任务中取得了最先进的精度。然而,这些相对简单的方法无法捕获当今互联网流量中存在的更复杂的模式,因此,它们的准确性已经下降。近年来,深度学习模型在流量分类方面取得了最新的成果。它们学习复杂模式和执行自动特征提取的能力使它们成为流量分类的理想选择。
  虽然深度学习方法可以达到很高的精度,但它们需要大量的标记训练数据。在网络流量分类任务中,标记是一项耗时且繁琐的任务。为了正确地标记每个流,研究人员通常在一个背景流量很小的受控环境中单独捕获每个类的流。这一过程费时费力。此外,在受控环境中观察到的流量模式可能与实际流量存在显著差异,这使得推断不准确。
  为了减少对大量标记训练样本的需求,我们提出了一种多任务学习方法,它可以执行三个预测(任务),其中只有一个预测需要人工努力,标记的环境是受控的。分别是带宽、持续时间和流量类预测任务。对于任何捕获的数据,无论它是否在隔离的受控环境中捕获,都可以轻松地计算每个流的总带宽和持续时间,而无需人为标记。因此,在一个多任务学习框架中,通过将大量模型参数共享到所有任务中,可以训练出带宽和持续时间任务数据量大,而流量等级预测任务只有少量标记样本的模型。此外,对于各种应用,例如资源分配或QoS,带宽和持续时间预测是非常有用的。

II. 相关工作

  在深度学习模型广泛出现之前,经典的机器学习方法已经被广泛应用于网络流量分类[1]。这些方法通常依赖于有监督的学习方法,如支持向量机(SVM)[2]、[3]、C4.5[4]、[5]、朴素贝叶斯[6]、[7]、k近邻[8]、[9]等,或无监督的聚类方法,如k均值[10]、[11]或高斯混合模型[12]。然而,由于简单、手动特征提取(在当今高度加密的流量下变得更加困难)以及缺乏捕获更复杂模式的高学习能力,它们的准确性最近有所下降。
  近年来,随着图像分类、语音识别、翻译等多种问题的深入学习方法取得了可喜的成功,网络研究人员最近将这些方法应用于流量分类中[13]。在文献[14]中,1998年设计的用于手写体数字识别的LeNet-5卷积神经网络(CNN)模型被用于流量类型分类。许多统计特征被重新排列成二维图像作为模型的输入。他们报告的准确性很高,但该模型不能用于在线应用程序[15],因为它需要观察整个流才能获得统计特征。在文献[16]中,作者使用统计特征和有效载荷数据对QUIC协议进行流量分类。他们首先使用统计特征和随机森林算法来区分聊天和语音呼叫与其他类。如果检测到其他类,它们将有效负载数据与CNN模型一起用于对视频流、文件传输和Google音乐进行分类。它们的第一个阶段需要观察整个流程,因此,它只适用于离线应用程序。有效载荷信息虽然是加密的,但也被用于其他论文中。在[17]中,CNN和堆叠自动编码器(SAE)一起用于ISCX数据集,以分类流量类型和应用。这些方法使用深层神经网络作为黑盒,而不需要识别人类可理解的特征。
  在文献[18]中,利用Reproducing Kernel Hilbert
Space(RKHS)将每个流的时间序列特征转化为二维图像。生成的图像用作CNN模型的输入。他们比较了CNN模型和经典的机器学习方法,包括支持向量机、决策树和朴素贝叶斯。CNN模型的精度达到99%以上,优于经典的机器学习方法。在[19]中,卷积神经网络、长短期记忆(LSTM)模型和各种组合被用于对多种服务(如YouTube和Office365)进行分类。当时间序列特征和标题特征与CNN/LSTM体系结构一起使用时,它们的准确率达到96%左右。在[20]中,CNN和CNN+LSTM模型用于识别80个移动应用程序。它们使用原始数据包头和有效负载,并对大量类实现高精度。他们首次使用阻塞分析来阐明深度学习模型如何对加密流量进行分类。研究表明,SSL/TLS协议中的未加密握手字段可以有效地用于应用程序的识别。然而,他们使用在运营ISP捕获的大型数据集来训练这样的大型模型。
  在[15]中,提出了一个通用框架,为任何流量分类任务提供了直接的指导和方向。以前的大多数工作都是在一般框架下进行的。然而,这些方法都依赖于监督学习,需要大量的标记数据进行训练。对于深度模型来说,这变得更加困难,因为它们需要比经典机器学习方法多得多的训练数据。
  唯一一项研究解决了对大型标记数据集的需求是[21]。该方法由一种半监督学习方法组成,其中CNN模型是从采样数据包中预测多个统计特征的预先训练方法。它们使用采样包的时间序列特征。然后,它们用新的层替换最后几层,然后用一个标记的小数据集重新训练。这种方法的优点是不需要人为地标记预先训练的数据集,因为当整个流可用时,统计特征可以很容易地计算出来。然而,他们的方法采用采样数据包,这意味着在执行不适合在线应用的分类之前,它需要观察流的很大一部分。在本文中,我们提出了一个多任务学习的方法,它优于单一任务学习和迁移学习。

III. 深度学习背景

A. 卷积神经网络(CNNs)

  卷积神经网络(CNNs)是一类由若干层卷积运算构成的深度学习模型。CNN模型的结构灵感来自于动物视觉皮层的组织。CNNs由几个卷积层、池化层和全连接(FC)层组成,如图1所示。在卷积层中,使用一组具有少量可学习参数的小内核来从前一层的输出捕获模式。为了生成输出,卷积层在整个输入上使用相同的内核集。通过在一个层中使用相同的内核集,可学习参数的数量大大减少。此外,在整个输入上使用这些内核有助于模型更容易地捕获移位不变的特征。例如,在图像分类任务中,无论老虎在图像中的位置如何,捕获虎皮图案的内核都可以检测到该图案。这对于具有固有的移位不变性的任务尤其有用,包括网络流量分类,其中一些模式可能出现在流的前几个包、流的末尾或可能出现在流的任何部分。CNN模型中通常使用的另一层是池化层,它主要负责子采样。在卷积和池化层集合的末尾,通常使用一组全连接层来捕获输入的高级特征。

B. 多任务学习(MTL)

  多任务学习(Multi-task learning,MTL)的目标是在任务不完全独立、可以提高学习效率的前提下,同时完成多个学习任务。例如,检测危险目标和基于距离的危险评估是自动驾驶的两项重要任务。由于这两个任务是相关的,并且可以从共享表示中受益,因此可以定义多任务学习方法来共同学习这些任务[22]。
  最常见的多任务学习方法是硬参数共享,其中一些深度学习模型的参数在任务之间共享,一些参数保持任务特定[23]。我们的硬参数共享模型在第4-D节中进行了说明。多任务学习模型比多个单任务学习模型更有效,因为在MTL数据集中,所有任务都可以帮助更好地学习所有其他任务。在本文中,我们将证明,使用多任务学习方法可以提高流量分类任务的准确性,在这种方法中,其他任务的数据很容易获得,即预测流量的带宽和持续时间。因此,在训练MTL框架时,当使用大量其他任务的数据时,流量分类任务的准确性显著提高。

IV. 方法

A. 动机

  本文的研究动机是:首先,流量分类任务很难获得足够的标记训练数据。同时,还有其他的预测任务需要进行资源分配,具有易于获取的标签,可以用来提高流量分类任务的准确性。因此,我们有动机通过多任务学习来共同解决这两个问题。
  首先,捕获一个足够大的标记数据集用于流量分类以训练深层模型是一项耗时且繁琐的任务[15]。此外,正确标记捕获的数据也是一项挑战,特别是在捕获期间存在背景流量或多个流量类时。另一方面,未标记的数据通常非常丰富,而且容易捕获。因此,希望能够使用大量未标记的数据来显著减少训练所需的标记数据的数量。本文在一个多任务学习框架中,使用一个大的未标记数据集和一个小的标记数据集来解决这个问题。
  我们方法的第二个动机是,ISP或数据中心经常执行流量分类,以进行计费、资源分配或QoS目的。因此,流量类别和其他流量特征,如带宽需求和持续时间,可以显著改善ISPs的资源分配、QoS等决策。本文提出了一种多任务学习方法,该方法利用流的前几个时间序列特征,执行三个预测任务:带宽、服务质量和服务质量,持续时间和流量等级。不仅带宽和持续时间预测是有用的,它们不需要人工标注,而且可以捕获大量流,然后轻松计算它们的带宽和持续时间。

B. 数据集

1. QUIC数据集

  QUIC数据集[21]是在加州大学戴维斯分校捕获的。它包含5个Google服务的QUIC流量:Google Doc(1251个流量)、Google Drive(1664个流量)、Google Music(622个流量)、Youtube(1107个流量)、Google Search(1945个流量)。数据集包含时间序列特性:数据包长度、相对时间和方向。数据集已预处理。根据[21],所有少于100个包的短流都被删除。注意,数据集中的所有流都被标记。然而,为了评估我们的多任务学习方法,我们只在训练期间使用一小部分的类标签。

2. ISCX VPN-nonVPN 数据集

  ISCX数据集[24]在新不伦瑞克大学捕获,它包含几个流量类型的原始pcap文件。数据集提供细粒度的标签,允许不同的分类:基于应用程序(如AIM chat、Gmail、Facebook等)、基于流量类型(如聊天、流媒体、VoIP等)和VPN/非VPN。在本文中,我们将数据集分为5类,它们具有不同的QoS要求和带宽/持续时间特性:聊天、电子邮件、文件传输、流和VoIP。数据集中同时存在UDP和TCP通信。对于TCP流,我们寻找FIN包来标识TCP流的结束。对于UDP流,我们使用15秒的流超时来标记UDP流的结束。与QUIC数据集类似,所有流都与一个流量类型标签相关联,但我们只使用一小部分标签来预测多任务学习的流量类。

C. 输入特征和预测输出

  一般来说,现代网络流量分类器使用一种或四种输入特征的组合:时间序列、报头、有效载荷和统计特征[15]。由于报头信息的准确性不高,目前很少使用。统计特征是从整个流中获得的,因此,不适合于当流量出现时需要预测的在线分类。当资源分配、QoS或路由决策依赖于预测输出时,在线分类是必要的。有效载荷数据已被证明对一些数据集、特殊业务类型和加密方法有用[17]、[26]。这些方法的成功源于TLS 1.2握手阶段的未加密字段[21]。然而,现代加密方法,如QUIC和TLS 1.3,尽可能减少未加密字段的数量。因此,对于新的和更强大的加密协议,有效载荷信息本身可能没有那么有用。注意,许多接近的流量分类使用了整个流量流的统计特征。流的带宽需求和持续时间也可以看作是通过观察整个流而获得的统计特征。然而,在我们提出的方法中,我们预测带宽和持续时间,因为我们只能观察前几个包,而不能观察整个流。因此,我们将带宽和持续时间作为单独的任务作为输出,而不是使用这些值作为输入的常见流量分类方法。
  在本文中,我们使用了前k个包的三个时间序列特征,即包长度、到达间隔时间和方向。我们的模型的输入是一个长度为k的向量,有两个通道。第一信道包含第一k个分组的到达时间,第二信道包含长度和方向的组合。如[21]所示,对于第二信道,正值表示正向(从客户端到服务器)的分组长度,负值表示反向的分组长度。此外,我们通过假设长度的最大值为1434字节来规范化数据。
  流量分类的常用方法通常侧重于预测流量类型、应用程序、操作系统、用户操作等。除了此类类标签之外,我们还旨在预测可用于资源分配、路由或QoS目的的流量的持续时间和带宽需求。本文将带宽和持续时间预测问题描述为分类问题,而不是回归问题。在我们的实验中,当带宽和持续时间任务被定义为回归问题时,该模型需要很长时间才能收敛,并且表现不好。此外,粗粒度预测通常足以用于路由或QoS目的。因此,我们将这些任务重新定义为分类任务。
  带宽和持续时间类定义的标签如表1所示。我们将带宽和持续时间值分为五个类。我们称之为 [ b w 1 , . . . , b w 4 ] [b_{w1}, ..., b_{w4}] [bw1​,...,bw4​]和 [ d 1 , . . . , d 4 ] [d_1, ..., d_4] [d1​,...,d4​]带宽和持续时间分配器。例如,如果流的带宽介于 b w 1 b_{w1} bw1​和 b w 2 b_{w2} bw2​之间,则将类编号2指定为该流的标签。带宽和持续时间预测任务的类数可以不同于流量类数。它们可能取决于应用程序、场景和ISP的需求。例如,仅考虑短期流和长期流之间差异的ISP只能定义两个持续时间类。我们在评估部分的实验表明,如果定义的类使得带宽和持续时间类与每个业务类的平均值相对应,则所有任务的准确性都会提高。然而,我们发现在所提出的多任务框架中,即使选择一个任意的值来分类带宽和持续时间,也比单一的任务分类器要好。

表1 带宽和持续时间类定义

  为了更好地了解带宽和持续时间的分布,我们分别在图2和图3中说明QUIC数据集类的带宽和持续时间直方图。对于带宽,一个类(G音乐)相当消耗更多的带宽,并且大多大于1mbps,而其他类在1kbps到1mbps之间变化。G音乐带宽之所以大得多,是因为它在播放时试图下载整个曲目。通过观察图3中G音乐流的持续时间,这一点更加明显,图3显示了G音乐流的非常短暂的性质。尽管在某些地区存在重叠,但不同类的持续时间是相对不同的。请注意,根据数据集、应用程序和ISP的需要,带宽和持续时间分类可能会从一种方案更改为另一种方案。

图2 带宽直方图
图3 持续时间直方图

  为了找到 [ d 1 , . . . , d 4 ] [d_1, ..., d_4] [d1​,...,d4​]的最优值,我们首先找到每个类的平均持续时间。然后,我们对平均值进行排序,然后找到两个连续平均值之间的中间点 [ d 1 , . . . , d 4 ] [d_1, ..., d_4] [d1​,...,d4​]。例如,在QUIC数据集中,G Music、G Search、G Drive、Y ouTube和G Doc的平均持续时间为[2.77、9.83、32.08、56.44、114.10]秒。因此,持续时间分割器是[6.30、20.96、44.26、85.27]。类似的方法也被用来获得带宽分配器阵列。请注意,这些值是从整个数据集获得的最佳值。然而,我们的假设是只有少量的标记数据可用。因此,在我们的评估中,我们得到了基于少量标记样本的分割器。因此,分隔值与最佳值略有不同。但是,我们在评估部分显示,使用这些分隔值仍然可以显著提高性能。
  在本文中,我们使用带宽和持续时间作为任务,这些任务不需要人工标注,并且可以很容易地大量获得。对于这样的任务,还可以使用其他统计特征,例如平均分组长度、到达间隔时间的标准差等,这些特征也在[21]中的迁移学习方法中使用。这样的任务也可以改进模型训练。然而,这些预测任务并没有直接的用途,因此应该被视为辅助任务。

D. 多任务模型构架

  本文将一维卷积神经网络(CNN)应用于多任务学习模型体系结构中。CNN体系结构首先被引入并用于视觉识别任务。然而,在过去的几年中,它被广泛地用于其他领域的各种任务。CNN模型最重要的特征之一是其平移不变性,这一特性适用于具有时间序列特征的流量分类任务,因为每个类别的流量模式不一定出现在流的同一位置。
  我们的方法的总体架构如图4所示。模型参数详见表2。我们使用最大池化,因为它通常比其他池方法更受欢迎。修正线性单元(ReLU)激活在整个模型中用作激活函数,除了包含Softmax的最后一层。

图4 多任务学习模型构架
表2 CNN模型构架

  假设带宽、持续时间和流量类别预测任务分别用B、D和T表示。另外,我们有N个训练数据, x i x_i xi​表示第i个数据样本的输入, y i B y_i^B yiB​、 y i D y_i^D yiD​和 y i T y_i^T yiT​表示带宽、持续时间和流量类别预测任务的相应输出。多任务学习法的目标可以表述为
a r g m i n W B , W D , W T ∑ i = 1 N [ L ( y i B , f ( x i ; W B ) ) + L ( y i D , f ( x i ; W D ) ) + λ L ( y i T , f ( x i ; W T ) ) ] arg min_{W^B, W^D, W^T} \sum_{i=1}^N[L(y_i^B, f(x_i;W^B)) + L(y_i^D, f(x_i;W^D)) + \lambda L(y_i^T, f(x_i;W^T))] argminWB,WD,WT​i=1∑N​[L(yiB​,f(xi​;WB))+L(yiD​,f(xi​;WD))+λL(yiT​,f(xi​;WT))]

  其中L是交叉熵损失函数。 λ \lambda λ是表示流量类别预测任务重要性的权重。由于此任务的训练数据样本比其他两个任务少得多,我们可以增加 λ \lambda λ来稍微补偿标记数据的不足。请注意,对于所有训练数据,都可以使用带宽和持续时间标签。但是,只有一小部分数据样本具有流量类标签。在训练过程中,我们将流量类softmax层的输入乘以掩码向量,以防止没有流量类标签的数据样本从该任务中反向传播。

V. 评估

A. 实现细节

  我们使用python和Keras包来实现我们的多任务学习方法。我们使用的服务器有Nvidia Titan Xp GPU和Intel Xeon W-2155和Ubuntu 16.04。我们对ISCX和QUIC数据集进行了实验。在我们所有的实验中,训练阶段只用了不到几分钟。我们使用批处理优化和Adam优化器进行训练。损失函数和模型结构在第4节D中进行了说明。

B. QUIC数据集

  在这一部分中,我们比较了我们的多任务学习方法与迁移学习和单任务学习方法的准确性。表3显示了QUIC数据集所有方法的准确性。对于单任务学习方法,我们使用了两个成功的模型,即具有统计特征的随机森林(RF)[26]和在[19]中提出的CNN+RNN模型。我们从零开始为每项任务训练模型三次。对于带宽和持续时间预测,我们使用整个数据集进行训练,因为它不需要人工标注。这就是为什么当表3中的标记样本增加时,准确度保持不变。注意[26]中的RF方法以整个流的统计特征作为输入。由于带宽和持续时间是统计特征,因此如果整个流是可访问的,则可以获得它们。因此,如果分类器能够观察整个流,就不需要预测带宽和持续时间。这就是我们不在这两个任务上训练射频模型的原因。对于迁移学习,我们采用了类似于[21]的方法,其源任务略有不同。我们首先用整个数据集训练模型以预测带宽/持续时间元组。注意,对于这个任务,我们使用整个训练集的两个标签。在对模型进行训练之后,我们移除最后一层并用一个新层替换它并初始化权重,类似于[21]。然后,对模型进行重新训练,完成流量流类别预测任务。最后一个模型只预测流量类别。这就是为什么表3没有包含迁移学习方法的带宽和持续时间精度的原因。注意,我们使用的迁移学习方法和[21]中提出的方法之间还有另一个区别。在[21]中,该模型以采样的时间序列特征作为输入,不适合用于资源分配、路由或QoS所需的在线分类。因此,我们将前k个包作为模型的输入,而不进行采样。对于多任务学习方法,我们使用所有的训练数据训练整个模型。我们使用整个训练数据样本的带宽和持续时间标签,而我们只为流量类任务提供有限数量的标签(在第一列中指定)。在这个实验中,我们将 λ \lambda λ设为1,以同样地强调所有三个任务。此外,我们使用前60个包作为输入(k=60)。

表3 QUIC数据集上的准确率

  如表3所示,我们使用的多任务学习方法比迁移学习和单任务学习的准确率要高很多,因为我们只有有限的标记样本。事实上,可用于带宽和持续时间任务的大量数据来训练模型参数,显著改善了训练过程。尽管迁移学习方法也能在训练前获得大数据集的好处,但它更容易发生灾难性遗忘[27],失去执行先前任务的能力,或过度拟合,失去通过与训练数据集紧密拟合来概括的能力,特别是当目标任务具有少量训练样本。
  在我们的实验中,我们发现当使用所有类标签的整个数据集时,单任务学习的准确率为97.67%。对于流量类预测任务,仅使用100个标记样本的多任务学习方法与使用整个标记数据集的单任务学习方法达到了几乎相同的精度。因此,多任务学习方法可以大大减少标记数据的数量。对于带宽和持续时间预测任务,单任务学习和多任务学习没有显著的性能差异,因为这些任务有大量的数据样本。
  图5示出了当使用不同数量的包作为输入时,所有三个任务的多任务学习方法的准确性。有趣的是,带宽和持续时间可以用30个包来预测,而增加包的数量并不能显著提高准确性。对于流量分类任务,从30个数据包到60个数据包有显著的性能改进。然而,通过观察更多的数据包,流量分类预测并不能得到更准确的结果。

图5 QUIC数据集的输入数据包数与精度

  图6示出了具有不同 λ \lambda λ的三个任务的预测精度。直观地说,在多任务学习中,当一个任务的训练样本数明显小于其他任务时,在训练过程中,数据丰富的任务对deep模型的共享参数影响较大。因此,用较少的数据增加任务损失函数的权重,如第4节-D所述,可以补偿训练过程中的数据不足,并增加此任务对训练过程的影响。如图6所示,增加 λ \lambda λ有助于模型适应流量类预测任务,直到达到最大精度。然而,进一步增加 λ \lambda λ将降低所有任务的准确性。这是因为当 λ \lambda λ很大时,该模型对流量分类训练数据的拟合度很高,因而对所有任务的测试数据的拟合度较差。此外,当 λ \lambda λ很大时,与其他任务相比,梯度更新对于流量流类别预测的作用变得很大,这使得训练过程在没有微调学习率的情况下很难收敛到局部最小值。

图6 QUIC数据集的$\lambda$与精度

  这种现象会影响所有任务的执行。因此,对于多任务学习方法,应该找到合适的 λ \lambda λ值作为超参数。一个好的起点是将带宽和持续时间任务的样本数与流量分类任务的样本数之比设置为 λ \lambda λ。
  表4显示了带宽和持续时间划分器对带宽、持续时间和流量类任务性能的影响。第一行显示了从第IV-C节所述的训练集获得的最优分割器。在本实验中,我们仅使用每个类的20个标记样本来训练流量类任务。如图所示,最优分割器在流量类任务中达到了最高的精度。通过改变划分器的值,流量类任务的精度略有下降。然而,流量类任务的准确率仍然远远高于表三所示的单任务学习(66.67%)和迁移学习(87.33%)。换句话说,即使使用非最优分割,使用多任务学习仍然是有益的,并且优于其他方法。

表4 不同带宽和分时器的QUIC数据集精度

  因为对于某些应用和场景,例如在ISP和资源分配中,ISP可能需要定义一个自定义带宽类来满足其需求,这可能不同于基于训练数据获得的最佳分割。因此,不仅可以使用多任务学习方法来预测带宽和持续时间,这对于资源分配或QoS提供都是有用的,而且还可以提高流量类预测的准确性,而不必考虑分割器的选择。换句话说,多任务学习方法可以一石二鸟。请注意,如表4的最后一行所示,分区器的任意错误选择可能导致带宽和持续时间任务的精度较低。但是,它仍然可以提高流量类的精度,因为它有助于模型在数据丰富的情况下学习模型的共享参数。因此,如果计划将带宽和持续时间任务用作辅助任务以提高流量类任务的准确性,则最好选择最优的分割器,如第IV-C节所述。如果带宽和持续时间预测计划用于资源分配或QoS,则在多任务框架中定义问题还提高了流量分类任务的准确性。

C. ISCX数据集

  在本节中,我们使用ISCX数据集,并将所有类组合成5种不同的流量类型,如第IV-B节所述。尽管已经表明,以有效载荷信息为输入的CNN模型对此数据集实现了更高的精度[17],我们使用ISCX数据集进行了实验,结果表明我们的多任务学习方法比一般的单任务学习和迁移学习方法的性能有所提高。
  表5显示了ISCX数据集的带宽、持续时间和流量类任务的准确性。无论采用何种学习方法,ISCX数据集(表5)中的流量类任务的准确性都低于QUIC数据集(表3)。类似于V-B部分,我们将 λ \lambda λ设置为1,将k设置为60个包。如表5所示,对于多任务学习和单任务学习方法,带宽和持续时间任务的准确性是相似的。这表明适合带宽预测的模式和卷积滤波器也适用于持续时间预测,因为在多任务学习方法中,它们共享相同的模型参数,并且获得相同的精度。流量类任务的准确性不如其他任务,但与其他方法相比,多任务学习方法的准确性有了显著的提高。

表5 ISCX数据集的准确性

  图7说明了这三个任务相对于数据包数量k的准确性。与QUIC数据集不同,持续任务需要观察更多的数据包才能进行准确的预测。在QUIC数据集中,对于不同数量的数据包,任务的持续时间精度几乎相同。然而,对于ISCX数据集,k=30导致比k>=40低得多的精度。带宽和流量类别预测任务显示出与QUIC数据集相同的趋势。有趣的是,ISCX和QUIC数据集几乎都能在大约60个输入包的情况下实现其所有任务的最大精度。

图7 ISCX数据集的输入数据包数与准确性

  图8显示了使用不同 λ \lambda λ时所有任务的准确性。在这个实验中,我们使用每个类20个标记数据样本(用于流量类预测)和整个数据集进行带宽和持续时间任务。与QUIC数据集(图6)类似,流量类别预测的最大精度达到了 λ = 10 \lambda = 10 λ=10左右。类似地,在V-B部分,通过进一步增加 λ \lambda λ,该模型更适合于降低所有任务性能的流量分类任务。

图8 ISCX数据集的$\lambda$与精度

VI. 讨论

  在本文中,我们使用带宽和持续时间预测作为具有多训练数据的任务。如前所述,这两个任务具有潜在的用途。然而,对于这些预测不重要且仅用于提高流量分类精度的场景,也可以使用其他预测任务(例如平均到达间隔时间或突发次数)作为辅助任务。辅助任务应具有两个特点:一是与流量分类任务高度相关。第二,标签应该容易获得。在这种情况下,寻找一组最佳的辅助任务来提高流量类别预测应该像超参数调整一样处理。对各种辅助任务的研究和分析不在本文的讨论范围之内,将作为今后的工作。
  在我们的实验中,我们的多任务学习方法比迁移学习方法有更好的表现,或者表现得和迁移学习方法一样精确。然而,在许多情况下,迁移学习是唯一的选择。例如,如果预先训练的模型没有训练数据,我们只能使用迁移学习。此外,如果训练过程的时间或计算复杂度很重要,则可能需要避免多任务学习,因为它需要使用未标记数据和标记数据来训练整个模型。如果有一个预先训练的模型可用,迁移学习可以非常快地训练一个模型,尽管使用公共预先训练的模型会暴露安全威胁[28]。另外,多任务学习框架比迁移学习方法更有效。

VII. 总结

  本文提出了一种多任务学习方法,该方法可以预测网络流量的类别、带宽和持续时间。由于带宽和持续时间任务不需要人工操作,也不需要控制和隔离的环境进行标记,因此可以很容易地捕获大量数据并用于这两个任务的训练。研究表明,通过为带宽和持续时间任务提供足够大的数据集,只需少量的样本就可以训练出流量类别预测任务。因此,它避免了对大量标记数据样本进行流量分类的需要。此外,带宽和持续时间预测可用于ISP中的资源分配、路由和QoS目的。我们对两个公共数据集进行了实验:QUIC和ISCX VPN-nonVPN。我们证明我们的多任务学习方法明显优于单任务和迁移学习方法。

ISCXTor2016数据集(Tor-nonTor dataset)介绍 ISCXTor2016数据集是UNB(University of New Brunswick) 阅读详情

相关推荐

关于深度学习的网络流量分类论文整理(二)

Paper:End-to-end Encrypted Traffic Classification with One-dimensional Convolution Neural Networks 论文:基于一维CNN的端到端的加密流置分类方法 论文下载:https://ieeexplore.ieee.org/document/8004872 代码下载:https://github.com/echowei/DeepTraffic 数据处理工具包使用方法:https://github.com/yungshen

caiguanhong的博客 8454

数据集ISCX(12年到17年)已经打包,可下载

感兴趣的可私聊下载。

qq_66549140的博客 8017

网络流量分类与异常检测算法

期末机器学习

weixin_74043558的博客 3385

QUIC-CNN: Website Fingerprinting for QUICTraffic in Tor Network

2022作为一种新如何在QUIC协议的Tor网络中有效传递WF攻击。

October1025的博客 362

加密流量分类-论文1:Deep Learning for Encrypted Traffic Classification: An Overview

这是篇关于加密流量分类的综述,加密流量分类的入门之作,流量分类应用范围广泛,从isp的QoS提供和计费,到防火墙和入侵检测系统的安全应用。从最简单基于端口的、数据包检测到经典的机器学习方法,到由于深度学习的兴起,神经网络成为加密流量分类的主流。本文介绍了常用的深度学习方法及其在流量分类任务中的应用。然后讨论了开放的问题和它们的挑战。关键词:流量分类、深度学习、机器学习1.1 基于端口(port)的流量分类优点:简单。...

qq_45125356的博客 8311

论文阅读——NetMamba:通过预训练单向 Mamba 进行高效网络流量分类

广泛使用的Transformer架构存在一个二次复杂度问题,对资源要求较高。Transformer丢弃了重要的字节信息而保留了不必要的偏置为了解决这些问题,文章提出了NetMamba,一个高效的线性时间状态空间模型(an efficient linear-time state space model),并且还设计了一个配套的流量表示方案,用于从数据中提取有效信息并去除有偏差的信息。最后文章在6个数据集进行了评估,将推理速度提高了60倍。

sca1p31的博客 4859

机器学习在网络流量分类中的应用

I. 介绍 A. 相关工作 B. 本文贡献 C. 本文结构 II. 背景 A. 机器学习介绍 1. 数据收集 2. 特征提取FE 3.特征降维FR和特征选择FS 4. 算法选择和模型结构 5. 分类模型验证 B. 流量分类 1. IP流定义 2. 有效载荷检测 3. 基于统计的技术 4. 行为技术 5. 机器学习技术 III. 方法 IV.数据收集 A. 网络环境 B. 数据测量 C. 标注任务 D. 讨论 V. 特征提取 A. 基于统计的特征 B. 基于图形的特征 C...

dieTicket的博客 1万+

基于深度学习的网络流量分类技术研究

目的:网络流量分类一直是学术界、产业界和网络监管部门共同关注的热点之一,是指将混合流量分成不同的流量类别,依据是不同的网络应用或协议的特征或参数。一方面,网络安全领域需要识别入侵流量;另一方面,进行网络管理时需要对不同应用的流量分类分析,从而合理控制和分配资源,保证网络QoS。随着网络流量的数据量和种类的大量增加,传统分类方法难以满足要求,基于机器学习的算法成为网络流量分类的研宄热点。针对机器学习...

小小程序员 4543

基于KMeans聚类算法的网络流量分类预测

网络流量分类或网络流量异常检测,采用基于聚类的机器学习算法,实现异常检测与分类,即划分为正常流量和异常流量。 本项目利用 pandas + Matplotlib + seaborn + sklearn 对网络流量数据进行统计分析,并构建聚类算法实现对流量的分类建模。......

Python极客之家 6654

流量分析方面的公开数据集

流量分析方面的公开数据集(部分) 1. ISCXVPN2016 我们捕获了一个常规会话和一个通过 VPN 的会话,因此我们总共有 14 个流量类别:VOIP、VPN-VOIP、P2P、VPN-P2P 等。流量是使用 Wireshark 和 tcpdump 捕获的,生成的数据总量为 28GB。对于 VPN,我们使用了外部 VPN 服务提供商并使用 OpenVPN(UDP 模式)连接到它。为了生成 SFTP 和 FTPS 流量,我们还使用了外部服务提供商和 Filezilla 作为客户端。 下载链接: http

weixin_44275663的博客 6911

Unity新手必看:5分钟搞定TextMeshPro中文乱码,告别小方块(附7000+常用字库)

本文详细介绍了Unity中TextMeshPro中文乱码问题的解决方案,包括快速生成中文字体的步骤和优化技巧。通过使用支持中文的.ttf字体文件和自定义字符集,开发者可以在5分钟内解决TMP显示小方块的问题,提升游戏或应用的文本显示效果。

weixin_33095355的博客 362

《网络流量分类》部分插图

网络流量研究

云上笛暮 3096

UE5新手必看:Gameplay框架中的GameInstance与子系统实战指南(含蓝图配置)

本文为UE5新手提供了Gameplay框架中GameInstance与子系统的实战指南。文章深入解析了GameInstance作为全局数据中枢的核心作用与生命周期,并手把手演示了如何创建自定义GameInstance、构建模块化的子系统(如存档管理),以实现跨关卡的持久数据管理。指南旨在帮助开发者构建清晰、可维护的项目架构,解决数据管理混乱的常见痛点。

weixin_29015801的博客 574

BP 神经网络在网络流量分类中的应用

随着网络技术的飞速发展,网络流量呈现爆炸式增长,对网络流量进行准确分类对于网络管理、安全监测、服务质量保障等方面具有至关重要的意义。本文深入探讨了 BP 神经网络在网络流量分类领域的应用,详细阐述了其原理和实现过程,并通过实际代码展示了如何利用 BP 神经网络进行有效的网络流量分类。同时,分析了该方法的优势与局限性,以及未来的发展前景,旨在为网络流量分类提供一种高效、智能的解决方案,提升网络运营的效率和安全性。

梵心白莲的博客 1111

ArcGIS实战:用栅格数据为偏远山区规划一条最省钱的公路(附完整数据与操作步骤)

本文详细介绍了如何利用ArcGIS进行栅格数据分析,为偏远山区规划一条最省钱的公路。通过DEM高程数据处理、成本权重设定和最佳路径计算,结合真实案例展示了从数据准备到工程方案转化的完整流程,帮助工程师在复杂地形中做出经济高效的路线决策。

weixin_32136203的博客 356

ANSYS Maxwell:创建即用型 3D 轴向磁通电机模型

Magnet Length” 是磁体的径向长度。“Magnet Thickness” 是磁体的轴向长度。为了对 AFM 进行更详细的分析,用户需要在 ANSYS Maxwell 中运行 3D FEA 分析。对于 2D 模型,它们类似于 MotorCAD 中的模型,后者对等效的直线电机进行建模。单击“确定”后,将创建一个 3D Maxwell 模型。“长度”是转子铁的轴向长度。然后需要定义定子的“磁芯”尺寸和材料。“长度”是定子铁芯的轴向长度。“转子”# 的极数必须与“定子”中定义的磁极相同。

jkh920184196的博客 1152

基于迁移学习的网络流量分类

文章目录基于迁移学习的网络流量分类1. 介绍2. 相关工作3. 问题表述4. 方法5. 实验和分析5.1 数据集5.2 实验设置5.3 实验结果6. 结论和未来工作 基于迁移学习的网络流量分类 摘要   用于流量分类的机器学习模型假设训练数据和测试数据具有独立的相同分布。然而,在实际的流量分类中,由于流量特征的变化,这一假设可能并不成立。由现有数据训练的模型在对新的网络流进行分类时将是无效的。本文提出了一个不作上述假设的迁移学习模型。在迁移学习模型中,采用最大熵模型作为基本分类器。为了检验该方法的有效性,

dieTicket的博客 2477

从零构建:用Arduino和MCP2515模块搭建你的第一个CAN Bus网络

本文详细介绍了如何使用Arduino和MCP2515模块从零搭建CAN Bus网络,实现温湿度数据的传输与显示。涵盖硬件连接、软件配置、发送端与接收端代码实现,以及系统调试和进阶应用,帮助初学者快速掌握CAN总线通信技术。

d6e7f8的博客 831

网络流量分类概述

深度学习的另一个重要特点是,与传统的 ML 方法相比,它具有相当大的学习能力,因此可以学习高度复杂的模式。结合这两个特征,作为一种端到端方法,深度学习能够学习原始输入和相应的输出之间的非线性关系,而不需要将流量分类问题分解为特征选择和分类两个子问题。第一代常用的方法是使用端口号,但是随着P2P的普及,逐渐失效(因为P2P使用伪装端口的手法)。网络流量分类是指,构造一个分类模型,对收集到的各种网络流量进行分类识别,分类识别的结果是某种应用程序或者应用层协议。流量分类技术随着时间的推移已经发生了显着的发展。

xianqiuyigedao的博客 2587

STM32的bootloader程序(通过串口更新STM32应用程序)

STM32的bootloader程序(通过串口更新STM32应用程序),对bootloader进行浅浅的学习

星羽空间 1万+

如何使用 Python 爬取 58 同城招聘信息

职位名称:招聘的岗位名称,如“前端开发”、“数据分析师”等。公司名称:招聘公司的名称。薪资待遇:职位的薪资范围,通常以“面议”、“10k-20k”这样的形式表示。工作地点:公司所在的城市及具体地址。公司福利:例如五险一金、带薪年假、绩效奖金等。发布时间:职位信息的发布时间。一个典型的招聘页面 URL 格式通常如下:在这个页面上,职位信息会分页展示,爬虫需要模拟翻页,获取多个页面的招聘信息。

2201_76125261的博客 1291

Traffic-Classification 开源项目教程

Traffic-Classification 开源项目教程 项目介绍 Traffic-Classification 是一个用于网络流量分类的开源项目。该项目旨在通过自动化过程,根据各种参数(如端口号或协议)将计算机网络流量分类为多个流量类别。每个流量类别可以被不同地处理,以区分对数据生成者或消费者的服务。 该项目支持多种分类方法,包括基于端口号的分类、深度数据包检测(DPI)和统计分类。它适用于需...

gitblog_00622的博客 1095

S7-1200 G2移植旧版本S7-1200程序的具体方法示例

S7-1200 G2移植旧版本S7-1200程序的具体方法示例

Robot_PLC_HMI_Automation 1509

网络流量分类方法调研

网络流量分类方法调研 传统的网络流量分类方法 基于端口 最初的标准协议都分配有固定的端口,如HTTP服务的端口号为80,SMTP(简单邮件传输协议)服务的端口号为25等。在解析出数据包的端口信息后,可以据此推断网络流量所属协议类型 问题:随着动态端口、伪装端口及不标准端口号的出现,该方法的识别准确率显著下降。 基于有效负载 基于有效负载的方法,如深度包检测,通过在IP包的有效负载中搜索应用程序的签名,能够在一定程度上避免动态端口问题。 问题: -当加密流量出现时,该方法很难实现且计算开销很高 -面对快速发展

cherrychen2019的博客 3346

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

CCF推荐网络流量分析分类论文汇总Network traffic analysis and classification

Network traffic analysis and classification 为了开始流量分析和分类的研究课题,先调研相关学术会议论文,调查目前研究现状,从CCF推荐学术会议中搜集到了以下有关流量分类和流量分析的有关会议论文 A1-2019 INFOCOM 2019(IEEE Conference on Computer Communications)B类 A la...

永远在奔跑的学习者 7373

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

监督学习中的网络流量分类与异常检测

1.背景介绍 网络流量分类和异常检测是监督学习领域中的重要研究方向,它们在现实生活中具有广泛的应用。网络流量分类可以帮助我们识别网络中的不同类型流量,从而实现流量优先级管理、流量统计等目的。异常检测则可以帮助我们发现网络中的异常行为,从而实现网络安全保护、网络故障预警等目的。 在本文中,我们将从以下几个方面进行阐述: 背景介绍 核心概念与联系 核心算法原理和具体操作步骤以及数学模型公式详细...

AI天才研究院 1437

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

上一篇: 基于迁移学习的网络流量分类
下一篇: 基于深度生成模型的半监督网络流量分类
袁赛因不花
博客等级 码龄10年 82粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值