一种基于卷积神经网络的流量异常检测方法及系统与流程

文档序号:22581497发布日期:2020-10-20 17:04阅读:129来源:国知局
一种基于卷积神经网络的流量异常检测方法及系统与流程

本发明涉及无线通信技术领域,特别是涉及一种基于卷积神经网络的流量异常检测方法及系统。



背景技术:

数据中心作为互联网重要的基础设施之一,为庞大的终端用户提供了丰富的网络服务和应用。作为一个高度开放的网络,为了更好的确保用户的隐私,网络运营商必须更加关注网络安全威胁,例如物理层欺骗、干扰和分布式拒绝服务攻击。在机器故障诊断、疾病检测、入侵检测、信用卡(或保险)欺诈检测以及身份辨识等领域,一般只存在符合期望(目标类或正常类)行为的数据模式,而不符合期望(异常类或反类)行为的数据模式由于采样代价高昂或者采样非常困难,使得对异常行为所知甚少甚至一无所知,但是异常行为中却蕴含了显著的(通常具有很大危害甚至致命性的)行为信息圈。

目前的异常检测,一般均从已知的正常类数据中进行学习,建立正常行为的模型以进行异常检测。流量异常表示由各种元素(例如,网络中的恶意软件和故障节点)引起的网络异常行为。在过去的十年中,已经提出了许多方法来检测传统互联网服务提供商网络中的异常情况。例如,nevat等人用广义似然比检验提出了异常检测问题。作者提出了两种低复杂度的高效算法来检测异常流量以及流中异常的属性,分别使用了交叉熵法和广义似然比检验。基于子空间的方法已广泛用于传统的大规模互联网服务提供商网络中以进行异常检测。通常,主成分分析方法首先使用聚合流,通过基于阈值的方法来计算正常子空间和异常子空间。然后,将观察到的交通数据投影到两个子空间上,以做出异常检测的决策。迄今为止,现有文献中已经提出了许多基于子空间的方法,以改进主成分分析方法。例如,huang等人提出了一种基于距离的子空间方法来实现降维,然后将观测到的交通数据投影到异常子空间上进行异常检测。此外,针对实时在线异常检测,作者提出了一种基于分散子空间的方法,可以显着降低异常检测的计算复杂度。

虽然提出了许多异常检测优化方法,但一个显著的问题是难以获得最优解,进而无法准确的进行异常检测。因此,提出一种提高异常检测准确性的方法是目前亟待解决的技术问题。



技术实现要素:

本发明的目的是提供一种基于卷积神经网络的流量异常检测方法及系统,提高了流量异常检测的准确性。

为实现上述目的,本发明提供了如下方案:

一种基于卷积神经网络的流量异常检测方法,所述方法包括:

从网管中心获取历史网络流量,并将所述历史网络流量表示为流量矩阵;

以整流线性单位作为激活函数,以基于马氏距离的损失函数作为损失函数,构建卷积神经网络;

根据所述流量矩阵,利用所述卷积神经网络预测网络流量,获得网络流量预测值;

获取当前网络流量,结合所述网络流量预测值,利用贪心算法学习确定基于阈值的异常检测机制的误差阈值;

根据所述当前网络流量、所述网络流量预测值和所述误差阈值,利用基于阈值的异常检测机制确定流量误差,实现网络流量的异常检测。

可选的,所述从网管中心获取历史网络流量,并将所述历史网络流量表示为流量矩阵,具体包括:

从网管中心获取历史网络流量,并将所述历史网络流量表示为流量矩阵x;所述流量矩阵x={xn,t},xn,t表示第n个od流在时隙t的传输控制协议数据包的均值,t=1,2,3,...,t,t为流量矩阵x的长度,n=1,2,3,...,n,n为od流的数量;

从流量矩阵x中收集具有b个时隙的连续流量数据集作为训练流量矩阵xb,将流量矩阵x中所述b个时隙的连续流量数据集以外的流量数据集作为预测输入流量矩阵为xa。

可选的,所述基于马氏距离的损失函数为

其中,lm为损失函数,m为训练示例的索引,m=1,2,…m,m为训练示例的数量,λ为额外相,cm为马氏距离,hk,b(·)为卷积神经网络结构的输出函数,hk,b(x(m))为输入流量矩阵为x(m)时的卷积神经网络结构的输出流量矩阵,k为卷积核,b为偏差,训练示例为为第n′+1个均值向量,e为输出流量矩阵与均值向量的差值,et为e矩阵的转置,p是关于hk,b(x(m))和的协方差矩阵,sm为稀疏术语,sm=||hk,b(x(m))||1,||·||1为可以提取流量稀疏性的-范数。

可选的,所述根据所述流量矩阵,利用卷积神经网络预测网络流量,获得网络流量预测值,之前还包括:

对所述训练流量矩阵xb进行奇异值分解,获得特征流矩阵、对角矩阵和正交矩阵;

利用所述特征流矩阵、所述对角矩阵和所述正交矩阵对所述卷积神经网络进行训练,获得训练后的卷积神经网络。

可选的,所述对所述训练流量矩阵xb进行奇异值分解,获得特征流矩阵、对角矩阵和正交矩阵,具体包括:

利用公式x0=xb-xmean对所述训练流量矩阵xb进行零均值处理,得到零均值化流量矩阵x0;

将所述零均值化流量矩阵x0中的每列元素按照每列元素的平均值进行降序排列,获得排序后的零均值化流量矩阵;

对所述排序后的零均值化流量矩阵进行奇异值分解,获得特征流矩阵、对角矩阵和正交矩阵;

其中,xmean为xb的均值矩阵,x1,1、x1,2和x1,b分别为第1个od流在时隙1、时隙2和时隙b的传输控制协议数据包的均值,x2,1、x2,2和x2,b分别为第2个od流在时隙1、时隙2和时隙b的传输控制协议数据包的均值,xn,1、xn,2和xn,b分别为第n个od流在时隙1、时隙2和时隙b的传输控制协议数据包的均值,a1、a2和an分别为xmean的第一行元素、第二行元素和第n行元素。

可选的,所述根据所述流量矩阵,利用所述卷积神经网络预测网络流量,获得网络流量预测值,具体包括:

将预测输入流量矩阵为xa输入所述卷积神经网络,获得网络流量预测初始值;

对所述网络流量预测初始值进行零均值处理,获得网络流量预测值。

可选的,所述获取当前网络流量,结合所述网络流量预测值,利用贪心算法学习确定基于阈值的异常检测机制的误差阈值,具体包括:

利用贪心算法计算候选阈值集合中每个阈值的平均奖励;

选取所有阈值的平均奖励的最大值,并将所述最大值对应的阈值作为基于阈值的异常检测机制的误差阈值。

可选的,所述利用贪心算法计算候选阈值集合中每个阈值的平均奖励,具体包括:

利用贪心算法,生成所述候选阈值集合中第i个阈值的多个奖励;

计算所述第i个阈值的多个奖励的平均值;

根据所述当前网络流量和所述网络流量预测值,将所述第i个阈值代入基于阈值的异常检测机制中,获得所述第i个阈值的准确性其中,ki为第i个阈值,tp表示网络流量预测值与当前网络流量不同的错误数据已正确分类为错误的数量,fp表示网络流量预测值与当前网络流量相同的正确的数据被错误地分类为错误的数量,tn表示网络流量预测值与当前网络流量相同的正确的数据正确分类为正确的数量,fn表示网络流量预测值与当前网络流量不同的错误数据被错误地分类为正确的数量;

利用所述第i个阈值的准确性更新所述第i个阈值的平均奖励,获得所述第i个阈值的更新后的平均奖励其中,q′(ki)为第i个阈值的更新后的平均奖励,q(ki)为第i个阈值的平均奖励,g(ki)为第i个阈值的准确性,count(ki)为第i个阈值的迭代次数;

判断所述第i个阈值的迭代次数是否大于最大迭代次数,获得判断结果;

若所述判断结果表示否,则令所述第i个阈值的迭代次数增加1,返回步骤“利用贪心算法,获得所述候选阈值集合中第i个阈值的多个奖励”;

若所述判断结果表示是,则输出所述第i个阈值的更新后的平均奖励。

可选的,所述根据所述当前网络流量、所述网络流量预测值和所述误差阈值,利用基于阈值的异常检测机制确定流量误差,实现网络流量的异常检测,具体包括:

将所述当前网络流量与所述网络流量预测值作差,确定估计误差为

根据所述估计误差和所述误差阈值,采用基于阈值的异常检测机制,确定所述流量误差为

其中,为流量误差,为估计误差,x′为当前网络流量,为网络流量预测值,k*为误差阈值,0表示流量正常,1表示流量异常。

一种基于卷积神经网络的流量异常检测系统,所述系统包括:

流量矩阵获取模块,用于从网管中心获取历史网络流量,并将所述历史网络流量表示为流量矩阵;

卷积神经网络构建模块,用于以整流线性单位作为激活函数,以基于马氏距离的损失函数作为损失函数,构建卷积神经网络;

网络流量预测值获取模块,用于根据所述流量矩阵,利用所述卷积神经网络预测网络流量,获得网络流量预测值;

误差阈值确定模块,用于获取当前网络流量,结合所述网络流量预测值,利用贪心算法学习确定基于阈值的异常检测机制的误差阈值;

流量误差确定模块,用于根据所述当前网络流量、所述网络流量预测值和所述误差阈值,利用基于阈值的异常检测机制确定流量误差,实现网络流量的异常检测。

根据本发明提供的具体实施例,本发明公开了以下技术效果:

本发明通过卷积神经网络预测网络流量,以捕获网络流量的空-时和稀疏特征,兼顾了网络的复杂性以及多变性,并且卷积神经网络的损失函数使用基于马氏距离的损失函数,减小了网络流量预测值的误差,最后利用强化学习方法中的贪心算法确定异常检测机制的误差阈值,克服了现有技术难以获得阈值最优解的缺陷,进一步提高了流量异常检测的准确性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明提供的一种基于卷积神经网络的流量异常检测方法的流程图;

图2为本发明提供的一种基于卷积神经网络的流量异常检测方法的原理图;

图3为本发明实施例提供的vanets网络的组成图;

图4为本发明实施例提供的vanets网络中实际流量数据与估计流量数据对比图;图4(a)为od流为51时的vanets网络中实际流量数据与估计流量数据对比图;图4(b)为od流为92时的vanets网络中实际流量数据与估计流量数据对比图;

图5为本发明实施例所得结果的相对误差与主成分分析方法所得结果的相对误差的比较图;图5(a)为本发明实施例所得结果的空间相对误差与主成分分析方法所得结果的空间相对误差的比较图;图5(b)为本发明实施例所得结果的时间相对误差与主成分分析方法所得结果的时间相对误差的比较图;

图6为本发明实施例所得结果的偏差与主成分分析方法所得结果的偏差的比较图;

图7为本发明实施例所得结果的真实阳性率与主成分分析方法所得结果的真实阳性率的比较图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明的目的是提供一种基于卷积神经网络的流量异常检测方法及系统,提高了流量异常检测的准确性。

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。

图1为本发明提供的一种基于卷积神经网络的流量异常检测方法的流程图,图2为本发明提供的一种基于卷积神经网络的流量异常检测方法的原理图。如图1和2所示,一种基于卷积神经网络的流量异常检测方法包括以下步骤:

s101,从网管中心获取历史网络流量,并将历史网络流量表示为流量矩阵。

端到端网络流量,称为起点到目的地流(od),描述了从起点节点到目的节点的流量。对于具有个节点的网络中的所有可能的od对,我们可以用流量矩阵描述。流量矩阵的每个行向量都是一个时间序列,表示一个od流。根据给定的网络管理操作,网络流量需要具有各种时间范围和粒度的特定流量矩阵。通常,时间标度为10分钟或15分钟,即流量矩阵中的每个元素表示一个时隙的单位均值。流量的粒度是传输控制协议数据包,这意味着流量矩阵中的每个元素表示在时隙t处的传输控制协议数据包的均值。

步骤s101具体实现包括:

从网管中心获取历史网络流量,并将历史网络流量表示为流量矩阵x;流量矩阵x={xn,t},xn,t表示第n个od流在时隙t的传输控制协议数据包的均值,t=1,2,3,...,t,t为流量矩阵x的长度,n=1,2,3,...,n,n为od流的数量;

从流量矩阵x中收集具有b个时隙的连续流量数据集,作为训练流量矩阵xb,流量矩阵x中b个时隙的连续流量数据集以外的流量数据集作为预测输入流量矩阵为xa。

s102,以整流线性单位作为激活函数,以基于马氏距离的损失函数作为损失函数,构建卷积神经网络。

步骤s102中,基于马氏距离的损失函数为

其中,lm为损失函数,m为训练示例的索引,m=1,2,…m,m为训练示例的数量,λ为额外相,cm为马氏距离,hk,b(·)为卷积神经网络结构的输出函数,hk,b(x(m))为输入流量矩阵为x(m)时的卷积神经网络结构的输出流量矩阵,k为卷积核,b为偏差,训练示例为为第n′+1个均值向量,e为输出流量矩阵与均值向量的差值,et为e矩阵的转置,p是关于hk,b(x(m))和的协方差矩阵,sm为稀疏术语,sm=||hk,b(x(m))||1,||·||1为可以提取流量稀疏性的-范数。基于马氏距离的损失函数lm包括两个术语,即马氏距离术语和稀疏术语,它们可以减少估计误差。

在网管中心,使用卷积神经网络架构来追求流量矩阵的空-时特征以进行估计。在卷积层中,在为所有神经元定义了相对于输入图的空间位置(g,j)之后,可以通过将多个输入相卷积来计算输出。可以描述如下:

其中,表示第l卷积层中空间位置(g,j)的输出,a(l-1)表示第l-1卷积层中输出,k(l)表示在第l卷积层中具有学习权重的内核,(a(l-1)k(l))g,j表示空间位置(g,j)中a(l-1)与k(l)的乘积,b(l)表示偏差,f(·)表示激活函数,通常由s型和整流线性单位(relus)等表示。梯度反向传播算法能够有效地计算卷积神经网络的参数。因此,本发明利用基于卷积神经网络的方法来处理异常问题检测。卷积神经网络架构具有l个卷积层以进行跟踪输入数据集的时空特征。将输入数据定义为一个方阵,其元素可以用表示,n1=1,2,3,...,n1和t1=1,2,3,...,t1。在第l层卷积层中是被定义为第m个内核的第j个元素,j=1,2,3,...,n(l),并且m=1,2,3,...,m(l),符号n(l)和m(l)表示第l层的元素和内核的数量。对于第l卷积层,通过向量获得输入,表示第l-1层的第q单元的输出,其内核为m个,在网管中心,选择整流线性单位作为激活,在卷积神经网络架构中发挥作用,则其输出如下:

其中,表示表示第l-1层,第q单元的输出,其内核为m'个,上标(l,m)是卷积的索引层和相应的内核,标记relu(·)表示一个称为整流线性单位函数的操作,符号k(l,m)是内核的向量表示,每个子采样层均构成平均池化操作。

构建卷积神经网络之后,需要对卷积神经网络进行训练,训练的详细过程为:

利用公式x0=xb-xmean对训练流量矩阵xb进行零均值处理,得到零均值化流量矩阵x0;其中,xmean为xb的均值矩阵,x1,1、x1,2和x1,b分别为第1个od流在时隙1、时隙2和时隙b的传输控制协议数据包的均值,x2,1、x2,2和x2,b分别为第2个od流在时隙1、时隙2和时隙b的传输控制协议数据包的均值,xn,1、xn,2和xn,b分别为第n个od流在时隙1、时隙2和时隙b的传输控制协议数据包的均值,a1、a2和an分别为xmean的第一行元素、第二行元素和第n行元素;

