CN115208613B - 一种基于小样本学习的三元cct网络的入侵检测方法 - Google Patents
一种基于小样本学习的三元cct网络的入侵检测方法 Download PDFInfo
- Publication number
- CN115208613B CN115208613B CN202210521946.7A CN202210521946A CN115208613B CN 115208613 B CN115208613 B CN 115208613B CN 202210521946 A CN202210521946 A CN 202210521946A CN 115208613 B CN115208613 B CN 115208613B
- Authority
- CN
- China
- Prior art keywords
- sample
- cct
- network
- layer
- samples
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1425—Traffic logging, e.g. anomaly detection
Abstract
本发明涉及一种基于小样本学习的三元CCT网络的入侵检测方法,采用的步骤如下:构建小样本学习的数据集;将数据集中的网络流量存储在二维数组中,将二维数组转换为灰度图像;搭建基于小样本学习的三元CCT网络的入侵检测模型;训练入侵检测网络模型;检测网络流量并确定入侵类型;本发明对transformer编码器进行了改进,在每个残差连接之前加入了可学习的通道加权,由此来优化更深层次的CCT网络,使之收敛更快,精度更高;条件位置编码以输入为条件,使位置编码更灵活,在图像分类任务中保持所需的平移不变性,从而提高分类精度;本发明基于三元损失函数度量方法,能够获得比单点损失和成对的损失更高检测入侵的准确率。
Description
技术领域
本发明涉及一种基于小样本学习的三元CCT网络的入侵检测方法,属于网络安全技术领域。
背景技术
随着科技的快速发展,计算机网络已经成为人们生活中不可或缺的组成部分。计算机网络人们提供了丰富多彩的服务,使得人们对计算机网络越来越依赖,以至于网络成为了犯罪的主要攻击目标。网络犯罪试图通过不同的网络入侵来达到窃取机密等不良目的。入侵检测系统通过监控和分析在线流量区分正常和恶意的流量。当入侵检测系统部署在网络中识别基于网络的入侵时,它们被称为基于网络的入侵检测系统。这些系统捕获在线网络流量并对其进行分析以检测攻击的存在。尽管已经取得了重大进展,但在设计网络入侵检测系统方面还存在着训练数据的不平衡、小样本学习精确度差以及未知攻击频繁发生现象,所以仍有各种创新的检测方法不断地被提出。
发明内容
本发明要解决的技术问题是提供一种使训练数据平衡、未知攻击减少且提高小样本学习精确度的基于小样本学习的三元CCT网络的入侵检测方法。
为解决上述问题,本发明采用的技术方案如下:
本发明基于小样本学习的三元CCT网络的入侵检测方法,采用如下步骤:
步骤一、构建小样本学习的数据集;
步骤二、将数据集中的网络流量存储在二维数组中,将二维数组转换为灰度图像;
步骤三、搭建基于小样本学习的三元CCT网络的入侵检测模型;
步骤四、训练入侵检测网络模型;
步骤五、检测网络流量并确定入侵类型。
本发明方法的步骤一中采用无监督子类型采样方法对数量充足的攻击类样本和正常类样本进行重新采样,具体如下:
1.1).将数量充足的攻击类样本和正常类样本采用k-mean++算法聚类为各个类型的子类型;
1.2).对每个子类型逐一进行随机抽取一个样本,以获得代表每个类型可用于训练的集合;
1.3).将经过与所述无监督子类型重新采样的样本集合与数量稀少的攻击类样本合在一起,构建模型训练所需的小样本训练数据集;
1.4).每种类型有k个样本,不同的类型设置不同的k值;k值根据轮廓系数S(i)自适应确定,计算公式如下:
式中:a(i)表示聚类中的样本i到聚类中所有其他样本的距离的平均值, b(i)表示聚类中的样本i到距离该样本最近的聚类中所有样本的平均距离的最小值,max{}是求最大值的函数,-表示逐元素相减;
轮廓系数的计算结果在-1和1之间,再设置一组初始k值并使用 k-mean++算法对每种类型中的数据进行聚类后,最终不同类型的k值根据以下公式选择,其代表前n大轮廓系数中最小的簇数:
K=min{argmaxn{S(2),S(3),…,S(i)}} (2)
式中:min{}是求最小值的函数,n通常设置为10,argmaxn表示前n 大的轮廓系数分别对应的簇数,S(i)表示样本i对应的轮廓系数。
本发明方法的步骤三中所述三元CCT网络由3个并行的具有相同结构的 CCT网络组成,并且它们使用相同的特征权重,将样本μ嵌入的CCT网络表示为CCTNet(μ);
所述CCT网络包括依次设置的卷积层、Reshape、位置嵌入、Transformer 编码器层和序列池层;
所述Transformer编码器层由L层编码器块堆叠而成;每个L层编码器块均由多头自注意力(MSA)和多层感知机(MLP)块两个子层组成,多层感知机(MLP)块包括线性层、GELU激活函数和Dropout;每个子层之前都有一个层归一化(LN),然后是到下一个子层的残差连接;在原有的残差连接之前加入一个可学习的通道加权,即对角矩阵diag(α1,α2,…,αd),表示每个残差块产生的向量的通道权重,从而将与同一输出通道相关的权重更新分组;加入可学习的对角矩阵后在单个编码器块的计算公式如下:
x′l=xl-1+diag(αl,1,…,αl,d)×MSA(LN(xl-1)) (3)
xl=x′l+diag(α′l,1,…,α′l,d)×MLP(LN(x′l)) (4)
公式中:+表示逐元素求和,×表示元素相乘,l表示编码器块的当前层数,l∈{1,2,...,L},αl,1和α′l,1表示可学习的权重,对角矩阵的对角线值都被初始化为固定的小值ε:设置为ε=0.1,直到深度18,对于深度24,ε=10-5,对于更深的网络,ε=10-6;MSA表示多头自注意力操作,LN表示层归一化操作。
本发明所述序列池层Pooling整个数据序列,包含输入图像不同部分的相关信息,序列池层的操作可看作为映射T:Rb×n×d→Rb×d,其计算公式如下:
xL=f(x0)∈Rb×n×d (5)
x′L=softmax(g(xL)T)∈Rb×1×n (6)
z=x′LxL=softmax(g(xL)T)×xL∈Rb×1×d (7)
公式中:xL表示L层编码器块的输出,b表示mini-batch大小,n表示序列长度,d表示嵌入维度,g(xL)表示经过线性层的操作,g(xL)∈Rd×1,softmax 表示激活函数;
通过Pooling第二个维度,即得到z∈Rb×d。
本发明所述卷积层包括依次设置的卷积操作、ReLU激活函数和最大池层,计算公式如下:
x0=MaxPool(ReLU(Conv2d(x))) (8)
公式中:x表示输入的图像x∈RH×W×C,Conv2d表示二维卷积,ReLU 表示激活函数,MaxPool表示最大池操作。
本发明所述位置嵌入使用条件位置编码(CPE),以输入为条件,并且能够保持期望的平移不变性;条件位置编码设置在Tansformer编码器层的第一个编码器块的输出之后,其通过位置编码生成器(PEG)实现;位置编码生成器为了对局部邻域施加条件,首先将接收的一维输入序列X重塑到二维图像空间中的X′,再将一个函数F重复应用于X′中的局部图像块,以产生条件位置编码E,函数F可以是深度方向的、可分离的卷积或其他复杂的块;位置编码生成器通过卷积核k(k≥3)以及零填充的二维卷积有效地实现。
本发明所述三元CCT网络的输入样本有三个,分别输入到三个CCT网络中,输入样本表示为锚点样本(x)、正例样本(x+)和负例样本(x-);当输入三个样本时,样本经过CCT网络并使用Embedding层,得到每个样本的CCT 网络嵌入表达,然后输出2个中间值,分别是锚点样本(x)与正例样本(x+)之间的欧氏距离d+和锚点样本(x)与负例样本(x-)之间的欧氏距离d-,然后使用三元损失函数对上述两个距离进行评估和优化,并对其进行归一化,其计算公式如下:
式中:CCTNet(x)表示锚点样本的CCT嵌入表达,CCTNet(x+)表示正例样本的嵌入表达,CCTNet(x-)表示负例样本的嵌入表达,+表示逐元素求和,-表示逐元素相减,‖·‖2表示求·的二范式;
在此基础上计算的三元损失函数为:
式中:α表示锚点样本与负例样本、锚点样本与正例样本嵌入表达距离的最小差,d+表示锚点样本与正例样本之间的欧氏距离,d-表示锚点样本与负例样本之间的欧氏距离,表示求·的二范式的平方;
通过训练优化三元损失函数,使得锚点样本(x)向正例样本(x+)靠近,远离负例样本(x-)。
本发明步骤四中训练基于小样本学习的三元CCT网络模型的入侵检测网络,采用Adam优化器优化三元损失函数,使之最小化;
所述基于小样本学习的三元CCT网络模型结构与步骤三中基于小样本学习的三元CCT网络模型结构相同。
本发明步骤五中检测网络流量并确定入侵类型具体过程如下:
首先选择一个测试样本作为锚点样本,然后在步骤一中构建好的训练数据集中在两个随机的类中,分别选择一个随机样本,将这三个样本作为网络的输入三元组,比较测试样本与这两个样本之间的距离,将距离大的一个样本替换为训练数据集中一个不同于前两个类的一个随机样本,再次比较距离,直到将数据集中的类比较完毕,距离最小的那个样本所在的类就是当前测试样本的类。
本发明采用上述技术方案所取得的技术效果如下:
1.本发明采用无监督子类型采样方法对数量充足的攻击类样本和正常类样本重新进行采样,以从不平衡的数据集中构建具有自适应k值的小样本学习训练数据集,通过将数量充足的攻击类样本和正常类样本聚类为各个类型的子类型,获得较大的代表性样本,有效解决了训练数据的不平衡问题。
2.本发明将改进的CCT网络调整到三元网络中来构建三元CCT网络,并用于入侵检测;采用三元组作为训练样本,使类间特征距离相对更大、类内距离更小,从而获得比单个CCT模型更好的性能,提高了小样本学习精确度,并使未知攻击减少。
3.本发明对CCT网络中的transformer编码器进行了改进,在每个残差连接之前加入了可学习的通道加权,由此来优化更深层次的CCT网络,使之收敛更快,精度更高。
4.本发明将CCT网络中的位置嵌入方法更换为条件位置编码,以输入为条件,使位置编码更灵活,在图像分类任务中保持所需的平移不变性,从而提高分类精度。
5.本发明基于三元损失函数度量方法,能够获得比单点损失和成对的损失(连体网络)更高检测入侵的准确率。
附图说明
图1是本发明实施例的流程图;
图2是本发明的无监督子类型采样过程图;
图3是本发明的三元CCT网络结构图;
图4是本发明的CCT网络结构图;
图5是本发明的CCT网络中的Transformer编码器结构图。
具体实施方式
下面结合附图对本发明作进一步详细的描述:
如图1所示,本发明一种基于小样本学习的三元CCT(Compact ConvolutionalTransformer)网络的入侵检测方法,其采用如下步骤:
步骤一、构建符合小样本学习定义的数据集;采用无监督子类型采样方法对数量充足的攻击类样本和正常类样本进行重新采样,具体如下:
1.1).将数量充足的攻击类样本和正常类样本采用k-mean++方法聚类为各个类型的子类型;
1.2).对每个子类型逐一进行随机抽取一个样本,以获得代表每个类型可用于训练的集合;
1.3).将经过与所述无监督子类型重新采样的样本集合与数量稀少的攻击类样本合在一起,构建模型训练所需的小样本训练数据集;
1.4).每种类型有k个样本,不同的类型设置不同的k值;k值根据轮廓系数S(i)自适应确定,计算公式如下:
式中:a(i)表示聚类中的样本i到聚类中所有其他样本的距离的平均值, b(i)表示聚类中的样本i到距离该样本最近的聚类中所有样本的平均距离的最小值,max{}是求最大值的函数,-表示逐元素相减;
轮廓系数的计算结果在-1和1之间,再设置一组初始k值并使用 k-mean++方法对每种类型中的数据进行聚类后,最终不同类型的k值根据以下公式选择,其代表前n大轮廓系数中最小的簇数:
K=min{argmaxn{S(2),S(3),…,S(i)}} (2)
式中:min{}是求最小值的函数,n通常设置为10,argmaxn表示前n 大的轮廓系数分别对应的簇数,S(i)表示样本i对应的轮廓系数;
步骤二、将数据集中的网络流量转换成灰度图像;具体为:读取数据集中网络流量的每个字节,将其存储在二维数组中,所述二维数组的宽W与高 H的乘积大于等于网络流量字节数,二维数组中尾部剩余字节用预定字节填充,将所述二维数组转换为灰度图像;
步骤三、搭建基于小样本学习的三元CCT网络的入侵检测模型:所述三元CCT网络由3个并行的具有相同结构的CCT网络组成,并且它们使用相同的特征权重,将样本μ嵌入的CCT网络表示为CCTNet(μ);所述CCT网络包括依次设置的卷积层、Reshape、位置嵌入、Transformer编码器层和序列池层;
所述Transformer编码器层由L层编码器块堆叠而成;每个L层编码器块均由多头自注意力(MSA)和多层感知机(MLP)块两个子层组成,多层感知机(MLP)块包括线性层、GELU激活函数和Dropout;每个子层之前都有一个层归一化(LN),然后是到下一个子层的残差连接;在原有的残差连接之前加入一个可学习的通道加权,即对角矩阵diag(α1,α2,…,αd),表示每个残差块产生的向量的通道权重,从而将与同一输出通道相关的权重更新分组;加入可学习的对角矩阵后在单个编码器块的计算公式如下:
x′l=xl-1+diag(αl,1,…,αl,d)×MSA(LN(xl-1)) (3)
xl=x′l+diag(α′l,1,…,α l,d)×MLP(LN(x′l)) (4)
公式中:+表示逐元素求和,×表示元素相乘,l表示编码器块的当前层数,l∈{1,2,...,L},αl,1和α′l,1表示可学习的权重,对角矩阵的对角线值都被初始化为固定的小值ε:设置为ε=0.1,直到深度18,对于深度24,ε=10-5,对于更深的网络,ε=10-6;MSA表示多头自注意力操作,LN表示层归一化操作。
所述序列池层Pooling整个数据序列,包含输入图像不同部分的相关信息,序列池层的操作可看作为映射T:Rb×n×d→Rb×d,其计算公式如下:
xL=f(x0)∈Rb×n×d (5)
x′L=softmax(g(xL)T)∈Rb×1×n (6)
z=x′LxL=softmax(g(xL)T)×xL∈Rb×1×d (7)
公式中:xL表示L层编码器块的输出,b表示mini-batch大小,n表示序列长度,d表示嵌入维度,g(xL)表示经过线性层的操作,g(xL)∈Rd×1,softmax 表示激活函数;
通过Pooling第二个维度,即得到z∈Rb×d。
所述卷积层包括依次设置的卷积操作、ReLU激活函数和最大池层,计算公式如下:
x0=MaxPool(ReLU(Conv2d(x))) (8)
公式中:x表示输入的图像x∈RH×W×C,Conv2d表示二维卷积,ReLU 表示激活函数,MaxPool表示最大池操作。
所述位置嵌入使用条件位置编码(CPE),以输入为条件,并且能够保持期望的平移不变性;条件位置编码将放在Tansformer编码器层的第一个编码器块的输出之后,它通过位置编码生成器(PEG)实现;位置编码生成器为了对局部邻域施加条件,首先将接收的一维输入序列X重塑到二维图像空间中的 X′,再将一个函数F重复应用于X′中的局部图像块,以产生条件位置编码E,函数F可以是深度方向的、可分离的卷积或其他复杂的块;位置编码生成器通过卷积核k(k≥3)以及零填充的二维卷积有效地实现。
所述三元CCT网络的输入样本有三个,分别输入到三个CCT网络中,输入样本表示为锚点样本(x)、正例样本(x+)和负例样本(x-);当输入三个样本时,样本经过CCT网络并使用Embedding层,得到每个样本的CCT网络嵌入表达,然后输出2个中间值,分别是锚点样本(x)与正例样本(x+)之间的欧氏距离d+和锚点样本(x)与负例样本(x-)之间的欧氏距离d-,然后使用三元损失函数对上述两个距离进行评估和优化,并对其进行归一化,其计算公式如下:
式中:CCTNet(x)表示锚点样本的CCT嵌入表达,CCTNet(x+)表示正例样本的嵌入表达,CCTNet(x-)表示负例样本的嵌入表达,+表示逐元素求和,-表示逐元素相减,‖·‖2表示求·的二范式;
在此基础上计算的三元损失函数为:
式中:α表示锚点样本与负例样本、锚点样本与正例样本嵌入表达距离的最小差,d+表示锚点样本与正例样本之间的欧氏距离,d-表示锚点样本与负例样本之间的欧氏距离,表示求·的二范式的平方。
通过训练优化三元损失函数,使得锚点样本(x)向正例样本(x+)靠近,远离负例样本(x-)。
步骤四、训练入侵检测网络模型;训练基于小样本学习的三元CCT网络模型的入侵检测网络,用Adam优化器优化三元损失函数,使之最小化;所述基于小样本学习的三元CCT网络模型结构与步骤三中基于小样本学习的三元CCT网络模型结构相同;
步骤五:采用步骤四训练的基于小样本学习的三元CCT网络模型,检测网络流量并确定入侵类型。首先选择一个测试样本作为锚点样本,然后在步骤一中构建好的训练数据集中在两个随机的类中,分别选择一个随机样本,将这三个样本作为网络的输入三元组,比较测试样本与这两个样本之间的距离,将距离大的一个样本替换为训练数据集中一个不同于前两个类的一个随机样本,再次比较距离,直到将数据集中的类比较完毕,距离最小的那个样本所在的类就是当前测试样本的类。
如图2所示,本发明首先使用无监督子类型采样方法对数量充足的攻击类样本和正常类样本进行重新采样,将数量充足的攻击类样本和正常类样本使用k-mean++算法聚类为各个类型的子类型,然后对每个子类型逐一进行随机抽取一个样本,以获得代表每个类型可用于训练的集合。每种类型有k个样本,不同的类型设置不同的k值,k值根据轮廓系数S(i)自适应确定,轮廓系数为该聚类中的样本i到聚类中所有其他样本的距离的平均值和到距离该样本最近的聚类中所有样本的平均距离的最小值的差值与差值最大值的比,轮廓系数的计算结果在-1和1之间;然后再设置一组初始k值并运行 k-mean++算法对各个类型中的数据进行聚类,每种类型的最终k值根据前n 大轮廓系数中最小的簇数选择,然后对每个子类型进行随机抽样,以获得代表该类型可用于训练的子集,将经过无监督子类型采样方法重新采样的样本集合与数量稀少的攻击类样本合在一起,构建模型训练所需的小样本训练数据集,可以更好的解决在入侵检测过程中的类不平衡的问题;构建好小样本数据集后,将数据集中网络流量的每个字节为8位二进制或2位16进制,将所有数值输入重新缩放为灰度像素值(0-255),并将其存储在数组中,对于未使用的像素,填充所有黑色(255)值。
如图3所示,本发明利用三元CCT网络对步骤二中得到的灰度图像进行特征提取,通过比较样本而不是直接数据标签进行学习,三元CCT网络由3 个并行的具有相同结构的CCT网络组成,并且它们使用相同的特征权重,将样本x嵌入的CCT网络表示为CCTNet(x);单个CCT网络包括依次设置的卷积层、Reshape、位置嵌入、Transformer编码器层和序列池层;三元CCT 网络需要三个输入样本,分别输入到三个CCT网络中,这三个样本的选取首先从训练数据集中随机选一个样本,该样本记为锚点样本(x),然后再随机选取一个和锚点样本(x)属于同一类的样本和属于不同类的样本,这两个样本对应的称为正例样本(x+)和负例样本(x-),由此构成一个(x,x+,x-)输入三元组;输入的三个样本在经过三个并行CCT网络,并使用Embedding层得到每个样本的CCT网络嵌入表达后计算出两个中间值,分别是锚点样本与正例样本之间的欧氏距离d+和锚点样本与负例样本之间的欧氏距离d-,然后通过训练优化三元损失函数,使得x向x+靠近,远离x-,从而实现网络流量的分类任务。
如图4所示为本发明嵌入的CCT网络,将输入的图像过一层卷积Conv 处理,将图像嵌入到潜在表示中,然后再通过最大池层将整个图像不重叠的分割成若干个同样大小的小块,继续经过Reshape,然后将每个图像块展平成一维向量;之后进入Transformer编码器层结构如图5所示,共经过L层编码器块,每层输入之后先进入编码器块第一个子层使用层归一化(LN),将每一行的每一个元素减去这行的均值,再除以这行的标准差,从而得到归一化后符合标准正态分布的数值;接下来使用多头自注意力(MSA),将输入映射到q、k、v,将矩阵进行切分得到多头计算相关性,使网络捕捉到更丰富的特征,然后在每个残差块的输出上乘以对角矩阵diag(α1,α2,…,αd),接着使用残差连接将上一子层的输入和上一子层的输出加起来的结果输入到下一个子层;残差连接之后再次使用层归一化(LN),输入到包含线性层+GELU激活函数+Dropout的多层感知机(MLP)中,再次使用残差连接,并且在每个子层结束后使用DropPath防止过拟合。在经过1层编码器块后对每个图像块加上位置嵌入,位置嵌入使用条件位置编码(CPE),以输入为条件,并且能够保持期望的平移不变性;条件位置编码将放在Tansformer编码器层的第一个编码器块的输出之后,它通过位置编码生成器(PEG)实现;位置编码生成器为了对局部邻域施加条件,首先将接收的一维输入序列X重塑到二维图像空间中的X′,然后,将一个函数F重复应用于X′中的局部图像块,以产生条件位置编码E,函数F可以是深度方向的、可分离的卷积或其他复杂的块;位置编码生成器通过卷积核k(k≥3)以及零填充的二维卷积有效地实现,在全部经过L层编码器块之后再经过序列池层将顺序输出映射到单个索引,融合每个图像块中的嵌入信息用于分类,使得模型能够更好地利用空间稀疏数据中的信息。
在步骤三中所述基于小样本学习的三元CCT网络模型的入侵检测网络搭建好之后,对于基于小样本学习的三元CCT网络模型进行训练,用Adam 优化器优化三元损失函数,使之最小化;然后使用步骤四训练的基于小样本学习的三元CCT网络模型,检测网络流量并确定入侵类型,首先选择一个测试样本作为锚点样本,然后在步骤一中构建好的训练数据集中在两个随机的类中,分别选择一个随机样本,将这三个样本作为网络的输入三元组,比较测试样本与这两个样本之间的距离,将距离大的一个样本替换为训练数据集中一个不同于前两个类的一个随机样本,再次比较距离,直到将数据集中的类比较完毕,距离最小的那个样本所在的类就是当前测试样本的类。
采用本发明基于小样本学习的三元CCT网络的入侵检测方法:
1.本发明使用无监督子类型采样方法对数量充足的攻击类样本和正常类样本重新进行采样,以从不平衡的数据集中构建具有自适应k值的小样本学习训练数据集;该方案通过将数量充足的攻击类样本和正常类样本聚类为各个类型的子类型,获得较大的代表性样本,从而考虑到数据分布,有效解决了训练数据的不平衡问题。
2.本发明基于三元CCT网络,将改进的CCT网络调整到三元网络中来构建三元CCT网络,并用于入侵检测,采用三元组作为训练样本,使类间特征距离相对更大、类内距离更小,从而获得比单个CCT模型更好的性能,提高了小样本学习精确度,并使未知攻击减少。
3.本发明对CCT网络中的transformer编码器进行了改进,在每个残差连接之前加入了可学习的通道加权,由此来优化更深层次的CCT网络,使之收敛更快,精度更高。
4.本发明将CCT网络中的位置嵌入方法更换为条件位置编码,以输入为条件,使位置编码更灵活,在图像分类任务中保持所需的平移不变性,从而提高分类精度。
5.本发明基于三元损失函数度量方法,能够获得比单点损失和成对的损失(连体网络)更高检测入侵的准确率。
本发明使用无监督子类型采样方法对数量充足的攻击类样本和正常类样本重新进行采样,构建具有自适应k值的小样本学习训练数据集。将数量充足的攻击类样本和正常类样本聚类为各个类型的子类型,从而获得较大的代表性样本,改善了入侵检测分类样本的不平衡问题;并且将CCT中的 transformer编码器进行优化,让更深层次的CCT网络收敛更快,精度更高,并且将位置嵌入方法更换为条件位置编码,以输入为条件,使位置编码更灵活,在图像分类任务中保持所需的平移不变性,从而提高分类精度。然后将其网络调整到用于入侵检测的三元网络中来构建三元CCT网络,将有效提高在小样本学习入侵检测的性能和未知攻击的检测率。
最后说明的是,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换或改进等,均应包含在本发明的保护范围之内。
Claims (1)
1.一种基于小样本学习的三元CCT网络的入侵检测方法,其特征在于采用如下步骤:
步骤一、构建小样本学习的数据集;
采用无监督子类型采样方法对数量充足的攻击类样本和正常类样本进行重新采样,具体如下:
1.1).将数量充足的攻击类样本和正常类样本采用k-mean++算法聚类为各个类型的子类型;
1.2).对每个子类型逐一进行随机抽取一个样本,以获得代表每个类型可用于训练的集合;
1.3).将经过与所述无监督子类型重新采样的样本集合与数量稀少的攻击类样本合在一起,构建模型训练所需的小样本训练数据集;
1.4).每种类型有k个样本,不同的类型设置不同的k值;k值根据轮廓系数S(i)自适应确定,计算公式如下:
式中:a(i)表示聚类中的样本i到聚类中所有其他样本的距离的平均值,b(i)表示聚类中的样本i到距离该样本最近的聚类中所有样本的平均距离的最小值,max{}是求最大值的函数,-表示逐元素相减;
轮廓系数的计算结果在-1和1之间,再设置一组初始k值并使用k-mean++算法对每种类型中的数据进行聚类后,最终不同类型的k值根据以下公式选择,其代表前n大轮廓系数中最小的簇数:
K=min{argmaxn{S(2),S(3),…,S(i)}} (2)
式中:min{}是求最小值的函数,n设置为10,argmaxn表示前n大的轮廓系数分别对应的簇数,S(i)表示样本i对应的轮廓系数;
步骤二、将数据集中的网络流量存储在二维数组中,将二维数组转换为灰度图像;
步骤三、搭建基于小样本学习的三元CCT网络的入侵检测模型;
所述三元CCT网络由3个并行的具有相同结构的CCT网络组成,并且它们使用相同的特征权重,将样本μ嵌入的CCT网络表示为CCTNet(μ);
所述CCT网络包括依次设置的卷积层、Reshape、位置嵌入、Transformer编码器层和序列池层;
所述Transformer编码器层由L层编码器块堆叠而成;每个L层编码器块均由多头自注意力(MSA)和多层感知机(MLP)块两个子层组成,多层感知机(MLP)块包括线性层、GELU激活函数和Dropout;每个子层之前都有一个层归一化(LN),然后是到下一个子层的残差连接;在原有的残差连接之前加入一个可学习的通道加权,即对角矩阵,表示每个残差块产生的向量的通道权重,从而将与同一输出通道相关的权重更新分组;
所述序列池层Pooling整个数据序列,包含输入图像不同部分的相关信息,序列池层的操作可看作为映射;
所述卷积层包括依次设置的卷积操作、ReLU激活函数和最大池层;
所述位置嵌入使用条件位置编码(CPE),以输入为条件,并且能够保持期望的平移不变性;条件位置编码设置在Tansformer编码器层的第一个编码器块的输出之后,其通过位置编码生成器(PEG)实现;位置编码生成器为了对局部邻域施加条件,首先将接收的一维输入序列X重塑到二维图像空间中的X',再将一个函数F重复应用于X'中的局部图像块,以产生条件位置编码E,函数F是深度方向的、可分离的卷积或其他复杂的块;
所述三元CCT网络的输入样本有三个,分别输入到三个CCT网络中,输入样本表示为锚点样本x、正例样本x+和负例样本x-;当输入三个样本时,样本经过CCT网络并使用Embedding层,得到每个样本的CCT网络嵌入表达,然后输出2个中间值,分别是锚点样本x与正例样本x+之间的欧氏距离d+和锚点样本x与负例样本x-之间的欧氏距离d-,然后使用三元损失函数对上述两个距离进行评估和优化,并对其进行归一化,其计算公式如下:
式中:CCTNet(x)表示锚点样本的CCT嵌入表达,CCTNet(x+)表示正例样本的嵌入表达,CCTNet(x-)表示负例样本的嵌入表达,+表示逐元素求和,-表示逐元素相减,||·||2表示求·的二范式;
在此基础上计算的三元损失函数为:
式中:α表示锚点样本与负例样本、锚点样本与正例样本嵌入表达距离的最小差,d+表示锚点样本与正例样本之间的欧氏距离,d-表示锚点样本与负例样本之间的欧氏距离,表示求·的二范式的平方;
通过训练优化三元损失函数,使得锚点样本x向正例样本x+靠近,远离负例样本x-;
步骤四、训练入侵检测网络模型;
训练基于小样本学习的三元CCT网络模型的入侵检测网络,采用Adam优化器优化三元损失函数,使之最小化;
所述基于小样本学习的三元CCT网络模型结构与步骤三中基于小样本学习的三元CCT网络模型结构相同;
步骤五、检测网络流量并确定入侵类型;
检测网络流量并确定入侵类型具体过程如下:首先选择一个测试样本作为锚点样本,然后在步骤一中构建好的训练数据集中在两个随机的类中,分别选择一个随机样本,将这三个样本作为网络的输入三元组,比较测试样本与这两个样本之间的距离,将距离大的一个样本替换为训练数据集中一个不同于前两个类的一个随机样本,再次比较距离,直到将数据集中的类比较完毕,距离最小的那个样本所在的类就是当前测试样本的类。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210521946.7A CN115208613B (zh) | 2022-05-13 | 2022-05-13 | 一种基于小样本学习的三元cct网络的入侵检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210521946.7A CN115208613B (zh) | 2022-05-13 | 2022-05-13 | 一种基于小样本学习的三元cct网络的入侵检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115208613A CN115208613A (zh) | 2022-10-18 |
CN115208613B true CN115208613B (zh) | 2023-09-19 |
Family
ID=83574724
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210521946.7A Active CN115208613B (zh) | 2022-05-13 | 2022-05-13 | 一种基于小样本学习的三元cct网络的入侵检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115208613B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115600764B (zh) * | 2022-11-17 | 2023-05-05 | 中船重工(武汉)凌久高科有限公司 | 基于权重邻域粗糙集快速约简的滚动时域能耗预测方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110808945A (zh) * | 2019-09-11 | 2020-02-18 | 浙江大学 | 一种基于元学习的小样本场景下网络入侵检测方法 |
CN112491797A (zh) * | 2020-10-28 | 2021-03-12 | 北京工业大学 | 一种基于非平衡工控数据集的入侵检测方法及系统 |
CN113518063A (zh) * | 2021-03-01 | 2021-10-19 | 广东工业大学 | 基于数据增强和BiLSTM的网络入侵检测方法及系统 |
CN113836530A (zh) * | 2021-09-18 | 2021-12-24 | 河北师范大学 | 一种基于MAAM和CliqueNet的恶意软件检测和家族分类方法 |
CN114462520A (zh) * | 2022-01-25 | 2022-05-10 | 北京工业大学 | 一种基于流量分类的网络入侵检测方法 |
-
2022
- 2022-05-13 CN CN202210521946.7A patent/CN115208613B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110808945A (zh) * | 2019-09-11 | 2020-02-18 | 浙江大学 | 一种基于元学习的小样本场景下网络入侵检测方法 |
CN112491797A (zh) * | 2020-10-28 | 2021-03-12 | 北京工业大学 | 一种基于非平衡工控数据集的入侵检测方法及系统 |
CN113518063A (zh) * | 2021-03-01 | 2021-10-19 | 广东工业大学 | 基于数据增强和BiLSTM的网络入侵检测方法及系统 |
CN113836530A (zh) * | 2021-09-18 | 2021-12-24 | 河北师范大学 | 一种基于MAAM和CliqueNet的恶意软件检测和家族分类方法 |
CN114462520A (zh) * | 2022-01-25 | 2022-05-10 | 北京工业大学 | 一种基于流量分类的网络入侵检测方法 |
Also Published As
Publication number | Publication date |
---|---|
CN115208613A (zh) | 2022-10-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Kong et al. | Differential competitive learning for centroid estimation and phoneme recognition | |
CN115409844B (zh) | 循环肿瘤细胞检测设备及其方法 | |
EP4094201A1 (en) | Method of training an image classification model | |
CN110119707B (zh) | 一种人体动作识别方法 | |
CN115208613B (zh) | 一种基于小样本学习的三元cct网络的入侵检测方法 | |
US20200125930A1 (en) | Artificial neural network and method of training an artificial neural network with epigenetic neurogenesis | |
CN116052218B (zh) | 一种行人重识别方法 | |
Wanda et al. | URLDeep: Continuous Prediction of Malicious URL with Dynamic Deep Learning in Social Networks. | |
CN113380255A (zh) | 一种基于迁移训练的声纹识别中毒样本生成方法 | |
CN114143040A (zh) | 一种基于多通道特征重构的对抗信号检测方法 | |
CN114266926A (zh) | 一种基于平扫ct的物质分解方法、智能终端及存储介质 | |
CN112949481A (zh) | 一种用于说话人无关的唇语识别方法及系统 | |
CN113486569B (zh) | 一种离心泵剩余寿命预测方法 | |
Cho et al. | Genetic evolution processing of data structures for image classification | |
CN114282647A (zh) | 基于脉冲神经网络的神经形态视觉传感器目标检测方法 | |
JP2022537977A (ja) | 格子点列挙のための装置及び方法 | |
Zemouri | An evolutionary building algorithm for deep neural networks | |
Pajares et al. | Stereo matching based on the self-organizing feature-mapping algorithm | |
Guzzi et al. | Distillation of a CNN for a high accuracy mobile face recognition system | |
CN111556017B (zh) | 一种基于自编码机的网络入侵检测方法及电子装置 | |
CN113177627B (zh) | 优化系统、重新训练系统及其方法及处理器和可读介质 | |
CN115238748B (zh) | 一种基于Transformer和决策融合的调制识别方法 | |
CN112364848B (zh) | 基于分类损失的生成对抗网络修复异常静脉图像的识别方法及装置 | |
부윤호 | Characterization and Optimization of Quantized Deep Neural Networks | |
CN117789270A (zh) | 一种改进ShufflenetV2网络的指纹活性检测方法 |
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 |