CN109873774A - 一种网络流量识别方法及装置 - Google Patents
一种网络流量识别方法及装置 Download PDFInfo
- Publication number
- CN109873774A CN109873774A CN201910036196.2A CN201910036196A CN109873774A CN 109873774 A CN109873774 A CN 109873774A CN 201910036196 A CN201910036196 A CN 201910036196A CN 109873774 A CN109873774 A CN 109873774A
- Authority
- CN
- China
- Prior art keywords
- sample
- model
- cluster
- recognition model
- output node
- 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.)
- Granted
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例提供的一种网络流量识别方法及装置,方法包括:在接收当前数据流完成的情况下,提取当前数据流中数据包包头的数据,作为第一样本;将第一样本输入半监督模型,利用半监督模型输出第一样本的类别及第一样本是否位于簇的边界距离内的结果;在第一样本是位于簇的边界距离内的结果情况下,如果第一样本是新类别的样本,则在预设的机器识别模型的输出节点中增加一个输出节点,将增加输出节点后的机器识别模型作为在线识别模型;然后识别当前数据流后的下一个数据流的类别。相比于现有技术,本发明实施例更改机器识别模型的结构,使用更改结构后的机器学习模型识别当前数据流后的下一个的数据流的类别,可以提高识别数据流的类别实时性。
Description
技术领域
本发明涉及通信技术领域,特别是涉及一种网络流量识别方法及装置。
背景技术
流量是网络中传输数据的重要载体,流量识别是网络监控的关键环节,只有对流量进行识别,才能根据不同的流量采取不同的监控策略,例如:拒绝、优化、打标、优先级分类等等,因此对网络流量进行识别至关重要。一般网络流量以数据流的形式传输,每条数据流包含多个数据包,每个数据包包括固定字节的包头数据,根据包头数据可以获得包头数据的特征,包头数据的特征包括:时间间隔,流持续时间,数据包大小的均值、方差等。
现有技术中对网络流量识别采用的是基于机器学习的方法,该方法主要是通过机器学习技术,挖掘网络包头数据的特征,然后训练得到机器学习模型,然后将数据流输入训练得到的机器学习模型,输出在线网络流量的类别。其中,采用如下步骤训练得到机器学习模型:首先通过统计整条数据流中数据包包头数据的特征,选择整条数据流中全部或者部分包头数据的特征作为样本,训练样本,得到机器学习模型,这个机器学习模型是离线模型,其内部结构固定。
由于网络环境的实时变化,数据流的特征也会发生变化,使用内部结构固定的机器学习模型,识别在线网络流量的类别的实时性不高,因此现有技术识别在线网络流量类别的实时性不高。
发明内容
本发明实施例的目的在于提供一种网络流量识别方法及装置,提高识别数据流的类别实时性,具体技术方案如下:
第一方面,本发明实施例提供的一种网络流量识别方法,应用于服务器,方法包括:
在接收当前数据流完成的情况下,提取当前数据流中数据包的包头数据,作为第一样本;
将第一样本输入半监督模型,利用半监督模型输出第一样本的类别及第一样本是否位于簇的边界距离内的结果;半监督模型是利用第一训练样本集训练得到且包含已获得包头数据的类别与第一训练样本集中其余样本的分布关系;第一训练样本集中包含与至少一个有类别标签的样本;分布关系决定有类别标签的样本是否位于簇的边界距离内的结果;
在第一样本是位于簇的边界距离内的结果情况下,如果第一样本是新类别的样本,则在预设的机器识别模型的输出节点中增加一个输出节点,将增加输出节点后的机器识别模型作为在线识别模型;
使用在线识别模型,识别当前数据流后的下一个数据流的类别。
可选的,在在接收当前数据流完成的情况下,提取当前数据流中数据包包头的数据,作为第一样本的步骤之前,方法还包括:
依次接收当前数据流的数据包,并获取数据包的五元组信息;
判断数据库是否存储五元组信息,如果数据库存储五元组信息,则将数据包的包头数据保存至与五元组信息对应路径的存储区域;
如果数据库未存储五元组信息,则创建与五元组信息对应路径的存储区域,将数据包的包头数据保存至五元组信息对应路径的存储区域。
可选的,在接收当前数据流完成的情况下,提取当前数据流中数据包的包头数据,作为第一样本,包括:
判断当前数据流的各个数据包是否包含结束标识,如果存在一个数据包包含结束标识,则接收数据流已完成,提取数据流中数据包的包头数据作为第一样本。
可选的,在接收当前数据流完成的情况下,提取当前数据流中数据包的包头数据,作为第一样本,包括:
在接收当前数据流完成的情况下,提取当前数据流中数据包的包头数据;
使用将当前数据流中数据包的包头数据进行编码,获得固定维度的向量,将固定维度的向量作为第一样本。
可选的,将第一样本输入半监督模型,利用半监督模型输出第一样本的类别及第一样本是否位于簇的边界距离内的结果,包括:
将第一样本输入半监督模型,利用半监督模型输出第一样本的类别;
计算第一训练样本集中各个样本的局部密度及最小距离,将局部密度超过密度阈值且最小距离超过距离阈值的样本作为第三样本;第一训练样本集为训练半监督模型所用样本组成的集合;
将第三样本添加至簇中,并且将第三样本确定为簇的簇中心点;簇的个数与第三样本个数相同,每个簇中只有一个第三样本;
如果第一样本与第三样本的距离超过簇的边界距离,则判定第一样本不位于簇的边界距离内;
如果第一样本与第三样本的距离未超过簇的边界距离,则判定第一样本位于簇的边界距离内。
可选的,在第一样本位于簇的边界距离内的情况下,如果第一样本是新类别的样本,则在预设的机器识别模型的输出节点中增加一个输出节点,将增加输出节点后的机器识别模型作为在线识别模型,包括:
在第一样本位于簇的边界距离内的情况下,如果第二训练样本集中存在与第一样本的类别相同的第二样本,则判定第一样本不是新类别的样本,并更新预设的机器识别模型的参数;第二训练样本集为训练机器识别模型所用的数据流组成的集合;
在第一样本位于簇的边界距离内的情况下,如果第二训练样本集中未存在与第一样本的类别相同的第二样本,则判定第一样本是新类别的样本,并在预设的机器识别模型的输出节点中增加一个输出节点,将增加输出节点后的机器识别模型作为在线识别模型。
可选的,在第一样本位于簇的边界距离内的情况下,如果第一样本是新类别的样本,则在预设的机器识别模型的输出节点中增加一个输出节点,将增加输出节点后的机器识别模型作为在线识别模型,包括:
在第一样本位于簇的边界距离内的情况下,如果第一样本是新类别的样本,则将预设的机器识别模型中参数维度增加一维,将增加参数维度后的机器识别模型作为在线识别模型。
可选的,在第一样本位于簇的边界距离内的情况下,如果第一样本是新类别的样本,则在预设的机器识别模型的输出节点中增加一个输出节点,将增加输出节点后的机器识别模型作为在线识别模型,包括:
在第一样本位于簇的边界距离内的情况下,如果第一样本是新类别的样本,则在预设的机器识别模型的输出节点中增加一个输出节点,将增加输出节点后的机器识别模型作为基础识别模型;
将第一样本输入基础识别模型,计算基础识别模型的损失函数对于基础识别模型中输出层权重及偏置的偏导;
在梯度下降的方向,利用参数更新公式更新基础识别模型输出层的权重及偏置;参数更新公式包含熟练度增量分别与基础识别模型的损失函数对于基础识别模型中输出层权重与偏置的偏导相乘的结果;
将更新权重及偏置后的所述基础识别模型确定为在线识别模型。
可选的,使用在线识别模型,识别当前数据流后的下一个数据流的类别,包括:
当前数据流后的下一个数据流中数据包个数达到预定个数的情况下,提取下一个数据流中数据包包头的数据作为第二样本;
将第二样本输入在线识别模型,利用在线识别模型输出第二样本的类别。
第二方面,本发明实施例提供的一种网络流量识别装置,应用于服务器,装置包括:
样本模块,用于在接收当前数据流完成的情况下,提取当前数据流中数据包的包头数据,作为第一样本;
监督模块,用于将第一样本输入半监督模型,利用半监督模型输出第一样本的类别及第一样本是否位于簇的边界距离内的结果;半监督模型是利用第一训练样本集训练得到且包含已获得包头数据的类别与第一训练样本集中其余样本的分布关系;第一训练样本集中包含与至少一个有类别标签的样本;分布关系决定有类别标签的样本是否位于簇的边界距离内的结果;
更改模块,用于在第一样本位于簇的边界距离内的情况下,如果第一样本是新类别的样本,则在预设的机器识别模型的输出节点中增加一个输出节点,将增加输出节点后的机器识别模型作为在线识别模型;
识别模块,用于使用在线识别模型,识别当前数据流后的下一个数据流的类别。
可选的,本发明实施例提供的一种网络流量识别装置还包括:
存储单元,用于依次接收当前数据流的数据包,并获取数据包的五元组信息;
判断数据库是否存储五元组信息,如果数据库存储五元组信息,则将数据包的包头数据保存至与五元组信息对应路径的存储区域;
如果数据库未存储五元组信息,则创建与五元组信息对应路径的存储区域,将数据包的包头数据保存至五元组信息对应路径的存储区域。
可选的,样本模块具体用于:
判断当前数据流的各个数据包是否包含结束标识,如果存在一个数据包包含结束标识,则接收数据流已完成,提取数据流中数据包的包头数据作为第一样本。
可选的,样本模块具体用于:
在接收当前数据流完成的情况下,提取当前数据流中数据包的包头数据;
使用将当前数据流中数据包的包头数据进行编码,获得固定维度的向量,将固定维度的向量作为第一样本。
可选的,监督模块具体用于:
将第一样本输入半监督模型,利用半监督模型输出第一样本的类别;
计算第一训练样本集中各个样本的局部密度及最小距离,将局部密度超过密度阈值且最小距离超过距离阈值的样本作为第三样本;第一训练样本集为训练半监督模型所用样本组成的集合;
将第三样本添加至簇中,并且将第三样本确定为簇的簇中心点;簇的个数与第三样本个数相同,每个簇中只有一个第三样本;
如果第一样本与第三样本的距离超过簇的边界距离,则判定第一样本不位于簇的边界距离内;
如果第一样本与第三样本的距离未超过簇的边界距离,则判定第一样本位于簇的边界距离内。
可选的,更改模块具体用于:
在第一样本位于簇的边界距离内的情况下,如果第二训练样本集中存在与第一样本的类别相同的第二样本,则判定第一样本不是新类别的样本,并更新预设的机器识别模型的参数;第二训练样本集为训练机器识别模型所用的数据流组成的集合;
在第一样本位于簇的边界距离内的情况下,如果第二训练样本集中未存在与第一样本的类别相同的第二样本,则判定第一样本是新类别的样本,并在预设的机器识别模型的输出节点中增加一个输出节点,将增加输出节点后的机器识别模型作为在线识别模型。
可选的,更改模块具体用于:
在第一样本位于簇的边界距离内的情况下,如果第一样本是新类别的样本,则将预设的机器识别模型中参数维度增加一维,将增加参数维度后的机器识别模型作为在线识别模型。
可选的,更改模块具体用于:
在第一样本位于簇的边界距离内的情况下,如果第一样本是新类别的样本,则在预设的机器识别模型的输出节点中增加一个输出节点,将增加输出节点后的机器识别模型作为基础识别模型;
将第一样本输入基础识别模型,计算基础识别模型的损失函数对于基础识别模型中输出层权重及偏置的偏导;
在梯度下降的方向,利用参数更新公式更新基础识别模型输出层的权重及偏置;参数更新公式包含熟练度增量分别与基础识别模型的损失函数对于基础识别模型中输出层权重与偏置的偏导相乘的结果;
将更新权重及偏置后的所述基础识别模型确定为在线识别模型。
可选的,识别模块具体用于:
当前数据流后的下一个数据流中数据包个数达到预定个数的情况下,提取下一个数据流中数据包包头的数据作为第二样本;
将第二样本输入在线识别模型,利用在线识别模型输出第二样本的类别。
在本发明实施的又一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述任一所述的一种网络流量识别方法。
在本发明实施的又一方面,本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的一种网络流量识别方法。
本发明实施例提供的一种网络流量识别方法及装置,在接收当前数据流完成的情况下,提取当前数据流中数据包包头的数据,作为第一样本;将第一样本输入半监督模型,利用半监督模型输出第一样本的类别及第一样本是否位于簇的边界距离内的结果;在第一样本位于簇的边界距离内的情况下,如果第一样本是新类别的样本,则在预设的机器识别模型的输出节点中增加一个输出节点,将增加输出节点后的机器识别模型作为在线识别模型;使用在线识别模型,识别当前数据流后的下一个数据流的类别。相比于现有技术,本发明实施例通过半监督模型识别当前数据流的类别,基于识别类别判断当前数据流是否是新类别样本,更改机器识别模型的结构,将更改结构后的机器学习模型作为在线识别模型,识别当前数据流后的下一个的数据流的类别,可以提高识别数据流的类别实时性。
当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1为本发明实施例提供的一种网络流量识别方法的流程图;
图2为本发明实施例提供的对当前数据流进行存储的流程图;
图3为本发明实施例提供的预设半监督模型结构图;
图4为本发明实施例提供的LSTM编码器循环的网络结构图;
图5为本发明实施例提供的LSTM编码器的内部结构图;
图6为本发明实施例提供的预设的机器识别模型的结构图;
图7为本发明实施例提供的在线识别模型的结构图;
图8为本发明实施例提供的不同参数下熟练度的函数的效果图;
图9为本发明实施例提供的横轴为识别正确次数、纵轴为熟练度函数在不同参数下的效果图;
图10为本发明实施例提供的不同β下熟练度函数的效果图;
图11为本发明实施例提供的一种网络流量识别装置的结构图;
图12为本发明实施例提供的一种电子设备的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。
本发明实施例提供的一种网络流量识别方法及装置,在接收当前数据流完成的情况下,提取当前数据流中数据包包头的数据,作为第一样本;将第一样本输入半监督模型,利用半监督模型输出第一样本的类别及第一样本是否位于簇的边界距离内的结果;在第一样本位于簇的边界距离内的情况下,如果第一样本是新类别的样本,则在预设的机器识别模型的输出节点中增加一个输出节点,将增加输出节点后的机器识别模型作为在线识别模型;使用在线识别模型,识别当前数据流后的下一个数据流的类别。
下面首先对本发明实施例提供的一种网络流量识别方法作介绍。
如图1所示,本发明实施例提供的一种网络流量识别方法,应用于服务器,所述方法包括:
S101,在接收当前数据流完成的情况下,提取当前数据流中数据包的包头数据,作为第一样本;
在上述S101的步骤之前,本发明实施例提供的一种网络流量识别方法还包括对当前数据流进行存储:
如图2所示,对当前数据流进行存储步骤包括:
S201,依次接收当前数据流的数据包,并获取数据包的五元组信息;
其中,五元组信息为:源IP地址,目的IP地址,源端口号,目的端口号,传输层协议。
S202,判断数据库是否存储五元组信息,如果数据库存储五元组信息,则将数据包的包头数据保存至与五元组信息对应路径的存储区域;
S203,如果数据库未存储五元组信息,则创建与五元组信息对应路径的存储区域,将数据包的包头数据保存至五元组信息对应路径的存储区域。
本发明实施例通过将数据包的包头数据存储至五元组信息对应的存储区域,可以提高查找同一数据流中数据包的包头数据的效率。
为了提高识别数据流的类别实时性,上述S101中可以采用至少一种实施方式得到第一样本:
在一种可能的实施方式中,通过判断当前数据流的各个数据包是否包含结束标识,如果存在一个数据包包含结束标识,则接收数据流已完成;提取数据流中数据包的包头数据作为第一样本。
可以理解的,每个数据包包含结束标识,如果一条数据流传输结束,则该条数据流中最后一个数据包的结束标识就会改变,本实施方式通过判断数据流中数据包是否包含结束标识,可以快速的确定一条数据流是否接收完成。
在一种可能的实施方式中,通过以下步骤获得第一样本:
步骤一:在接收当前数据流完成的情况下,提取当前数据流中数据包的包头数据;
步骤二:使用将当前数据流中数据包的包头数据进行编码,获得固定维度的向量,将固定维度的向量作为第一样本。
可以理解的,一条网络流,是由一系列数据包组成的,每个数据包的包头格式非常规则,包含固定的字节数,分别有不同的字段值,比如对于一个TCP协议的数据包,其包头数据除可选字段外共有54字节,包括14字节的帧头、20字节的IP头和20字节的TCP头。如果将一条流的p个数据包,每个包头数据包含q个字节,将每个字节转换成无符号整数,一个包头数据作为一行,便得到一个固定维度的向量X∈Rp×q,其元素也是[0,255]的整数。因此本实施方式通过将包头数据进行编码,得到固定维度的向量,固定维度为p×q,将该固定维度的向量作为第一样本以此提高识别第一样本类别的效率。
S102,将第一样本输入半监督模型,利用半监督模型输出第一样本的类别及第一样本是否位于簇的边界距离内的结果;
其中,半监督模型是利用第一训练样本集训练得到,且包含已获得包头数据的类别与第一训练样本集中其余样本的分布关系;第一训练样本集中包含与至少一个有类别标签的样本;分布关系决定有类别标签的样本是否位于簇的边界距离内的结果。
可以理解的,训练得到半监督模型所需的第一训练样本集中,包含一部分有类别标签的样本,有类别标签的样本为一条类别确定后的已获得数据流的包头数据。剩余部分为无类别标签的样本。将第一训练样本集的样本分为若干个簇,每个簇中第一训练样本集的样本的分布已确定,则每个簇中有类别标签样本和无类别标签的样本的分布已经确定。因此将有类别标签样本训练得到半监督模型,包含了有类别标签的样本是否位于簇的边界距离内的结果。
在一种可能的实施方式中,可以通过如下步骤获得半监督模型:
步骤一,第一训练样本集中样本训练预设半监督模型,得到训练后的半监督模型;
如图3所示,预设半监督模型由LSTM(Long Short-Term Memory,长短期记忆网络)编码器、softmax层及CFSFDP(Clustering by Fast Search and Find of Density Peaks,基于密度峰值的聚类)层构成,将携带类别标签的样本输入LSTM编码器,通过LSTM编码器将长度不固定的数据流编码为固定维度的向量,由于固定维度的向量包含整个数据流序列输出,因此固定维度的向量可以代表整条数据流所有数据包的特征,softmax层用于将固定维度的向量,映射到固定的类别,softmax层可以输出包头数据的类别;然后将softmax层从预设半监督模型中去除,将携带类别标签的样本和不携带类别标签的样本输入LSTM编码器,将LSTM编码器的输出输入CFSFDP聚类层,主要是使用CFSFDP(Clustering by Fast Searchand Find of Density Peaks,基于密度峰值的聚类)算法确定固定维度的向量是否为簇的簇中心点及样本的类别。
如图4及图5所示,LSTM编码器将数据流编码为固定维度的向量的过程如下:
比如对于一个数据流{x0,x1,…,xt-1,xt},将数据流按照顺序输入如图4的循环的网络结构中,每个输入xt都可以有一个输出ht,同时将当前状态传递给下一个输入,如此输出ht中既包含了xt的信息,也包含了x0~xt-1的信息。
LSTM编码器的内部结构如图5,编码器输入端接收输入xt、上一个输出ht-1和上一次输入xt-1后编码器的状态Ct-1,假设每一步的输出ht的维度为128维,某条数据流共包含n个数据包,将整条流的所有数据包作为一个序列,每个数据包的包头数据为xt,该条数据流最后一个xn的输出hn。
其中,xt代表一个包头数据;t代表包头数据的序号;n代表一条数据流中数据包的总个数;ht代表LSTM编码器输入为xt时,LSTM编码器的输出;hn代表一条数据流输入LSTM编码器后,LSTM编码器的最后一个输出,即编码后的固定维度的向量。
步骤二,将测试样本集中的测试样本输入训练后的半监督模型,利用训练后的半监督模型输出测试样本集中测试样本的类别;
可以理解的,一条数据流中包头数据的类别标签是相同的,测试样本为整条数据流的包头数据,该类别标签标识该测试样本的类别。
步骤三,基于训练后的半监督模型测试样本集中测试样本的类别及测试样本集中测试样本的标签类别,确定训练后的半监督模型是否满足测试指标;
其中,测试指标为:正确率达到正确率阈值、精度达到精度阈值、召回率达到召回率阈值、F1分数达到F1分数阈值及/或Fβ分数达到Fβ分数阈值。
其中,正确率阈值、精度阈值、召回率阈值、F1分数阈值、Fβ分数阈值是预先设置的数值,正确率、精度、召回率、F1分数、Fβ分数分别使用正确率、精度、召回率、F1分数、Fβ分数公式计算得到。
步骤四,如果训练后的半监督模型不满足测试指标,则更新训练后的半监督模型中LSTM编码器的参数,直至训练后的半监督模型满足测试指标;
其中,编码器输出公式如下:
ft=σ(Wf·[ht-1,xt]+bf)
it=σ(Wi·[ht-1,xt]+bi)
ot=σ(Wo·[ht-1,xt]+bo)
ht=ot·tanh(Ct)
其中,LSTM编码器的内部参数为:W*和b*,W*代表权重参数,b*代表偏置参数,ft代表当前步遗忘门的激活值,为Sigmoid函数,Wf代表遗忘门的权重,ht-1代表上一步的输出,xt代表当前步的输入,bf代表遗忘门的偏置,it代表当前步输入门的激活值,Wi代表输入门的权重,bi代表输入门的偏置,代表当前步中间状态,WC代表状态权重,bC代表状态偏置,Ct-1代表上一步状态,Ct代表当前步的状态,ot代表当前步输出门激活值,Wo代表输出门权重,bo代表输出门偏置,i代表输入门的激活值,f代表遗忘门的激活值,t代表数据包编号,o代表输出门激活值,C代表状态。
如果训练后的半监督模型不满足测试指标,则更新训练后的半监督模型中LSTM编码器的参数Wf、bf、Wi、bi、WC、bC、Wo、bo。
步骤五,将满足测试指标的训练后的半监督模型确定为半监督模型。
本实施方式通过将满足测试指标的训练后的预设半监督模型确定为半监督模型,可以提高确定第一样本类别的准确率。
S103,在第一样本是位于簇的边界距离内的结果情况下,如果第一样本是新类别的样本,则在预设的机器识别模型的输出节点中增加一个输出节点,将增加输出节点后的机器识别模型作为在线识别模型;
S104,使用在线识别模型,识别当前数据流后的下一个数据流的类别。
相比于现有技术,本发明实施例通过半监督模型识别当前数据流的类别,基于识别类别判断当前数据流是否是新类别样本,更改机器识别模型的结构,将更改结构后的机器学习模型作为在线识别模型,识别当前数据流后的下一个的数据流的类别,提高在线识别模型适应网络环境的能力,可以提高识别数据流的类别实时性。
为了提高识别数据流的类别实时性,上述S102可以采用至少一种实施方式得到第一样本的类别及第一样本是否位于簇的边界距离内的结果:
在一种可能的实施方式中,通过如下步骤,得到第一样本的类别及第一样本是否位于簇的边界距离内的结果:
步骤一:将第一样本输入半监督模型,利用半监督模型输出第一样本的类别;
步骤二:计算第一训练样本集中各个样本的局部密度及最小距离,将局部密度超过密度阈值且最小距离超过距离阈值的样本作为第三样本;第一训练样本集为训练半监督模型所用样本组成的集合;
步骤三:将第三样本添加至簇中,并且将第三样本确定为簇的簇中心点;簇的个数与第三样本个数相同,每个簇中只有一个第三样本;
步骤四:如果第一样本与第三样本的距离超过簇的边界距离,则判定第一样本不位于簇的边界距离内;
其中,簇的边界距离内为以簇的簇中心点为球心,半径为边界距离所组成的球形区域包围的范围。
步骤五:如果第一样本与第三样本的距离未超过簇的边界距离,则判定第一样本位于簇的边界距离内。
首先,假设数据第一训练样本集为S={xj|j∈IS},其中,IS={1,2,…,n},dij表示xi样本和xj样本之间的距离,计算样本xi的局部密度φi和最小距离θi,Φ={φi|i∈IS}和Θ={θi|i∈IS},IS代表整数集,i与j都取正整数;Φ代表局部密度集合,Θ代表最小距离集合。
局部密度φi的计算公式为:或者其中,dc代表截断距离,是一个预先设置的数值,边界距离为m倍的截断距离,m为预先设定的数值;χ(·)为阶跃函数,x为阶跃函数的输入。
由局部密度φi的计算公式:可以看出,xi的φi相对大小与到xi的距离小于dc的样本个数有关,即小于dc的样本数越多,φi的值越大。该计算公式,可以将φi取值的离散值变为了连续值,提高计算局部密度准确率。
最小距离θi的计算公式为:将局部密度超过密度阈值且最小距离超过距离阈值作为第三样本。
其中,第三样本与第一样本的距离、dij都可以使用欧氏距离、曼哈顿距离、切比雪夫距离、闵可夫斯基距离、标准化欧氏距离或余弦相似度距离等公式计算得到。
本实施方式通过计算第一训练样本集中各个样本的局部密度及最小距离,如果第一样本与第三样本的距离未超过簇的边界距离,则判定第一样本位于簇的边界距离内,可以提高确定第一样本位于簇的边界距离内的效率。
在通过上述实施方式得到第一样本的类别及第一样本是否位于簇的边界距离内的结果的步骤之后,本发明实施例提供的一种网络流量识别方法还包括:更新簇的簇中心点。
在一种可能的实施方式中,通过如下步骤更新簇的簇中心点:
步骤一:基于第一训练样本集中各个样本的局部密度及最小距离,将局部密度超过密度阈值且最小距离未超过距离阈值的样本作为第四样本;
步骤二:将第四样本添加至距离第四样本最近的簇中心点所在的簇中;
步骤三:如果第一样本位于簇的边界距离内,则将第一样本添加至距离第一样本最近的簇中心点所在簇中;
步骤四:计算各个簇中样本的局部密度及最小距离,针对一个簇,将局部密度超过密度阈值且最小距离超过距离阈值的样本确定该簇的簇中心点,将更新中心点之后的簇作为更新后的簇。
本实施方式通过更新簇的簇中心点,可以提高确定第一样本是否位于簇的边界距离内的准确率。
在另一种可能的实施方式中,通过如下步骤,得到第一样本的类别及第一样本是否位于簇的边界距离内的结果:
步骤一:将第一样本输入半监督模型,利用半监督模型的输出节点输出第一样本所属不同类别的概率及第一样本是否位于簇的边界距离内的结果;输出节点与第一样本所属类别对应。
例如:第g个输出节点输出第一样本属于第g种类别的概率。
步骤二:在输出节点输出第一样本所属不同类别的概率中,选择概率最高的第一样本所属类别作为第一样本的类别。
本实施方式通过选择概率最高的第一样本所属类别作为第一样本的类别,可以提高确定第一样本的类别的准确率。
为了提高识别数据流的类别实时性,上述S103中可以采用至少一种实施方式得到在线识别模型:
在一种可能的实施方式中,通过如下步骤得到在线识别模型:
步骤一:在第一样本位于簇的边界距离内的情况下,如果第二训练样本集中存在与第一样本的类别相同的第二样本,则判定第一样本不是新类别的样本,并更新预设的机器识别模型的参数;第二训练样本集为训练机器识别模型所用的数据流组成的集合;
步骤二:在第一样本位于簇的边界距离内的情况下,如果第二训练样本集中未存在与第一样本的类别相同的第二样本,则判定第一样本是新类别的样本,并在预设的机器识别模型的输出节点中增加一个输出节点,将增加输出节点后的机器识别模型作为在线识别模型。
参考图6及图7,预设的机器识别模型Mo采用CNN(Convolutional NeuralNetworks,卷积神经网络),Mo的输出层包含K个节点,输出层的上一层包含J个节点,输出层与上一层之间连线代表输出层的参数,在第一样本位于簇的边界距离内的情况下,如果第二训练样本集中存在与第一样本的类别相同的第二样本,则判定第一样本不是新类别的样本,并更新预设的机器识别模型的输出层与上一层之间的参数。在第一样本位于簇的边界距离内的情况下,如果第二训练样本集中未存在与第一样本的类别相同的第二样本,则判定第一样本是新类别的样本,并在预设的机器识别模型的输出节点中增加一个输出节点,将增加输出节点后的机器识别模型作为在线识别模型。
在另一种可能的实施方式中,在第一样本位于簇的边界距离内的情况下,如果第一样本是新类别的样本,则将预设的机器识别模型中参数维度增加一维,将增加参数维度后的机器识别模型作为在线识别模型。
当第一样本属于新类别的样本,即X∈CK+1,对于参数化的预设的机器识别模型来说,增加一个输出节点意味着将预设的机器识别模型的输出层参数的维度增加一维,将W∈RJ×K→W∈RJ×(K+1),b∈RK→b∈RK+1,ρ∈RK→ρ∈RK+1,其中,W代表权重集合,R代表实数集,b代表偏置的集合,ρ代表熟练度的集合,→代表赋值,K输出节点的总个数。
在再一种可能的实施方式中,通过如下步骤得到在线识别模型:
步骤一:在所述第一样本位于簇的边界距离内的情况下,如果所述第一样本是新类别的样本,则在预设的机器识别模型的输出节点中增加一个输出节点,将增加输出节点后的所述机器识别模型作为基础识别模型;
步骤二:将第一样本输入基础识别模型,计算基础识别模型的损失函数对于基础识别模型中输出层权重及偏置的偏导;
步骤三:在梯度下降的方向,利用参数更新公式更新基础识别模型输出层的权重及偏置;参数更新公式包含熟练度的增量分别与基础识别模型的损失函数对于基础识别模型中输出层权重与偏置的偏导相乘的结果;
步骤四:将更新权重及偏置后的所述基础识别模型确定为在线识别模型。
假设基础识别模型输出层的上一层输出为:F={fj}∈RJ,输出层输出Y={yk}∈RK,权重W={wjk}∈RJ×K,偏置b={bk}∈RK。基础识别模型的输出层为softmax层,则可以推导得出基础识别模型的交叉熵损失函数为:其中,T={tk}∈RK是数据流类别的one-hot编码,yk=g(zk)是第k个输出节点的激活值,g(·)是softmax函数,softmax为: fj代表第j个节点的特征激活值,bk代表第k个节点的偏置,RK代表维度为K维,tk代表one-hot编码的第k位,zk代表第k个节点的激活值,wjk代表输出层上一层的节点j与输出节点为k之间的权重,i、k代表输出节点的序号,取正整数,k也代表one-hot编码中位数的序号,j代表输出层上一层的节点的序号,K输出节点的总个数,J为输出层上一层的节点个数,通过对上述损失函数求偏导数,可以得到权重和偏置的增量:其中I{·}为指示函数:
可以理解的是,每次利用新类别的样本训练基础识别模型得到在线识别模型,基础识别模型的参数都会不断的适应新类别的样本,学习新类别样本的特征,旧类别的样本不再参与训练。这种毫无限制使得在线学习模型适应新环境的训练方式存在严重的问题,即当基础识别模型内部参数的变化,会对已经学得的特征产生影响,甚至有可能完全破坏之前基础识别模型的能力,导致对不是新类别样本的识别发生严重错误,出现“灾难性遗忘”问题。
为了解决灾难性遗忘问题,需要使基础识别模型在学习新类别的样本和保留旧类别样本之间进行权衡。当基础识别模型的稳定性较高时,基础识别模型更加倾向于保留旧类别的样本的特征,而对于学习新类别样本的特征能力会减弱;相反,当基础识别模型可塑性较高时,将有更强的学习新类别样本的能力,同时也更容易遗忘旧类别的样本的特征,训练得到的在线识别模型适应网络环境的关键就在于在稳定性和可塑性之间取得不同的权衡。
为了在线识别模型的稳定性-可塑性可控,本发明实施例提出一种熟练度机制,该机制引入了一组额外的参数ρ={ρk}∈RK,ρ代表熟练度集合,ρk表示基础识别模型对于第k个节点输出的类别的熟练度,熟练度用于衡量在线识别模型对于各类别样本的识别能力。
其中,ρk∈[0,1),其初始值为0,表示初始情况下基础识别模型对于所有类别的分类熟练度都为0。为了利用熟练度来影响模型的稳定性-可控性,熟练度ρ应该具有以下的性质:
1)、熟练度受到识别样本类别的结果的影响。正确样本识别类别的次数越多,对应的熟练度越高;错误样本识别类别的次数越多,对应的熟练度越低。
2)、熟练度影响自身的变化。熟练度较低时,进一步提高或降低熟练度的难度小,熟练度自身增加或减少的快;熟练度越高,进一步提高或降低自身熟练度的难度越大,即熟练度增加或减少的越缓慢。
3)、熟练度影响学习或遗忘知识的难度。当熟练度较低时,学到更多的新类别样本的特征或忘记旧样本类别的特征相对容易,即模型参数更新的更快;相反,当熟练度较高时,学习或忘记的难度也越大,即模型参数更新的越慢。
举例说明,如果X∈Ck并且Y∈Ck,表明对于样例X对应的第k类的分类正确,则对应的熟练度ρk增加;如果X∈Ci但是Y∈Cj,表明将第i类错误的识别成了第j类,则对应的ρi和ρj降低。
参考图8,为了实现性质2和性质3,本发明实施例提出一个熟练度的函数用于计算熟练度的增量:
熟练度的函数为:其中α和β是两个参数,用来控制熟练度的函数的整体趋势,图8显示了不同α和β下的熟练度的函数的变化过程,当ρk较小时,熟练度的增量prof(ρk)较大,随着ρk增大,prof(ρk)和其导数都逐渐减小,当ρk增加到极限值1时,熟练度的增量prof(ρk)值为0,熟练度ρk不再进行更新。
熟练度ρk的更新的公式:ρk←ρk±prof(ρk),
参考图9,随着熟练度增加,熟练度的增量prof(ρk)逐渐减小,即基础识别模型参数更新的幅度逐渐减小;图9显示了不同参数下熟练度的增量prof(ρk)的变化情况,可见通过调整熟练度的增量的参数α和β,可以控制基础识别模型的更新速度。
因此,利用参数更新公式更新基础识别模型输出层的权重及偏置时,增加熟练度的增量,则参数更新公式为: 代表权重wjk的增量,代表偏置bk的增量。当熟练度的函数prof(ρk)用于更新权重W和偏置b时,需令以确保prof(0)=1,即当熟练度ρk=0时,熟练度函数不影响模型的更新;随着熟练度增加,增量系数prof(ρk)逐渐减小,即基础识别模型参数更新的幅度逐渐减小;当ρk→1时,prof(ρk)→0,即基础识别模型的更新幅度趋于0。
参考图10,在参数β不同的情况下,prof(ρk)的变化情况,β越大,prof(ρk)下降的速度越快。
根据以上的分析可知,通过熟练度集合ρ和熟练度的函数prof(ρk)的引入,利用熟练度的函数的两个参数α和β,可以控制基础识别模型更新参数的能力和速度,进而实现在线识别模型的稳定性和可塑性的权衡,解决“灾难性遗忘”问题。
举例说明数据流类别的one-hot编码,假设将第一训练集样本分为6类样本,基础识别模型的输出层有6个节点。为每一类样本指定了编号,第一训练集的样本类别包括“RDP(Remote Desktop Protocol,远程桌面协议)”,“比特洪流BitTorrent”,“Web(World WideWeb,万维网)”,“SSH(Secure Shell,安全外壳协议)”,“eDonkey(eDonkey Network,电驴)”,和“NTP(Network Time Protocol,网络时间协议)”,对应编号为:0、1、2、3、4、5,对应的one-hot编码为:100000、010000、001000、000100、000010、000001。假设第一训练集中一条样本的标签为0,该样本标签的编号为0,该样本的类别为“RDP”。基础识别模型识别该样本的类别的第1到第6个节点输出为0.5、0.1、0.1、0.1、0.1、0.1。其中,基础识别模型识别该样本为编码0的概率最高,基础识别模型的损失函数为:
L=-1·log0.5+(-0·log0.1)+(-0·log0.1)+(-0·log0.1)+(-0·log0.1)+(-0·log0.1)。
为了提高识别数据流的类别实时性,上述S104中可以采用至少一种实施方式识别当前数据流后的下一个数据流中数据包包头的数据的类别:
在一种可能的实施方式中,通过如下步骤,识别当前数据流后的下一个数据流中数据包包头的数据的类别:
步骤一:当前数据流后的下一个数据流中数据包个数达到预定个数的情况下,提取下一个数据流中数据包包头的数据作为第二样本;
步骤二:将第二样本输入在线识别模型,利用在线识别模型输出第二样本的类别。
下面继续对本发明实施例提供的一种网络流量识别装置作介绍。
如图11所示,本发明实施例提供的一种网络流量识别装置,应用于服务器,装置包括:
样本模块1101,用于在接收当前数据流完成的情况下,提取当前数据流中数据包的包头数据,作为第一样本;
监督模块1102,用于将第一样本输入半监督模型,利用半监督模型输出第一样本的类别及第一样本是否位于簇的边界距离内的结果;半监督模型是利用第一训练样本集训练得到且包含已获得包头数据的类别与第一训练样本集中其余样本的分布关系;第一训练样本集中包含与至少一个有类别标签的样本;分布关系决定有类别标签的样本是否位于簇的边界距离内的结果;
更改模块1103,用于在第一样本位于簇的边界距离内的情况下,如果第一样本是新类别的样本,则在预设的机器识别模型的输出节点中增加一个输出节点,将增加输出节点后的机器识别模型作为在线识别模型;
识别模块1104,用于使用在线识别模型,识别当前数据流后的下一个数据流的类别。
可选的,本发明实施例提供的一种网络流量识别装置还包括:
存储单元,用于依次接收当前数据流的数据包,并获取数据包的五元组信息;
判断数据库是否存储五元组信息,如果数据库存储五元组信息,则将数据包的包头数据保存至与五元组信息对应路径的存储区域;
如果数据库未存储五元组信息,则创建与五元组信息对应路径的存储区域,将数据包的包头数据保存至五元组信息对应路径的存储区域。
样本模块具体用于:
判断当前数据流的各个数据包是否包含结束标识,如果存在一个数据包包含结束标识,则接收数据流已完成,提取数据流中数据包的包头数据作为第一样本。
样本模块具体用于:
在接收当前数据流完成的情况下,提取当前数据流中数据包的包头数据;
使用将当前数据流中数据包的包头数据进行编码,获得固定维度的向量,将固定维度的向量作为第一样本。
监督模块具体用于:
将第一样本输入半监督模型,利用半监督模型输出第一样本的类别;
计算第一训练样本集中各个样本的局部密度及最小距离,将局部密度超过密度阈值且最小距离超过距离阈值的样本作为第三样本;第一训练样本集为训练半监督模型所用样本组成的集合;
将第三样本添加至簇中,并且将第三样本确定为簇的簇中心点;簇的个数与第三样本个数相同,每个簇中只有一个第三样本;
如果第一样本与第三样本的距离超过簇的边界距离,则判定第一样本不位于簇的边界距离内;
如果第一样本与第三样本的距离未超过簇的边界距离,则判定第一样本位于簇的边界距离内。
更改模块具体用于:
在第一样本位于簇的边界距离内的情况下,如果第二训练样本集中存在与第一样本的类别相同的第二样本,则判定第一样本不是新类别的样本,并更新预设的机器识别模型的参数;第二训练样本集为训练机器识别模型所用的数据流组成的集合;
在第一样本位于簇的边界距离内的情况下,如果第二训练样本集中未存在与第一样本的类别相同的第二样本,则判定第一样本是新类别的样本,并在预设的机器识别模型的输出节点中增加一个输出节点,将增加输出节点后的机器识别模型作为在线识别模型。
更改模块具体用于:
在第一样本位于簇的边界距离内的情况下,如果第一样本是新类别的样本,则将预设的机器识别模型中参数维度增加一维,将增加参数维度后的机器识别模型作为在线识别模型。
更改模块具体用于:
在第一样本位于簇的边界距离内的情况下,如果第一样本是新类别的样本,则在预设的机器识别模型的输出节点中增加一个输出节点,将增加输出节点后的机器识别模型作为基础识别模型;
将第一样本输入基础识别模型,计算基础识别模型的损失函数对于基础识别模型中输出层权重及偏置的偏导;
在梯度下降的方向,利用参数更新公式更新基础识别模型输出层的权重及偏置;参数更新公式包含熟练度的增量分别与基础识别模型的损失函数对于基础识别模型中输出层权重与偏置的偏导相乘的结果;
将更新权重及偏置后的所述基础识别模型确定为在线识别模型。
识别模块具体用于:
当前数据流后的下一个数据流中数据包个数达到预定个数的情况下,提取下一个数据流中数据包包头的数据作为第二样本;
将第二样本输入在线识别模型,利用在线识别模型输出第二样本的类别。
本发明实施例还提供了一种电子设备,如图12所示,包括处理器1201、通信接口1202、存储器1203和通信总线1204,其中,处理器1201,通信接口1202,存储器1203通过通信总线1204完成相互间的通信,
存储器1203,用于存放计算机程序;
处理器1201,用于执行存储器1203上所存放的程序时,实现如下步骤:
在接收当前数据流完成的情况下,提取当前数据流中数据包的包头数据,作为第一样本;
将第一样本输入半监督模型,利用半监督模型输出第一样本的类别及第一样本是否位于簇的边界距离内的结果;
在第一样本是位于簇的边界距离内的结果情况下,如果第一样本是新类别的样本,则在预设的机器识别模型的输出节点中增加一个输出节点,将增加输出节点后的机器识别模型作为在线识别模型;
使用在线识别模型,识别当前数据流后的下一个数据流的类别。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的一种网络流量识别方法。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的一种网络流量识别方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置/电子设备/计算机可读存储介质/计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种网络流量识别方法,其特征在于,应用于服务器,所述方法包括:
在接收当前数据流完成的情况下,提取所述当前数据流中数据包的包头数据,作为第一样本;
将所述第一样本输入半监督模型,利用所述半监督模型输出所述第一样本的类别及第一样本是否位于簇的边界距离内的结果;所述半监督模型是利用第一训练样本集训练得到且包含已获得包头数据的类别与第一训练样本集中其余样本的分布关系;所述第一训练样本集中包含与至少一个有类别标签的样本;所述分布关系决定所述有类别标签的样本是否位于簇的边界距离内的结果;
在所述第一样本是位于簇的边界距离内的结果情况下,如果所述第一样本是新类别的样本,则在预设的机器识别模型的输出节点中增加一个输出节点,将增加输出节点后的所述机器识别模型作为在线识别模型;
使用所述在线识别模型,识别当前数据流后的下一个数据流的类别。
2.根据权利要求1所述的方法,其特征在于,在在接收当前数据流完成的情况下,提取所述当前数据流中数据包包头的数据,作为第一样本的步骤之前,所述方法还包括:
依次接收当前数据流的数据包,并获取所述数据包的五元组信息;
判断数据库是否存储所述五元组信息,如果所述数据库存储所述五元组信息,则将所述数据包的包头数据保存至与所述五元组信息对应路径的存储区域;
如果所述数据库未存储所述五元组信息,则创建与所述五元组信息对应路径的存储区域,将所述数据包的包头数据保存至所述五元组信息对应路径的存储区域。
3.根据权利要求1所述的方法,其特征在于,所述在接收当前数据流完成的情况下,提取所述当前数据流中数据包的包头数据,作为第一样本,包括:
判断当前数据流的各个数据包是否包含结束标识,如果存在一个数据包包含结束标识,则接收数据流已完成,提取所述数据流中数据包的包头数据作为第一样本。
4.根据权利要求1所述的方法,其特征在于,所述在接收当前数据流完成的情况下,提取所述当前数据流中数据包的包头数据,作为第一样本,包括:
在接收当前数据流完成的情况下,提取所述当前数据流中数据包的包头数据;
使用将所述当前数据流中数据包的包头数据进行编码,获得固定维度的向量,将所述固定维度的向量作为第一样本。
5.根据权利要求1所述的方法,其特征在于,所述将所述第一样本输入半监督模型,利用所述半监督模型输出所述第一样本的类别及第一样本是否位于簇的边界距离内的结果,包括:
将所述第一样本输入半监督模型,利用所述半监督模型输出所述第一样本的类别;
计算所述第一训练样本集中各个样本的局部密度及最小距离,将局部密度超过密度阈值且最小距离超过距离阈值的样本作为第三样本;所述第一训练样本集为训练所述半监督模型所用样本组成的集合;
将所述第三样本添加至簇中,并且将所述第三样本确定为簇的簇中心点;所述簇的个数与第三样本个数相同,每个簇中只有一个第三样本;
如果所述第一样本与第三样本的距离超过簇的边界距离,则判定所述第一样本不位于簇的边界距离内;
如果所述第一样本与第三样本的距离未超过簇的边界距离,则判定所述第一样本位于簇的边界距离内。
6.根据权利要求1所述的方法,其特征在于,所述在所述第一样本位于簇的边界距离内的情况下,如果所述第一样本是新类别的样本,则在预设的机器识别模型的输出节点中增加一个输出节点,将增加输出节点后的所述机器识别模型作为在线识别模型,包括:
在所述第一样本位于簇的边界距离内的情况下,如果第二训练样本集中存在与所述第一样本的类别相同的第二样本,则判定所述第一样本不是新类别的样本,并更新预设的机器识别模型的参数;所述第二训练样本集为训练所述机器识别模型所用的数据流组成的集合;
在所述第一样本位于簇的边界距离内的情况下,如果第二训练样本集中未存在与所述第一样本的类别相同的第二样本,则判定所述第一样本是新类别的样本,并在预设的机器识别模型的输出节点中增加一个输出节点,将增加输出节点后的所述机器识别模型作为在线识别模型。
7.根据权利要求1所述的方法,其特征在于,所述在在所述第一样本位于簇的边界距离内的情况下,如果所述第一样本是新类别的样本,则在预设的机器识别模型的输出节点中增加一个输出节点,将增加输出节点后的所述机器识别模型作为在线识别模型,包括:
在所述第一样本位于簇的边界距离内的情况下,如果所述第一样本是新类别的样本,则将预设的机器识别模型中参数维度增加一维,将增加参数维度后的所述机器识别模型作为在线识别模型。
8.根据权利要求1所述的方法,其特征在于,所述在所述第一样本位于簇的边界距离内的情况下,如果所述第一样本是新类别的样本,则在预设的机器识别模型的输出节点中增加一个输出节点,将增加输出节点后的所述机器识别模型作为在线识别模型,包括:
在所述第一样本位于簇的边界距离内的情况下,如果所述第一样本是新类别的样本,则在预设的机器识别模型的输出节点中增加一个输出节点,将增加输出节点后的所述机器识别模型作为基础识别模型;
将所述第一样本输入所述基础识别模型,计算所述基础识别模型的损失函数对于所述基础识别模型中输出层权重及偏置的偏导;
在梯度下降的方向,利用所述参数更新公式更新所述基础识别模型输出层的权重及偏置;所述参数更新公式包含熟练度增量熟练度的增量分别与基础识别模型的损失函数对于所述基础识别模型中输出层权重与偏置的偏导相乘的结果;
将更新权重及偏置后的所述基础识别模型确定为在线识别模型。
9.根据权利要求1所述的方法,其特征在于,所述使用所述在线识别模型,识别当前数据流后的下一个数据流的类别,包括:
当前数据流后的下一个数据流中数据包个数达到预定个数的情况下,提取所述下一个数据流中数据包包头的数据作为第二样本;
将所述第二样本输入所述在线识别模型,利用所述在线识别模型输出所述第二样本的类别。
10.一种网络流量识别装置,其特征在于,应用于服务器,所述装置包括:
样本模块,用于在接收当前数据流完成的情况下,提取所述当前数据流中数据包的包头数据,作为第一样本;
监督模块,用于将所述第一样本输入半监督模型,利用所述半监督模型输出所述第一样本的类别及第一样本是否位于簇的边界距离内的结果;所述半监督模型是利用第一训练样本集训练得到且包含已获得包头数据的类别与第一训练样本集中其余样本的分布关系;所述第一训练样本集中包含与至少一个有类别标签的样本;所述分布关系决定所述有类别标签的样本是否位于簇的边界距离内的结果;
更改模块,用于在所述第一样本位于簇的边界距离内的情况下,如果所述第一样本是新类别的样本,则在预设的机器识别模型的输出节点中增加一个输出节点,将增加输出节点后的所述机器识别模型作为在线识别模型;
识别模块,用于使用所述在线识别模型,识别当前数据流后的下一个数据流的类别。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910036196.2A CN109873774B (zh) | 2019-01-15 | 2019-01-15 | 一种网络流量识别方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910036196.2A CN109873774B (zh) | 2019-01-15 | 2019-01-15 | 一种网络流量识别方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109873774A true CN109873774A (zh) | 2019-06-11 |
CN109873774B CN109873774B (zh) | 2021-01-01 |
Family
ID=66917604
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910036196.2A Active CN109873774B (zh) | 2019-01-15 | 2019-01-15 | 一种网络流量识别方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109873774B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111447151A (zh) * | 2019-10-30 | 2020-07-24 | 长沙理工大学 | 一种基于注意力机制的时空特征流量分类研究方法 |
CN111614514A (zh) * | 2020-04-30 | 2020-09-01 | 北京邮电大学 | 一种网络流量识别方法及装置 |
CN112367334A (zh) * | 2020-11-23 | 2021-02-12 | 中国科学院信息工程研究所 | 网络流量识别方法、装置、电子设备和存储介质 |
CN113326946A (zh) * | 2020-02-29 | 2021-08-31 | 华为技术有限公司 | 更新应用识别模型的方法、装置及存储介质 |
CN113472654A (zh) * | 2021-05-31 | 2021-10-01 | 济南浪潮数据技术有限公司 | 一种网络流量数据转发方法、装置、设备及介质 |
WO2022083509A1 (zh) * | 2020-10-19 | 2022-04-28 | 华为技术有限公司 | 一种数据流识别方法以及装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103150578A (zh) * | 2013-04-09 | 2013-06-12 | 山东师范大学 | 一种基于半监督学习的支持向量机分类器训练方法 |
CN104156438A (zh) * | 2014-08-12 | 2014-11-19 | 德州学院 | 一种基于置信度和聚类的未标记样本选择的方法 |
US20170026391A1 (en) * | 2014-07-23 | 2017-01-26 | Saeed Abu-Nimeh | System and method for the automated detection and prediction of online threats |
CN107729952A (zh) * | 2017-11-29 | 2018-02-23 | 新华三信息安全技术有限公司 | 一种业务流分类方法及装置 |
CN107846326A (zh) * | 2017-11-10 | 2018-03-27 | 北京邮电大学 | 一种自适应的半监督网络流量分类方法、***及设备 |
CN108900432A (zh) * | 2018-07-05 | 2018-11-27 | 中山大学 | 一种基于网络流行为的内容感知方法 |
CN109067612A (zh) * | 2018-07-13 | 2018-12-21 | 哈尔滨工程大学 | 一种基于增量聚类算法的在线流量识别方法 |
-
2019
- 2019-01-15 CN CN201910036196.2A patent/CN109873774B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103150578A (zh) * | 2013-04-09 | 2013-06-12 | 山东师范大学 | 一种基于半监督学习的支持向量机分类器训练方法 |
US20170026391A1 (en) * | 2014-07-23 | 2017-01-26 | Saeed Abu-Nimeh | System and method for the automated detection and prediction of online threats |
CN104156438A (zh) * | 2014-08-12 | 2014-11-19 | 德州学院 | 一种基于置信度和聚类的未标记样本选择的方法 |
CN107846326A (zh) * | 2017-11-10 | 2018-03-27 | 北京邮电大学 | 一种自适应的半监督网络流量分类方法、***及设备 |
CN107729952A (zh) * | 2017-11-29 | 2018-02-23 | 新华三信息安全技术有限公司 | 一种业务流分类方法及装置 |
CN108900432A (zh) * | 2018-07-05 | 2018-11-27 | 中山大学 | 一种基于网络流行为的内容感知方法 |
CN109067612A (zh) * | 2018-07-13 | 2018-12-21 | 哈尔滨工程大学 | 一种基于增量聚类算法的在线流量识别方法 |
Non-Patent Citations (1)
Title |
---|
梅国薇: "基于机器学习的网络流量分类***设计与实现", 《中国优秀硕士学位论文全文数据库》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111447151A (zh) * | 2019-10-30 | 2020-07-24 | 长沙理工大学 | 一种基于注意力机制的时空特征流量分类研究方法 |
CN113326946A (zh) * | 2020-02-29 | 2021-08-31 | 华为技术有限公司 | 更新应用识别模型的方法、装置及存储介质 |
WO2021169294A1 (zh) * | 2020-02-29 | 2021-09-02 | 华为技术有限公司 | 更新应用识别模型的方法、装置及存储介质 |
CN111614514A (zh) * | 2020-04-30 | 2020-09-01 | 北京邮电大学 | 一种网络流量识别方法及装置 |
CN111614514B (zh) * | 2020-04-30 | 2021-09-24 | 北京邮电大学 | 一种网络流量识别方法及装置 |
WO2022083509A1 (zh) * | 2020-10-19 | 2022-04-28 | 华为技术有限公司 | 一种数据流识别方法以及装置 |
CN112367334A (zh) * | 2020-11-23 | 2021-02-12 | 中国科学院信息工程研究所 | 网络流量识别方法、装置、电子设备和存储介质 |
CN113472654A (zh) * | 2021-05-31 | 2021-10-01 | 济南浪潮数据技术有限公司 | 一种网络流量数据转发方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109873774B (zh) | 2021-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109873774A (zh) | 一种网络流量识别方法及装置 | |
Wang et al. | App-net: A hybrid neural network for encrypted mobile traffic classification | |
CN109639739A (zh) | 一种基于自动编码器网络的异常流量检测方法 | |
CN111475680A (zh) | 检测异常高密子图的方法、装置、设备及存储介质 | |
CN114386538B (zh) | 一种标记监测指标的kpi曲线的波段特征的方法 | |
CN108986907A (zh) | 一种基于knn算法的远程医疗自动分诊方法 | |
CN109298225B (zh) | 一种电压量测数据异常状态自动识别模型***及方法 | |
CN116842459B (zh) | 一种基于小样本学习的电能计量故障诊断方法及诊断终端 | |
CN117041017B (zh) | 数据中心的智能运维管理方法及*** | |
CN109257383A (zh) | 一种bgp异常检测方法及*** | |
CN111581445A (zh) | 基于图基元的图嵌入学习方法 | |
Hu et al. | A novel SDN-based application-awareness mechanism by using deep learning | |
CN114398891B (zh) | 基于日志关键词生成kpi曲线并标记波段特征的方法 | |
Yan et al. | TL-CNN-IDS: transfer learning-based intrusion detection system using convolutional neural network | |
Ullah et al. | Adaptive data balancing method using stacking ensemble model and its application to non-technical loss detection in smart grids | |
Zhifang et al. | Optimization of decision tree machine learning strategy in data analysis | |
WO2022206040A1 (zh) | 面向推理的应用流量和指标向量化方法及*** | |
Li et al. | Intrusion detection using temporal convolutional networks | |
Blanco et al. | A Comparison of Smart Grids Domain Ontologies. | |
CN104615605B (zh) | 用于预测数据对象的类目的方法和装置 | |
CN114328921A (zh) | 一种基于分布校准的小样本实体关系抽取方法 | |
CN113420733A (zh) | 一种高效分布式大数据数据采集实现方法及*** | |
Bienvenu et al. | The Moran forest | |
CN110222727A (zh) | 一种基于深度神经网络的短期负荷预测方法及装置 | |
CN108710980A (zh) | 航天型号产品合同履行绩效的评价方法、装置和实现装置 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |