当前位置: 首页 > 专利查询>鹏城实验室专利>正文

一种基于知识蒸馏的数据包分类方法及相关装置制造方法及图纸

技术编号:33283414 阅读:21 留言:0更新日期:2022-04-30 23:45
本申请公开了一种基于知识蒸馏的数据包分类方法及相关装置,所述方法包括基于经过训练的教师模型,确定预设训练集中的各训练数据包各自对应的类别概率向量;基于各训练数据包及其对应的属性数据和类别概率向量构建二进制决策树模型;根据二进制决策树模型生成三元匹配流表并将三元匹配流表部署于可编程交换机,并通过可编程交换机对数据包进行分类。本申请基于预先训练的教师模型所学的知识构建二进制决策树模型,以将复杂的教师模型转换为简单的二进制决策树模型,使得学习到教师模型所学的知识的二进制决策树模型可以布置于可编程交换机,这样一方面可以利用可编程交换机的数据包处理能力,另一方面可以提高可编程交换机的数据包分类效率。换机的数据包分类效率。换机的数据包分类效率。

【技术实现步骤摘要】
一种基于知识蒸馏的数据包分类方法及相关装置


[0001]本申请涉及网络
,特别涉及一种基于知识蒸馏的数据包分类方法及相关装置。

技术介绍

[0002]数据包分类可以理解为根据数据包包头数据确定数据包所匹配的类别,并按照类别对应的操作动作对数据包进行处理,比如,丢弃数据包或者接受数据包等。目前普遍采用可编程交换机来执行数据包分类操作,可编程交换机具有低延迟和高吞吐等性能,并且可编程交换机在进行数据包分类过程中,允许管理员通过简单的编程指令对数据包进行操作。然而,可编程交换机所支持的编程指令所能执行的操作比较少(例如,仅支持整数的加减和位移操作等),这使得具有高精度的分类网络模型(例如,卷积神经网络以及循环神经网络等),从而限制了可编程交换机的数据包分类效率。
[0003]因而现有技术还有待改进和提高。

技术实现思路

[0004]本申请要解决的技术问题在于,针对现有技术的不足,提供一种基于知识蒸馏的数据包分类方法及相关装置。
[0005]为了解决上述技术问题,本申请实施例第一方面提供了一种基于知识蒸馏的数据包分类方法,所述的方法包括:
[0006]基于经过训练的教师模型,确定预设训练集中的各训练数据包各自对应的类别概率向量;
[0007]基于各训练数据包及其对应的属性数据和类别概率向量构建二进制决策树模型,其中,所述二进制决策树模型中的各叶节点均对应有目标分类类别;
[0008]根据所述二进制决策树模型生成用于数据包分类的三元匹配流表;
[0009]将所述三元匹配流表部署于可编程交换机,并通过所述可编程交换机对数据包进行分类。
[0010]所述的基于知识蒸馏的数据包分类方法,其中,所述属性数据为基于训练数据包的二进制数据包头确定的。
[0011]所述的基于知识蒸馏的数据包分类方法,其中,所述基于各训练数据包及其对应的属性数据和类别概率向量构建二进制决策树模型具体包括:
[0012]将各训练数据包及其对应的类别概率向量构成的训练数据集作为目标训练集,并将各训练数据包对应的属性数据构成的属性数据集作为目标属性数据集;
[0013]基于所述目标属性数据集确定目标属性位,并基于所述目标属性位将所述目标训练集中的各训练数据包划分至两个节点上;
[0014]对于两个节点中所包括的训练数据包的数量小于预设数量阈值的第一节点,将所述节点作为叶节点,并基于所述叶节点所包括的各训练数据包各自对应的类别概率向量确
定所述叶节点对应的目标分类类别;
[0015]对于两个节点中所包括的训练数据包的数量大于或者等于预设数量阈值的第二节点,将所述目标属性数据集中的各属性数据中位于目标属性位的属性元素去除以得到候选属性数据;
[0016]将所述第二节点所包括的各训练数据包以其对应的类别概率向量所形成的训练数据作为目标数据集,将所述第二节点所包括的各训练数据包各自对应的候选属性数据所形成的属性数据集作为目标属性数据集;
[0017]继续执行基于所述目标属性数据集确定目标属性位的步骤,直至将所述预设训练集中的各训练数据包均划分至叶节点内。
[0018]所述的基于知识蒸馏的数据包分类方法,其中,所述基于所述目标属性数据集确定目标属性位之前,所述方法还包括:
[0019]检测所述目标属性数据集是否满足预设条件,其中,所述预设条件为所述目标属性数据集不为空,且所述目标属性数据集至少存在两个互不相同的属性数据;
[0020]若所述目标属性数据集满足预设条件,则执行基于所述目标属性数据集确定目标属性位的步骤;
[0021]若所述目标属性数据集不满足预设条件,则将所述目标训练集所属的节点作为叶节点,并基于所述叶节点所包括的各训练数据包各自对应的类别概率向量确定所述叶节点对应的目标分类类别。
[0022]所述的基于知识蒸馏的数据包分类方法,其中,所述基于所述目标属性数据集确定目标属性位之前,所述方法还包括:
[0023]基于所述目标训练集中的各训练数据包各自对应的类别概率向量确定各训练数据包对应的预测类别;
[0024]若各训练数据包对应的预测类别全相同,则将所述目标训练集所属的节点作为叶节点,并将所述预测类别作为所述叶节点对应的目标分类类别;
[0025]若各训练数据包对应的预测类别不全相同,则执行基于所述目标属性数据集确定目标属性位的步骤。
[0026]所述的基于知识蒸馏的数据包分类方法,其中,所述基于所述叶节点所包括的各训练数据包各自对应的类别概率向量确定所述叶节点对应的目标分类类别具体包括:
[0027]获取所述叶节点所包括的各训练数据包各自对应的类别概率向量的平均类别概率向量;
[0028]将所述平均类别概率向量中的最大向量元素所对应的类别作为所述叶节点对应的目标分类类别。
[0029]所述的基于知识蒸馏的数据包分类方法,其中,所述目标属性位的选取规则为:
[0030]a
*
=arg min Gini(D,a
i
)i∈{1,2,...,m}
[0031][0032]其中,a
*
表示目标属性,D表示目标训练集,a
i
表示属性数据中的第i位属性,D
v
表示目标训练集中的训练数据包在第i位属性上取值为v的训练数据包所形成的数据集;表示D
v
中的各训练数据包的类别概率向量的平均类别概率向量;|D|表示目标训练集所包括
的训练数据包的数量;|D
v
|表示D
v
所包括的训练数据包的数量;m表示目标属性集中的属性数据的数据位数。
[0033]所述的基于知识蒸馏的数据包分类方法,其中,所述根据所述二进制决策树模型生成用于数据包分类的三元匹配流表包括:
[0034]获取所述二进制决策树模型中的各叶节点各自对应的二进制字符串及目标分类类别;
[0035]将各叶节点对应的二进制字符串以及目标分类类别转换为三元数据组,将各叶节点对应的三元数据组所形成的数据表作为三元匹配流表。
[0036]所述的基于知识蒸馏的数据包分类方法,其中,所述通过所述可编程交换机对数据包进行分类具体包括:
[0037]当可编辑交换机接收到待分类数据包时,获取于所述待分类数据包对应的分类属性数据;
[0038]在所述三元匹配流表中查找所述分类属性数据所对应的目标分类类别,以分类所述待分类数据包。
[0039]所述的基于知识蒸馏的数据包分类方法,其中,所述三元匹配流表包括掩膜、值以及类别;所述在所述三元匹配流表中查找所述分类属性数据所对应的目标分类类别,以分类所述待分类数据包具体包括:
[0040]对于所述三元匹配流表中的每个三元数据组,将所述分类属性数据与所述三元数据组中的掩膜相与,以得到候选值;
[0041]若所述候选值与所述三元数据组中的值相等,则将所述三元数据组中的类本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于知识蒸馏的数据包分类方法,其特征在于,所述的方法包括:基于经过训练的教师模型,确定预设训练集中的各训练数据包各自对应的类别概率向量;基于各训练数据包及其对应的属性数据和类别概率向量构建二进制决策树模型,其中,所述属性数据为基于训练数据包的二进制数据包头确定的;根据所述二进制决策树模型生成用于数据包分类的三元匹配流表;将所述三元匹配流表部署于可编程交换机,并通过所述可编程交换机对数据包进行分类。2.根据权利要求1所述的基于知识蒸馏的数据包分类方法,其特征在于,所述二进制决策树模型中的各叶节点均对应有目标分类类别。3.根据权利要求1所述的基于知识蒸馏的数据包分类方法,其特征在于,所述基于各训练数据包及其对应的属性数据和类别概率向量构建二进制决策树模型具体包括:将各训练数据包及其对应的类别概率向量构成的训练数据集作为目标训练集,并将各训练数据包对应的属性数据构成的属性数据集作为目标属性数据集;基于所述目标属性数据集确定目标属性位,并基于所述目标属性位将所述目标训练集中的各训练数据包划分至两个节点上;对于两个节点中所包括的训练数据包的数量小于预设数量阈值的第一节点,将所述节点作为叶节点,并基于所述叶节点所包括的各训练数据包各自对应的类别概率向量确定所述叶节点对应的目标分类类别;对于两个节点中所包括的训练数据包的数量大于或者等于预设数量阈值的第二节点,将所述目标属性数据集中的各属性数据中位于目标属性位的属性元素去除以得到候选属性数据;将所述第二节点所包括的各训练数据包以其对应的类别概率向量所形成的训练数据作为目标数据集,将所述第二节点所包括的各训练数据包各自对应的候选属性数据所形成的属性数据集作为目标属性数据集;继续执行基于所述目标属性数据集确定目标属性位的步骤,直至将所述预设训练集中的各训练数据包均划分至叶节点内。4.根据权利要求3所述的基于知识蒸馏的数据包分类方法,其特征在于,所述基于所述目标属性数据集确定目标属性位之前,所述方法还包括:检测所述目标属性数据集是否满足预设条件,其中,所述预设条件为所述目标属性数据集不为空,且所述目标属性数据集至少存在两个互不相同的属性数据;若所述目标属性数据集满足预设条件,则执行基于所述目标属性数据集确定目标属性位的步骤;若所述目标属性数据集不满足预设条件,则将所述目标训练集所属的节点作为叶节点,并基于所述叶节点所包括的各训练数据包各自对应的类别概率向量确定所述叶节点对应的目标分类类别。5.根据权利要求3或4所述的基于知识蒸馏的数据包分类方法,其特征在于,所述基于所述目标属性数据集确定目标属性位之前,所述方法还包括:基于所述目标训练集中的各训练数据包各自对应的类别概率向量确定各训练数据包
对应的预测类别;若各训练数据包对应的预测类别全相同,则将所述目标训练集所属的节点作为叶节点,并将所述预测类别作为所述叶节点对应的目标分类类别;若各训练数据包对应的预测类别不全相同,则执行基于所述目标属性数据集确定目标属性位的步骤。6.根据权利要求3或4所述的基于知识蒸馏的数据包分类方法,其特征在于,所述基于所述叶节点所包括的各训练数据包各自对应的类别概率向量确定所述叶节点对应的目标分类类别具体包括:获取所述叶节点所包括的各训练数据包各自对应的类别概率向量的平均类别概率向量;将所述平均类别概率向量中的最大向量元素所对应的类别作为所述叶节点对应...

【专利技术属性】
技术研发人员:李清谢国锐段光林董宇韬江勇刘冀洵刘凯齐竹云
申请(专利权)人:鹏城实验室
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1