将零均值化流量矩阵x0中的每列元素按照每列元素的平均值进行降序排列,获得排序后的零均值化流量矩阵;

对排序后的零均值化流量矩阵进行奇异值分解,获得特征流矩阵、对角矩阵和正交矩阵;奇异值分解可以通过以下方式显示:

上述公式中,xt为排序后的零均值化流量矩阵,u为特征流矩阵,σ为对角矩阵,v为正交矩阵,uk、σk和vk分别为u,σ和v的第k个元素,σr为对角矩阵的第r个元素,k为最大维度。流量矩阵随时间变化的特征流的特征流矩阵由从流量矩阵的奇异值分解中得出的特征流组成。对角矩阵σ由流量矩阵xt的奇异值组成。u和v均为单位正交阵。

利用特征流矩阵、对角矩阵和正交矩阵对卷积神经网络进行训练,获得训练后的卷积神经网络。

s103,根据流量矩阵,利用卷积神经网络预测网络流量,获得网络流量预测值;

步骤s103具体包括:

将预测输入流量矩阵为xa输入卷积神经网络,获得网络流量预测初始值;

对网络流量预测初始值进行零均值处理,获得网络流量预测值。

s104,获取当前网络流量,结合网络流量预测值,利用贪心算法学习确定基于阈值的异常检测机制的误差阈值,具体为:

利用贪心算法计算候选阈值集合中每个阈值的平均奖励;

选取所有阈值的平均奖励的最大值,并将最大值对应的阈值作为基于阈值的异常检测机制的误差阈值。

其中,利用贪心算法计算候选阈值集合中每个阈值的平均奖励,具体过程为:

利用贪心算法,生成候选阈值集合中第i个阈值的多个奖励;ε贪心算法可以表示为<a′,k′,p′,v′>,其中a′和k′是状态集和代理的动作。矩阵p′由作用概率k′组成。v′是奖励函数,也就是说,在执行动作k′之后,环境将根据策略给予奖励。如果将动作k′尝试了n′次,则奖励为v1,v2,...,vn;

计算第i个阈值的多个奖励的平均值;令q(k′)记录动作k′的平均奖励,则平均奖励为:

vi′表示第i′个奖励,i′=1,2,…,n′。

根据当前网络流量和网络流量预测值,将第i个阈值代入基于阈值的异常检测机制中,获得第i个阈值的准确性其中,ki为第i个阈值,tp表示网络流量预测值与当前网络流量不同的错误数据已正确分类为错误的数量,fp表示网络流量预测值与当前网络流量相同的正确的数据被错误地分类为错误的数量,tn表示网络流量预测值与当前网络流量相同的正确的数据正确分类为正确的数量,fn表示网络流量预测值与当前网络流量不同的错误数据被错误地分类为正确的数量;

利用第i个阈值的准确性更新第i个阈值的平均奖励,获得第i个阈值的更新后的平均奖励其中,q′(ki)为第i个阈值的更新后的平均奖励,q(ki)为第i个阈值的平均奖励,g(ki)为第i个阈值的准确性,count(ki)为第i个阈值的迭代次数;

判断第i个阈值的迭代次数是否大于预设迭代阈值,获得判断结果;

若判断结果表示否,则令第i个阈值的迭代次数增加1,返回步骤“利用贪心算法,获得候选阈值集合中第i个阈值的多个奖励”;

若判断结果表示是,则输出第i个阈值的更新后的平均奖励。

s105,根据当前网络流量、网络流量预测值和误差阈值,利用基于阈值的异常检测机制确定流量误差,实现网络流量的异常检测,具体包括:

将当前网络流量与网络流量预测值作差,确定估计误差为

