坨坴坴坰场圯圯坷坷坷圮坰坡坰坥坲圮坥坤坵圮坣坮
坏坥坵坮坧等人
[8]
的研究提出基于聚类 的欠采样与合成少数群体过采样技术相结合的方法来缓解概
念漂移的问题。
基于深度学习的流量分类技术近些年来逐渐得到更多关注。在块坡坮坧
[12]
等人的研究中将网
络流作为样本, 研究过程中并没有针对数据不平衡性进行处理,导致部分小类的分类性能较
差。面对数 据集分布不均衡问题,目前主要的解决方案有基于数据方法、基于模型方法和集成
学 习方法。 目前,基于深度学习的流量分类方法主要采用数据层面的平衡方法。 坌坯坴坦坯坬坬坡坨坩等
人
[13]
提出坄坥坥坰 坐坡坣坫坥坴,为了解决数据集不平衡问题 采用了随机采样的方法,虽然性能相对文
献
[11]
得到了提升,但随机采样技术基于采样样本与真实样本分布一致的前提,但在现实中难以
成立,给分类性能带来不稳定的因素。坈坡坳坩坢坩等人
[9]
通过使用长短期记忆网络来生成网络流实
现小类样本的扩充。块坡坮坧等人
[10]
通过均坁坎来实现数据集生成。
集成学习主要是通过训练多个学习器结合使用,往往效果高于单个学习器, 主要分为数据
集成以及模型集成两种思路。但是,集成学习往往涉 及到多个模型的训练,会消耗较高的算力
成本。网络流量分类领域中,因流量结 构变化快、不断出现新类型流量,模型更新的频次以及
及时性要求较高。基于模型方法中,损失函数是一个可行的方向,通过为不同的训练样本设置
不同的模型贡献度来有效的利用训练数据,这个思想在机器视觉领域已经取得较好的进展。本
文将展开基于焦点损失函数 的流量分类研究,并且进 一步探索了采样技术与损失函数混合方法
的效果。
2 不平衡数据集下流量分类方法
针对流量分类任务中数据集不平衡带来的问题,本文提出基于焦点损失函数 的不平衡数据
集下流量分类方法,如图圱所示,该方法一共分为四个步骤:(圱)原始数据预处理,目标是将
原始的坰坣坡坰文件转化为可以供神经网络读取的文件;(圲)数据平衡处理,目标是训练数据进 行
平衡,降低不平衡对模型训练的影响;(圳)神经网络设置,选取适合的神经网络架构以及初始
化方法来确保模型性能;(圴)神经网络训练,通过设置焦点损失函数来平衡数据集不平衡带来
的影响。下文将着重介绍以上框架的关键步骤:章节圲圮圱介绍原始数据处理方法,章节圲圮圲介绍
第三步骤的神经网络设置,章节圲圮圳介绍第四步骤中最为关键的损失函数选择。数据平衡处理
以及神经网络训练将在实验章节进行介绍。
2.1 原始数据处理
基于统计的流 量分类方法主要利用时间序列、报文头、有效荷载三种数据类型,常见的研
究将报文头以及有效荷载作为输 入。 常见的方法是对原始流量切分为流或者会话
[14]
。一个流
是指拥有相同五元组的数据包,本文也将采用此类方法。从原始流量中获取深度学习可以理解
计算的格式需要进行一系列的操作, 数据处理分为五个步骤:(圱)原始数据处理;(圲)流量提
取;(圳)匿名化处理;(圴)流量截取;(圵)坉坄坘文件生成,如图圲 所示。
在数据链路层中包含部分物理 层信息比如坍坁坃地址,由于在数据集中采用的主机数目不
多,如果将这一系列信息放入到神经网络的训练过程中,很有可能出现基于主机的过拟合现
圭 圳 圭