CN112054967A - 网络流量分类方法、装置、电子设备及存储介质 - Google Patents
网络流量分类方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN112054967A CN112054967A CN202010791283.1A CN202010791283A CN112054967A CN 112054967 A CN112054967 A CN 112054967A CN 202010791283 A CN202010791283 A CN 202010791283A CN 112054967 A CN112054967 A CN 112054967A
- Authority
- CN
- China
- Prior art keywords
- classification model
- classification
- network traffic
- training
- loss function
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2441—Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2415—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on parametric or probabilistic models, e.g. based on likelihood ratio or false acceptance rate versus a false rejection rate
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Health & Medical Sciences (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Evolutionary Biology (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例提供一种网络流量分类方法、装置、电子设备及存储介质,所述方法包括:获取基于损失函数训练后的目标分类模型;基于所述目标分类模型,对待分类流量数据进行分类;其中,所述损失函数基于网络流量数据中训练样本的权重参数确定。本发明实施例通过基于分类模型的训练样本权重参数确定损失函数,通过损失函数训练后的目标分类模型对待分类流量数据进行分类,解决了模型训练时样本不平衡的问题和正负样本比例失衡的问题,保证了小类数据集的分类性能,提供分类结果的准确率。
Description
技术领域
本发明涉及网络安全技术领域,尤其涉及一种网络流量分类方法、装置、电子设备及存储介质。
背景技术
在众多的互联网流量中,各类不同的流量分布并不是均匀的,无论是从是否加密、服务类型还是应用类型等不同的分类粒度角度出发,各个类别均有不同的占比,比如在恶意流量识别的应用中,部分恶意流量属于小类。但是基于深度学习的网络流量分类的相关研究中,基本都将训练样本符合均匀分布作为基本假设,若在数据类别不平衡的状态下进行模型的训练通常会使模型分类结果更加有利于保障占据大量比例的大样本分类性能,而小样本的性能容易被忽略。常规分类器都是针对整体任务提供最优解,但是小类数据集的分类任务性能难以得到保证,但往往小类任务是更加需要被关注的对象。
现有技术中针对深度学习领域的网络流量数据集对数据集不平衡问题的研究相对较少,比如使用随机采样技术来对数据集进行平衡处理。随机采样来平衡数据集是最为简单的手段,但前提是假设采样出来的样本的数量分布与原本数据集数据分布一致,但显然在现实中并不成立。这种情况容易牺牲大类数据集中的部分样本,也给分类结果带来不稳定因素。
因此,如何提出一种保证小类数据集的分类性能,且分类结果准确的方法,成为亟需解决的问题。
发明内容
本发明实施例提供一种网络流量分类方法、装置、电子设备及存储介质,用以解决现有技术中小类数据集的分类性能不好,分类结果不准确的缺陷,解决了模型训练时正负样本比例失衡的问题,保证了小类数据集的分类性能,提供分类结果的准确率。
本发明实施例提供一种网络流量分类方法,包括:获取基于损失函数训练后的目标分类模型;
基于所述目标分类模型,对待分类流量数据进行分类;
其中,所述损失函数基于网络流量数据中训练样本的权重参数确定。
所述损失函数基于网络流量数据中训练样本的权重参数确定,包括:
在所述损失函数中设置所述训练样本的权重,所述训练样本的权重为预设值。
根据本发明一个实施例的网络流量分类方法,所述获取基于损失函数训练后的目标分类模型之前,包括:
在每一次分类模型训练过程中,从网络流量样本中随机获取至少一个流量数据训练样本,通过分类模型获得所述流量数据训练样本的分类概率;
基于所述分类概率,通过损失函数训练所述分类模型,训练后的分类模型用于下一次分类模型训练过程中所述分类概率的获取。
根据本发明一个实施例的网络流量分类方法,所述方法还包括:
在每一次分类模型训练过程结束时,确定分类模型训练次数小于预设分类模型训练次数后,开始下一轮的分类模型训练过程;或
在每一次网络流量分类模型训练过程结束时,确定当前分类模型训练次数等于或大于所述分类模型训练次数后,确定所述网络流量分类模型训练过程中训练的分类模型为所述目标分类模型。
根据本发明一个实施例的网络流量分类方法,所述从网络流量样本中随机获取至少一个流量数据训练样本之前,所述方法还包括:
对网络流量数据进行标记;
对标记后的网络流量数据进行预处理,获得所述网络流量样本。
根据本发明一个实施例的网络流量分类方法,在第一次的所述分类模型训练过程之前,所述方法还包括:
构建一个用于网络流量分类的卷积神经网络,初始化所述卷积神经网络的分类模型。
根据本发明一个实施例的网络流量分类方法,所述方法还包括:
基于所述目标分类模型,输入带标记的网络流量数据进行测试,以获得所述目标分类模型的准确率。
第二方面,本发明实施例提供一种网络流量分类装置,包括:
获取模块,用于获取基于损失函数训练后的目标分类模型;
分类模块,用于基于所述目标分类模型,对待分类流量数据进行分类;
其中,所述损失函数基于网络流量数据中训练样本的权重参数确定。
第三方面,本发明实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面提供的网络流量分类方法的步骤。
第四方面,本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面提供的网络流量分类方法的步骤。
本发明实施例提供的网络流量分类方法、装置、电子设备及存储介质,通过基于分类模型的训练样本权重参数确定损失函数,通过损失函数训练后的目标分类模型对待分类流量数据进行分类,解决了模型训练时样本不平衡的问题和正负样本比例失衡的问题,保证了小类数据集的分类性能,提供分类结果的准确率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提供的网络流量分类方法的流程示意图;
图2是本发明一实施例提供的网络流量分类方法中的深度学习流程示意图;
图3是本发明一实施例提供的网络流量分类方法中的神经网络结构示意图;
图4是本发明一实施例提供的网络流量分类方法的召回率对比示意图;
图5是本发明一实施例提供的网络流量分类方法的查准率对比示意图;
图6是本发明另一实施例提供的网络流量分类方法流程示意图;
图7是本发明一实施例提供的网络流量分类装置的结构示意图;
图8是本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
网络流量分类自从上个世纪末以来就引起了工业界以及学术界的高度关注,也涌现出丰富的研究成果,随着分类技术的更新迭代也逐渐有新的技术出现。
现有的网络流量分类方法主要包括以下几种:
1、基于端口的方法是互联网早期流量分类方法,此时各类应用都拥有着来自互联网编号管理机构派发的公开的、固定的端口号。执行分类任务时只需要在网络流量的包头进行端口号的提取,就可以根据公开的端口号对照表寻找到其属于的应用类别。
2、深度包检测(Deep Packet Inspection),简称DPI:DPI技术最早起源于上世纪九十年代,通过检测数据包的包头以及载荷进行检查,寻找到一些能够识别具体流量类型的标志,这些标志是人为定义的,在有些研究中被称之为“指纹”,这一系列指纹与流量类别的映射关系组成了指纹库,通过流量内容与指纹库的比对,来实现流量的分类。
3、基于机器学习的方法:研究人员通过对流量特征进行人为特征提取,之后选择适当的机器学习方法,得到分类模型,从而实现流量的分类。根据不同的分类目标,基于机器学习的分类方法有着不同的分类粒度。
但是上面的这些方法都存在一些问题:由于随机端口和伪装端口技术的大量应用,通过端口分类的方法准确率偏低。基于深层包检测(DPI)的方法无法解密流量内容,在分类任务中遇到很大障碍。目前研究较多的是基于机器学习方法,它们的特点是需手工设计流量特征,因此人工成本高,有众多的研究学者针对不同的流量分类任务制定了特定的特征,至今为止,并没有一套特征能够有效的支持大多数的分类应用。
随着深度学习技术的兴起,其已经在图像分类、自然语言处理等多个领域表现出独特的优势。相比于传统的机器学习方法,深度学习拥有自动提取特征的能力,也就意味着在这个过程中,可以减少人工特征提取的步骤,进一步降低分类系统对人工的依赖,一方面降低了时间成本,另一方面也有利于搭建端到端的任务系统,为系统的自动运行、学习提供良好的基础。
使用深度学习来解决协议识别问题在2015年被提出,使用栈式自编码器SAE(Stacked Autoencoder,栈式自编码)对原始流量进行处理,得到良好的效果,开启了深度学习在流量识别领域的研究。深度报文检测Deep Packet方法随之被提出,实现了在应用识别和流量表征两个维度上对流量的分类任务,并对一些较难识别的流量取得了较好的分类效果,比如采用了隧道技术的P2P(Peer to Peer,对等网络)协议。在同一时期还有采用CNN(Convolutional Neural Networks,卷积神经网络)作为模型进行了恶意流量分类任务的研究,并探索了流量的不同表示形式,实验表明带有全部协议层的双向会话数据最有助于流量分类。其中,还可以将流量的字节转换为字符,使用长短期记忆网络对字符之间的序列进行学习,也可以实现良好的分类结果。以上的深度学习方法都在特定的场景下达到了良好的分类效果,表明了深度学习技术在流量分类领域中的潜力。
分类问题是较为经典的研究课题,不平衡数据集下分类相关研究也取得了不错的进展。解决数据集不平衡通常有四类思路,一是通过对数据进行处理让不平衡数据集变得平衡,二是通过在模型方面进行优化来优化分类效果,三是结合数据方法以及模型方法的优势的混合方法,四是进行分类器的集成。
在数据处理的研究方向中,常用的手段是对数据集重采样、扩充数据集、人造数据三类。数据重采主要包括过采样以及欠采样两种手段:过采样是通过增加小样本数的方式来平衡数据集中大类样本和小类样本之间的体量差距。常见的方式就是进行随机的过采样,通过对随机样本的复制来实现样本的增加,但是这种方式往往会带来过拟合的风险。过采样因为增加了样本的数量,让计算的复杂度进一步提升。欠采样是通过减少大样本的数量,来平衡小样本与大样本之间的数量差距,随机欠采样同样是最为简单的欠采样方式,但是在这个过程中,有很大可能会去除掉对训练模型十分重要的样本也会在一定程度上影响分类器的性能。人造数据通过对原有数据上增加噪声来实现新数据的生成,在图像处理领域,还有会将图片旋转、扭曲、放大等方法来实现样本的数量扩充,但是这种方法会产生真实世界中不存在的数据,给实验的结果带来偏差。
在算法的改进方面主要有三种方法:
1.代价函数进行调整,在使用代价函数时,增加小类样本的权值,降低大类样本的权值,本质上是产生了新的数据分布,让分类器将重点放在小类样本身上。
2.将小类样本视为异常,从而把分类问题转换为异常点检测问题。
3.混合方法,结合采样以及代价函数调整方法来克服数据集不平衡的问题。
集成学习的思想是通过训练多个学习器,并将这些学习器结合起来使用的方法,往往在采用此类方法得到的结果是比单个学习器预测的结果更好的。集成学习通常分为数据层面以及模型层面方法:数据层面是指在对测试样本进行预测时,对测试样本进行加工,比如在图像领域可以通过随机扣取、图像多尺度等手段产生多张图像,再通过模型对这多张图像进行分别预测,取最后的置信值平均值作为最后预测结果。
模型层面的集成主要分为以下三种策略:
1.使用同一个模型的不同初始化,神经网络的初始化参数在随机梯度下降的机制下会导致不同的训练结果,在小样本学习的场景中这种现象会变得更加明显。在同一个模型上实施不同的初始化再进行集成会降低模型效果的随机性,最终提升模型效果。
2.使用不同的目标函数,在训练过程中使用不同的目标函数训练多套模型,再在预测时对不同的预测结果按照置信分数设置选取策略,也可以将不同网络得到的特征进行结合得到最终特征。
3.直接使用不同的模型,对不同的网络得到结果进行集成。
但由于现有技术中基于深度学习的网络流量分类的相关研究中,对数据集不平衡问题的研究相对较少,仅有的Deep Packet研究使用了随机采样技术来对数据集进行平衡处理,在现实中无法实施,且牺牲大类数据集中的部分样本,也给分类结果带来不稳定因素。
为了解决现有技术中的缺陷,本发明各实施例的构思是:针对网络流量数据集不平衡的情况,通过引入交叉熵函数的一个改进版本:Focal Loss,提高小类数据集的分类任务性能,将基于深度学习细粒度流量识别性能进一步提升。整个过程中通过一系列的流量预处理手段,将网络流量映射为图片,再借助卷积神经网络强大的图像特征提取能力,来完成流量分类任务。
图1是本发明一实施例提供的网络流量分类方法的流程示意图,如图1所示,该方法包括如下步骤:
步骤100,获取基于损失函数训练后的目标分类模型;
具体地,本实施例通过采用梯度下降算法,通过深度学习基于损失函数对用于网络流量分类的分类模型进行训练,获得最优的分类模型即目标分类模型,因此在对网络流量数据中待分类数据进行分类前,可以首先获取该目标分类模型。
步骤101,基于所述目标分类模型,对待分类流量数据进行分类;
具体地,在获取了目标分类模型后,可以基于该目标分类模型,对所述待分类流量数据进行分类,得到分类结果。
可以理解的是,在对一个待分类流量数据进行分类时,对于每一个类型,分类模型的输出一个分类概率,此分类概率表示此待分类流量数据是此类型的概率。
其中,所述损失函数基于网络流量数据中训练样本的权重参数确定。
具体地,损失函数通常作为优化问题的学习准则,是深度学习过程中不可或缺的重要部分,用来衡量机器学习模型的预测能力。不同的损失函数适用于不同的情境中。在典型的分类任务中,数据集不平衡现象一直影响着分类结果的精确性,通过上下采样技术能够在一定程度上缓解不平衡的问题,但是仍旧面临着采样带来的如数据分布发生改变等各类问题。
损失函数在面对不平衡性数据集也能够发挥一定的作用。在进行分类任务的过程中,以二分类举例正负样本中,每类样本的区分难度是不尽相同的,这样就可以按照分类的难度以及正负样本分为易正样本,难正样本,易负样本,难负样本。显然,在模型的训练过程中,更应该关注那些更加难以区分的样本。如果在标注的数据集中,无用的负样本比例过高,有用的正样本比例过少就会给分类任务带来较大的挑战。如果能够通过对模型的损失函数进行修改,改变不同难易样本对模型产生的贡献度,就可以缓解以上问题。
因此,本实施例中,通过引入网络流量数据中的训练样本权重参数,可以对损失函数进行改进,例如基于Focal loss损失函数的不平衡数据集分类技术,就可以解决目标检测中正负样本比例失衡的问题。
本发明实施例提供的网络流量分类方法,通过基于分类模型的训练样本权重参数确定损失函数,通过损失函数训练后的目标分类模型对待分类流量数据进行分类,解决了模型训练时样本不平衡的问题和正负样本比例失衡的问题,保证了小类数据集的分类性能,提供分类结果的准确率。
可选地,在上述各实施例的基础上,所述损失函数基于网络流量数据中训练样本的权重参数确定,包括:
在所述损失函数中设置训练样本的权重,所述训练样本的权重为预设值。
具体地,所述损失函数可以为:
FL(pt)=(1-pg×pp)γ×log(pt);
pp是所述分类概率,pg是分类实际值,γ是所述训练样本的权重参数,为预设值。
具体地,在利用损失函数对用于网络流量分类的分类模型进行训练时,损失函数为FL(pt)=(1-pg×pp)γ×log(pt);
可以理解的是,在二分类任务中,交叉熵损失函数(cross-entropy)公式如下:
其中,p为预测概率,y表示实际标签,y=0或1,可以理解的是,公式(1)可以变换为:
因此,CE(p,y)=CE(pt)=-log(pt);
为了解决简单负样本大量,导致少量正样本被淹没,主导loss梯度下降方向的问题,可以通过加入权重来试图降低简单样本带来的影响如下述公式所示:
CE(p,y)=CE(pt)=-αtlog(pt) (3)
当负样本越多时,获得的权重就越小,这样会较低负样本带来的影响,为了平衡简单和困难样本之间的不平衡,可以定义损失函数为:
FL(pt)=-(1-pt)γlog(pt) (4)
通过以上的定义,pt在简单样本的情况下值相对较大,通过以上定义权重变小,pt在困难样本的情况下值相对较大,权重较大,如果困难样本分类失误,可以适应性地提高小样本经过损失函数计算后得到的值。因此,神经网络模型可以更加倾向于在困难的样本中进行学习,更新参数。当困难的样本在持续的训练过程中,困难样本可以逐渐转换为容易样本,权重适应性地开始下降,实现动态平衡。
本实施例中,将公式(3)与公式(4)进行合并,可以得到最终的损失函数:
FL(pt)=-αt(1-pt)γlog(pt) (5)
本实施例中,若流量分类任务属于多分类问题,那么在多分类的背景下:
CE=-pg*log(pp) (6)
其中pg表示真实的真实值,pp表示模型预测输出结果。
因此,可以获得既能适应二分类问题,又适应多分类问题的损失函数:
FL=(1-pg*pp)γlog(pp) (7)
本实施例中,可以利用公式(7),更新分类模型参数,即利用损失函数对分类模型进行训练。
可选地,在上述各实施例的基础上,所述获取基于损失函数训练后的目标分类模型之前,包括:
在每一次分类模型训练过程中,从网络流量样本中随机获取至少一个流量数据训练样本,通过分类模型获得所述流量数据训练样本的分类概率;
基于所述分类概率,通过损失函数训练所述分类模型,训练后的分类模型用于下一次分类模型训练过程中所述分类概率的获取。
具体地,本实施例中,为了获取基于损失函数训练后的目标分类模型,可以首先采用梯度下降算法,利用损失函数对分类模型进行训练,得到目标分类模型。
具体地,在梯度下降算法中,通过深度学习利用损失函数更新模型参数训练模型时,一共有三种方法:批梯度下降、随机梯度下降以及小批梯度下降,梯度下降是指当数据集中所有的数据都经过训练后进行损失函数的计算,虽然此方法能够提供良好的更新方向,但是因为算力以及迭代速度问题难以实现应用;随机梯度下降每次进行样本训练时进行一次损失计算,对样本的拟合有利处。但不一定有利于数据特征的表达。本实施例采用了小批梯度下降的方法,每次完成小批次的训练时进行损失函数的计算。
具体地,在通过小批梯度下降算法,利用损失函数更新模型参数训练模型时,由于利用损失函数对分类模型进行训练至少一次,因此,在每一次分类模型训练过程中,可以从网络流量样本中随机获取至少一个流量数据训练样本,即小批量的流量数据训练样本,通过分类模型获得该小批量的流量数据训练样本的分类概率;在获得该小批量的流量数据训练样本的分类概率后,可以基于分类概率,通过损失函数训练分类模型。
可以理解的是,本实施例中,每一次分类模型训练过程中训练的分类模型用于下一次分类模型训练过程中所述分类概率的获取。
可选地,在上述各实施例的基础上,所述方法还包括:
在每一次分类模型训练过程结束时,确定分类模型训练次数小于预设分类模型训练次数后,开始下一轮的分类模型训练过程;或
在每一次网络流量分类模型训练过程结束时,确定分类模型训练次数等于或大于所述分类模型训练次数后,确定所述网络流量分类模型训练过程中训练的分类模型为所述目标分类模型。
具体地,本实施例中,在第一次分类模型训练过程开始前,可以预设分类模型训练次数为N,因此,利用损失函数训练分类模型N次后获得的分类模型即为目标分类模型。
可以理解的是,在每一次分类模型训练过程结束时,比较当前分类模型训练次数与预设分类模型训练次数的大小,若分类模型训练次数小于预设分类模型训练次数N,则开始下一轮的分类模型训练过程,若分类模型训练次数等于或大于所述分类模型训练次数,则可以认为分类模型训练次数已经足够,当前分类模型已经为最优模型,即目标分类模型。
可选地,在上述各实施例的基础上,所述从网络流量样本中随机获取至少一个流量数据训练样本之前,所述方法还包括:
对网络流量数据进行标记;
对标记后的网络流量数据进行预处理,获得所述网络流量样本。
具体地,在从网络流量样本中随机获取至少一个流量数据训练样本之前,首先需要确定网络流量样本。
具体地,在确定网络流量样本时,首先需要对所有可以作为样本的原始网络流量数据进行标记,然后对标记后的网络流量数据进行预处理。
具体在进行预处理时,预处理之前对各类应用流量进行标注,分类,切割,然后对网络流量提取、切分,例如:TCP(传输控制协议,Transmission Control Protocol)连接、流、会话、服务、主机。根据不同的切分方法,数据集表示形式不同,比如切分为流或会话,其中,流是指具有相同五元组的所有包,会话是指同一对通信中双向流。在每一个网络流量文件中存在若干个流,经过切分,截取等步骤将会获得长度相同的样本。
在截取获得长度相同的样本后,由于在数据链路层中包含部分物理层信息比如MAC(Media Access Control Address,媒体存取控制位址)地址,且在数据集中采用的主机数目不多,如果将这一系列信息放入到神经网络的训练过程中,很有可能出现基于主机的过拟合现象,将无关的特征纳入到分类决策任务中,所以可以处理IP(Internet Protocol,网际互连协议)头部,比如采用匿名化或者去除的方式。
将样本进行匿名化处理后,由于卷积神经网络的输入需要特定大小的规格,所以可以对流量包截取固定的长度,最后将固定长度的流量包转化为卷积神经网络的输入格式;完成预处理后,可以获得网络流量样本。
可选地,在上述各实施例的基础上,在第一次的所述分类模型训练过程之前,所述方法还包括:
构建一个用于网络流量分类的卷积神经网络,初始化所述卷积神经网络的分类模型。
具体地,本实施例中,可以基于表征学习领域中的深度学习技术,使用卷积神经网络CNN(Convolutional Neural Networks,卷积神经网络)作为具体学习算法,直接从流量原始数据中自动学习流量特征,将逐层学习到的高级流量特征直接在softmax层进行分类,从而得到分类结果。因此,在在第一次的分类模型训练过程之前,可以构建一个用于网络流量分类的卷积神经网络,初始化所述卷积神经网络的分类模型。
图2是本发明一实施例提供的网络流量分类方法中的深度学习流程示意图,如图2所示为深度学习中的端到端学习,相比分步策略,端到端的学习具有协同增效(Synergy)的优势,有更大的可能获得全局上更优的解。
图3是本发明一实施例提供的网络流量分类方法中的神经网络结构示意图,如图3所示,本实施例提供了经典的2D-CNN卷积神经网络对网络流量进行分类,一共包含两个卷积层、两个池化层、两个全连接层以及一个输出层构成。神经网络的输入为idx格式的数组,规格为28×28。神经网络配置以及参数如下表所示:
卷积层参数设置如下表所示:
卷积层序号 | 卷积核尺寸 | 通道数量 |
C1 | 5 | 32 |
C2 | 5 | 64 |
池化层各层参数如下表所示:
池化层序号 | 池化层大小 |
P1 | 2×2 |
P2 | 2×2 |
基于Focal Loss损失函数分类模型的实验结果如下表所示:
服务类别 | Rec | Precisio |
Chat | 0.8 | 0.871 |
0.8 | 0.940 | |
File Transfer | 0.9 | 0.894 |
Streaming | 0.9 | 0.946 |
Torrent | 0.9 | 0.981 |
VoIP | 0.8 | 0.935 |
VPN-Chat | 0.9 | 0.952 |
VPN-Email | 0.9 | 0.935 |
VPN-File Transfer | 0.9 | 0.941 |
VPN-Streaming | 0.9 | 0.932 |
VPN-Torrent | 0.9 | 0.945 |
VPN-Voip | 0.9 | 0.986 |
如上表所示,大类分类结果多数查全率以及精确率高于90%,对于数据样本不足,并且失衡较为严重的Chat、Email类准确率也有所提升。
图4是本发明一实施例提供的网络流量分类方法的召回率对比示意图,图5是本发明一实施例提供的网络流量分类方法的查准率对比示意图,如图4和图5所示,对比实验结果传统的交叉熵损失函数得到的结果,对于数据相对充足的大类,比如File transfer、VoIP等服务类别来说,识别精度并没有实现较大的提升,但是在小类表现出较为明显的性能提升。这得益于Focal Loss函数将更多的难样本赋予了更高的权重,使得小类数据的区分度得以提升。
Deep Packet为了保证数据集的平衡性,采用了采样方法对数据进行了处理,所以参与训练与预测的样本集与本本实施例中的结果并不相同,以及流量的处理方式不同,本质上不是严格的对照试验,会存在精度上的差异。
如图4和图5所示,本实施例提供的Focal Loss损失函数在流量分类领域中的作用,从数据集的分布上来看,Email以及Chat类型流量样本数量较少,在处理方式最接近的方法的分类准确率属于偏低的状态,召回率与查准率都低于75%。本实验在这两类的性能上都得到了提升,在服务级别的分类过程中Chat类别的分类查全率与查准率都高于85%,具备了一定的实用能力。
可选地,在上述各实施例的基础上,所述方法还包括:
基于所述目标分类模型,输入带标记的网络流量数据进行测试,以获得所述目标分类模型的准确率。
具体地,本实施例中,可以使用目标分类模型,从带标记的网络流量数据中选取测试样本,输入目标分类模型中,进行类别预测,得出分类概率,将分类模型输出的分类概率与标签进行对比,获得目标分类模型的准确率。
本发明实施例提供的网络流量分类方法,通过基于分类模型的训练样本权重参数确定损失函数,通过损失函数训练后的目标分类模型对待分类流量数据进行分类,解决了模型训练时样本不平衡的问题和正负样本比例失衡的问题,保证了小类数据集的分类性能,提供分类结果的准确率。
图6是本发明另一实施例提供的网络流量分类方法流程示意图,如图6所示,该方法包括如下步骤:
步骤600,原始网络流量数据标记与预处理;
具体地,获取原始网络流量数据进行标记,然后对标记后的网络流量数据进行预处理。
步骤601,分类模型初始化;
具体地,构建一个用于网络流量分类的卷积神经网络,初始化所述卷积神经网络的分类模型。
步骤602,利用损失函数训练分类模型;
具体地,可以通过小批梯度下降算法,利用损失函数更新模型参数训练模型,具体地,可以预设分类模型训练次数为N,即可以利用损失函数训练分类模型N次后获得的分类模型即为目标分类模型
步骤603,获取目标分类模型;
在需要对待分类流量数据进行分类时,可以首先获取目标分类模型。
步骤604,对待分类流量数据进行分类。
具体地,在获取目标分类模型后,对待分类流量数据进行分类。
下面对本发明实施例提供的网络流量分类装置进行描述,下文描述的网络流量分类装置与上文描述的网络流量分类方法可相互对应参照。
图7是本发明一实施例提供的网络流量分类装置的结构示意图,如图7所示,该装置包括:获取模块701,分类模块702,其中:
获取模块701用于获取基于损失函数训练后的目标分类模型;
分类模块702用于基于所述目标分类模型,对待分类流量数据进行分类;
其中,所述损失函数基于网络流量数据中训练样本的权重参数确定。
具体地,网络流量分类装置通过获取模块701获取基于损失函数训练后的目标分类模型后,基于分类模块702基于目标分类模型,对待分类流量数据进行分类。
本发明实施例提供的网络流量分类装置,通过基于分类模型的训练样本权重参数确定损失函数,通过损失函数训练后的目标分类模型对待分类流量数据进行分类,解决了模型训练时样本不平衡的问题和正负样本比例失衡的问题,保证了小类数据集的分类性能,提供分类结果的准确率。
图8是本发明实施例提供的一种电子设备的结构示意图,如图8所示,该电子设备可以包括:处理器(processor)810、通信接口(Communications Interface)820、存储器(memory)830和通信总线840,其中,处理器810,通信接口820,存储器830通过通信总线840完成相互间的通信。处理器810可以调用存储器830中的逻辑指令,以执行网络流量分类方法,该方法包括:
获取基于损失函数训练后的目标分类模型;
基于所述目标分类模型,对待分类流量数据进行分类;
其中,所述损失函数基于网络流量数据中训练样本的权重参数确定。
此外,上述的存储器830中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的网络流量分类方法,该方法包括:
获取基于损失函数训练后的目标分类模型;
基于所述目标分类模型,对待分类流量数据进行分类;
其中,所述损失函数基于网络流量数据中训练样本的权重参数确定。
又一方面,本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的网络流量分类方法,该方法包括:
获取基于损失函数训练后的目标分类模型;
基于所述目标分类模型,对待分类流量数据进行分类;
其中,所述损失函数基于网络流量数据中训练样本的权重参数确定。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种网络流量分类方法,其特征在于,包括:
获取基于损失函数训练后的目标分类模型;
基于所述目标分类模型,对待分类流量数据进行分类;
其中,所述损失函数基于网络流量数据中训练样本的权重参数确定。
2.根据权利要求1所述的网络流量分类方法,其特征在于,所述损失函数基于网络流量数据中训练样本的权重参数确定,包括:
在所述损失函数中设置训练样本的权重,所述训练样本的权重为预设值。
3.根据权利要求1所述的网络流量分类方法,其特征在于,所述获取基于损失函数训练后的目标分类模型之前,包括:
在每一次分类模型训练过程中,从网络流量样本中随机获取至少一个流量数据训练样本,通过分类模型获得所述流量数据训练样本的分类概率;
基于所述分类概率,通过损失函数训练所述分类模型,训练后的分类模型用于下一次分类模型训练过程中所述分类概率的获取。
4.根据权利要求3所述的网络流量分类方法,其特征在于,所述方法还包括:
在每一次分类模型训练过程结束时,确定分类模型训练次数小于预设分类模型训练次数后,开始下一轮的分类模型训练过程;或
在每一次网络流量分类模型训练过程结束时,确定当前分类模型训练次数等于或大于所述分类模型训练次数后,确定所述网络流量分类模型训练过程中训练的分类模型为所述目标分类模型。
5.根据权利要求3所述的网络流量分类方法,其特征在于,所述从网络流量样本中随机获取至少一个流量数据训练样本之前,所述方法还包括:
对网络流量数据进行标记;
对标记后的网络流量数据进行预处理,获得所述网络流量样本。
6.根据权利要求3所述的网络流量分类方法,其特征在于,在第一次的所述分类模型训练过程之前,所述方法还包括:
构建一个用于网络流量分类的卷积神经网络,初始化所述卷积神经网络的分类模型。
7.根据权利要求1所述的网络流量分类方法,其特征在于,所述方法还包括:
基于所述目标分类模型,输入带标记的网络流量数据进行测试,以获得所述目标分类模型的准确率。
8.一种网络流量分类装置,其特征在于,包括:
获取模块,用于获取基于损失函数训练后的目标分类模型;
分类模块,用于基于所述目标分类模型,对待分类流量数据进行分类;
其中,所述损失函数基于网络流量数据中训练样本的权重参数确定。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7任一项所述网络流量分类方法的步骤。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至7任一项所述网络流量分类方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010791283.1A CN112054967A (zh) | 2020-08-07 | 2020-08-07 | 网络流量分类方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010791283.1A CN112054967A (zh) | 2020-08-07 | 2020-08-07 | 网络流量分类方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112054967A true CN112054967A (zh) | 2020-12-08 |
Family
ID=73602442
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010791283.1A Pending CN112054967A (zh) | 2020-08-07 | 2020-08-07 | 网络流量分类方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112054967A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112702329A (zh) * | 2020-12-21 | 2021-04-23 | 四川虹微技术有限公司 | 一种流量数据异常检测方法、装置和存储介质 |
CN112732913A (zh) * | 2020-12-30 | 2021-04-30 | 平安科技(深圳)有限公司 | 一种非均衡样本的分类方法、装置、设备及存储介质 |
CN112966102A (zh) * | 2021-02-10 | 2021-06-15 | 万翼科技有限公司 | 分类模型构建及文本语句分类方法、设备及存储介质 |
CN113037730A (zh) * | 2021-02-27 | 2021-06-25 | 中国人民解放军战略支援部队信息工程大学 | 基于多特征学习的网络加密流量分类方法及系统 |
CN113392889A (zh) * | 2021-06-07 | 2021-09-14 | 深圳市欢太数字科技有限公司 | 数据处理方法、装置以及电子设备 |
CN114024713A (zh) * | 2021-09-30 | 2022-02-08 | 广东电网有限责任公司电力调度控制中心 | 一种低压电力线载波通信系统防入侵方法 |
CN114500387A (zh) * | 2022-02-14 | 2022-05-13 | 重庆邮电大学 | 基于机器学习的移动应用流量识别方法及系统 |
CN114866297A (zh) * | 2022-04-20 | 2022-08-05 | 中国科学院信息工程研究所 | 网络数据检测方法、装置、电子设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190005353A1 (en) * | 2017-06-30 | 2019-01-03 | Axis Ab | Method and system for training a neural network to classify objects or events |
CN109784366A (zh) * | 2018-12-07 | 2019-05-21 | 北京飞搜科技有限公司 | 目标物体的细粒度分类方法、装置与电子设备 |
CN109871444A (zh) * | 2019-01-16 | 2019-06-11 | 北京邮电大学 | 一种文本分类方法及系统 |
CN109886307A (zh) * | 2019-01-24 | 2019-06-14 | 西安交通大学 | 一种基于卷积神经网络的图像检测方法及系统 |
CN110929785A (zh) * | 2019-11-21 | 2020-03-27 | 中国科学院深圳先进技术研究院 | 数据分类方法、装置、终端设备及可读存储介质 |
CN110958244A (zh) * | 2019-11-29 | 2020-04-03 | 北京邮电大学 | 一种基于深度学习的仿冒域名检测方法及装置 |
CN110991652A (zh) * | 2019-12-02 | 2020-04-10 | 北京迈格威科技有限公司 | 神经网络模型训练方法、装置及电子设备 |
-
2020
- 2020-08-07 CN CN202010791283.1A patent/CN112054967A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190005353A1 (en) * | 2017-06-30 | 2019-01-03 | Axis Ab | Method and system for training a neural network to classify objects or events |
CN109784366A (zh) * | 2018-12-07 | 2019-05-21 | 北京飞搜科技有限公司 | 目标物体的细粒度分类方法、装置与电子设备 |
CN109871444A (zh) * | 2019-01-16 | 2019-06-11 | 北京邮电大学 | 一种文本分类方法及系统 |
CN109886307A (zh) * | 2019-01-24 | 2019-06-14 | 西安交通大学 | 一种基于卷积神经网络的图像检测方法及系统 |
CN110929785A (zh) * | 2019-11-21 | 2020-03-27 | 中国科学院深圳先进技术研究院 | 数据分类方法、装置、终端设备及可读存储介质 |
CN110958244A (zh) * | 2019-11-29 | 2020-04-03 | 北京邮电大学 | 一种基于深度学习的仿冒域名检测方法及装置 |
CN110991652A (zh) * | 2019-12-02 | 2020-04-10 | 北京迈格威科技有限公司 | 神经网络模型训练方法、装置及电子设备 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112702329A (zh) * | 2020-12-21 | 2021-04-23 | 四川虹微技术有限公司 | 一种流量数据异常检测方法、装置和存储介质 |
CN112702329B (zh) * | 2020-12-21 | 2023-04-07 | 四川虹微技术有限公司 | 一种流量数据异常检测方法、装置和存储介质 |
CN112732913A (zh) * | 2020-12-30 | 2021-04-30 | 平安科技(深圳)有限公司 | 一种非均衡样本的分类方法、装置、设备及存储介质 |
CN112732913B (zh) * | 2020-12-30 | 2023-08-22 | 平安科技(深圳)有限公司 | 一种非均衡样本的分类方法、装置、设备及存储介质 |
CN112966102A (zh) * | 2021-02-10 | 2021-06-15 | 万翼科技有限公司 | 分类模型构建及文本语句分类方法、设备及存储介质 |
CN113037730A (zh) * | 2021-02-27 | 2021-06-25 | 中国人民解放军战略支援部队信息工程大学 | 基于多特征学习的网络加密流量分类方法及系统 |
CN113392889A (zh) * | 2021-06-07 | 2021-09-14 | 深圳市欢太数字科技有限公司 | 数据处理方法、装置以及电子设备 |
CN114024713A (zh) * | 2021-09-30 | 2022-02-08 | 广东电网有限责任公司电力调度控制中心 | 一种低压电力线载波通信系统防入侵方法 |
CN114024713B (zh) * | 2021-09-30 | 2023-08-08 | 广东电网有限责任公司电力调度控制中心 | 一种低压电力线载波通信系统防入侵方法 |
CN114500387A (zh) * | 2022-02-14 | 2022-05-13 | 重庆邮电大学 | 基于机器学习的移动应用流量识别方法及系统 |
CN114866297A (zh) * | 2022-04-20 | 2022-08-05 | 中国科学院信息工程研究所 | 网络数据检测方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112054967A (zh) | 网络流量分类方法、装置、电子设备及存储介质 | |
CN109361617B (zh) | 一种基于网络包载荷的卷积神经网络流量分类方法及系统 | |
CN110730140B (zh) | 基于时空特性相结合的深度学习流量分类方法 | |
CN110311829B (zh) | 一种基于机器学习加速的网络流量分类方法 | |
CN111340191B (zh) | 基于集成学习的僵尸网络恶意流量分类方法及系统 | |
CN112163594A (zh) | 一种网络加密流量识别方法及装置 | |
CN110808971B (zh) | 一种基于深度嵌入的未知恶意流量主动检测系统及方法 | |
CN114615093B (zh) | 基于流量重构与继承学习的匿名网络流量识别方法及装置 | |
WO2020253127A1 (zh) | 脸部特征提取模型训练方法、脸部特征提取方法、装置、设备及存储介质 | |
CN111835763B (zh) | 一种dns隧道流量检测方法、装置及电子设备 | |
CN113989583A (zh) | 一种互联网恶意流量检测方法及系统 | |
WO2023124278A1 (zh) | 图像处理模型的训练方法、图像分类方法及装置 | |
CN114726802A (zh) | 一种基于不同数据维度的网络流量识别方法及装置 | |
CN113705604A (zh) | 僵尸网络流量分类检测方法、装置、电子设备及存储介质 | |
KR102313215B1 (ko) | 특징 생성 기술을 이용한 머신러닝 기반 결함 분류 장치 및 방법 | |
CN115296857A (zh) | 基于拓扑结构和DeepLearning-AIS的网络威胁感知及免疫方法 | |
CN115713669B (zh) | 一种基于类间关系的图像分类方法、装置、存储介质及终端 | |
CN115002031B (zh) | 基于不平衡数据分布的联邦学习网络流量分类模型训练方法、模型及分类方法 | |
CN112839051B (zh) | 基于卷积神经网络的加密流量实时分类方法及装置 | |
CN113256507B (zh) | 一种针对二进制流量数据生成图像的注意力增强方法 | |
CN114021637A (zh) | 一种基于度量空间下去中心化应用加密流量分类方法及装置 | |
CN114884704B (zh) | 一种基于对合和投票的网络流量异常行为检测方法和系统 | |
CN111556017A (zh) | 一种基于自编码机的网络入侵检测方法及电子装置 | |
KR102546815B1 (ko) | 통계적 특징점 선별 장치 및 방법 | |
CN115296856B (zh) | 基于ResNet-AIS的加密流量网络威胁检测器进化学习方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20201208 |