首页 > 专利 > 杭州电子科技大学 > 基于深度学习的加密流量分类方法专利详情

基于深度学习的加密流量分类方法   0    0

有效专利 查看PDF
专利申请流程有哪些步骤?
专利申请流程图
申请
申请号:指国家知识产权局受理一件专利申请时给予该专利申请的一个标示号码。唯一性原则。
申请日:提出专利申请之日。
2021-06-30
申请公布
申请公布指发明专利申请经初步审查合格后,自申请日(或优先权日)起18个月期满时的公布或根据申请人的请求提前进行的公布。
申请公布号:专利申请过程中,在尚未取得专利授权之前,国家专利局《专利公报》公开专利时的编号。
申请公布日:申请公开的日期,即在专利公报上予以公开的日期。
2021-11-12
授权
授权指对发明专利申请经实质审查没有发现驳回理由,授予发明专利权;或对实用新型或外观设计专利申请经初步审查没有发现驳回理由,授予实用新型专利权或外观设计专利权。
2022-09-30
预估到期
发明专利权的期限为二十年,实用新型专利权期限为十年,外观设计专利权期限为十五年,均自申请日起计算。专利届满后法律终止保护。
2041-06-30
基本信息
有效性 有效专利 专利类型 发明专利
申请号 CN202110736516.2 申请日 2021-06-30
公开/公告号 CN113556328B 公开/公告日 2022-09-30
授权日 2022-09-30 预估到期日 2041-06-30
申请年 2021年 公开/公告年 2022年
缴费截止日
分类号 H04L9/40H04L47/2441G06N3/08G06N3/04G06K9/62 主分类号 H04L9/40
是否联合申请 独立申请 文献类型号 B
独权数量 1 从权数量 1
权利要求数量 2 非专利引证数量 0
引用专利数量 0 被引证专利数量 0
非专利引证
引用专利 被引证专利
专利权维持 1 专利申请国编码 CN
专利事件 事务标签 公开、实质审查、授权
申请人信息
申请人 第一申请人
专利权人 杭州电子科技大学 当前专利权人 杭州电子科技大学
发明人 付兴兵、余志鹏、陈媛芳、林菲 第一发明人 付兴兵
地址 浙江省杭州市下沙高教园区2号大街 邮编 310018
申请人数量 1 发明人数量 4
申请人所在省 浙江省 申请人所在市 浙江省杭州市
代理人信息
代理机构
专利代理机构是经省专利管理局审核,国家知识产权局批准设立,可以接受委托人的委托,在委托权限范围内以委托人的名义办理专利申请或其他专利事务的服务机构。
杭州君度专利代理事务所 代理人
专利代理师是代理他人进行专利申请和办理其他专利事务,取得一定资格的人。
杨舟涛
摘要
本发明公开了基于深度学习的加密流量分类方法,涉及到流量分类和深度学习领域。本发明旨在研究加密流量与流量的时空序列间潜在的关系,设计了GRU、LSTM、BiGRU、和BiLSTM四类对时序分类效果较好的RNN模型来对加密流量进行分类。为了进一步提升实验结论的可靠性,设计了一个CNN模型用于对比。经过多个模型对比之后,四类RNN模型中,除GRU模型性能略差一点外,其余三项RNN模型分类效果相差无几;CNN模型在本次实验中的各项性能表现都非常不错,并且运行时间是五个模型中最短的一个。
  • 摘要附图
    基于深度学习的加密流量分类方法
  • 说明书附图:图1
    基于深度学习的加密流量分类方法
  • 说明书附图:图2
    基于深度学习的加密流量分类方法
  • 说明书附图:图3
    基于深度学习的加密流量分类方法
  • 说明书附图:图4
    基于深度学习的加密流量分类方法
  • 说明书附图:图5
    基于深度学习的加密流量分类方法
  • 说明书附图:图6
    基于深度学习的加密流量分类方法
  • 说明书附图:图7
    基于深度学习的加密流量分类方法
  • 说明书附图:图8
    基于深度学习的加密流量分类方法
  • 说明书附图:图9
    基于深度学习的加密流量分类方法
  • 说明书附图:图10
    基于深度学习的加密流量分类方法
  • 说明书附图:图11
    基于深度学习的加密流量分类方法
  • 说明书附图:图12
    基于深度学习的加密流量分类方法
  • 说明书附图:图13
    基于深度学习的加密流量分类方法
  • 说明书附图:图14
    基于深度学习的加密流量分类方法
  • 说明书附图:图15
    基于深度学习的加密流量分类方法
  • 说明书附图:图16
    基于深度学习的加密流量分类方法
  • 说明书附图:图17
    基于深度学习的加密流量分类方法
  • 说明书附图:图18
    基于深度学习的加密流量分类方法
  • 说明书附图:图19
    基于深度学习的加密流量分类方法
  • 说明书附图:图20
    基于深度学习的加密流量分类方法
  • 说明书附图:图21
    基于深度学习的加密流量分类方法
  • 说明书附图:图22
    基于深度学习的加密流量分类方法
法律状态
序号 法律状态公告日 法律状态 法律状态信息
1 2022-09-30 授权
2 2021-11-12 实质审查的生效 IPC(主分类): H04L 29/06 专利申请号: 202110736516.2 申请日: 2021.06.30
3 2021-10-26 公开
权利要求
权利要求书是申请文件最核心的部分,是申请人向国家申请保护他的发明创造及划定保护范围的文件。
1.基于深度学习的加密流量分类方法,其特征在于,包括如下步骤:
步骤1:对网络流量数据进行预处理;
步骤1.1,利用Python的scipy.io库将ISCX VPN 2016数据集中的data导入;
步骤1.2,数据导入成功后,将data划分为样本和标签两部分;
步骤1.3,对样本进行中心化和归一化处理;中心化是指让样本数据减去样本的均值,从而达到样本总体呈现以0为中心的正态分布目的;归一化是指让样本数据除以样本的标准差,最终使得样本数据绝对值变为0~1之间的小数,让数据在计算时更加迅速,从而加快模型的收敛;
步骤1.4,将标签转化成one‑hot码格式;
步骤1.5,将处理好的标签和样本划分为训练集和测试集,并将集合中的数据随机打乱;
步骤2:设计搭建深度学习模型;
步骤2.1,搭建GRU模型;在构建的GRU模型之中,包括有两层GRU层,一层dropout以及一层dense层;第一、二层为GRU层,每层均有50个神经元;dropout层中将失活因子设置为0.2,即在经过dropout层时,随机让20%的神经元休眠,从而达到预防模型出现过拟合的作用;
最后加入一层dense层,将上一层的输出进行全连接,输出7个0~1的数字作为对流量类别进行预测的结果,激活函数选择sigmoid函数;
步骤2.2,搭建LSTM模型;在构建的LSTM模型之中,共有4层LSTM层,4层dropout层,1层全连接层,1层激活层;首先是四层LSTM层,每层各50个神经元;在每层LSTM层后,均设置有一个dropout层,让20%的神经元随机地失活,防止模型出现过拟合现象;在LSTM层的前三层中,将参数return_sequences设置为True,目的是让LSTM层中的输出序列返回全部的时间步的隐藏状态值,更利于研究输入数据间的时空序列关系;最后是一层完整的全连接层输出7类结果的预测,并用softmax作为一个激活函数;
步骤2.3,搭建BiGRU模型;在构建的BiGRU模型之中,使用了2个BiGRU层,1个timeDistributed层,1个全连接层以及1个GlobalAveragePooling1D层;首先是一层BiGRU层,每侧GRU层设置80个神经元,共160个神经元,采用ReLU函数作为激活函数,并将随机失活因子设置为0.3,即让30%的神经元随机失活,加快模型的收敛速度;模型中的merge_mode是指前向和后向GRU模型的结合方式,实验中将其设置为concat,即拼接模式;在BiGRU层后紧接着是一层批标准化层,目的是为了防止模型的梯度消失,加快模型的收敛;然后加入一层timeDistributed层,在时间维度上进行全连接,为输入中的每个时间步从序列中分别输出一个时间步,全连接神经元个数设置为80,并选择ReLU函数作为激活函数;再往模型中加入一层BiGRU层以及批标准化层,各层的参数配置与第一次配置的BiGRU层和批标准化层相同;紧接着是一层全连接层,共有7个神经元,对上层的输出进行全连接,输出7个0~1之间的数字,选择softmax作为激活函数;最后是一层GlobalAveragePooling1D层,其作用是为时域信号施加全局平均值,池化后得到最终预测结果;
步骤2.4,搭建BiLSTM模型;在构建的BiLSTM模型中,有2个BiLSTM层,1个LSTM层以及1个全连接层;首先引入了一层BiLSTM层,每侧LSTM设置80个神经元,共160个神经元,并设置dropout值为0.3,让30%的神经元随机失活,避免过拟合现象的发生;然后引入一层LSTM层,同样将dropout值设置为0.3,让30%神经元随机失活,加快模型的收敛速度;再添加一层BiLSTM层,该层的各参数设置与第一次添加的BiLSTM层相同;最后添加一层全连接层用作模型的预测结果输出,全连接层中有7个神经元,最终会输出7个0~1之间的数表示7种流量类型的预测结果;激活函数采用的是softmax函数;
步骤2.5,搭建CNN模型;在构建的CNN模型中,有2个1DCNN层,1个dropout层,1个MaxPooling1D层,1个展平层以及2个全连接层;先往模型中添加两层1DCNN层,其中,每个
1DCNN层中过滤器的数量为64个,卷积核的数量为3,激活函数选择的是ReLU函数,dropout值设置为0.1,即随机让10%的神经元失活,加快收敛速度,防止过拟合现象的发生;添加一层MaxPooling1D层,对数据进行降维,简化之后的计算量,池化层的数量设置为2;再往CNN模型之中加入一层展平层,将从上一层得到的多维数据转化成一维的数据,使其能从卷积层直接过渡到全连接层;紧接着加入一层全连接层,对上层输出结果进行全连接,并将结果传输至下一层;在第一层全连接层中,设置了100个神经元,并将ReLU函数作为模型的激活函数;最后再加入一层全连接层用作模型的最终预测结果的输出;在该全连接层中,共有7个神经元,7个神经元分别输出7类不同流量的预测结果,激活函数为softmax函数;
步骤3:利用训练数据集对模型进行训练;训练的小批次样本量为628,每次训练5个批次;
步骤4,对模型进行评估;模型评估的性能好坏的标准有以下七类,分别为:模型的准确率ACC、误报率FPR、损失率Loss、精准率Precision、召回率Recall、F1‑Measure以及模型的运行时间;ROC曲线与下坐标轴围成的面积称为AUC,AUC的面积越大,表示分类的效果越好;
采用的深度学习模型均为多分类模型,其ROC曲线表示的是模型对每一类加密流量的分类效果;用于分类的加密流量共有7类;
TP:指的是样本本身为正例,并在经过模型预测之后,被成功划分成正例的样本个数;
FP:指的是样本本身为负例,但在经过模型预测之后,被错误地认为是正例的样本个数;
FN:指的是样本本身为正例,但在经过模型预测之后,被错误地认为是负例的样本个数;
TN:指的是样本本身为负例,并在经过模型预测之后,被成功划分为负例的样本个数;
准确率ACC计算公式:
误报率FPR计算公式:
精准率Precision计算公式:
召回率Recall计算公式:
F1‑Measure计算公式:
损失率Loss计算公式:
其中i表示样本,y表示实际的标签,a表示预测的输出,n表示样本总数量。

2.如权利要求1所述的基于深度学习的加密流量分类方法,其特征在于:测试集占比为总数据集的30%。
说明书

技术领域

[0001] 本发明属于流量分类和深度学习领域,旨在研究加密流量与流量时空序列间的潜在关系。

背景技术

[0002] 随着科技的不断发展和互联网规模的不断扩大,当前的网络应用呈现多样化的发展趋势,我们的活动越来越多地发生在计算机上,日常生活早已离不开网络,这是社会日益数字化所带来的必然结果。但随着“大数据”时代的进一步到来,一些潜在的问题也逐渐暴露在我们的视野之中:大量不知名的互联网数据流量正在充斥着整个互联网世界,蜂拥而至占满了网络的带宽,极大地增加了互联网的压力和负担,使得一些重要的数据传输受损,传输效率大大下降。此外,不同的网络应用对于各种网络资源的要求又不尽相同,例如:使用语音或者是视频会话时,所需要的资源就是一种持续稳定的网络带宽资源;而telnet等对于延迟敏感的较小型网络流量则是对于网络的连接性有更高的要求,需要能够很好地保证它们能够快速的实现通过;对于一些关键、敏感的网络数据,则要求网络技术需要能够有效地保障它们在传输时的安全性和数据的保密性,那么就需要有一条完整不受干扰的专用隧道。因此,对于网络管理人员来说,准确对应用流量进行分类,了解影响网络传输效率的具体因素显得极为重要。
[0003] 但现如今,随着人们的信息安全意识的不断增强和提高,对互联网中的流量和数据进行加密,成为人们维权和保护自己信息隐私的重要方式和手段。有一份报告表明,截至2017年的2月,半数的网络流量均已经进行了加密,对于某些特定的网络流量,加密甚至已经有了强制性的法律规定和要求。那么对于网络管理人员来说,对于网络流量的分类就不能像过去十几年一样,仅仅针对明文流量进行分类,而应该将大部分的精力转而投入到加密流量分类的研究中去。
[0004] 随着人工智能的蓬勃发展,其下的机器学习与深度学习领域也一举成为当前学术研究中最火爆的领域。数不清的年轻学者对其趋之若鹜,为这一新兴的领域注入大量的新鲜年轻活力。许多关于计算统计学、应用数学和数学基础的知识被广泛用于人工智能和机器学习的研究领域,这让其在过去的几十年间发展迅速。尤其是网络技术取得了阶段性的突破,这让人们察觉到了人工智能领域的无限可能。越来越多的新型科技产品和资源都被投入到深度学习的领域之中。这一举措使得深度学习得到史无前例的大发展。相信在未来的几年之内,深度学习必会突破现有的技术壁垒,在引领新一轮科技革命中发挥出中流砥柱的作用。目前,许多行业都争相跻身于这新一轮的科技革命之中,流量分类自然也不例外。不过,虽然近年来采取与机器学习或深度学习相结合的流量分类方法有所抬头,但毕竟技术还处于起步阶段,各方面的研究还不算特别完善,分类的效果也普遍较差,以至于目前市面上主流的流量分类方式大多还是传统的基于端口号的流量解析或是基于DPI(Deep Packet Inspection深度报文检测)技术的流量解析。
[0005] 基于以上的种种现状,本发明旨在对已有的一些流量分类算法进行改进,采取与深度学习相结合的方式,通过实验去探索不同流量间的内在逻辑关系,从而提升算法的分类效率,搭建出一套更佳的流量分类模型。
[0006] 现阶段主流的对流量分类的方法主要有以下几种:基于端口号的流量解析、DPI技术、基于流量时序、统计特点的机器学习流量解析方法、和基于流量时空特点的深度学习流量解析方法。
[0007] 基于默认端口号的网络流量解析方法,是最早被广泛应用于网络流量解析的一种方法。其主要原理就是根据不同的网络流量采用不同的默认端口号这一特征,对网络中的流量加以区别,这一流量信息解析的识别方法主要优点之一就是简单而快速。由IANA首先提出的基于端口号识别的方式,在2010年之前,那个网络流量数目和网络服务种类相对较少的时代,实际应用价值还是很不错的。但互联网应用数目的逐年增多,常规的端口数目已经远远不够了,这就迫使进程去选择一些随机端口号当作其临时端口。这样一来,就会使得基于随机端口号的流量解析精度和准确率大幅降低。再者,一些技术人员出于安全或是隐私方面的考虑,会人为的对端口号进行修改和伪装,这又进一步影响了基于端口号流量解析的准确性。
[0008] 通过DPI技术对流量进行解析是目前最常见的流量分类的方法,DPI检测技术本身就是一种基于大型应用网络层的数据采集包的一种深度报文检测分析技术,针对各种大型网络层和应用层的有效载荷(比如说http、ftp、https等)分别进行了各种深度报文检测,通过按照网络有效载荷和应用标准值将深度报文检测中的有效应用负荷数量进行准确划分。模式匹配、逐包分析等技术被用于DPI技术之中,这使得一些流量的具体的协议和应用类型能够被精确地识别出来。但与之而来的就导致了DPI算法的性能比较低,协议解析还原和特征匹配这些操作都需要被执行的,这就直接导致了数据的计算和保存的费用的开销十分巨大,而且DPI算法的扩展性差,在网络应用中的特征库还未被升级之前,任何一个新的网络应用流量均无法被识别。更为致命的是,DPI技术的识别是基于明文的,这就导致了加密流量被DPI技术正确识别的概率很低。DPI技术只能依靠检测HTTPS协议的server hello部分特征进行识别,对加密流量分类的精确度较差。在加密流量比重不断上升的今天,基于DPI技术的流量解析方法显然有些跟不上时代了。
[0009] 基于机器学习的流量分类方法是近年来崛起的一种新型网络数据流量分类分析的方法,也是各类学者的研究热点。其主要特点就是根据传统加密技术不处理流统计特征这一特点,通过采集大量数据流和多个数据包特征作为特征集,加以机器学习算法,对流统计特征进行识别,从而达到流量分类的目的。
[0010] 深度学习是一种高级的机器学习技术,深度学习不需要进行复杂的特征工程,它能够通过特征自动选择功能,只需要将数据直接传递到网络,通常就能实现良好的性能。这一特性使得深度学习成为了一种十分理想的流量分类的方法,尤其是不断有新类型的流量产生时,运用深度学习算法的流量分类模型效果更佳。与目前传统的机器学习方法相比,深度学习算法具有更高的学习能力,可以学习高度复杂的模式。时空特征被映射成张量的形式,作为输入喂入到深度学习模型之中,通过一系列深度学习网络,我们能得到一个预测分类结果。这常常对于时空上有继起的流量数据,有着良好的分类效果。

