CN114095447B - 一种基于知识蒸馏与自蒸馏的通信网络加密流量分类方法 - Google Patents
一种基于知识蒸馏与自蒸馏的通信网络加密流量分类方法 Download PDFInfo
- Publication number
- CN114095447B CN114095447B CN202111382473.9A CN202111382473A CN114095447B CN 114095447 B CN114095447 B CN 114095447B CN 202111382473 A CN202111382473 A CN 202111382473A CN 114095447 B CN114095447 B CN 114095447B
- Authority
- CN
- China
- Prior art keywords
- model
- classification
- traffic
- training
- flow
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 56
- 238000004891 communication Methods 0.000 title claims abstract description 45
- 238000013140 knowledge distillation Methods 0.000 title claims abstract description 25
- 238000004821 distillation Methods 0.000 title claims abstract description 23
- 238000007906 compression Methods 0.000 claims abstract description 90
- 230000006835 compression Effects 0.000 claims abstract description 87
- 238000012549 training Methods 0.000 claims abstract description 66
- 238000004364 calculation method Methods 0.000 claims abstract description 12
- 238000012360 testing method Methods 0.000 claims description 15
- 239000013598 vector Substances 0.000 claims description 15
- 238000005516 engineering process Methods 0.000 claims description 7
- 238000013138 pruning Methods 0.000 claims description 5
- 238000012545 processing Methods 0.000 claims description 4
- 238000012795 verification Methods 0.000 claims description 4
- 230000000694 effects Effects 0.000 claims description 3
- 238000011156 evaluation Methods 0.000 claims description 3
- 238000010606 normalization Methods 0.000 claims description 3
- 101100001677 Emericella variicolor andL gene Proteins 0.000 claims 1
- 230000006870 function Effects 0.000 description 32
- 238000013527 convolutional neural network Methods 0.000 description 5
- 238000007689 inspection Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000013528 artificial neural network Methods 0.000 description 4
- 238000013136 deep learning model Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 238000000605 extraction Methods 0.000 description 3
- 238000010801 machine learning Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 239000002360 explosive Substances 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000003058 natural language processing Methods 0.000 description 2
- 238000003062 neural network model Methods 0.000 description 2
- 238000010200 validation analysis Methods 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 238000013137 model compression technique Methods 0.000 description 1
- 238000011002 quantification Methods 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
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/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/04—Architecture, e.g. interconnection topology
- G06N3/047—Probabilistic or stochastic 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
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- 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/2483—Traffic characterised by specific attributes, e.g. priority or QoS involving identification of individual flows
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Molecular Biology (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Probability & Statistics with Applications (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Traffic Control Systems (AREA)
Abstract
本发明提供一种基于知识蒸馏与自蒸馏的通信网络加密流量分类方法,包括如下步骤:S10,获取通信网络中的加密流量;S20,构建并训练流量分类的基本模型;S30,压缩训练好的基本模型,获取流量分类压缩模型;S40,采用教师网络更新策略的知识蒸馏方式训练流量分类压缩模型;S50,利用训练好的流量分类压缩模型进行通信网络加密流量分类。本发明可以获得加密流量识别准确率较高的流量分类压缩模型,并且显著降低流量分类所需要的计算资源,可以在自组织网络或移动边缘网络等计算能力受限制的通信网络站点上部署。
Description
技术领域
本发明涉及无线通信技术领域,具体而言,涉及一种基于知识蒸馏与自蒸馏的通信网络加密流量分类方法。
背景技术
截至2020年12月底,我国市场上可以监测到的移动互联网应用(Application)数量可以达到345万款,2020年移动互联网的流量消费达1656亿GB。视频、文字等通信流量爆炸式增长,给通信网络管理尤其是网络带宽分配带来了极大的挑战。具有相同的源站点IP地址、源站点端口号、目的站点IP地址、目的站点端口号和相同的传输协议的数据包在一段时间内形成一组通信流量。对通信流量正确的分类可以方便运维人员对网络进行监管,比如在某个站点可以根据流量分类结果判断该站点是否受到恶意流量的攻击;对于数据量较大的某一类流量,可以为之分配更大的通信带宽,以满足相应用户的服务质量要求。
常见的流量分类方法可以分为基于端口号、基于深度包检测以及基于机器学习的流量分类方法。基于端口号的分类方法是出现最早的一种方法,由于不同的协议对应着不同的端口,可以根据这一特征进行不同类型的流量识别,比如可以将流量分为会话、视频以及文字等类型。这一方法比较简单也是早期应用比较广泛的一种方法,然而,随着端口匿名化以及动态端口等技术的发展,某些流量可以伪装或者改变自己的端口号,这使得基于端口号的方法分类准确度大大降低,难以满足网络监管的需求。基于深度包检测的方法可以克服这一问题,它不再依赖于端口号检测而是参照一个预先定义的协议指纹库,即根据不同的协议和与之唯一对应的指纹信息将通信网络流量划分为不同的类别,这种方法取得了比基于端口号方法更高的分类准确率,应用也更为广泛。但是,新的应用不断出现,需要不断更新指纹信息库来保证分类的性能,并且指纹库的维护会耗费大量的时间与资源。此外,基于端口号和基于深度包检测的方法只适用于非加密的流量。目前,绝大多数通信网络流量在传输时进行了加密处理以防止用户隐私数据的泄露。这使得上述提及的两种方法并不适用于加密流量分类。第三种基于机器学习的流量分类方法可以对加密流量以及非加密流量进行分类。它从流量数据集中根据一些预先定义的特征,比如数据包的长度,流量的持续时间等对流量分类器进行训练,训练好的分类器可以区分不同类型的流量。然而,这一方法过于依赖人为选择的数据特征和复杂的特征工程,并且这一方法的分类准确率易受到主观误差的影响。
深度学习可以直接从原始数据中提取特征而省略复杂的特征工程,在计算机视觉、自然语言处理方面得到了广泛的应用。由于流量数据与自然语言相似,都是一维数据信息,有些研究者开始深度学习模型进行流量分类。Salman Ola等人提出了一种基于卷积神经网络(CNN)和堆叠式编码器网络(SAE)的流量分类方法。对于加密流量分类,TianShiming等人设计了一种端到端的方法,直接寻找原始输入到期望输出的非线性的关系,实现端到端的学习。这些庞大的模型对于加密流量的识别都表现出了不错的性能。但是,在边缘计算场景,比如传感网以及多跳自组网中,站点的运算能力十分受限,在这些站点上部署深度学习模型来对不同的流量进行区分以实现网络资源的动态管理是十分困难的。
模型压缩技术旨在将尺寸较大的深度网络模型通过一定的技术手段得到轻量级的网络模型。网络剪枝、知识蒸馏以及量化是三种常见的网络模型压缩技术。网络剪枝通过删除大模型中的一些不重要的参数,比如权重参数,来降低模型的冗余度。知识蒸馏采用教师-学生网络模型,其中,教师网络是一个已经训练好的,性能好(比如分类准确度较高)的模型。相比较于教师网络来说,学生网络则是一个深度或者神经网络层数都较小的网络模型。将教师网络最后一层softmax函数输出概率值进行软化,得到平滑后的各个类别的“软概率”,“软概率”包含各个类别之间的相似度信息,在训练学生网络模型时,将“软概率”包含的相似度信息引入到学生网络中,使得学生网络可以学习到更多的关于类别之间概率相似度信息,从而加快学生网络的训练过程以及提高学生网络的分类准确率。自蒸馏是近年来出现的一种新的网络模型压缩技术,属于知识蒸馏技术的一个新的分支。自蒸馏不需要一个预先训练好的教师网络,而是将待训练的模型分为几个部分,将最后一层的输出信息,比如类别之间的相似度信息以及特征图的信息提前引入到前面浅层部分,依次加快整个模型的训练过程,在保存时只需要根据不同的分类准确度要求对网络结构选择性保存,此方法在图像识别领域应用较为广泛。量化则是在保证网络分类准确度的前提下,将神经网络的各个参数值以更小的精度存储,从而减小网络实际部署时占用的存储空间。
综上所述,上述的流量分类方法存在以下问题:
1、流量分类准确率与模型复杂度的问题
传统的基于端口号、基于深度包检测以及基于机器学习的流量分类方法,都依赖于人工设计的某些规则,再加上它们本身在部署时也需要耗费较多的资源,在目前流量爆炸式增长的网络环境中分类准确率大大降低,已经不再适用。基于深度学习的流量分类方法,深度神经网络模型往往设计的十分复杂来提高从原始数据中提取流量特征的能力,从而使得分类准确率较高。Lotfollahi M等人提出的用于加密流量分类的深度模型参数量达到3.45×107,运算量达到1.68×108,而对于一个传感网中的站点来说,其体积以及资源存储能力十分受限,绝大多数的存储空间只有70~80kB,实际中,深度学习模型难以在这些站点上进行部署。原因在于:当一条流量数据输入到已经训练好的模型中的时候,需要依次经过卷积层进行特征提取,再通过激活函数如ReLu函数进行非线性关系的引入,最后经过全连接层和softmax函数得到该流量属于每一个类别的概率值,这一过程的计算十分复杂,此外还要涉及到内存的读取,参数的调用,十分耗费计算资源。
2、模型结构设计与流量特征学习问题
前面提及过网络流量是按照时间顺序排列,在一段时间内由具有相同的源站点IP地址、源站点端口号、目的站点IP地址、目的站点端口号以及传输协议的数据包形成的。更细致地来说,由字节组成数据包,由数据包按照时间顺序组成流量。这反映了网络流量数据本身含有时间信息以及字节之间的序列信息的。如果想要采用深度神经网络模型对流量数据信息进行提取,必须要考虑到模型结构的设计问题。卷积神经网络(CNN)已经在自然语言处理领域得到了广泛应用,它可以很好的提取一维数据之间的信息,比如词向量之间的依赖关系。考虑到流量数据本身也是一系列字节构成的,因此可以选择CNN模型结构。考虑到流量本身包含的时间信息,可以使用LSTM或RNN模型结构,但是这些模型结构都不能很好的兼顾时间与序列特征的提取能力,从而会使得分类准确率受到限制。
3、训练损失函数选择与流量数据信息提取不充分的问题
现有的加密流量分类的深度学习模型,绝大多数在训练时采用了交叉熵损失函数,这是因为交叉熵损失函数适用于多分类问题而流量分类本身也是一个多分类任务。但是交叉熵损失函数只是衡量了模型输出的预测值与训练数据中真实的标签值之间的差异,类别与类别之间的概率差异信息在交叉熵损失函数中体现不明显。比如对于具体的应用YouTube,Vimeo和SFTP,YouTube和Vimeo都属于视频类的流量,它们之间的相似度是高于YouTube与SFTP之间的相似度的。传统的交叉熵损失函数对这一相似度信息的差异衡量地不充分,这在一定程度上限制了分类准确率的提升。
发明内容
本发明旨在提供一种基于知识蒸馏与自蒸馏的通信网络加密流量分类方法,以解决上述流量分类方法存在的问题。
本发明提供的一种基于知识蒸馏与自蒸馏的通信网络加密流量分类方法,包括如下步骤:
S10,获取通信网络中的加密流量;
S20,构建并训练流量分类的基本模型;
S30,压缩训练好的基本模型,获取流量分类压缩模型;
S40,采用教师网络更新策略的知识蒸馏方式训练流量分类压缩模型;
S50,利用训练好的流量分类压缩模型进行通信网络加密流量分类。
进一步的,步骤S10包括如下子步骤:
S11,通过捕获工具CapAnalysis或爬虫工具获取通信网络中的加密流量;
S12,对获取的通信网络中的加密流量进行类别标记;
S13,对每一类别的加密流量进行截断或补零处理,使得处理后的加密流量总长度为L字节;包括L1字节的TCP数据,L2字节的UDP数据以及L3字节的有效载荷数据;其中,L,L1,L2,L3均为正整数且L=L1+L2+L3;
S14,对加密流量的每一个字节进行归一化,即对每一字节除以255使每一字节的取值范围为[0,1];
S15,完成归一化后获得加密流量数据库,将加密流量数据库按照训练集p1%、测试集P2%、验证集P3%的比例进行划分,其中,p1%+p2%+p3%=100%。
进一步的,步骤S20包括如下子步骤:
S21,构建流量分类的基本模型:
(1)记用于通信网络加密流量分类的基本模型为M,该基本模型M包括N个浅层部分,分别记作M1,M2,...,MN;每一个浅层部分均包括卷积层和batchnorm层;在每一个浅层部分最后的卷积层后面额外添加子模块,将N个浅层部分后的N个子模块分别记作M1′,M2′,...,MN′;每个子模块包含一个具有Vg个卷积核的卷积层以及一个softmax层;该softmax层的作用是使用softmax函数将输入到该softmax层的未归一化的每一类别对应的概率值映射为归一化的概率值;
(2)对于一个浅层部分Mi而言,其输入为特征图Xi,经过其对应的子模块的卷积层以后的输出为特征图Fi,经过其子模块对应的softmax层(T>1)以后输出软概率向量经过其子模块对应的softmax层(T=1)以后输出硬概率向量/>
S22,训练流量分类的基本模型:
(3)将训练集中的每一条加密流量,输入到基本模型中,采用所述损失函数进行训练,将损失函数的值对基本模型进行反向更新直到基本模型收敛后结束训练;
(4)训练结束以后,使用测试集对基本模型进行测试,以验证其泛化能力,对基本模型的结构以及训练得到的参数值进行保存,得到训练好的基本模型为E0。
进一步的,所述softmax层中的softmax函数的表达式如下:
其中,a=1,2,...,C,b=1,2,...,C,C表示加密流量的类别总数;p∈[0,1]是一个概率值;T∈R表示温度值;za和zb表示输入到softmax层中的未归一化的每一类别对应的几率,当T=1时,对应的输出称为硬概率;当T>1时,对应的输出称为软概率。
进一步的,所述流量分类的基本模型的训练方式为自蒸馏模式;训练时所采用的损失函数loss1的表达式为:
其中,αn,β,γ∈[0,1]表示权重因子,f1(·)表示交叉熵损失函数,f2(·)表示KLdivergence损失函数,y表示训练集中加密流量真实的类别标签。
进一步的,步骤S30中所述压缩训练好的基本模型的方法为:采用通道剪枝技术,将所述训练好的基本模型E0的冗余的卷积核去掉,获取流量分类压缩模型。
进一步的,步骤S30包括如下子步骤:
S31,对于训练好的基本模型E0的每一个卷积核,计算其权重向量的L-2范数的平方值;
S32,按照每一个卷积核权重向量的L-2范数的平方值的大小对所有的卷积核进行排序;根据压缩比例Cp去除相应数量的卷积核;得到流量分类压缩模型的结构;
S33,对未被去除的卷积核,将其对应的在训练好的基本模型E0中的参数值赋值到流量分类压缩模型的结构中,实现流量分类压缩模型的初始参数的赋值,从而得到流量分类压缩模型。
进一步的,所述压缩比例Cp的计算公式如下:
其中,KP表示需要去除的卷积核对应的参数量,KT表示基本模型中所含有的全部的参数量。
进一步的,步骤S40包括如下子步骤:
S41,对流量分类压缩模型中涉及的参数进行初始化:流量分类的基本模型的分类准确率acc0,压缩过程采用K步压缩,即一共采用K步达到压缩比例Cp,每一步的流量分类压缩模型记作每一步的压缩比例为/>且/>设置流量分类压缩模型的训练总周期为R,评估周期为F且F<R;设置教师网络模型初始为W=E0;
S42,在压缩步骤u(u≤K)的第r(r≤R)个训练周期,判断r/F=0是否成立?若是,使用验证集中的加密流量计算流量分类压缩模型流量分类的准确率,若计算得到的准确率高于教师网络模型的准确率,则将教师网络模型更新,即令/>否则,使教师网络模型保持不变;
S43,对于训练集中的每一条加密流量,将其输入教师网络模型W中,得到其第N部分的softmax层(T>1)输出的软概率向量值;将其输入到待训练的流量分类压缩模型中,得到其第N部分的softmax(T>1)层的输出/>以及第N部分的softmax层(T=1)的输出/>
S44,计算损失函数loss2的损失值,并利用该损失值对流量分类压缩模型进行反向更新直到流量分类压缩模型收敛后结束训练;
S45,训练结束以后,使用测试集对训练好的流量分类压缩模型进行测试,以验证其泛化能力,对流量分类压缩模型的结构以及训练得到的参数值进行保存,记训练好的流量分类压缩模型为
进一步的,所述损失函数loss2的表达式为:
其中,δn,η∈[0,1]表示权重因子,f1(·)表示交叉熵损失函数,f2(·)表示KLdivergence损失函数,y表示训练集中加密流量真实的类别标签。
综上所述,由于采用了上述技术方案,本发明的有益效果是:
本发明可以获得加密流量识别准确率较高的流量分类压缩模型,并且显著降低流量分类所需要的计算资源,可以在自组织网络或移动边缘网络等计算能力受限制的通信网络站点上部署。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明实施例的基于知识蒸馏与自蒸馏的通信网络加密流量分类方法的流程图。
图2为本发明实施例的基于知识蒸馏与自蒸馏的通信网络加密流量分类方法中对获取通信网络中的加密流量并处理的流程图。
图3为本发明实施例的基于知识蒸馏与自蒸馏的通信网络加密流量分类方法中训练流量分类压缩模型的流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例
如图1所示,本实施例提出一种基于知识蒸馏与自蒸馏的通信网络加密流量分类方法,包括如下步骤:
S10,获取通信网络中的加密流量;如图2所示,步骤S10包括如下子步骤:
S11,通过捕获工具CapAnalysis或爬虫工具获取通信网络中的加密流量;
S12,对获取的通信网络中的加密流量进行类别标记;例如,可以根据不同的应用类型设置流量类别标签,如:微信、网易云音乐等。
S13,对每一类别的加密流量进行截断或补零处理,使得处理后的加密流量总长度为L字节;包括L1字节的TCP数据,L2字节的UDP数据以及L3字节的有效载荷数据(即payload数据)。其中,L,L1,L2,L3均为正整数且L=L1+L2+L3。
S14,对加密流量的每一个字节进行归一化,即对每一字节除以255使每一字节的取值范围为[0,1],这样做的目的是加速神经网络的训练过程。
S15,完成归一化后获得加密流量数据库,将加密流量数据库按照训练集p1%、测试集p2%、验证集p3%的比例进行划分,其中,p1%+p2%+p3%=100%。
S20,构建并训练流量分类的基本模型;
S21,构建流量分类的基本模型,建立用于流量分类的深度神经网络基本模型,它可以提取加密流量的时间以及序列特征信息并且在处理流量分类准确率与复杂度的平衡问题上具有十分优越的表现:
(1)记用于通信网络加密流量分类的基本模型为M,该基本模型M包括N个浅层部分,分别记作M1,M2,...,MN;每一个浅层部分均包括卷积层和batchnorm层;在每一个浅层部分最后的卷积层后面额外添加子模块,将N个浅层部分后的N个子模块分别记作M1′,M2′,...,MN′;每个子模块包含一个具有Vg个卷积核的卷积层以及一个softmax层;该softmax层的作用是使用softmax函数将输入到该softmax层的未归一化的每一类别对应的概率值映射为归一化的概率值;所述softmax层中的softmax函数的表达式如下:
其中,a=1,2,...,C,b=1,2,...,C,C表示加密流量的类别总数;p∈[0,1]是一个概率值;T∈R表示温度值;za和zb表示输入到softmax层中的未归一化的每一类别对应的概率值,当T=1时,对应的输出称为硬概率;当T>1时,对应的输出称为软概率;
(2)对于一个浅层部分Mi而言,其输入为特征图Xi,经过其对应的子模块的卷积层以后的输出为特征图Fi,经过其子模块对应的softmax层(T>1)以后输出软概率向量经过其子模块对应的softmax层(T=1)以后输出硬概率向量/>其中,其中,/>表示的是浅层Mi对于其输入的特征图判断为类别1的软概率值,/>定示的是浅层Mi对于其输入的特征图判断为类别1的硬概率值;同理,/>表示的是浅层Mi对于其输入的特征图判断为类别C的软概率值,/>表示的是浅层Mi对于其输入的特征图判断为类别C的硬概率值;i=1,2,...,N。
S22,训练流量分类的基本模型:
(3)将训练集中的每一条加密流量,输入到基本模型中,采用损失函数进行训练,将损失函数的值对基本模型进行反向更新直到基本模型收敛后结束训练;所述流量分类的基本模型的训练方式为自蒸馏模式,训练时所采用的损失函数loss1的表达式为:
其中,αn,β,γ∈[0,1]表示权重因子,f1(·)表示交叉熵损失函数,f2(·)表示KLdivergence损失函数,y表示训练集中加密流量真实的类别标签。
(4)训练结束以后,使用测试集对基本模型进行测试,以验证其泛化能力,对基本模型的结构以及训练得到的参数值进行保存,得到训练好的基本模型为E0。
S30,压缩训练好的基本模型,获取流量分类压缩模型;
所述压缩训练好的基本模型的方法为:采用通道剪枝技术,将所述训练好的基本模型E0的冗余的卷积核去掉,获取流量分类压缩模型。具体包括如下步骤:
S31,对于训练好的基本模型E0的每一个卷积核,计算其权重向量的L-2范数的平方值;
S32,按照每一个卷积核权重向量的L-2范数的平方值的大小对所有的卷积核进行排序;根据压缩比例Cp去除相应数量的卷积核;得到流量分类压缩模型的结构。压缩比例Cp的计算公式如下:
其中,KP表示需要去除的卷积核对应的参数量,KT表示基本模型中所含有的全部的参数量;
S33,对未被去除的卷积核,将其对应的在训练好的基本模型E0中的参数值赋值到流量分类压缩模型的结构中,实现流量分类压缩模型的初始参数的赋值,从而得到流量分类压缩模型。注意,所述流量分类压缩模型也包含N个部分,但每一部分中每个卷积层中所包含的卷积核的数量不同。
S40,采用教师网络更新策略的知识蒸馏方式训练流量分类压缩模型;通过对流量分类压缩模型进一步训练,使其提高对流量分类的准确率。如图3所示,训练过程如下:
S41,对流量分类压缩模型中涉及的参数进行初始化:流量分类的基本模型的分类准确率acc0,压缩过程采用K步压缩,即一共采用K步达到压缩比例Cp,每一步的流量分类压缩模型记作每一步的压缩比例为/>且/>设置流量分类压缩模型的训练总周期为R,评估周期为F且F<R;设置教师网络模型初始为W=E0;
S42,在压缩步骤u(u≤K)的第r(r≤R)个训练周期,判断r/F=0是否成立?若是,使用验证集中的加密流量计算流量分类压缩模型流量分类的准确率,若计算得到的准确率高于教师网络模型的准确率,则将教师网络模型更新,即令/>否则,使教师网络模型保持不变;
S43,对于训练集中的每一条加密流量,将其输入教师网络模型W中,得到其第N部分的softmax层(T>1)输出的软概率向量值;将其输入到待训练的流量分类压缩模型中,得到其第N部分的softmax(T>1)层的输出/>以及第N部分的softmax层(T=1)的输出/>
S44,计算损失函数loss2的损失值,并利用该损失值对流量分类压缩模型进行反向更新直到流量分类压缩模型收敛后结束训练;其中,所述损失函数loss2的表达式为:
其中,δn,η∈[0,1]表示权重因子,f1(·)表示交叉熵损失函数,f2(·)表示KLdivergence损失函数,y表示训练集中加密流量真实的类别标签。
S45,训练结束以后,使用测试集对训练好的流量分类压缩模型进行测试,以验证其泛化能力,对流量分类压缩模型的结构以及训练得到的参数值进行保存,记训练好的流量分类压缩模型为
S50,利用训练好的流量分类压缩模型进行通信网络加密流量分类。即采集通信网络中的加密流量,输入到训练好的流量分类压缩模型即可得到加密流量分类结果。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种基于知识蒸馏与自蒸馏的通信网络加密流量分类方法,其特征在于,包括如下步骤:
S10,获取通信网络中的加密流量;
S20,构建并训练流量分类的基本模型;
S30,压缩训练好的基本模型,获取流量分类压缩模型;
S40,采用教师网络更新策略的知识蒸馏方式训练流量分类压缩模型;
S50,利用训练好的流量分类压缩模型进行通信网络加密流量分类;
步骤S40包括如下子步骤:
S41,对流量分类压缩模型中涉及的参数进行初始化:流量分类的基本模型的分类准确率,压缩过程采用K步压缩,即一共采用K步达到压缩比例C p,每一步的流量分类压缩模型记作/>,每一步的压缩比例为/>,且/>;设置流量分类压缩模型的训练总周期为R,评估周期为F且F<R;设置教师网络模型初始为W=E 0;
S42,在压缩步骤的第/>个训练周期,判断/>是否成立?若是,使用验证集中的加密流量计算流量分类压缩模型/>流量分类的准确率,若计算得到的准确率高于教师网络模型的准确率,则将教师网络模型更新,即令/>;否则,使教师网络模型保持不变;
S43,对于训练集中的每一条加密流量,将其输入教师网络模型W中,得到其第N部分的softmax层(T>1)输出的软概率向量值;将其输入到待训练的流量分类压缩模型中,得到其第N部分的softmax(T>1)层的输出/>以及第N部分的softmax层(T=1)的输出/>;所述softmax层中的softmax函数的表达式如下:
其中,a=1,2,…,C,b=1,2,…,C,C表示加密流量的类别总数;p∈[0,1]是一个概率值;T∈R表示温度值;z a和z b表示输入到softmax层中的未归一化的每一类别对应的几率,当T=1时,对应的输出称为硬概率;当T>1时,对应的输出称为软概率;
S44,计算损失函数的损失值,并利用该损失值对流量分类压缩模型进行反向更新直到流量分类压缩模型收敛后结束训练;
S45,训练结束以后,使用测试集对流量分类压缩模型进行测试,以验证其泛化能力,对流量分类压缩模型的结构以及训练得到的参数值进行保存,记训练好的流量分类压缩模型为,/>。
2.根据权利要求1所述的基于知识蒸馏与自蒸馏的通信网络加密流量分类方法,其特征在于,步骤S10包括如下子步骤:
S11,通过捕获工具CapAnalysis或爬虫工具获取通信网络中的加密流量;
S12,对获取的通信网络中的加密流量进行类别标记;
S13,对每一类别的加密流量进行截断或补零处理,使得处理后的加密流量总长度为L字节;包括L 1字节的TCP数据,L 2字节的UDP数据以及L 3字节的有效载荷数据;其中,L,L 1,L 2,L 3均为正整数且L=L 1+L 2+L 3;
S14,对加密流量的每一个字节进行归一化,即对每一字节除以255使每一字节的取值范围为[0,1];
S15,完成归一化后获得加密流量数据库,将加密流量数据库按照训练集p 1%、测试集p 2%、验证集p 3%的比例进行划分,其中,p 1%+p 2%+p 3%=100%。
3.根据权利要求2所述的基于知识蒸馏与自蒸馏的通信网络加密流量分类方法,其特征在于,步骤S20包括如下子步骤:
S21,构建流量分类的基本模型:
(1)记用于通信网络加密流量分类的基本模型为M,该基本模型M包括N个浅层部分,分别记作M 1,M 2,…,M N;每一个浅层部分均包括卷积层和batchnorm层;在每一个浅层部分最后的卷积层后面额外添加子模块,将N个浅层部分后的N个子模块分别记作M 1 ′,M 2 ′,…,M N ′;每个子模块包含一个具有V g个卷积核的卷积层以及一个softmax层;该softmax层的作用是使用softmax函数将输入到该softmax层的未归一化的每一类别对应的概率值映射为归一化的概率值;
(2)对于一个浅层部分M i而言,其输入为特征图X i,经过其对应的子模块的卷积层以后的输出为特征图F i,经过其子模块对应的softmax层(T>1)以后输出软概率向量,经过其子模块对应的softmax层(T=1)以后输出硬概率向量/>;
S22,训练流量分类的基本模型:
(3)将训练集中的每一条加密流量,输入到基本模型中,采用损失函数进行训练,将损失函数的值对基本模型进行反向更新直到基本模型收敛后结束训练;
(4)训练结束以后,使用测试集对基本模型进行测试,以验证其泛化能力,对基本模型的结构以及训练得到的参数值进行保存,得到训练好的基本模型为E 0。
4.根据权利要求3所述的基于知识蒸馏与自蒸馏的通信网络加密流量分类方法,其特征在于,所述流量分类的基本模型的训练方式为自蒸馏模式;训练时所采用的损失函数loss 1的表达式为:
其中,表示权重因子,/>表示交叉熵损失函数,/>表示KLdivergence损失函数,/>表示训练集中加密流量真实的类别标签。
5.根据权利要求4所述的基于知识蒸馏与自蒸馏的通信网络加密流量分类方法,其特征在于,步骤S30中所述压缩训练好的基本模型的方法为:采用通道剪枝技术,将所述训练好的基本模型E 0的冗余的卷积核去掉,获取流量分类压缩模型。
6.根据权利要求5所述的基于知识蒸馏与自蒸馏的通信网络加密流量分类方法,其特征在于,步骤S30包括如下子步骤:
S31,对于训练好的基本模型E 0的每一个卷积核,计算其权重向量的L-2范数的平方值;
S32,按照每一个卷积核权重向量的L-2范数的平方值的大小对所有的卷积核进行排序;根据压缩比例C p去除相应数量的卷积核;得到流量分类压缩模型的结构;
S33,对未被去除的卷积核,将其对应的在训练好的基本模型E 0中的参数值赋值到流量分类压缩模型的结构中,实现流量分类压缩模型的初始参数的赋值,从而得到流量分类压缩模型。
7.根据权利要求6所述的基于知识蒸馏与自蒸馏的通信网络加密流量分类方法,其特征在于,所述压缩比例C p的计算公式如下:
其中,K P表示需要去除的卷积核对应的参数量,K T表示基本模型中所含有的全部的参数量。
8.根据权利要求7所述的基于知识蒸馏与自蒸馏的通信网络加密流量分类方法,其特征在于,所述损失函数的表达式为:
其中,表示权重因子,/>表示交叉熵损失函数,/>表示KLdivergence损失函数,/>表示训练集中加密流量真实的类别标签。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111382473.9A CN114095447B (zh) | 2021-11-22 | 2021-11-22 | 一种基于知识蒸馏与自蒸馏的通信网络加密流量分类方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111382473.9A CN114095447B (zh) | 2021-11-22 | 2021-11-22 | 一种基于知识蒸馏与自蒸馏的通信网络加密流量分类方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114095447A CN114095447A (zh) | 2022-02-25 |
CN114095447B true CN114095447B (zh) | 2024-03-12 |
Family
ID=80302349
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111382473.9A Active CN114095447B (zh) | 2021-11-22 | 2021-11-22 | 一种基于知识蒸馏与自蒸馏的通信网络加密流量分类方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114095447B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115223049B (zh) * | 2022-09-20 | 2022-12-13 | 山东大学 | 面向电力场景边缘计算大模型压缩的知识蒸馏与量化方法 |
CN117082004A (zh) * | 2023-08-30 | 2023-11-17 | 湖北省楚天云有限公司 | 一种基于蒸馏表征模型的轻量级加密流量分析方法及系统 |
CN117437459B (zh) * | 2023-10-08 | 2024-03-22 | 昆山市第一人民医院 | 基于决策网络实现用户膝关节髌骨软化状态分析方法 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110059747A (zh) * | 2019-04-18 | 2019-07-26 | 清华大学深圳研究生院 | 一种网络流量分类方法 |
CN110909667A (zh) * | 2019-11-20 | 2020-03-24 | 北京化工大学 | 面向多角度sar目标识别网络的轻量化设计方法 |
CN112199592A (zh) * | 2020-10-10 | 2021-01-08 | 信雅达系统工程股份有限公司 | 基于知识蒸馏进行模型压缩的银行舆情风控系统 |
WO2021023202A1 (zh) * | 2019-08-07 | 2021-02-11 | 交叉信息核心技术研究院(西安)有限公司 | 一种卷积神经网络的自蒸馏训练方法、设备和可伸缩动态预测方法 |
CN112367273A (zh) * | 2020-10-30 | 2021-02-12 | 上海瀚讯信息技术股份有限公司 | 基于知识蒸馏的深度神经网络模型的流量分类方法及装置 |
CN112784964A (zh) * | 2021-01-27 | 2021-05-11 | 西安电子科技大学 | 基于桥接知识蒸馏卷积神经网络的图像分类方法 |
CN113112020A (zh) * | 2021-03-25 | 2021-07-13 | 厦门大学 | 一种基于生成网络与知识蒸馏的模型网络提取和压缩方法 |
CN113408209A (zh) * | 2021-06-28 | 2021-09-17 | 淮安集略科技有限公司 | 跨样本联邦分类建模方法及装置、存储介质、电子设备 |
CN113610126A (zh) * | 2021-07-23 | 2021-11-05 | 武汉工程大学 | 基于多目标检测模型无标签的知识蒸馏方法及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210295173A1 (en) * | 2020-03-23 | 2021-09-23 | Samsung Electronics Co., Ltd. | Method and apparatus for data-free network quantization and compression with adversarial knowledge distillation |
-
2021
- 2021-11-22 CN CN202111382473.9A patent/CN114095447B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110059747A (zh) * | 2019-04-18 | 2019-07-26 | 清华大学深圳研究生院 | 一种网络流量分类方法 |
WO2021023202A1 (zh) * | 2019-08-07 | 2021-02-11 | 交叉信息核心技术研究院(西安)有限公司 | 一种卷积神经网络的自蒸馏训练方法、设备和可伸缩动态预测方法 |
CN110909667A (zh) * | 2019-11-20 | 2020-03-24 | 北京化工大学 | 面向多角度sar目标识别网络的轻量化设计方法 |
CN112199592A (zh) * | 2020-10-10 | 2021-01-08 | 信雅达系统工程股份有限公司 | 基于知识蒸馏进行模型压缩的银行舆情风控系统 |
CN112367273A (zh) * | 2020-10-30 | 2021-02-12 | 上海瀚讯信息技术股份有限公司 | 基于知识蒸馏的深度神经网络模型的流量分类方法及装置 |
CN112784964A (zh) * | 2021-01-27 | 2021-05-11 | 西安电子科技大学 | 基于桥接知识蒸馏卷积神经网络的图像分类方法 |
CN113112020A (zh) * | 2021-03-25 | 2021-07-13 | 厦门大学 | 一种基于生成网络与知识蒸馏的模型网络提取和压缩方法 |
CN113408209A (zh) * | 2021-06-28 | 2021-09-17 | 淮安集略科技有限公司 | 跨样本联邦分类建模方法及装置、存储介质、电子设备 |
CN113610126A (zh) * | 2021-07-23 | 2021-11-05 | 武汉工程大学 | 基于多目标检测模型无标签的知识蒸馏方法及存储介质 |
Non-Patent Citations (3)
Title |
---|
Min Lu ; Bin Zhou ; Zhiyong Bu ; Kecheng Zhang ; Zhenhua Ling.Compressed Network in Network Models for Traffic Classification.2021 IEEE Wireless Communications and Networking Conference (WCNC).2021,第2页第I部分第5段-第5页第III部分. * |
基于深度特征蒸馏的人脸识别;葛仕明;赵胜伟;刘文瑜;李晨钰;;北京交通大学学报(第06期);全文 * |
深度神经网络模型压缩方法与进展;赖叶静;郝珊锋;黄定江;;华东师范大学学报(自然科学版)(第05期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114095447A (zh) | 2022-02-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114095447B (zh) | 一种基于知识蒸馏与自蒸馏的通信网络加密流量分类方法 | |
CN110880019B (zh) | 通过无监督域适应训练目标域分类模型的方法 | |
CN112671757B (zh) | 一种基于自动机器学习的加密流量协议识别方法及装置 | |
CN108446711B (zh) | 一种基于迁移学习的软件缺陷预测方法 | |
WO2022042123A1 (zh) | 图像识别模型生成方法、装置、计算机设备和存储介质 | |
WO2022257436A1 (zh) | 基于无线通信网络数据仓库构建方法、系统、设备及介质 | |
CN106228398A (zh) | 基于c4.5决策树算法的特定用户挖掘系统及其方法 | |
CN112685504B (zh) | 一种面向生产过程的分布式迁移图学习方法 | |
CN111754345A (zh) | 一种基于改进随机森林的比特币地址分类方法 | |
CN113254649B (zh) | 敏感内容识别模型的训练方法、文本识别方法及相关装置 | |
CN110321437A (zh) | 一种语料数据处理方法、装置、电子设备及介质 | |
CN110704649A (zh) | 一种用于构建流量图像数据集的方法及系统 | |
CN115659807A (zh) | 一种基于贝叶斯优化模型融合算法对人才表现预测的方法 | |
CN112861894A (zh) | 一种数据流分类方法、装置及系统 | |
CN113743594A (zh) | 网络流量预测模型建立方法、装置、电子设备及存储介质 | |
CN112104602A (zh) | 一种基于cnn迁移学习的网络入侵检测方法 | |
CN117726884B (zh) | 对象类别识别模型的训练方法、对象类别识别方法及装置 | |
CN115329746A (zh) | 一种事件抽取方法、装置及设备 | |
CN108830302B (zh) | 一种图像分类方法、训练方法、分类预测方法及相关装置 | |
CN114510615A (zh) | 一种基于图注意力池化网络的细粒度加密网站指纹分类方法和装置 | |
CN115622810B (zh) | 一种基于机器学习算法的业务应用识别系统及方法 | |
CN116192997B (zh) | 一种基于网络流的事件检测方法和系统 | |
CN109145749B (zh) | 一种跨数据集的面部表情识别模型构建及识别方法 | |
CN112528662A (zh) | 基于元学习的实体类别识别方法、装置、设备和存储介质 | |
CN109308565B (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 |