CN112633475A - 大规模网络突发流量识别模型、方法及模型的训练方法 - Google Patents

大规模网络突发流量识别模型、方法及模型的训练方法 Download PDF

Info

Publication number
CN112633475A
CN112633475A CN202011516886.7A CN202011516886A CN112633475A CN 112633475 A CN112633475 A CN 112633475A CN 202011516886 A CN202011516886 A CN 202011516886A CN 112633475 A CN112633475 A CN 112633475A
Authority
CN
China
Prior art keywords
layer
data
convolution
network
training
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.)
Pending
Application number
CN202011516886.7A
Other languages
English (en)
Inventor
云本胜
孙雨璐
方科彬
钱亚冠
吴淑慧
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang Lover Health Science and Technology Development Co Ltd
Zhejiang University of Science and Technology ZUST
Original Assignee
Zhejiang Lover Health Science and Technology Development Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhejiang Lover Health Science and Technology Development Co Ltd filed Critical Zhejiang Lover Health Science and Technology Development Co Ltd
Priority to CN202011516886.7A priority Critical patent/CN112633475A/zh
Publication of CN112633475A publication Critical patent/CN112633475A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/047Probabilistic or stochastic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Molecular Biology (AREA)
  • Artificial Intelligence (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Probability & Statistics with Applications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请提供一种大规模网络突发流量识别模型、方法及模型的训练方法,模型通过TensorFlowOnSpark框架搭建于Spark上,包括依次连接的输入层、第一卷积层、第一最大池化层、第二卷积层、第二最大池化层、第三卷积层、第四卷积层、第五卷积层、第三最大池化层、全连接层和输出层;输入层接收32*32的数据输入形式;第一卷积层采用96个5*5的卷积核、步长设为1;第二卷积层采用192个5*5的卷积核、步长设为1;第三卷积层和第四卷积层均采用384个3*3的卷积核、步长设为1;第五卷积层采用256个3*3的卷积核、步长设为1;每个最大池化层的池化窗口均为2*2、步长均为2;全连接层采用1024个节点;输出层包含2个节点。

Description

大规模网络突发流量识别模型、方法及模型的训练方法
技术领域
本申请涉及神经网络模型领域,具体而言,涉及一种大规模网络突发流 量识别模型、方法及模型的训练方法。
背景技术
随着互联网的迅速发展,给人们的生活带来了极大的便利,但同时也为 网络管理带来了巨大挑战,因此网络流量识别区分变得越来越重要。因为它 在解决容量规划、流量工程、故障诊断、应用性能、异常检测以及网络趋势 分析等方面都有着巨大的潜力。网络运营商可以根据实时网络流量识别结 果来动态的部署QoS(Quality of Service,服务质量),同时还能根据分析结 果改进网络体系架构,从而避免网络堵塞,提高网络的利用率。
根据CNNIC(China Internet Network Information Center,中国互联网络 信息中心)第45次《中国互联网络发展状况统计报告》:截至2020年,我 国网民规模为9.04亿,互联网普及率达64.5%。大部分网络应用的用户规 模较2018年底增幅均达10%以上,尤其是在线教育,与2018年相比增加 110.2%,占网民整体的46.8%。随着网络应用业务的不断丰富,网络资源存 在着分配不均衡、利用率低等问题,因此识别网络流量可在一定程度上提高 网络资源利用率以及增强网络可控性。
采用机器学习的方法对网络流量进行识别区分是比较常见的。Chen等 人在他们的研究中结合了RBF(Radial Basis Function,径向基函数)神经网 络和PSO(ParticleSwarm Optimization,粒子群优化)算法——PSO-RBF算 法,并将该方法与DT(DenseTrajectories,密集轨迹)算法、NBK(
Figure BDA0002847680600000011
Bayes Kernel,朴素贝叶斯内核)算法、BP算法(Error Back Propagation, 误差反向传播算法)相比较,其结果显示新方法在网络流特征较少时能获得 相对较好的分类结果。Cai等人在研究中考虑到网络匿名通信技术会给网络监管带来巨大挑战,为此他们设计了一种新的混合特征选择算法isAnon, 该算法是由改进的交互信息和随机森林结合而来,能有效快速过滤网络流 量中不相关以及冗余的特征,其实验结果表明该方法在流量识别中具有较 好的有效性。Shafiq等人对SVM(SupportVector Machines,支持向量机)、 C4.5决策树、朴素贝叶斯、贝叶斯网络等4种机器学习分类模型做了对比 实验,发现C4.5决策树的效果优于其他分类器。同样,Dong等人也选取了4种经典的分类方法(C4.5、朴素贝叶斯、SVM、SVM-RBMS),通过对KDD- 99数据集进行分析比较,得出SVM-RBMS的分类效果最佳。
与经典的机器学习模型相比,CNNs(Convolutional Neural Networks, 卷积神经网络)具有较高的抽象能力,可以在原始的高维空间上对数据进行 训练。卷积神经网络在图像分类、手写数字识别、语音识别等问题中表现优 异,同时它也被其他领域所采用。WangW等人提出使用网络流量的原始数 据作为卷积神经网络的输入,同时其研究结果表明该方法能有很高的精度。 Rahul等人使用卷积神经网络对网络流量的数据签名进行学习,并得到良好 的分类效果。Lotfollahi等人利用SAE与CNN进行应用识别、流量分类, 在识别网络流量是否基于VPN(Virtual Private Network,虚拟专用网络)时, 该方法的效果优于其余分类方法。Liu等人提出两种分类方法:基于卷积神 经网络的有效载荷分类方法(PL-CNN)和基于循环神经网络的有效载荷分 类方法(PL-RNN),他们的实验证明这两种方法是有效且实用的。
网络流量种类繁多,数量庞大,若将其置于单机中,难免会遇到内存溢 出、计算缓慢等问题。因此将其搭建于分布式平台中,可有效缓解这些问题。 Wang P等人针对智能家庭网络中的数据流量进行分布式应用感知,即设计 了一个分布式的流量应用识别框架。他们的框架是基于三种深度学习方法 (多层感知机、堆叠自动编码器、卷积神经网络),其实验结果显示,该分 布式框架效果良好,能够有效识别流量应用类型。Mustapha等人将4种常用的分类算法(SVM、朴素贝叶斯、决策树、随机森林)搭建于Spark中, 并对其在网络入侵检测的公共数据集UNSW-NB15上进行分析对比,发现 分布式随机森林比其余三种分布式分类器效果更好。Manish等人同样将常 用的分类算法搭建于Spark中,对数据集KDD-99进行分类,得出分布式随 机森林效果最佳。Kong等人将SVM搭建于Spark上,他们分别使用非分 布式向量机和基于spark的分布式支持向量机对网络流量进行异常流量检 测,实验结果证明,使用分布式支持向量机在减少训练和预测时间上是非常 有效的。
卷积神经网络在各个领域都表现出色,尤其是在图像方面。卷积神经网 络可以从像素值中学习到更加细微复杂的结构,并且它不需要人工提取特 征,这样就极大简化了人力和时间成本。同样,在网络流量识别区分领域, 卷积神经网络也表现出极佳的效果,只根据网络流量应用层的原始数据就 可学习到网络流量内部复杂的结构特征。而现实生活中,网络流量数据量庞 大,若是仅在单机上对其进行区分识别,则耗时耗力。
发明内容
本申请实施例的目的在于提供一种大规模网络突发流量识别模型、方 法及模型的训练方法,以适用于大规模的网络流量识别。
为了实现上述目的,本申请的实施例通过如下方式实现:
第一方面,本申请实施例提供一种大规模网络突发流量识别模型,包括 依次连接的输入层、第一卷积层、第一最大池化层、第二卷积层、第二最大 池化层、第三卷积层、第四卷积层、第五卷积层、第三最大池化层、全连接 层和输出层,且所述大规模网络突发流量识别模型通过TensorFlowOnSpark 框架搭建于Spark上,所述输入层,接收32*32的数据输入形式,用于接收 网络流量数据,其中,所述网络流量数据为网络流量原始数据经过预处理后 得到;所述第一卷积层采用96个5*5的卷积核、步长设为1,用于对所述 网络流量数据进行卷积处理,并将本次处理后的数据输出至所述第一最大 池化层;所述第一最大池化层的池化窗口为2*2、步长为2,用于对所述第 一卷积层输入的数据进行最大池化处理,并将本次处理后的数据输出至第 二卷积层;所述第二卷积层采用192个5*5的卷积核、步长设为1,用于对 所述第一最大池化层输入的数据进行卷积处理,并将本次处理后的数据输 出至第二最大池化层;所述第二最大池化层的池化窗口为2*2、步长为2, 用于对所述第二卷积层输入的数据进行最大池化处理,并将本次处理后的 数据输出至所述第三卷积层;所述第三卷积层采用384个3*3的卷积核、 步长设为1,用于对所述第二最大池化层输入的数据进行卷积处理,并将本 次处理后的数据输出至所述第四卷积层;所述第四卷积层采用384个3*3的卷积核、步长设为1,用于对所述第三卷积层输入的数据进行卷积处理, 并将本次处理后的数据输出至所述第五卷积层;所述第五卷积层采用256个 3*3的卷积核、步长设为1,用于对所述第四卷积层输入的数据进行卷积处 理,并将本次处理后的数据输出至所述第三最大池化层;所述第三最大池化 层的池化窗口为2*2、步长为2,用于对所述第五卷积层输入的数据进行最 大池化处理,并将本次处理后的数据输出至所述全连接层;所述全连接层采用1024个节点,用于对所述第三最大池化层输入的数据进行全连接处理, 并将本次处理后得到的向量输出至所述输出层;所述输出层包含2个节点, 用于基于所述全连接层输入的向量进行分类并输出分类结果,以实现对所 述网络流量原始数据的识别,其中,所述网络流量原始数据为正常流量数据 或异常流量数据。
在本申请实施例中,大规模网络突发流量识别模型通过 TensorFlowOnSpark框架搭建于Spark上,其输入层接收32*32的数据输入 形式,可以接收网络流量数据(网络流量原始数据经过预处理后得到),而 第一卷积层采用96个5*5的卷积核、步长设为1,可以对网络流量数据进 行卷积处理并输出,第一最大池化层的池化窗口为2*2、步长为2,可以对 第一卷积层输入的数据进行最大池化处理并输出,第二卷积层采用192个 5*5的卷积核、步长设为1,可以对第一最大池化层输入的数据进行卷积处 理并输出,第二最大池化层的池化窗口为2*2、步长为2,可以对第二卷积 层输入的数据进行最大池化处理并输出,第三卷积层采用384个3*3的卷 积核、步长设为1,可以对第二最大池化层输入的数据进行卷积处理并输出, 第四卷积层采用384个3*3的卷积核、步长设为1,可以对第三卷积层输入 的数据进行卷积处理并输出,第五卷积层采用256个3*3的卷积核、步长 设为1,可以对第四卷积层输入的数据进行卷积处理并输出,第三最大池化 层的池化窗口为2*2、步长为2,可以对第五卷积层输入的数据进行最大池 化处理并输出,全连接层采用1024个节点,可以对第三最大池化层输入的 数据进行全连接处理并输出,输出层包含2个节点(即输出[0,1]或者[1,0]),可以基于全连接层输入的向量进行分类并输出分类结果,以实现对网 络流量原始数据的识别(即判断网络流量原始数据属于正常流量数据还是 异常流量数据)。通过这样的方式,一方面,采用卷积神经网络模型结构, 通过TensorFlowOnSpark框架搭建于Spark上,可以使得大规模网络突发流 量识别模型能够适用于对大规模网络突发流量的识别,且能够保证很好的 稳定性,并且在模型的训练过程中可以采用并行化训练(得益于Spark集群),大大提升模型的训练效率;另一方面,通过本申请发明人的实验研究, 针对每一条网络流量原始数据,其未处理的原始字节信息(十六进制信息) 中的‘Raw’字段(主要体现网络流量特征的字段)所含的字节长度可能不一 致,将该字段的十六进制信息转换为十进制信息后(每个字节的十进制信息 即代表一个网络流量特征),不同网络流量原始数据对应的十进制信息之间 的差异主要体现在前1500字节左右,基于此,建立的大规模网络突发流量 识别模型,主要选取其中1024个字节信息作为输入(即满足输入层32*32 的数据输入形式),在模型中的其他处理层(例如卷积层、池化层、全连接 层等)也基于此要素(1024个字节信息)而进行设计,从而可以在保证模 型对网络流量原始数据的识别效率(能够很好地适应大规模网络突发流量 场景中)的条件下,很好地保证对大规模网络突发流量(中的网络流量原始 数据)识别准确性。因此,本申请实施例提供的大规模网络突发流量识别模 型能够很好地适用于大规模的网络流量识别,且能够保证识别的准确性和 模型的稳定性。
结合第一方面,在第一方面的第一种可能的实现方式中,所述输出层的 激活函数为softmax,所述第一卷积层、所述第二卷积层、所述第三卷积层、 所述第四卷积层和所述第五卷积层的激活函数均为ReLu。
在该实现方式中,输出层的激活函数为softmax,能够很好地适用于对 网络流量原始数据的识别分类,有利于保证识别的准确性;第一卷积层、第 二卷积层、第三卷积层、第四卷积层和第五卷积层的激活函数均选用ReLu, 则有利于对机器神经网络中神经元的活跃度(即输出为正值)进行调试,并 且更加有效率地梯度下降以及反向传播,能够避免梯度爆炸和梯度消失问 题,以及,没有其他复杂激活函数中诸如指数函数的影响,同时活跃度的分 散性能够使得神经网络整体计算成本下降。
结合第一方面,在第一方面的第二种可能的实现方式中,在所述全连接 层与所述输出层之间还设有Dropout层。
由于全连接层的参数繁多,在全连接层与输出层之间设置Dropout层 (可以理解为丢弃层),能够很好地防止过拟合问题。
第二方面,本申请实施例提供一种大规模网络突发流量识别方法,包括: 获取网络流量原始数据,其中,所述网络流量原始数据为正常流量数据或异 常流量数据;对所述网络流量原始数据进行预处理,得到经预处理后的网络 流量数据;将所述网络流量数据输入第一方面或第一方面的可能的实现方 式中任一项所述的大规模网络突发流量识别模型,并接收所述大规模网络 突发流量识别模型基于所述网络流量数据确定并输出的分类结果;基于所 述分类结果实现对所述网络流量原始数据的分类识别。
在本申请实施例中,对获取的网络流量原始数据进行预处理,可以使得 得到的经预处理后的网络流量数据能够满足大规模网络突发流量识别模型 的数据输入形式要求,从而能够利用大规模网络突发流量识别模型对网络 流量原始数据进行准确的分类识别。
结合第二方面,在第二方面的第一种可能的实现方式中,所述网络流量 原始数据为Pcap文件,包括第一部分、第二部分和第三部分,所述第一部 分包括多条数据包,每条数据包包含数据包序列号、捕获时间、源协议地址、 目的协议地址和传输协议,所述第二部分为每条数据包的具体字段内容,所 述第三部分为每条数据包的十六进制信息,所述对所述网络流量原始数据 进行预处理,得到经预处理后的网络流量数据,包括:利用Python的scapy 库对Pcap文件进行提取解析,获得所述Pcap文件中每条数据包的原始字 节信息,其中,所述原始字节信息表示一条数据包的十六进制信息;从所述 原始字节信息中提取‘Raw’字段,将所述‘Raw’字段的十六进制信息转换成 对应的十进制信息,其中,每个字节的十进制数字表示一个流量特征;选取 所述‘Raw’字段的十进制信息中的前1024个字节信息,并将所述前1024个 字节信息处理为32*32的数据形式,得到所述网络流量数据。
在该实现方式中,网络流量原始数据为Pcap文件,包括第一部分、第 二部分和第三部分,第一部分包括多条数据包,每条数据包包含数据包序列 号、捕获时间、源协议地址、目的协议地址和传输协议,第二部分为每条数 据包的具体字段内容,第三部分为每条数据包的十六进制信息(即未处理的 原始字节信息)。利用Python的scapy库对Pcap文件进行提取解析,获得 所述Pcap文件中每条数据包的原始字节信息,由于MAC地址与IP地址等是可能会出现偏差的字节信息,因此从原始字节信息中提取‘Raw’字段,将 ‘Raw’字段的十六进制信息转换成对应的十进制信息(每个字节的十进制数 字表示一个流量特征)。由于不同数据包之间的‘Raw’字段所含的字节长度 可能不一致,所以本申请发明人希望先找到一些特性和规律,因此对每个数 据包的‘Raw’字段进行描述性统计,分别统计出正常流量和异常流量每个字 节处存在非0字节的流量包个数,对两者进行相减求其绝对值,并绘制相 减后的差异图,观察得到:前1500字节的差异较大,几乎都超过了4000, 而1500字节后的字节差异普遍小于4000,因此可以将1500作为分界点, 考虑到在卷积神经网络中普遍采取2的幂级次作为输入的大小,因此可以 选取前1024个字节作为模型的输入。因此,选取‘Raw’字段的十进制信息 中的前1024个字节信息,并将前1024个字节信息处理为32*32的数据形 式,得到网络流量数据。由此,可以将最能够体现不同网络流量原始数据差 异的部分作为模型的数据输入,以此作为对网络流量原始数据进行分类识 别的基础,因此有利于保证识别的准确性,以及能够保证方法运行的效率, 使得方法能够应用于对大规模网络突发流量的分类识别。
第三方面,本申请实施例提供一种大规模网络突发流量识别模型的训 练方法,包括:
通过TensorFlowOnSpark框架在Spark上搭建待训练的初始模型,其 中,所述初始模型包括依次连接的输入层、第一卷积层、第一最大池化层、 第二卷积层、第二最大池化层、第三卷积层、第四卷积层、第五卷积层、第 三最大池化层、全连接层和输出层,所述第一卷积层、所述第二卷积层、所 述第三卷积层、所述第四卷积层和所述第五卷积层的激活函数为ReLu;
利用He初始化所述第一卷积层、所述第二卷积层、所述第三卷积层、 所述第四卷积层和所述第五卷积层的权值,并对所述全连接层的权值和偏 置初始化分别使用截尾正态分布初始化和常数初始化,其中,He初始化表 示利用以下公式作为权重初始化的概率分布:
Figure BDA0002847680600000081
其中,fan_in表示第i层的神经元个数,fan_out表示第i+1层的神经元 个数,Forward Propagation Case表示向前传播的情况, Backward Propagation Case表示向后传播的情况;
利用Spark集群中的各个节点,基于预设的训练集对所述初始模型进行 并行化训练,其中,所述训练集包含多种不同的正常流量数据和多种不同的 异常流量数据,每个正常流量数据和异常流量数据均为一个网络流量原始 数据;
所述Spark集群中每个节点对所述初始模型的训练结束后,整合每个节 点训练后的模型,确定出最佳模型,所述最佳模型为所述大规模网络突发流 量识别模型。
在本申请实施例中,通过TensorFlowOnSpark框架在Spark上搭建待训 练的初始模型,这样可以利用Spark集群中的各个节点对初始模型进行并行 化训练。而卷积层的激活函数设置为ReLu,采用He初始化,从某一概率 分布中进行随机采样实现对权重进行初始化,可以保证初始化具有随机性, 也就是权重的期望为0,同时还能够保证其方差的一致性,这样有利于提升 模型的训练效果。
结合第三方面,在第三方面的第一种可能的实现方式中,所述初始模型 中,所述输入层接收32*32的数据输入形式;所述第一卷积层采用96个5*5 的卷积核、步长设为1;所述第一最大池化层的池化窗口为2*2、步长为2; 所述第二卷积层采用192个5*5的卷积核、步长设为1;所述第二最大池化 层的池化窗口为2*2、步长为2;所述第三卷积层采用384个3*3的卷积核、 步长设为1;所述第四卷积层采用384个3*3的卷积核、步长设为1;所述 第五卷积层采用256个3*3的卷积核、步长设为1;所述第三最大池化层的 池化窗口为2*2、步长为2;所述全连接层采用1024个节点;所述输出层 包含2个节点。
在该实现方式中,通过本申请发明人的实验研究,针对每一条网络流量 原始数据,其未处理的原始字节信息(十六进制信息)中的‘Raw’字段(主 要体现网络流量特征的字段)所含的字节长度可能不一致,将该字段的十六 进制信息转换为十进制信息后(每个字节的十进制信息即代表一个网络流 量特征),不同网络流量原始数据对应的十进制信息之间的差异主要体现在 前1500字节左右,基于此,建立的大规模网络突发流量识别模型,主要选 取其中1024个字节信息作为输入(即满足输入层32*32的数据输入形式), 在模型中的其他处理层(例如卷积层、池化层、全连接层等)也基于此要素 (1024个字节信息)而进行设计,以便在保证模型对网络流量原始数据的 识别效率(能够很好地适应大规模网络突发流量场景中)的条件下,能够保 证对大规模网络突发流量(中的网络流量原始数据)识别准确性。
结合第三方面的第一种可能的实现方式,在第三方面的第二种可能的 实现方式中,所述利用Spark集群中的各个节点,基于预设的训练集对所述 初始模型进行并行化训练,包括:
针对所述Spark集群中的每个节点,损失函数采用含惩罚项的平均交叉 熵,优化器选择adam优化器,并采用循环学习率的方式,利用该节点对应 的训练子集对所述初始模型进行训练,其中,所有节点对应的训练子集加总 为所述训练集,所述循环学习率的方式具体为:
Figure BDA0002847680600000101
其中,batchsize表示一次训练所选取的样本数,clrinterations表示训练 的epoch数目,epoch表示用训练子集中的全部样本训练一次,stepsize表 示两个周期内的迭代次数,baselr表示学习率下界,maxlr表示学习率上界。
在该实现方式中,在训练深度神经网络时,学习率对模型而言有着非常 重要的作用,而学习率的细微差别都会导致模型效果产生巨大差异:学习率 太小会使训练算法收敛缓慢,而学习率过大又会使训练算法发散。因此,通 过给定学习率合适的范围,让学习率在该范围内呈现周期性变化,这样就能 够在不需要调优的情况下提高分类精度,并且可以有效地减少迭代次数。
结合第三方面的第二种可能的实现方式,在第三方面的第三种可能的 实现方式中,所述循环学习率的方式中的具体参数值分别为:batchsize=50, clrinterations=2,baselr=0.0001,maxlr=0.001。
在该实现方式中,将参数设定为batchsize=50,clrinterations=2, baselr=0.0001,maxlr=0.001,可以很好地保证模型的训练效果和训练效率, 从而得到稳定性好、识别准确性高的大规模网络突发流量识别模型。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施 例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例 中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的 某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来 讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附 图。
图1为本申请实施例提供的一种大规模网络突发流量识别模型的训练 方法的流程图。
图2为Pcap文件的格式示意图。
图3为正常流量和异常流量每个字节处存在非0字节的流量包个数绝 对值差异图。
图4为本申请实施例提供的一种待训练的初始模型的简图。
图5为利用Spark集群中的各个节点对初始模型进行并行化训练后得 到最终模型的示意图。
图6为三种模型在区分正常流量与异常流量时的Roc曲线图。
图7为本申请实施例提供的一种大规模网络突发流量识别模型的示意 图。
图8为本申请实施例提供的一种大规模网络突发流量识别方法的流程 图。
图标:100-初始模型;110-输入层;121-第一卷积层;122-第二卷积层; 123-第三卷积层;124-第四卷积层;125-第五卷积层;131-第一最大池化层; 132-第二最大池化层;133-第三最大池化层;140-全连接层;150-输出层; 200-大规模网络突发流量识别模型;210-输入层;221-第一卷积层;222-第 二卷积层;223-第三卷积层;224-第四卷积层;225-第五卷积层;231-第一 最大池化层;232-第二最大池化层;233-第三最大池化层;240-全连接层; 250-输出层。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进 行描述。
为了便于对本方案的理解,此处先对本申请涉及的一些相关理论知识 进行介绍:
卷积神经网络通常被用于图像处理领域,但自2017年Wang W等人首 次采用卷积神经网络对网络流量的原始数据进行处理分析,并在检测恶意 流量上取得良好效果,随后越来越多的学者对卷积神经网络进行改进并应 用于网络流量的分类识别。
卷积神经网络本质上是一个多层感知机,它是专门用来处理二维形状 的可变性,它的表现优于其他技术。它能在一定程度上保证位移、尺度和失 真不变性。卷积神经网络一般由卷积层、池化层、全连接层140、输出层150 构成。其中,一个卷积层会存在多个特征图,同时它们的权值向量各不相同, 因此可以在每个位置上提取多个特征,这样可以认为卷积神经网络能够自 动地对特征进行提取。
由于Spark是基于内存中的操作,这对于在需要大量迭代的情况,是非 常友好的。因此,为了提升训练模型的训练效率,可以尝试将卷积神经网络 搭建于Spark上,在理论上是可行的,发明人基于此进行实践,将具有很好 的实际意义。
请参阅图1,图1为本申请实施例提供的一种大规模网络突发流量识别 模型的训练方法的流程图。在本实施例中,大规模网络突发流量识别模型的 训练方法可以包括步骤S11、步骤S12、步骤S13和步骤S14。以及,大规 模网络突发流量识别模型的训练方法可以由电子设备(例如个人电脑、平板 电脑、服务器等)执行。
基于以上理论基础,电子设备可以执行步骤S11。
步骤S11:通过TensorFlowOnSpark框架在Spark上搭建待训练的初始 模型,其中,所述初始模型包括依次连接的输入层、第一卷积层、第一最大 池化层、第二卷积层、第二最大池化层、第三卷积层、第四卷积层、第五卷 积层、第三最大池化层、全连接层和输出层,所述第一卷积层、所述第二卷 积层、所述第三卷积层、所述第四卷积层和所述第五卷积层的激活函数为 ReLu。
在本实施例中,以卷积神经网络为基础,通过TensorFlowOnSpark框架 在Spark上搭建待训练的初始模型100,这样就可以利用Spark集群中的各 个节点对初始模型100进行并行化训练,以便大幅提升模型训练效率。
为了更好地优化模型的结构,保证模型的有效性和稳定性,发明人对网 络流量原始数据进行实验观察,以便基于网络流量原始数据的特征来进行 初始模型100的结构设计。
基于此,利用公开数据集USTC-TFC2016的数据,其中包含10种恶意 软件流量(即异常流量)和10种正常流量。
首先可以利用wireshark对Pcap文件(包含多个网络流量原始数据)进 行观察,Pcap文件具体格式如图2所示:Pcap文件可以分为三个部分,第 一部分为多条数据包(包含数据包序列号、捕获时间、源协议地址、目的协 议地址、传输协议等),每条数据包即为一条网络流量原始数据;第二部分 为每条数据包的具体字段内容(如图2中为第一条数据包的具体信息);第 三部分为每条数据包的十六进制信息,即未处理的原始字节信息(图2中 第三部分所示为第一条数据包的十六进制信息)。
由于本方案所要实现的,主要为应用于对大规模网络突发流量的识别 分类,因此,以未处理的原始信息作为流量的特征最为合适。发明人基于此 进行实验,主要提取未处理的原始字节信息作为流量的特征。
因此,可以利用Python的scapy库对Pcap文件进行提取解析,以获得 该文件中每条数据包的原始字节信息。由于MAC地址与IP地址是可能会 出现偏差的字节信息,因此只选取原始字节信息中的‘Raw’字段,将该字段 的十六进制字节信息转换成对应的十进制,并且这些每个字节的十进制数 字即可表示一个流量特征。而不同数据包之间的‘Raw’字段所含的字节长度 可能不一致,为了更好地获取不同网络流量原始数据之间的差异,可以先对 每个数据包的‘Raw’字段进行描述性统计,分别统计出正常流量和异常流量 每个字节处存在非0字节的流量包个数,对两者进行相减求其绝对值,并 绘制相减后的差异图,如图3所示。
从图3中可以发现,前1500字节左右的差异较大,几乎都超过了4000, 而1500后的字节差异普遍小于4000。因此,可以确定不同网络流量原始数 据之间的差异主要体现在前1500字节左右,基于此,可以将1500作为一 个分界点。考虑到在卷积神经网络中普遍采取2的幂级次作为输入的大小, 因此可以选取前1024个字节作为输入,以此确定模型的数据输入形式(可 以设计为32*32,当然,在其他一些方式中,为了进一步追求分类的精度, 可以适度降低一些模型的识别速度,那么,数据输入形式也可以设计为64*64,即选用4096个字节作为输入,此处不作限定,以实际需要为准)。 因此,可以把正常流量标签定为“0”,异常流量标签定为“1”。通过筛选后, 本实施例中所使用的数据集包含12万个样本(正常流量60000个,异常流 量60000个),可以制作训练集和测试集,其中90%的样本用于训练,作为训练集,10%的样本用于测试,作为测试集。
基于以上内容,可以确定出待训练的初始模型100的结构设计。
示例性的,请参阅图4,图4为本申请实施例提供的一种待训练的初始 模型100的简图。
在本实施例中,通过TensorFlowOnSpark框架在Spark上搭建的待训练 的初始模型100,可以包括依次连接的输入层110、第一卷积层121、第一 最大池化层131、第二卷积层122、第二最大池化层132、第三卷积层123、 第四卷积层124、第五卷积层125、第三最大池化层133、全连接层140和 输出层150。其中,flatten表示展平操作,用于将第三最大池化层133的输 出数据转换为一维数据形式(例如包含1024个字节的一行数据或一列数据, 以实际情况为准),而后输入到全连接层140。
而输入层110可以设计为接收32*32的数据输入形式;第一卷积层121 可以采用96个5*5的卷积核、步长设为1;第一最大池化层131的池化窗 口为2*2、步长为2;第二卷积层122可以采用192个5*5的卷积核、步长 设为1;第二最大池化层132的池化窗口为2*2、步长为2;第三卷积层123 可以采用384个3*3的卷积核、步长设为1;第四卷积层124可以采用384个3*3的卷积核、步长设为1;第五卷积层125可以采用256个3*3的卷积 核、步长设为1;第三最大池化层133的池化窗口为2*2、步长为2;全连 接层140可以采用1024个节点;而输出层150可以包含2个节点。
通过本申请发明人的实验研究,针对每一条网络流量原始数据,其未处 理的原始字节信息(十六进制信息)中的‘Raw’字段(主要体现网络流量特 征的字段)所含的字节长度可能不一致,将该字段的十六进制信息转换为十 进制信息后(每个字节的十进制信息即代表一个网络流量特征),不同网络 流量原始数据对应的十进制信息之间的差异主要体现在前1500字节左右, 基于此,建立的大规模网络突发流量识别模型,主要选取其中1024个字节 信息作为输入(即满足输入层11032*32的数据输入形式),在模型中的其他 处理层(例如卷积层、池化层、全连接层140等)也基于此要素(1024个 字节信息)而进行设计,以便在保证模型对网络流量原始数据的识别效率 (能够很好地适应大规模网络突发流量场景中)的条件下,能够保证对大规 模网络突发流量(中的网络流量原始数据)识别准确性。
在本实施例中,第一卷积层121、第二卷积层122、第三卷积层123、 第四卷积层124和第五卷积层125的激活函数可以采用ReLu,而输出层 150激活函数可以为softmax,以便分类。
输出层150的激活函数采用softmax,能够很好地适用于对网络流量原 始数据的识别分类,有利于保证识别的准确性;第一卷积层121、第二卷积 层122、第三卷积层123、第四卷积层124和第五卷积层125的激活函数均 选用ReLu,则有利于对机器神经网络中神经元的活跃度(即输出为正值) 进行调试,并且更加有效率地梯度下降以及反向传播,能够避免梯度爆炸和 梯度消失问题,以及,没有其他复杂激活函数中诸如指数函数的影响,同时活跃度的分散性能够使得神经网络整体计算成本下降。
需要说明的是,步骤S11的描述,并非完全从执行设备的角度进行的 描述,主要是方便理解,在实际中,步骤S11的执行,由电子设备完成,即 可通过用户对电子设备的交互操作,实现对初始模型100的搭建,此处不 作限定。
通过TensorFlowOnSpark框架在Spark上搭建好初始模型100后,电子 设备可以执行步骤S12。
步骤S12:利用He初始化所述第一卷积层、所述第二卷积层、所述第 三卷积层、所述第四卷积层和所述第五卷积层的权值,并对所述全连接层的 权值和偏置初始化分别使用截尾正态分布初始化和常数初始化。
由于权重初始化在训练模型时起到重要作用,全零初始化、常数初始化、 初始化值过大或过小都会对模型最终效果造成影响。一个好的初始化需要 具有一定的随机性,也就是权重的期望为0,同时还需考虑其方差的一致性。 这样,对权重进行初始化可转变成从某一概率分布中进行随机采样。
基于此,在本实施例中,针对激活函数ReLu(每个卷积层和全连接层 140的激活函数),可以选用He初始化,而针对全连接层140的权值和偏 置初始化,则可以分别使用截尾正态分布初始化和常数初始化。
其中,He初始化表示利用以下公式作为权重初始化的概率分布:
Figure BDA0002847680600000161
其中,fan_in表示第i层的神经元个数,fan_out表示第i+1层的神经元 个数,Forward Propagation Case表示向前传播的情况, Backward Propagation Case表示向后传播的情况。
初始化完成后,电子设备可以执行步骤S13。
步骤S13:利用Spark集群中的各个节点,基于预设的训练集对所述初 始模型进行并行化训练,其中,所述训练集包含多种不同的正常流量数据和 多种不同的异常流量数据,每个正常流量数据和异常流量数据均为一个网 络流量原始数据。
在训练深度神经网络时,学习率对模型而言有着非常重要的作用。学习 率的细微差别都会导致模型效果产生巨大差异:学习率太小会使训练算法 收敛缓慢,而学习率过大又会使训练算法发散。因此,为学习率给定合适的 范围,让学习率在该范围内呈现周期性变化,这样就能够在不需要调优的情 况下提高分类精度,并且可以有效地减少迭代次数。
为了保证模型的训练效率和提升分类精度,可以选用循环学习率方法triangular,即:
Figure BDA0002847680600000162
其中,batchsize表示一次训练所选取的样本数,clrinterations表示训练 的epoch数目,epoch表示用训练子集中的全部样本训练一次,stepsize表 示两个周期内的迭代次数,baselr表示学习率下界,maxlr表示学习率上界。
由于Spark集群中的每个节点可以对初始模型100进行并行化训练, 因此,可以利用Spark集群中的各个节点,基于预设的训练集对初始模型 100进行并行化训练。初始模型100的训练从而可以被均匀分配到Spark集 群中的各个节点,使每个节点能够同时进行模型训练,从而实现并行化,大 幅提升模型训练速度。
示例性的,针对Spark集群中的每个节点,损失函数可以采用含惩罚项 的平均交叉熵,优化器可以选择adam优化器,并采用循环学习率的方式, 利用该节点对应的训练子集对初始模型100进行训练,其中,所有节点对 应的训练子集加总为训练集。
为了保证模型的训练效果,可以将循环学习率的方式中的具体参数值 分别设定为:batchsize=50,clrinterations=2,baselr=0.0001,maxlr=0.001。 这样可以很好地保证模型的训练效果和训练效率,从而得到稳定性好、识别 准确性高的大规模网络突发流量识别模型。
Spark集群中每个节点对初始模型100的训练结束后,可以电子设备可 以执行步骤S14。
步骤S14:整合每个节点训练后的模型,确定出最佳模型,所述最佳模 型为所述大规模网络突发流量识别模型。
在本实施例中,当Spark集群中每个节点对初始模型100的训练结束 后,集群会根据节点的结果进行模型的合并,选取最佳模型,如图5所示, 图5示出了利用Spark集群中的各个节点对初始模型100进行并行化训练 后得到最终模型的示意图。
由此即可得到训练好的大规模网络突发流量识别模型,而后可以利用 测试集对大规模网络突发流量识别模型进行测试。
为了显示出基于Spark和循环学习率的分布式卷积神经网络(即训练好 好的大规模网络突发流量识别模型)的优势,可以将其与基于Spark和指数 衰减学习率的分布式卷积神经网络以及分布式随机森林进行比较实验,观 察三种方法的准确率(accuracy)、精确率(precision)、召回率(recall)、F1 值(后续介绍F1值的由来)并绘制它们的Roc(receiver operating characteristic, 接受者操作特性)曲线。
本实验在三台ubuntu上搭建hadoop集群、spark集群,以及配置相应 的TensorflowOnSpark框架,详细内容如表1、表2所示:
表1各节点配置详情
Figure BDA0002847680600000181
表2插件版本详情
Figure BDA0002847680600000182
在本实施例中,利用实验用准确率(accuracy)、精确率(precision)、召 回率(recall)、F1值作为评价指标。表3为混淆矩阵,其中TP表示实际为 正例,预测结果也为正例;FN表示实际为正例,预测结果为反例;FP表示 实际为反例,预测结果为正例;TN表示实际为反例,预测结果为反例。在 本实验中,将恶意流量作为正例,正常流量作为反例。
表3混淆矩阵
Figure BDA0002847680600000191
其中,准确率表示对于给定的测试数据集,分类器正确分类的样本数与 总样本数之比:
Figure BDA0002847680600000192
精确率表示正确预测为正的占全部预测为正的比例:
Figure BDA0002847680600000193
召回率表示正确预测为正的占所有正例样本的比例:
Figure BDA0002847680600000194
F1值表示精确率和召回率的调和平均值:
Figure BDA0002847680600000195
通过多次实验,最后确定了性能表现最佳的参数,具体参数设置如下: 采用循环学习率来动态调整学习率,其中初始学习率设置为0.0001,在循环 中设置最大学习率为0.001。这样,学习率就可以动态的在该范围内呈现周 期性变化,直至找到最佳的学习率。对于卷积核初始化选择使用He初始化, 全连接层140权值和偏置初始化分别使用截尾正态分布初始化和常数初始 化。Batchsize定为50,epoch为2,同时全连接层140添加了参数为0.05的 L2正则化。用于对比实验的指数衰减分布式卷积神经网络,其参数设置除 学习率以外,其余都与循环学习率分布式卷积神经网络一致。而在分布式随 机森林中,选择森林大小为100棵树、深度为5。基于此,可以在 TensoflowOnSpark框架上结合Spark与hadoop进行构建模型。
请参阅图6,图6为三种方法在区分正常流量与异常流量时的Roc曲 线图,其中蓝色线(图6中已示出)表示循环学习率分布式卷积神经网络, 橙色线(图6中已示出)为指数衰减分布式卷积神经网络,红色线(图6中 已示出)为分布式随机森林。从这张图可以看出,分布式卷积神经网络的性 能远优于分布式随机森林,而循环学习率分布式卷积神经网络性能最好。这 些结果就证明了本实施例设计的分布式卷积神经网络(即大规模网络突发流量识别模型)能很好地捕获网络流量原始数据中的底层信息,并能较好的 识别网络流量。
在表4中,展示了三种模型的其他性能指标:准确率(accuracy)、精确 率(precision)、召回率(recall)、F1值,也可以观察到,循环学习率分布式 卷积神经网络是三种方法中区分正常流量和异常流量效果最佳的。
表4三种模型的性能表现
Figure BDA0002847680600000201
其中,模型1表示循环学习率分布式卷积神经网络(即大规模网络突 发流量识别模型),模型2表示指数衰减分布式卷积神经网络,模型3表示 分布式随机森林。
在本实施例中,提供了一种用于识别正常网络流量和异常网络流量的 模型:大规模网络突发流量识别模型,可以将网络流量原始数据作为输入。 实验结果显示,大规模网络突发流量识别模型不需要人工对网络流量进行 特征筛选,可以直接从原始字节数据中自动提取流量的底层信息,并且能取 得良好的分类效果,能有效地捕获流量的底层信息并能有效地识别大规模 突发流量。
为了便于区分,在本实施例中,将以另一种表现形式展示大规模网络突 发流量识别模型的结构,但在本质上,大规模网络突发流量识别模型是由初 始模型100经过训练后得到的,此处不应视为对本申请的限定。
请参阅图7,图7为本申请实施例提供的一种大规模网络突发流量识别 模型200的示意图。在本实施例中,大规模网络突发流量识别模型200包 括依次连接的输入层210、第一卷积层221、第一最大池化层231、第二卷 积层222、第二最大池化层232、第三卷积层223、第四卷积层224、第五卷 积层225、第三最大池化层233、全连接层240和输出层250,且大规模网 络突发流量识别模型200通过TensorFlowOnSpark框架搭建于Spark上。
示例性的,输入层210可以接收32*32的数据输入形式,用于接收网 络流量数据,其中,网络流量数据为网络流量原始数据经过预处理后得到。
示例性的,第一卷积层221可以采用96个5*5的卷积核、步长设为1, 用于对网络流量数据进行卷积处理,并将本次处理后的数据输出至第一最 大池化层231。
示例性的,第一最大池化层231的池化窗口为2*2、步长为2,用于对 第一卷积层221输入的数据进行最大池化处理,并将本次处理后的数据输 出至第二卷积层222。
示例性的,第二卷积层222可以采用192个5*5的卷积核、步长设为 1,用于对第一最大池化层231输入的数据进行卷积处理,并将本次处理后 的数据输出至第二最大池化层232。
示例性的,第二最大池化层232的池化窗口为2*2、步长为2,用于对 第二卷积层222输入的数据进行最大池化处理,并将本次处理后的数据输 出至第三卷积层223。
示例性的,第三卷积层223可以采用384个3*3的卷积核、步长设为 1,用于对第二最大池化层232输入的数据进行卷积处理,并将本次处理后 的数据输出至第四卷积层224。
示例性的,第四卷积层224可以采用384个3*3的卷积核、步长设为 1,用于对第三卷积层223输入的数据进行卷积处理,并将本次处理后的数 据输出至第五卷积层225。
示例性的,第五卷积层225可以采用256个3*3的卷积核、步长设为 1,用于对第四卷积层224输入的数据进行卷积处理,并将本次处理后的数 据输出至第三最大池化层233。
示例性的,第三最大池化层233的池化窗口为2*2、步长为2,用于对 第五卷积层225输入的数据进行最大池化处理,并将本次处理后的数据输 出至全连接层240。
示例性的,全连接层240可以采用1024个节点,用于对第三最大池化 层233输入的数据进行全连接处理,并将本次处理后得到的向量输出至输 出层250。
示例性的,输出层250包含2个节点,用于基于全连接层240输入的 向量进行分类并输出分类结果,以实现对网络流量原始数据的识别,其中, 网络流量原始数据为正常流量数据或异常流量数据。
大规模网络突发流量识别模型200通过TensorFlowOnSpark框架搭建 于Spark上,其输入层210接收32*32的数据输入形式,可以接收网络流量 数据(网络流量原始数据经过预处理后得到),而第一卷积层221采用96个 5*5的卷积核、步长设为1,可以对网络流量数据进行卷积处理并输出,第 一最大池化层231的池化窗口为2*2、步长为2,可以对第一卷积层221输 入的数据进行最大池化处理并输出,第二卷积层222采用192个5*5的卷 积核、步长设为1,可以对第一最大池化层231输入的数据进行卷积处理并 输出,第二最大池化层232的池化窗口为2*2、步长为2,可以对第二卷积 层222输入的数据进行最大池化处理并输出,第三卷积层223采用384个 3*3的卷积核、步长设为1,可以对第二最大池化层232输入的数据进行卷 积处理并输出,第四卷积层224采用384个3*3的卷积核、步长设为1,可 以对第三卷积层223输入的数据进行卷积处理并输出,第五卷积层225采 用256个3*3的卷积核、步长设为1,可以对第四卷积层224输入的数据进 行卷积处理并输出,第三最大池化层233的池化窗口为2*2、步长为2,可 以对第五卷积层225输入的数据进行最大池化处理并输出,全连接层240 采用1024个节点,可以对第三最大池化层233输入的数据进行全连接处理 并输出,输出层250包含2个节点(即输出[0,1]或者[1,0]),可以基于全 连接层240输入的向量进行分类并输出分类结果,以实现对网络流量原始 数据的识别(即判断网络流量原始数据属于正常流量数据还是异常流量数 据)。通过这样的方式,一方面,采用卷积神经网络模型结构,通过 TensorFlowOnSpark框架搭建于Spark上,可以使得大规模网络突发流量识 别模型200能够适用于对大规模网络突发流量的识别,且能够保证很好的 稳定性,并且在模型的训练过程中可以采用并行化训练(得益于Spark集 群),大大提升模型的训练效率;另一方面,通过本申请发明人的实验研究, 针对每一条网络流量原始数据,其未处理的原始字节信息(十六进制信息) 中的‘Raw’字段(主要体现网络流量特征的字段)所含的字节长度可能不 一致,将该字段的十六进制信息转换为十进制信息后(每个字节的十进制信 息即代表一个网络流量特征),不同网络流量原始数据对应的十进制信息之 间的差异主要体现在前1500字节左右,基于此,建立的大规模网络突发流 量识别模型200,主要选取其中1024个字节信息作为输入(即满足输入层 21032*32的数据输入形式),在模型中的其他处理层(例如卷积层、池化层、 全连接层240等)也基于此要素(1024个字节信息)而进行设计,从而可 以在保证模型对网络流量原始数据的识别效率(能够很好地适应大规模网 络突发流量场景中)的条件下,很好地保证对大规模网络突发流量(中的网 络流量原始数据)识别准确性。因此,本申请实施例提供的大规模网络突发 流量识别模型200能够很好地适用于大规模的网络流量识别,且能够保证 识别的准确性和模型的稳定性。
在本实施例中,输出层250的激活函数为softmax,第一卷积层221、 第二卷积层222、第三卷积层223、第四卷积层224和第五卷积层225的激 活函数均为ReLu。输出层250的激活函数为softmax,能够很好地适用于 对网络流量原始数据的识别分类,有利于保证识别的准确性;第一卷积层 221、第二卷积层222、第三卷积层223、第四卷积层224和第五卷积层225 的激活函数均选用ReLu,则有利于对机器神经网络中神经元的活跃度(即 输出为正值)进行调试,并且更加有效率地梯度下降以及反向传播,能够避 免梯度爆炸和梯度消失问题,以及,没有其他复杂激活函数中诸如指数函数 的影响,同时活跃度的分散性能够使得神经网络整体计算成本下降。
在本实施例中,在全连接层240与输出层250之间还设有Dropout层, 由于全连接层240的参数繁多,在全连接层240与输出层250之间设置 Dropout层(可以理解为丢弃层),能够很好地防止过拟合问题。
为了实现对网络流量的分类识别,此处提供一种大规模网络突发流量 识别方法,请参阅图8,图8为本申请实施例提供的一种大规模网络突发流 量识别方法的流程图。在本实施例中,大规模网络突发流量识别方法开业i 包括步骤S21、步骤S22、步骤S23、步骤S24。
步骤S21:获取网络流量原始数据,其中,所述网络流量原始数据为正 常流量数据或异常流量数据。
步骤S22:对所述网络流量原始数据进行预处理,得到经预处理后的网 络流量数据。
步骤S23:将所述网络流量数据输入大规模网络突发流量识别模型,并 接收所述大规模网络突发流量识别模型基于所述网络流量数据确定并输出 的分类结果。
步骤S24:基于所述分类结果实现对所述网络流量原始数据的分类识别。
由于前文已经介绍了大规模网络突发流量识别模型的功能,此处不再 赘述。基于对上述步骤的执行,对获取的网络流量原始数据进行预处理,可 以使得得到的经预处理后的网络流量数据能够满足大规模网络突发流量识 别模型的数据输入形式要求,从而能够利用大规模网络突发流量识别模型 对网络流量原始数据进行准确的分类识别。
在本实施例中,网络流量原始数据为Pcap文件,包括第一部分、第二 部分和第三部分,第一部分包括多条数据包,每条数据包包含数据包序列号、 捕获时间、源协议地址、目的协议地址和传输协议,第二部分为每条数据包 的具体字段内容,第三部分为每条数据包的十六进制信息。因此,对网络流 量原始数据进行预处理,得到经预处理后的网络流量数据的方式可以为:利 用Python的scapy库对Pcap文件进行提取解析,获得Pcap文件中每条数 据包的原始字节信息,其中,原始字节信息表示一条数据包的十六进制信息; 从原始字节信息中提取‘Raw’字段,将‘Raw’字段的十六进制信息转换 成对应的十进制信息,其中,每个字节的十进制数字表示一个流量特征;选 取‘Raw’字段的十进制信息中的前1024个字节信息,并将前1024个字节 信息处理为32*32的数据形式,得到网络流量数据。
利用Python的scapy库对Pcap文件进行提取解析,获得Pcap文件中 每条数据包的原始字节信息,由于MAC地址与IP地址等是可能会出现偏 差的字节信息,因此从原始字节信息中提取‘Raw’字段,将‘Raw’字段 的十六进制信息转换成对应的十进制信息(每个字节的十进制数字表示一 个流量特征)。由于不同数据包之间的‘Raw’字段所含的字节长度可能不一 致,所以本申请发明人希望先找到一些特性和规律,因此对每个数据包的 ‘Raw’字段进行描述性统计,分别统计出正常流量和异常流量每个字节处 存在非0字节的流量包个数,对两者进行相减求其绝对值,并绘制相减后 的差异图,观察得到:前1500字节的差异较大,几乎都超过了4000,而 1500字节后的字节差异普遍小于4000,因此可以将1500作为分界点,考 虑到在卷积神经网络中普遍采取2的幂级次作为输入的大小,因此可以选 取前1024个字节作为模型的输入。因此,选取‘Raw’字段的十进制信息 中的前1024个字节信息,并将前1024个字节信息处理为32*32的数据形 式,得到网络流量数据。由此,可以将最能够体现不同网络流量原始数据差 异的部分作为模型的数据输入,以此作为对网络流量原始数据进行分类识 别的基础,因此有利于保证识别的准确性,以及能够保证方法运行的效率, 使得方法能够应用于对大规模网络突发流量的分类识别。
综上所述,本申请实施例提供一种大规模网络突发流量识别模型、方法 及模型的训练方法,一方面,采用卷积神经网络模型结构,通过 TensorFlowOnSpark框架搭建于Spark上,可以使得大规模网络突发流量识 别模型能够适用于对大规模网络突发流量的识别,且能够保证很好的稳定 性,并且在模型的训练过程中可以采用并行化训练(得益于Spark集群), 大大提升模型的训练效率;另一方面,通过本申请发明人的实验研究,针对每一条网络流量原始数据,其未处理的原始字节信息(十六进制信息)中的 ‘Raw’字段(主要体现网络流量特征的字段)所含的字节长度可能不一致, 将该字段的十六进制信息转换为十进制信息后(每个字节的十进制信息即 代表一个网络流量特征),不同网络流量原始数据对应的十进制信息之间的 差异主要体现在前1500字节左右,基于此,建立的大规模网络突发流量识 别模型,主要选取其中1024个字节信息作为输入(即满足输入层32*32的 数据输入形式),在模型中的其他处理层(例如卷积层、池化层、全连接层 等)也基于此要素(1024个字节信息)而进行设计,从而可以在保证模型 对网络流量原始数据的识别效率(能够很好地适应大规模网络突发流量场 景中)的条件下,很好地保证对大规模网络突发流量(中的网络流量原始数 据)识别准确性。因此,本申请实施例提供的大规模网络突发流量识别模型 能够很好地适用于大规模的网络流量识别,且能够保证识别的准确性和模 型的稳定性。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或 者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或 操作之间存在任何这种实际的关系或者顺序。
以上仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于 本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神 和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保 护范围之内。

Claims (9)

1.一种大规模网络突发流量识别模型,其特征在于,包括依次连接的输入层、第一卷积层、第一最大池化层、第二卷积层、第二最大池化层、第三卷积层、第四卷积层、第五卷积层、第三最大池化层、全连接层和输出层,且所述大规模网络突发流量识别模型通过TensorFlowOnSpark框架搭建于Spark上,
所述输入层,接收32*32的数据输入形式,用于接收网络流量数据,其中,所述网络流量数据为网络流量原始数据经过预处理后得到;
所述第一卷积层采用96个5*5的卷积核、步长设为1,用于对所述网络流量数据进行卷积处理,并将本次处理后的数据输出至所述第一最大池化层;
所述第一最大池化层的池化窗口为2*2、步长为2,用于对所述第一卷积层输入的数据进行最大池化处理,并将本次处理后的数据输出至第二卷积层;
所述第二卷积层采用192个5*5的卷积核、步长设为1,用于对所述第一最大池化层输入的数据进行卷积处理,并将本次处理后的数据输出至第二最大池化层;
所述第二最大池化层的池化窗口为2*2、步长为2,用于对所述第二卷积层输入的数据进行最大池化处理,并将本次处理后的数据输出至所述第三卷积层;
所述第三卷积层采用384个3*3的卷积核、步长设为1,用于对所述第二最大池化层输入的数据进行卷积处理,并将本次处理后的数据输出至所述第四卷积层;
所述第四卷积层采用384个3*3的卷积核、步长设为1,用于对所述第三卷积层输入的数据进行卷积处理,并将本次处理后的数据输出至所述第五卷积层;
所述第五卷积层采用256个3*3的卷积核、步长设为1,用于对所述第四卷积层输入的数据进行卷积处理,并将本次处理后的数据输出至所述第三最大池化层;
所述第三最大池化层的池化窗口为2*2、步长为2,用于对所述第五卷积层输入的数据进行最大池化处理,并将本次处理后的数据输出至所述全连接层;
所述全连接层采用1024个节点,用于对所述第三最大池化层输入的数据进行全连接处理,并将本次处理后得到的向量输出至所述输出层;
所述输出层包含2个节点,用于基于所述全连接层输入的向量进行分类并输出分类结果,以实现对所述网络流量原始数据的识别,其中,所述网络流量原始数据为正常流量数据或异常流量数据。
2.根据权利要求1所述的大规模网络突发流量识别模型,其特征在于,所述输出层的激活函数为softmax,所述第一卷积层、所述第二卷积层、所述第三卷积层、所述第四卷积层和所述第五卷积层的激活函数均为ReLu。
3.根据权利要求1所述的大规模网络突发流量识别模型,其特征在于,在所述全连接层与所述输出层之间还设有Dropout层。
4.一种大规模网络突发流量识别方法,其特征在于,所述方法包括:
获取网络流量原始数据,其中,所述网络流量原始数据为正常流量数据或异常流量数据;
对所述网络流量原始数据进行预处理,得到经预处理后的网络流量数据;
将所述网络流量数据输入权利要求1至3中任一项所述的大规模网络突发流量识别模型,并接收所述大规模网络突发流量识别模型基于所述网络流量数据确定并输出的分类结果;
基于所述分类结果实现对所述网络流量原始数据的分类识别。
5.根据权利要求4所述的大规模网络突发流量识别方法,其特征在于,所述网络流量原始数据为Pcap文件,包括第一部分、第二部分和第三部分,所述第一部分包括多条数据包,每条数据包包含数据包序列号、捕获时间、源协议地址、目的协议地址和传输协议,所述第二部分为每条数据包的具体字段内容,所述第三部分为每条数据包的十六进制信息,所述对所述网络流量原始数据进行预处理,得到经预处理后的网络流量数据,包括:
利用Python的scapy库对Pcap文件进行提取解析,获得所述Pcap文件中每条数据包的原始字节信息,其中,所述原始字节信息表示一条数据包的十六进制信息;
从所述原始字节信息中提取‘Raw’字段,将所述‘Raw’字段的十六进制信息转换成对应的十进制信息,其中,每个字节的十进制数字表示一个流量特征;
选取所述‘Raw’字段的十进制信息中的前1024个字节信息,并将所述前1024个字节信息处理为32*32的数据形式,得到所述网络流量数据。
6.一种大规模网络突发流量识别模型的训练方法,其特征在于,包括:
通过TensorFlowOnSpark框架在Spark上搭建待训练的初始模型,其中,所述初始模型包括依次连接的输入层、第一卷积层、第一最大池化层、第二卷积层、第二最大池化层、第三卷积层、第四卷积层、第五卷积层、第三最大池化层、全连接层和输出层,所述第一卷积层、所述第二卷积层、所述第三卷积层、所述第四卷积层和所述第五卷积层的激活函数为ReLu;
利用He初始化所述第一卷积层、所述第二卷积层、所述第三卷积层、所述第四卷积层和所述第五卷积层的权值,并对所述全连接层的权值和偏置初始化分别使用截尾正态分布初始化和常数初始化,其中,He初始化表示利用以下公式作为权重初始化的概率分布:
Figure FDA0002847680590000031
其中,fan_in表示第i层的神经元个数,fan_out表示第i+1层的神经元个数,ForwardPropagation Case表示向前传播的情况,Backward Propagation Case表示向后传播的情况;
利用Spark集群中的各个节点,基于预设的训练集对所述初始模型进行并行化训练,其中,所述训练集包含多种不同的正常流量数据和多种不同的异常流量数据,每个正常流量数据和异常流量数据均为一个网络流量原始数据;
所述Spark集群中每个节点对所述初始模型的训练结束后,整合每个节点训练后的模型,确定出最佳模型,所述最佳模型为所述大规模网络突发流量识别模型。
7.根据权利要求6所述的大规模网络突发流量识别模型的训练方法,其特征在于,所述初始模型中,所述输入层接收32*32的数据输入形式;所述第一卷积层采用96个5*5的卷积核、步长设为1;所述第一最大池化层的池化窗口为2*2、步长为2;所述第二卷积层采用192个5*5的卷积核、步长设为1;所述第二最大池化层的池化窗口为2*2、步长为2;所述第三卷积层采用384个3*3的卷积核、步长设为1;所述第四卷积层采用384个3*3的卷积核、步长设为1;所述第五卷积层采用256个3*3的卷积核、步长设为1;所述第三最大池化层的池化窗口为2*2、步长为2;所述全连接层采用1024个节点;所述输出层包含2个节点。
8.根据权利要求7所述的大规模网络突发流量识别模型的训练方法,其特征在于,所述利用Spark集群中的各个节点,基于预设的训练集对所述初始模型进行并行化训练,包括:
针对所述Spark集群中的每个节点,损失函数采用含惩罚项的平均交叉熵,优化器选择adam优化器,并采用循环学习率的方式,利用该节点对应的训练子集对所述初始模型进行训练,其中,所有节点对应的训练子集加总为所述训练集,所述循环学习率的方式具体为:
Figure FDA0002847680590000041
其中,batchsize表示一次训练所选取的样本数,clrinterations表示训练的epoch数目,epoch表示用训练子集中的全部样本训练一次,stepsize表示两个周期内的迭代次数,baselr表示学习率下界,maxlr表示学习率上界。
9.根据权利要求8所述的大规模网络突发流量识别模型的训练方法,其特征在于,所述循环学习率的方式中的具体参数值分别为:
batchsize=50,clrinterations=2,baselr=0.0001,maxlr=0.001。
CN202011516886.7A 2020-12-21 2020-12-21 大规模网络突发流量识别模型、方法及模型的训练方法 Pending CN112633475A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011516886.7A CN112633475A (zh) 2020-12-21 2020-12-21 大规模网络突发流量识别模型、方法及模型的训练方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011516886.7A CN112633475A (zh) 2020-12-21 2020-12-21 大规模网络突发流量识别模型、方法及模型的训练方法

Publications (1)

Publication Number Publication Date
CN112633475A true CN112633475A (zh) 2021-04-09

Family

ID=75320208

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011516886.7A Pending CN112633475A (zh) 2020-12-21 2020-12-21 大规模网络突发流量识别模型、方法及模型的训练方法

Country Status (1)

Country Link
CN (1) CN112633475A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113923026A (zh) * 2021-10-11 2022-01-11 广州大学 一种基于TextCNN的加密恶意流量检测模型及其构建方法
CN114301850A (zh) * 2021-12-03 2022-04-08 成都中科微信息技术研究院有限公司 一种基于生成对抗网络与模型压缩的军用通信加密流量识别方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110704649A (zh) * 2019-08-29 2020-01-17 南京邮电大学 一种用于构建流量图像数据集的方法及系统
CN111340727A (zh) * 2020-02-26 2020-06-26 电子科技大学 一种基于gbr图像的异常流量检测方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110704649A (zh) * 2019-08-29 2020-01-17 南京邮电大学 一种用于构建流量图像数据集的方法及系统
CN111340727A (zh) * 2020-02-26 2020-06-26 电子科技大学 一种基于gbr图像的异常流量检测方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
COSMOSKNIGHT: "关于周期性学习率(Cyclical Learning Rate, CLR)", pages 1 - 4, Retrieved from the Internet <URL:《https://blog.csdn.net/qwertyu_1234567/article/details/103859465》> *
WEI WANG,ET AL: "Malware traffic classification using convolutional neural network for representation learning", 《2017 INTERNATIONAL CONFERENCE ON INFORMATION NETWORKING (ICOIN)》, pages 231 - 232 *
吕麟: "基于深度迁移学习的网络异常检测技术研究", 《中国优秀硕士学位论文全文数据库信息科技辑》, pages 15 - 19 *
脚踏实地仰望: "神经网络参数初始化-He初始化", pages 1 - 3, Retrieved from the Internet <URL:《https://blog.csdn.net/u010505915/article/details/106608922》> *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113923026A (zh) * 2021-10-11 2022-01-11 广州大学 一种基于TextCNN的加密恶意流量检测模型及其构建方法
CN114301850A (zh) * 2021-12-03 2022-04-08 成都中科微信息技术研究院有限公司 一种基于生成对抗网络与模型压缩的军用通信加密流量识别方法
CN114301850B (zh) * 2021-12-03 2024-03-15 成都中科微信息技术研究院有限公司 一种基于生成对抗网络与模型压缩的军用通信加密流量识别方法

Similar Documents

Publication Publication Date Title
Peng et al. Learning graph convolutional network for skeleton-based human action recognition by neural searching
Fang et al. Application of intrusion detection technology in network safety based on machine learning
Xie et al. Self-attentive deep learning method for online traffic classification and its interpretability
CN110311829A (zh) 一种基于机器学习加速的网络流量分类方法
Wang et al. App-net: A hybrid neural network for encrypted mobile traffic classification
CN109508584A (zh) 视频分类的方法、信息处理的方法以及服务器
CN106708016A (zh) 故障监控方法和装置
CN112633475A (zh) 大规模网络突发流量识别模型、方法及模型的训练方法
CN112134862B (zh) 基于机器学习的粗细粒度混合网络异常检测方法及装置
CN110826617A (zh) 态势要素分类方法及其模型的训练方法、装置及服务器
CN112087447A (zh) 面向稀有攻击的网络入侵检测方法
CN114553475A (zh) 一种基于网络流量属性有向拓扑的网络攻击检测方法
CN112529638B (zh) 基于用户分类和深度学习的服务需求动态预测方法及系统
Ardywibowo et al. NADS: Neural architecture distribution search for uncertainty awareness
Li et al. Network traffic classification based on deep learning
Soleymanpour et al. An efficient deep learning method for encrypted traffic classification on the web
Dong et al. Traffic identification model based on generative adversarial deep convolutional network
CN109460872B (zh) 一种面向移动通信用户流失不平衡数据预测方法
Liu et al. Dynamic traffic classification algorithm and simulation of energy Internet of things based on machine learning
Wang et al. Abnormal traffic detection system in SDN based on deep learning hybrid models
CN102779241B (zh) 基于人工蜂群繁殖机制的ppi网络聚类方法
Chang et al. Multi-task learning for emotion descriptors estimation at the fourth abaw challenge
CN115277888A (zh) 一种移动应用加密协议报文类型解析方法及系统
CN114358177B (zh) 一种基于多维度特征紧凑决策边界的未知网络流量分类方法及系统
CN114610758A (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