发明内容

[0011] 本发明针对现有技术的不足,提出了一种基于深度学习的加密流量分类方法。
[0012] 本发明受到Draper‑Gil、Gerard等人的启发,大胆推测加密流量与时间之间是存在巨大的联系的,利用循环神经网络处理涉及时间的数据效果较好这一特点,设计LSTM、GRU、双向LSTM、和双向GRU这四类RNN模型来比较、分析它们各自对加密流量分类的性能。同时,为了更进一步提升实验结论的说服力,实验中还设计了一个用作对比的CNN模型。本次实验中最重要的部分就是4类RNN模型以及CNN模型的搭建与优化。在对模型进行实例化以后,需要依照实验数据,不断对每个模型的参数进行修改,直致获取到最优的模型,并将这些最优模型作为最终模型。每个最终模型的六个性能指标(Accuracy,Precision,Recall,Loss,F1‑Measure,FPR)都要列入到同一个表格之中进行比对;最后,通过实验去挖掘时间与流量之间可能存在的潜在联系。
[0013] 本发明要解决的技术问题通过以下技术方法实现:
[0014] 本发明采用基于深度学习的方式对加密流量进行分类研究,主要包括以下步骤:
[0015] 步骤1:对网络流量数据进行预处理;
[0016] 步骤2:设计搭建深度学习模型;
[0017] 步骤2.1,搭建GRU模型;
[0018] 步骤2.2,搭建LSTM模型;
[0019] 步骤2.3,搭建BiGRU模型;
[0020] 步骤2.4,搭建BiLSTM模型;
[0021] 步骤2.5,搭建CNN模型;
[0022] 步骤3,利用训练数据集对模型进行训练;
[0023] 步骤4,对模型进行评估,并做相应的数据记录;
[0024] 步骤5,对实验数据进行比较、分析,并给出结论。