根据所述估计误差和所述误差阈值,采用基于阈值的异常检测机制,确定所述流量误差为

其中,为流量误差,为估计误差,x′为当前网络流量,为网络流量预测值,k*为误差阈值,0表示流量正常,1表示流量异常。

尽管现在已有多种方法对流量异常检测优化进行了研究,但是本发明提出的方法兼顾网络的复杂性以及多变性,所提方法更全面和符合实际。本发明的方法考虑了流量的时空和稀疏特征,并使用了卷积神经网络架构和基于马氏距离的损失函数来提取和估计流量矩阵。然后,使用强化学习来实施异常检测。网络系统本身存在的时变性和不确定性等因素导致网络是一个复杂的大系统,数学模型的复杂性和精确性往往难以满足网络的实时需求。本发明的方法不依赖于被控对象的数学模型和先验知识,而是通过试错和与环境的不断交互获得知识,从而改进行为策略,具有自学习的能力。对于网络这种复杂的时变系统,本发明提出的基于卷积神经网络的流量异常检测优化方法相比于目前多用的其他优化方法具有更加高效准确的性能。

本发明提供了将基于卷积神经网络的流量异常检测方法应用于vanets网络的具体实施例,并将得到的结果与已有方法比较,本发明提出的基于卷积神经网络的流量异常检测方法更具有优越性以及普适性。

如图3所示,vanets由车载单元(例如车辆)和路边单元组成,它是一个自组织的对等无线网络。vanets骨干网络由12个网络节点组成。

图4为本发明实施例提供的vanets网络中实际流量数据与估计流量数据对比图,图4(a)为od流为51时的vanets网络中实际流量数据与估计流量数据对比图,图4(b)为od流为92时的vanets网络中实际流量数据与估计流量数据对比图,从图4中可以看出本发明方法可以准确地跟踪od流的轨迹,尽管这些od流包含许多陡峭的波动。根据图4中的结果选择获得最佳效果的估计流量数据,可以准确的识别交通流中的异常元素。

图5为本发明实施例所得结果的相对误差与主成分分析方法所得结果的相对误差的比较图,图5(a)为本发明实施例所得结果的空间相对误差与主成分分析方法所得结果的空间相对误差的比较图,图5(b)为本发明实施例所得结果的时间相对误差与主成分分析方法所得结果的时间相对误差的比较图,依图5所示,相比于主成分分析方法,应用本发明所提方法在时间相对误差上获得了显着改善。图6为本发明实施例所得结果的偏差与主成分分析方法所得结果的偏差的比较图,图6将实施例所得方差结果与已有方法结果比较,应用本发明所提方法的方差低于主成分分析方法,这意味着应用本发明所提方法倾向于准确估计短时标变化。图7显示了针对不同因素的真实阳性率,与主成分分析方法相比,本发明的卷积神经网络和强化学习方法非常出色。同时,强化学习方法更喜欢检测较大的异常而不是较小的异常。本发明提出的基于卷积神经网络的流量异常检测优化方法相比于目前多用的其他优化方法具有更加高效准确的性能。

本发明还提供了一种基于卷积神经网络的流量异常检测系统,系统包括:流量矩阵获取模块、卷积神经网络构建模块、网络流量预测值获取模块、误差阈值确定模块和流量误差确定模块。

流量矩阵获取模块,用于从网管中心获取历史网络流量,并将历史网络流量表示为流量矩阵;

卷积神经网络构建模块,用于以整流线性单位作为激活函数,以基于马氏距离的损失函数作为损失函数,构建卷积神经网络;

网络流量预测值获取模块,用于根据流量矩阵,利用卷积神经网络预测网络流量,获得网络流量预测值;

误差阈值确定模块,用于获取当前网络流量,结合网络流量预测值,利用贪心算法学习确定基于阈值的异常检测机制的误差阈值;

流量误差确定模块,用于根据当前网络流量、网络流量预测值和误差阈值,利用基于阈值的异常检测机制确定流量误差,实现网络流量的异常检测。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1