1.一种基于CNN‑GRU的移动应用识别方法,包括以下步骤:
步骤1,获取移动应用数据集,得到用于的移动应用流量数据;
步骤2,对移动应用数据集进行预处理操作,使其保留原本语义的同时符合神经网络的输入,得到训练数据集;
步骤3,构建检测模型,所述检测模型包括卷积神经网络模型CNN、门控循环单元GRU模型和全连接层;所述卷积神经网络模型CNN用于空间特征提取,门控循环单元GRU用于时序特征提取,经过全连接层输出检测结果;
整体神经网络模型包括依次连接的卷积层一C1、池化层一S1、卷积层二C2、池化层二S2、全连接层一D1、GRU1、GRU2、全连接层D2;
空间特征的学习输入为k个数据包图像,输出为网络流空间特征,即k个数据包向量。
Conv1:该卷积层的卷积核数为32,单个卷积核大小为5*5,滑动步长为1,采用Relu函数对结果进行非线性映射,输出特征的映射维数为32,经过该层后的特征映射为32*21*21。
MaxPooling1:该池化层大小为2*2,滑动步长为2,采用最大池化策略,经过该层后的特征映射为32*11*11;Conv2:该卷积层的卷积核数为64,单个卷积核大小为3*3,滑动步长为1,采用Relu函数对结果进行非线性映射,经过该层后的特征映射为64*9*9;MaxPooling2:该池化层大小为2*2,滑动步长为2,采用最大池化策略,经过该层后的特征映射为64*5*5。
Dense:全连接层的神经元个数为128个,使用Relu函数后进行dropout策略丢弃20%的特征;
卷积神经网络对每个流量数据包分别进行空间特征学习,每个数据包经过信息提取处理后进行独热编码,编码转换后得到的数据包图像经过模型卷积层和池化层的对应处理,最终得到包含数据包独有特征的向量。
GRU将经过CNN输出的特征映射向量作为输入,输出网络时序特征的学习,输入为k个特征映射向量组成,输出为网络流时序特征向量。
步骤4,利用训练数据集,对检测模型进行训练,一轮网络的训练由一次前向传导过程和一次反向传播过程组成;首先是经过整个检测模型逐层传递学习的特征值,然后给出检测模型的预测;再通过交叉熵损失函数计算出预测值与真实值之间的损失值,这是一轮前向传导;反向传播过程将根据损失值,对整个检测模型中的参数进行优化更新;最终得到训练好的检测模型,然后利用训练优化完成后的检测模型进行移动应用识别。
2.根据权利要求1所述的基于CNN‑GRU的移动应用识别方法,其特征在于:所述步骤1中采用的移动应用数据集为使用wireshark抓包工具进行的流量采集,采集的数据至少包括QQ、微信、微博的应用流量。
3.根据权利要求1所述的基于CNN‑GRU的移动应用识别方法,其特征在于:所述步骤2中的预处理操作包括对网络数据集中输入到卷积神经网络模型CNN中的网络数据预处理。
4.根据权利要求3所述的基于CNN‑GRU的移动应用识别方法,其特征在于:所述步骤2中,对网络数据集中输入到卷积神经网络模型CNN中的网络数据预处理如下:将数据集中流量数据的字节组成数据包,数据包又组成网络流,对每条网络流截取前5个数据包,每个数据包取60个字节,若长度不够,则在末尾补0x00。
5.根据权利要求1所述的基于CNN‑GRU的移动应用识别方法,其特征在于:所述步骤3中,采用Leaky ReLu()激活函数激活。
6.根据权利要求1所述的基于CNN‑GRU的移动应用识别方法,其特征在于:所述步骤4中使用softmax()作为分类函数。
7.根据权利要求1所述的基于CNN‑GRU的移动应用识别方法,其特征在于:所述步骤4中使用交叉熵损失函数作为损失函数计算损失值。
8.根据权利要求1所述的基于CNN‑GRU的移动应用识别方法,其特征在于:所述步骤4中采用Adam优化器进行优化。