本发涉及网络安全大数据分析和建模领域,尤其是涉及到一种基于1d-cnn特征重构和降维的网络安全数据分类方法。
背景技术:
网络空间中存在各种各样的网络攻击方式,比如恶意代码、钓鱼邮件和网站、流量攻击、漏洞利用等,这些攻击不仅会造成巨大的经济损失,甚至会威胁国家安全和社会稳定,因此对网络威胁进行检测是很有必要的。在检测的过程中,需要采集大量的网络数据,比如恶意软件、钓鱼邮件、网络流量、系统日志等,构建传统的机器学习模型分析这些数据已经难以取得较好的效果。随着深度学习、人工智能计算的不断发展,以及深度学习技术在计算机视觉、自然语言处理等方面的成功应用,将深度学习技术应用于网络空间威胁检测方面,是一种实现网络安全数据分类,提高网络威胁检测的有效方法。
深度学习技术包括多种算法,比如卷积神经网络(cnn)、循环神经网络(rnn)、对抗神经网络(gan)等,其中,cnn算法利用卷积层的非线性运算,对数据特征进行学习和重新表征,利用池化层的压缩运算,减少数据特征的维度,因此,cnn算法能够用于处理网络安全数据。根据处理数据类型的不同,cnn算法可以构建1d-cnn模型和2d-cnn模型。比如,在处理序列信号数据和自然语言时,构建1d-cnn模型,在处理图像、视频数据时,构建2d-cnn模型。将2d-cnn模型用于网络安全数据进行分类时,首先需要将数据转换为图像格式然后再进行处理,在处理过程中存在运算过程复杂、运算量多的缺陷;同时,在卷积核中采用随机数也存在特征之间的关联性较差的问题,导致整体分类精度低。
技术实现要素:
针对现有技术的不足,本发明提出了一种基于1d-cnn特征重构的网络安全数据分类方法,针对安全数据样本的一维特性构建1d-cnn深层模型,利用神经元的非线性特性重构原始的安全数据的特征,将卷积层的卷积核中的随机数改为特征相关系数,提高重构特征间的相关性,降低特征空间维度,提高分类精度。
一种基于1d-cnn特征重构的网络安全数据分类方法,具体包括以下步骤:
步骤一:构建数据集
对原始安全数据进行one-hot编码,构建尺寸为n*d的测试集xtest与训练集x,计算训练集x的特征相关矩阵r,其中n为数据集的样本数,d表示数据集维度;y为训练集x对应的真实类别标签集合,
步骤二:构建1d-cnn算法模型
构建1d-cnn算法模型,用于对输入的数据集进行降维、重构,模型包括一个输入层、l个卷积层、l个池化层、一个全连接层和一个softmax层。
所述输入层,用于训练集x的输入。
所述l个卷积层,对每一个卷积层根据步骤一计算得到的特征相关矩阵r设置m个卷积核,将输入卷积层的数据与m个卷积核进行卷积运算,得到m个映射特征矩阵,再经过非线性激活函数relu(·)得到m个非线性映射特征矩阵sl;其中第l个卷积层的输出经过非线性激活函数relu(·)后与第l个池化层相连;当l=1时,卷积层的输入与输入层的输出相连,当l>1时,卷积层的输入与经过非线性激活函数relu(·)的第l-1个池化层的输出相连。
所述l个池化层,采用最大值池化的方式,对卷积层输出的非线性映射特征矩阵sl进行下采样操作,再经过非线性激活函数relu(·),得到池化后的非线性映射特征矩阵tl;其中第l个池化层的输出经过非线性激活函数relu(·)后与全连接层的输入相连。
所述全连接层,采用卷积核为m×d的全局卷积;将第l个池化层输出tl经过全局卷积,实现特征空间的非线性变换后,再经过非线性激活函数relu(·),得到重构矩阵x′f。
所述softmax层的输入与全连接层的输出相连。
步骤三、训练、优化1d-cnn算法模型
将步骤二得到的1d-cnn算法模型的输出重构矩阵x′f输入到softmax层中,得到预测重构特征矩阵x′f中的样本类别标签y′,将预测的样本类别标签y′与真实的类别标签y相比,推导出1d-cnn模型的损失函数loss,循环训练1d-cnn算法模型f次。
在1d-cnn算法模型训练迭代的过程中,采用adam优化函数将1d-cnn算法模型的损失函数loss优化到最小值。在1d-cnn算法模型训练结束时,从全连接层输出得到1d-cnn算法模型训练完成得到的尺寸为n×d′重构特征矩阵x′,其中d′≤d,表示重构矩阵的维度低于原始数据矩阵,即1d-cnn算法模型实现重构矩阵对原始矩阵的降维。
作为优选,循环训练1d-cnn算法模型的次数为f=1000。
步骤四、构建并训练安全数据分类模型
构建基于浅层机器学习算法的安全数据分类模型,将步骤三得到的重构特征矩阵x′输入到安全数据分类模型中,得到预测的样本类别标签y″。
设置性能目标,将预测的样本类别标签y″与真实类别标签y相比,根据混淆矩阵评估指标计算分类模型的性能。当分类模型的性能未达到预设目标时,返回步骤三,重新训练、优化1d-cnn算法模型;分类模型的性能达到预设目标时,进入下一步。
作为优选,所述浅层机器学习算法为支持向量机、决策树或朴素贝叶斯。
作为优选,所述分类模型的性能包括分类模型的正确率、精准率和回调率
步骤五、安全数据分类
将测试数据集xtest输入到步骤三中训练、优化后的1d-cnn算法模型中,得到测试数据集xtest的重构特征矩阵x′test,然后将x′test输入到步骤四中训练、优化后的安全数据分类模型中,得到测试数据集xtest的预测类别矩阵y′test,实现网络安全数据集中数据分类标签的预测,即实现网络安全数据的分类。
本发明具有以下有益效果:
(1)根据输入数据的1d结构,构建1d-cnn算法模型,其中卷积核和池化采样都是采用1d矩阵样式,相比于现有技术中的2d-cnn模型,1d-cnn网络的运算更简化,运算量也相应减少了,可以提高模型的运算效率;
(2)在1d-cnn算法模型卷积层的卷积操作中,卷积核采用特征相关性矩阵而非随机数,将输入数据与相关性卷积核卷积运算,使得到的重构特征之间具有较好的关联性,可以提高分类结果的准确度;
(3)经过1d-cnn的卷积操作、池化操作和全连接层的卷积操作,能够控制重构特征的维度,当维度低于原始数据维度时,实现了数据的降维,进而提高重构数据基于浅层机器学习分类的性能。
附图说明
图1为基于1d-cnn特征重构的网络安全数据分类方法流程图。
具体实施方式
以下结合附图对本发明作进一步的解释说明;
本实施例中使用的原始安全数据来源于网络安全领域经典数据集kddcup99和最新数据集cicmaldroid2020。
如图1所示,基于1d-cnn特征重构的网络安全数据分类方法包括模型构建、训练优化以及数据分类,具体过程如下:
步骤一:构建数据集
对原始安全数据进行one-hot编码,构建尺寸为n*d的n*d的测试集xtest与训练集x,x=(x1,x2,…,xn,…xn),其中n为数据集的样本数,d表示数据集维度,根据协方差矩阵计算训练集x的特征相关矩阵r,r=(r1,r2,…,rn,…rn);y为训练集x对应的真实类别标签集合。
步骤二:构建1d-cnn算法模型
构建1d-cnn算法模型,用于对输入的数据集进行降维、重构,模型包括一个输入层、l个卷积层、l个池化层、一个全连接层和一个softmax层。
所述输入层,用于训练集x的输入。
所述l个卷积层,其中第l个卷积层的输出经过非线性激活函数relu(·)后与第l个池化层相连;当l=1时,卷积层的输入与输入层的输出相连,当l>1时,卷积层的输入与经过非线性激活函数relu(·)的第l-1个池化层的输出相连。对每一个卷积层设置m个卷积核,其中第m个卷积核为从特征相关矩阵r的行矩阵中随机抽取的一个1d矩阵,
其中,conv1d(·)表示卷积函数,
所述l个池化层,其中第l个池化层的输出经过非线性激活函数relu(·)后与全连接层的输入相连。池化层采用最大值池化的方式,使用池化矩阵
其中,maxpooling(·)表示最大池化函数。
所述全连接层,采用m×d的卷积核km×d进行全局卷积操作,实现特征空间的非线性变化;将第l个池化层输出tl经过全局卷积后,再经过非线性激活函数relu(·),得到重构矩阵x′f:
所述softmax层的输入与全连接层的输出相连。
步骤三、训练、优化1d-cnn算法模型
将步骤二得到的1d-cnn算法模型的输出重构矩阵x′f输入到softmax层中,得到预测重构特征矩阵x′f中的样本类别标签y′:
y′=softmax(x′f)
将预测的样本类别标签y′与真实的类别标签y相比,基于交叉熵损失函数定义1d-cnn算法模型的损失函数loss,
loss=crossentropy(y,y′)
其中,crossentropy(·)表示交叉熵损失函数。
循环训练1d-cnn算法模型1000次。
在1d-cnn算法模型训练迭代的过程中,采用adam优化函数将1d-cnn算法模型的损失函数loss优化到最小值。在1d-cnn算法模型训练结束时,从全连接层输出得到1d-cnn算法模型训练完成得到的尺寸为n×d′重构特征矩阵x′,其中d′≤d,表示重构矩阵的维度低于原始数据矩阵,即1d-cnn算法模型实现重构矩阵对原始矩阵的降维。
将数据集kddcup99和cicmaldroid2020经过1d-cnn算法模型的降维、重构后得到15%比例的特征集合。
步骤四、构建并训练安全数据分类模型
构建基于支持向量机的浅层机器学习算法的安全数据分类模型,将步骤三得到的重构特征矩阵x′输入到安全数据分类模型中,得到预测的样本类别标签y″。
设置性能目标,将预测的样本类别标签y″与真实类别标签y相比,根据混淆矩阵评估指标计算分类模型的性能,包括分类模型的正确率、精准率和回调率。当分类模型的性能未达到预设目标时,返回步骤三,重新训练、优化1d-cnn算法模型;分类模型的性能达到预设目标时,进入下一步。
步骤五、安全数据分类
将测试数据集xtest输入到步骤三中训练、优化后的1d-cnn算法模型中,得到测试数据集xtest的重构特征矩阵x′test,然后将x′test输入到步骤四中训练、优化后的安全数据分类模型中,得到测试数据集xtest的预测类别矩阵y′test,实现网络安全数据集中数据分类标签的预测,即实现网络安全数据的分类。
步骤六、实验结果
经过上述步骤后,计算数据集kddcup99和cicmaldroid2020被降维重构为15%比例的特征集合后的分类准确度,与同样经过1d-cnn算法模型降维重构15%比例的特征集合,但是卷积核为随机数的分类结果以及未经过1d-cnn算法模型降维重构直接输入训练好的安全数据分类模型的分类结果对比,对比结果如下表所示:
比较表格的第二、三列与第四列数据可知,通过1d-cnn算法模型降维重构的分类结果优于未经降维重构的分类结果;比较表格的第二列与第三列数据可知,将特征相关性矩阵作为1d-cnn算法的初始化权重,即根据特征相关性矩阵设置卷积核取得的分类结果优于不使用特征相关性的分类结果。
1.一种基于1d-cnn特征重构的网络安全数据分类方法,其特征在于:该方法具体包括以下步骤:
步骤一:构建训练集
对原始安全数据进行one-hot编码,构建尺寸为n*d的测试集xtest与训练集x,计算训练集x的特征相关矩阵r,其中n为数据集的样本数,d表示数据集维度;y为训练集x对应的真实类别标签集合;
步骤二:构建1d-cnn算法模型
构建1d-cnn算法模型,用于对输入的数据集进行降维、重构,模型包括一个输入层、l个卷积层、l个池化层、一个全连接层和一个softmax层;
所述输入层,用于训练集x的输入;
所述l个卷积层,对每一个卷积层根据步骤一计算得到的特征相关矩阵r设置m个卷积核,将输入卷积层的数据与m个卷积核进行卷积运算,得到m个映射特征矩阵,再经过非线性激活函数relu(·)得到m个非线性映射特征矩阵sl;其中第l个卷积层的输出经过非线性激活函数relu(·)后与第l个池化层相连;当l=1时,卷积层的输入与输入层的输出相连,当l>1时,卷积层的输入与经过非线性激活函数relu(·)的第l-1个池化层的输出相连;
所述l个池化层,采用最大值池化的方式,对卷积层输出的非线性映射特征矩阵sl进行下采样操作,再经过非线性激活函数relu(·),得到池化后的非线性映射特征矩阵tl;其中第l个池化层的输出经过非线性激活函数relu(·)后与全连接层的输入相连;
所述全连接层,采用卷积核为m×d的全局卷积;将第l个池化层输出tl经过全局卷积,实现特征空间的非线性变换后,再经过非线性激活函数relu(·),得到重构矩阵x′f;
所述softmax层的输入与全连接层的输出相连;
步骤三、训练、优化1d-cnn算法模型
将步骤二得到的1d-cnn算法模型的输出重构矩阵x′f输入到softmax层中,得到预测重构特征矩阵x′f中的样本类别标签y′,将预测的样本类别标签y′与真实的类别标签y相比,推导出1d-cnn模型的损失函数loss,循环训练1d-cnn算法模型f次;
在1d-cnn算法模型训练迭代的过程中,采用adam优化函数将1d-cnn算法模型的损失函数loss优化到最小值;在1d-cnn算法模型训练结束时,从全连接层输出得到1d-cnn算法模型训练完成得到的尺寸为n×d′重构特征矩阵x′,其中d′≤d,表示重构矩阵的维度低于原始数据矩阵,即1d-cnn算法模型实现重构矩阵对原始矩阵的降维;
步骤四、构建并训练安全数据分类模型
构建基于浅层机器学习算法的安全数据分类模型,将步骤三得到的重构特征矩阵x′输入到安全数据分类模型中,得到预测的样本类别标签y″;
设置性能目标,将预测的样本类别标签y″与真实类别标签y相比,根据混淆矩阵评估指标计算分类模型的性能;当分类模型的性能未达到预设目标时,返回步骤三,重新训练、优化1d-cnn算法模型;分类器的性能达到预设目标时,进入下一步;
步骤五、安全数据分类
将测试数据集xtest输入到步骤三中训练、优化后的1d-cnn算法模型中,得到测试数据集xtest的重构特征矩阵x′test,然后将x′test输入到步骤四中训练、优化后的安全数据分类模型中,得到测试数据集xtest的预测类别矩阵y′test,实现网络安全数据集中数据分类标签的预测,即实现网络安全数据的分类。
2.如权利要求1所述一种基于1d-cnn特征重构的网络安全数据分类方法,其特征在于:循环训练1d-cnn算法模型的次数为f=1000。
3.如权利要求1所述一种基于1d-cnn特征重构的网络安全数据分类方法,其特征在于:所述浅层机器学习算法为支持向量机、决策树或朴素贝叶斯。
4.如权利要求1所述一种基于1d-cnn特征重构的网络安全数据分类方法,其特征在于:所述的分类模型性能包括分类模型的正确率、精准率和回调率。
技术总结