实施方案

[0047] 下面结合实施例来对本发明做进一步的描述,详细说明如下:
[0048] 如今互联网正处于高速发展时期,流量分类已被广泛应用到多个领域,QoS提供、ISP运营商计费统计、安全相关的应用、入侵检测系统等均有涉及。但随着互联网网络流量的急剧变化,尤其是近年来加密流量占比不断上升的情况下,传统的基于DPI技术的流量解析方法以及基于端口号的流量分析技术已稍显逊色,而传统的机器学习方法又太多地依赖人工选择的特征,如果这些特征集太小,则会严重限制学习结果的泛化性,并且特征工程的提取纷繁复杂,需要通过转换坐标轴的方式来寻找数据的最优分布空间,或是采用特征转换的方式,提取相互独立的特征属性,从而达到数据降维、减少数据冗余的目的;在流量类别持续增加的今天,传统的基于机器学习的方法学习率稍显不足。因此我们决定采用基于深度学习的方法对加密流量进行分类研究。网络数据流量在时空上是具有很强的连续性的,例如在访问一个网页以及进行文件的上传或下载时,都需要先进行TCP的三次握手,建立一个稳定的连接,那么这就意味着在一小段的时间里,该网络中会充斥着大量同种类型的流量;这就为接下来的研究提供了一个灵感,或许可以从流量在时空上有继起这一特性出发,通过分析涉及时间的数据来研究分类算法。
[0049] 本发明的加密流量分类实验整体流程如附图1所示,总体分为三大部分,分别是数据预处理、模型搭建与训练和模型预测。具体说明如下:
[0050] 步骤1,对网络流量数据进行预处理;如图2所示:
[0051] 步骤1.1,利用Python的scipy.io库将ISCX VPN 2016数据集中的data导入。
[0052] 步骤1.2,数据导入成功后,将data划分为样本和标签两部分。
[0053] 步骤1.3,对样本进行中心化、归一化处理。中心化是指让样本数据减去样本的均值,从而达到样本总体呈现以0为中心的正态分布目的;归一化是指让样本数据除以样本的标准差,最终使得样本数据绝对值变为0~1之间的小数,让数据在计算时更加迅速,从而加快模型的收敛。
[0054] 步骤1.4,将标签转化成one‑hot码格式。
[0055] 步骤1.5,将处理好的标签和样本划分为训练集和测试集(测试集占比为总数据集的30%),并将集合中的数据随机打乱。
[0056] 步骤2:设计搭建深度学习模型;
[0057] 步骤2.1,搭建GRU模型。在构建的GRU模型之中,有两层GRU层,一层dropout以及一层dense层。第一二层均为GRU层,每层均有50个神经元。再加入一层dropout层,并将失活因子设置为0.2,即在经过dropout层时,随机让20%的神经元休眠,从而达到预防模型出现过拟合的作用。最后加入一层dense层,将上一层的输出进行全连接,输出7个0~1的数字作为对流量类别进行预测的结果,激活函数选择sigmoid函数;如图3‑图6所示;
[0058] 步骤2.2,搭建LSTM模型。在构建的LSTM模型之中,共有4层LSTM层,4层dropout层,1层全连接层,1层激活层。首先是四层LSTM层,每层各50个神经元;在每层LSTM层后,均设置有一个dropout层,让20%的神经元随机地失活,防止模型出现过拟合现象。在LSTM层的前三层中,我们将参数return_sequences设置为True,目的是让LSTM层中的输出序列返回全部的时间步的隐藏状态值,更利于研究输入数据间的时空序列关系。最后是一层完整的全连接层输出7类结果的预测,并用softmax作为一个激活的函数;如图7‑10所示;
[0059] 步骤2.3,搭建BiGRU模型。在构建的BiGRU模型之中,使用了2个BiGRU层,1个timeDistributed层,1个全连接层以及1个GlobalAveragePooling1D层。首先是一层BiGRU层,每侧GRU层设置80个神经元,共160个神经元,采用ReLU函数作为激活函数,并将随机失活因子设置为0.3,即让30%的神经元随机失活,加快模型的收敛速度。模型中的merge_mode是指前向和后向GRU模型的结合方式,实验中将其设置为concat,即拼接模式。在双向GRU层后紧接着是一层批标准化层,目的是为了防止模型的梯度消失,加快模型的收敛。然后加入一层timeDistributed层,在时间维度上进行全连接,为输入中的每个时间步从序列中分别输出一个时间步,全连接神经元个数设置为80,并选择ReLU函数作为激活函数。再往模型中加入一层BiGRU层以及批标准化层,各层的参数配置与第一次配置的BiGRU层和批标准化层相同。紧接着是一层全连接层,共有7个神经元,对上层的输出进行全连接,输出7个0~1之间的数字,选择softmax作为激活函数。最后是一层GlobalAveragePooling1D层,其作用是为时域信号施加全局平均值,池化后得到最终预测结果;如图11‑14所示;
[0060] 步骤2.4,搭建BiLSTM模型。在我们构建的BiLSTM模型中,有2个BiLSTM层,1个LSTM层以及1个全连接层。首先使用引入了一层BiLSTM层,每侧LSTM设置80个神经元,共160个神经元,并设置dropout值为0.3,即可以让30%的神经元随机失活,避免过拟合现象的发生。然后引入一层LSTM层,同样将dropout值设置为0.3,让30%神经元随机失活,加快模型的收敛速度;再添加一层BiLSTM层,该层的各参数设置与第一次添加的BiLSTM层相同;最后添加一层全连接层用作模型的预测结果输出,全连接层中有7个神经元,最终会输出7个0~1之间的数表示7种流量类型的预测结果;激活函数采用的是softmax函数;如图15‑18所示。
[0061] 步骤2.5,搭建CNN模型。在我们构建的CNN模型中,有2个1DCNN层,1个dropout层,1个MaxPooling1D层,1个展平层以及2个全连接层。先往模型中添加两层1DCNN层,其中,每个1DCNN层中过滤器的数量为64个,卷积核的数量为3,激活函数选择的是ReLU函数,dropout值设置为0.1,即随机让10%的神经元失活,加快收敛速度,防止过拟合现象的发生。添加一层MaxPooling1D层,对数据进行降维,简化之后的计算量,池化层的数量设置为2。再往CNN模型之中加入一层展平层,将从上一层得到的多维数据转化成一维的数据,使其能从卷积层直接过渡到全连接层。紧接着加入一层全连接层,对上层输出结果进行全连接,并将结果传输至下一层;在第一层全连接层中,我们设置了100个神经元,并将ReLU函数作为模型的激活函数。最后再加入一层全连接层用作模型的最终预测结果的输出;在该全连接层中,共有7个神经元,7个神经元分别输出7类不同流量的预测结果,激活函数为softmax函数;如图
19‑22所示。
[0062] 步骤3:利用训练数据集对模型进行训练;训练的小批次样本量为628,每次训练5个批次。
[0063] 步骤4,对模型进行评估。模型评估的性能好坏的标准主要有以下七类,分别为:模型的准确率(ACC)、误报率(FPR)、损失率(Loss)、精准率(Precision)、召回率(Recall)、F1值(F1‑Measure)以及模型的运行时间。在本次实验中,我们还给出了模型在多分类情况下的ROC曲线图。ROC曲线常用于二分类的模型之中,用于衡量模型分类的效果;ROC曲线与下坐标轴围成的面积称为AUC(Area Under Curve),AUC的面积越大,表示分类的效果越好。本实验中采用的深度学习模型均为多分类模型,其ROC曲线表示的是模型对每一类加密流量的分类效果。在本次实验中我们用于分类的加密流量共有7类。
[0064] True positives(TP):指的是样本本身为正例,并在经过模型预测之后,被成功划分成正例的样本个数。
[0065] False positives(FP):指的是样本本身为负例,但在经过模型预测之后,被错误地认为是正例的样本个数。
[0066] False negatives(FN):指的是样本本身为正例,但在经过模型预测之后,被错误地认为是负例的样本个数。
[0067] True negatives(TN):指的是样本本身为负例,并在经过模型预测之后,被成功划分为负例的样本个数。
[0068] 准确率(ACC)计算公式:
[0069]
[0070] 误报率(FPR)计算公式:
[0071]
[0072] 精准率(Precision)计算公式:
[0073]
[0074] 召回率(Recall)计算公式:
[0075]
[0076] F1值(F1‑Measure)计算公式:
[0077]
[0078] 多分类中损失率(Loss)计算公式:
[0079]
[0080] (其中i表示样本,y表示实际的标签,a表示预测的输出,n表示样本总数量)[0081] 步骤5,实验数据分析。
[0082]   Loss ACC Precision Recall F1‑score FPR Run timeGRU 0.84 0.71 0.25 0.94 0.39 0.46 70.14s
LSTM 0.059 0.71 0.79 0.59 0.67 0.026 136.55s
BiGRU 0.056 0.75 0.81 0.62 0.70 0.024 108.26s
BiLSTM 0.059 0.71 0.79 0.61 0.69 0.025 356.97s
CNN 0.74 0.73 0.76 0.70 0.73 0.035 8.63s
[0083] 从模型运行后的结果来看,BiGRU模型有着最好的分类结果,多项性能指标在这五个模型之中都处于优秀地位,唯有运行时间,相较于单一模型来说显得比较慢,GRU模型在本次实验中表现稍显逊色,有着较大的Loss值和误检率,精确率较差。LSTM和BiLSTM模型在本次实验中表现中规中矩,除BiLSTM模型有较长的运行时间外,二者各项性能指标间的差距并不大。实验中最让人意外的是CNN模型;CNN模型中的各项性能都有着不俗的表现,而且运行时间较快,准确率较高,在多个指标更是超过了对时序敏感的RNN模型;反观几类不同的RNN模型,除GRU模型分类性能较差外,其余三类模型差距不大;这种种现象都表明着:影响加密流量分类效果的可能不仅仅只有时间,还存在着许多暂时未知的因素。
[0084] 对图像处理效果较好的CNN模型在本次加密流量分类中却展现出了非常优秀的分类性能,在某些方面甚至还超过了一些对时序分类效果较好的RNN模型。各模型比较的结果确实超乎了之前的预期,同时也清楚地表明:影响加密流量分类效果的因素不仅仅只有时间而已,还存在着许多未知的因素,这些因素共同作用并影响着流量分类的效果。加密流量的分类不是一件简单的事情,还需要后续的不断学习和研究,继续挖掘其潜在的联系。
[0085] 加密流量的分类问题犹如一个不透明的沙箱,里面的具体结构和运行原理很难被全部参透。只有不断地试验,大胆推测猜想,并根据实验的结果来找到其内在关联,反解出其内部细节,才能有更进一步的突破。但加密流量分类的前途是光明的,相信在经过后继学者的不断努力和尝试之后,在不久的将来,其内在的原理皆会被参破。加密流量分类的难题终会得到解决,“大数据”时代正在向我们招手。

附图说明

[0025] 图1是本发明的整体实验流程图;
[0026] 图2是本发明数据预处理部分结构图;
[0027] 图3为GRU模型结构示意图;
[0028] 图4为GRU模型六项性能指标及运行时间;
[0029] 图5为GRU模型Loss曲线图;
[0030] 图6为GRU模型ROC曲线图;
[0031] 图7为LSTM模型结构示意图;
[0032] 图8为LSTM模型六项性能指标及运行时间;
[0033] 图9为LSTM模型Loss曲线图;
[0034] 图10为LSTM模型ROC曲线图;
[0035] 图11为BiGRU模型结构示意图;
[0036] 图12为BiGRU模型六项性能指标及运行时间;
[0037] 图13为BiGRU模型Loss曲线图;
[0038] 图14为BiGRU模型ROC曲线图;
[0039] 图15为BiLSTM模型结构示意图;
[0040] 图16为BiLSTM模型六项性能指标及运行时间;
[0041] 图17为BiLSTM模型Loss曲线图;
[0042] 图18为BiLSTM模型ROC曲线图;
[0043] 图19为CNN模型结构示意图;
[0044] 图20为CNN模型六项性能指标及运行时间;
[0045] 图21为CNN模型Loss曲线图;
[0046] 图22为CNN模型ROC曲线图。
专利联系人(活跃度排行)
版权所有:盲专网 ©2023 zlpt.xyz  蜀ICP备2023003576号