一种基于组合模型的网络短时流量预测方法转让专利

申请号 : CN201910188754.7

文献号 : CN109889391B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李千目张晗睿

申请人 : 南京理工大学

摘要 :

本发明公开了一种基于组合模型的网络短时流量预测方法。该方法为:首先使用灰色Verhulst‑马尔科夫模型进行网络短时流量预测;然后将灰色Verhulst‑马尔科夫模型的预测结果和实际流量的误差组成一个新的时间序列;接着将误差的时间序列放入GRU中进行训练;最后将灰色Verhulst‑马尔科夫模型的结果和GRU神经网络的结果相加,获得最终流量预测值。本发明结合了传统网络短时流量预测方法和深度学习方法的优点,能够准确地对网络短时流量进行预测,为网络中的异常处理、规划建设、资源管理和用户行为调节提供了依据。

权利要求 :

1.一种基于组合模型的网络短时流量预测方法,其特征在于,包括以下步骤:步骤1、使用灰色Verhulst‑马尔科夫模型进行网络短时流量预测;

步骤2、将灰色Verhulst‑马尔科夫模型的预测结果和实际流量的误差组成一个新的时间序列;

步骤3、将误差的时间序列放入GRU中进行训练;

步骤4、将灰色Verhulst‑马尔科夫模型的结果和GRU神经网络的结果相加,获得最终流量预测值;

步骤1所述的使用灰色Verhulst‑马尔科夫模型进行网络短时流量预测,具体如下:步骤1.1、计算网络短时流量状态:以一个时间序列X(t)表示网络短时流量,使用一阶马尔科夫链构造预测模型,设定集合s(t)为网络短时流量的状态,网络短时流量X(t),(t∈{1,2,...,n})为t时刻的流量值,首先把网络流量值归属于不同的状态,这些不同的状态构成了状态序列s(t),(t∈{1,

2,...,n});s(t)是网络短时流量的状态集合,即t时刻流量值所处的状态;

网络短时流量状态系统介绍如下,

Xmin(t)和Xmax(t)为网络短时流量中的最小值和最大值,θi为相邻两个状态之间的阈值,间隔I为每一个状态所包含的范围;

网络短时流量中的最小值Xmin(t)和最大值Xmax(t)为:Xmin(t)=mint∈{1,2,...,n}(X(t))         (1)Xmax(t)=maxt∈{1,2,...,n}(X(t))         (2)参数μ1为阈值,通过有限个阈值把网络流量分为多个状态;参数μ2为阈值的集合,参数μ1和μ2的推导公式为:

μ1=Xmin:I:Xmax          (3)μ2={θ1,θ2,...,θk}         (4)由式(4)知,当某一时刻的网络短时流量值X(t)处于阈值θi‑1和阈值θi之间时,则此时的流量状态为si状态;阈值θi与状态si之间的关系为:si={X(t)∈(θi‑1,θi)},i∈{1,2,...,k}            (5)S为所有状态的集合,公式如下:

S={s1,s2,...,sk}             (6)状态的个数k通过Xmax(t)、Xmin(t)和间隔I进行计算,公式为:当时间序列X(t)的最大值不是间隔I的整数倍时,添加一个状态sk+1:sk+1=Xmax             (8)则当Xmax不能被I整除时,状态集合S的定义如下:S={s1,s2,...,sk,sk+1}             (9)计算不同值的状态如下:

X(t)∈si|θi‑1≤X(t)≤θi            (10)步骤1.2、计算转移概率矩阵:

设定mi是状态si在历史流量中发生的次数,mij是状态si转移至状态sj事件发生的次数,则状态之间的变化概率pij如下:转移概率矩阵为:

转移概率矩阵P的向量表示形式为:[pi1,pi2,...,pin];

步骤1.3、预测未来网络短时流量:Y(t)为测试数据集, 为根据马尔科夫模型得到的预测值,Y(i)为当前时刻的流量值,si为Y(i)所处的状态,根据当前时刻的流量值Y(i)所处的状态si使用转移概率矩阵P计算出下一时刻可能的状态;

状态si可能转移的状态的集合为{sk1,sk1,...,skn},这些状态对应的阈值的集合为{θk1,θk2,...,θkn},每个状态出现的频数的集合为{tk1,tk1,...,tkn},则下一时刻的预测值为:

步骤1.4、使用灰色Verhulst‑马尔科夫模型进行网络短时流量预测:在灰色Verhulst‑马尔科夫预测模型中,时刻T处的历史网络短时流量序列为{x1,x2,...,xn},使用灰色Verhulat模型求得预测值 然后使用马尔科夫链的状态转移矩阵确定权重,并将转移概率矩阵随时间更新;

在时刻T+t,从状态i到状态j的马尔可夫链的新的概率P'ij(n)为:P'ij(n)=p{X'n+1=j|X'n=i}           (14)设定根据历史网络流量数据求得的状态概率转移矩阵为:在经过t后,新的状态转移概率矩阵如式(15)所示:使用新的状态转移概率矩阵预测下一时刻的网络短时流量;为了使预测值尽可能接近实际值,时刻T的实际值为xij,并且从时刻T到预测状态的状态概率为pij,将该概率作为 的权重,将从T时刻的状态到其他状态及实际值对应的概率结果作为波动数据的处理,则最终的预测值 为:

其中,φ为修正值,即灰色Verhulst预测模型的预测增量;

步骤2所述的将灰色Verhulst‑马尔科夫模型的预测结果和实际流量的误差组成一个新的时间序列,具体如下:

步骤2.1、建立灰色Verhulst‑马尔科夫‑GRU神经网络模型;

使用TensorFlow中的GRU模块来实现GRU模型,使用具有8个隐藏单元的GRU神经网络,隐藏单元的输出信息为:

y=W·x+b          (17)在式(17)中,y为输出值,x为输入值,W为权重值,b为偏置值;

神经网络训练中损失函数定义公式为:公式(18)中,loss为损失值,yi为每次神经元的输出值,yreal为真实值;

将神经元的输出值yi减去真实值yreal,再进行平方,最后对其进行平均得到方差,所得到的方差即为损失函数的损失值;

最后使用梯度下降的方法优化目标函数,定义梯度下降的学习率learning_rate,作为每次优化训练模型的下降梯度,学习率取值为0.003,选用AdamOptimizer优化器作为损失函数的优化器,将经过GRU神经网络训练出的模型进行保存;

步骤2.2、将灰色Verhulst‑马尔科夫模型取得的预测值 与真实流量值Y的差值ΔF组成一个误差的相对时间序列:

根据式(19)求出的误差相对序列为V(t),t∈{1,2,...,n},V(t)中的每一个元素均为马尔科夫模型预测到的数据 与真实数据Y之间的差值,即V={ΔF1,ΔF2,...,ΔFn}。

2.根据权利要求1所述的基于组合模型的网络短时流量预测方法,其特征在于,步骤3所述的将误差的时间序列放入GRU中进行训练,具体如下:步骤3.1、确定GRU神经网络的输入数据和理想输出数据,并进行归一化处理;

步骤3.2、计算各层输入值和输出值;

步骤3.3、计算输出误差;

步骤3.4、判断输出误差是否满足全局误差,如果不满足,则修正权值和阈值,返回步骤

3.2;如果满足,进入步骤4。

3.根据权利要求1所述的基于组合模型的网络短时流量预测方法,其特征在于,步骤4所述的将灰色Verhulst‑马尔科夫模型的结果和GRU神经网络的结果相加,获得最终流量预测值,具体如下:

将输出结果反标准化处理得到实际结果,将该结果与灰色Verhulst‑马尔科夫模型的预测结果以及GRU的输出相叠加,得到最终的预测结果。

说明书 :

一种基于组合模型的网络短时流量预测方法

技术领域

[0001] 本发明涉及网络资源配置技术领域,特别一种基于组合模型的网络短时流量预测方法。

背景技术

[0002] 近年来,对于资源配置和网络安全的研究主要在网络流量预测和异常检测两方面展开,并且取得了显著的成果。网络流量是所有网络行为的载体,它是记录和反映互联网发
展的重要依据,大部分网络相关的活动都是通过网络流量相联系的,通过抓取网络流量数
据并进行分析,可以间接掌握网络的发展趋势。
[0003] 根据既定的网络协议,多种不相同的网络服务、网络行为都可以格式化为统一的网络流量格式,让网络管理者从更高的角度来了解和管理互联网。许多研究人员、企业对网
络流量进行研究,通过历史数据分析用户的使用情况,可以实现业务统计、网络计费等功
能;通过网络流量的预测结果分析,可以更好地规划网络资源,从而保证网络的正常服务;
通过对网络流量中恶意流量的识别和管理,可以更好地保护正常业务不受影响。
[0004] 对于网络流量的预测,根据时间颗粒度不同划分,可以定义以下四种预测类型:实时流量预测、短时流量预测、中期流量预测、长期流量预测。从实时预测到长期预测,时间颗
粒度不断增加。实时预测所需数据的时间间隔最短,可以用来建立在线实时网络流量预测
系统;短时预测的时间间隔相较实时预测的间隔更长,通常来做最优化控制或异常检测;中
期预测时间间隔为数天,可用来指导资源规划;长期预测的时间间隔为数月到数年,可以为
制定策略、经济投资提供参考。提高流量预测的精度,网络运营商可以更合理地进行网络的
资源调配;基于精确的异常检测和防御措施,可以使网络得到更好的保障。
[0005] 目前常用的网络短时流量预测方法有以下三类:(1)基于数值分析的模型;(2)基于回归拟合的模型;(3)多模型加权组合的模型。基于数值分析的模型是在数理统计的基础
上,使用解析数学来进行网络短时流量预测;基于回归拟合的模型并不注重严格的数学公
式的推导和相对应的数学意义,而是更在意拟合真实网络流的变化趋势;多模型加权组合
的模型则是把两种或多种模型组合,能够克服一种模型的缺点并且继承他们各自的优点。
[0006] 虽然现在有越来越多网络短时流量预测模型被提出,但是仍然无法满足网络中的异常处理、规划建设、资源管理和用户行为调节对于精度的要求。

发明内容

[0007] 本发明的目的在于提供一种稳定性好、准确度高的基于组合模型的网络短时流量预测方法。
[0008] 实现本发明目的的技术解决方案为:一种基于组合模型的网络短时流量预测方法,包括以下步骤:
[0009] 步骤1、使用灰色Verhulst‑马尔科夫模型进行网络短时流量预测;
[0010] 步骤2、将灰色Verhulst‑马尔科夫模型的预测结果和实际流量的误差组成一个新的时间序列;
[0011] 步骤3、将误差的时间序列放入GRU中进行训练;
[0012] 步骤4、将灰色Verhulst‑马尔科夫模型的结果和GRU神经网络的结果相加,获得最终流量预测值。
[0013] 本发明与现有技术相比,其显著优点为:(1)结合了传统网络短时流量预测方法和深度学习方法的优点,能够准确地对网络短时流量进行预测;(2)为网络中的异常处理、规
划建设、资源管理和用户行为调节提供了依据。

附图说明

[0014] 图1是基于马尔科夫模型的网络短时流量预测方法的流程示意图。
[0015] 图2是基于灰色Verhulst‑马尔科夫模型的网络短时流量预测方法的流程示意图。
[0016] 图3是本发明基于组合模型的网络短时流量预测方法的流程示意图。
[0017] 图4是本发明中网络短时流量预测模块的流程示意图。

具体实施方式

[0018] 下面结合附图和具体实施方式对本发明作进一步说明。
[0019] 本发明提出了三种网络短时流量预测模型,把马尔科夫理论运用于网络短时流量预测研究,并使用灰色系统理论以及GRU对网络短时流量预测模型进行改进。网络短时流量
是一种非线性、非平稳的时间序列,所以将非线性的马尔科夫模型用于网络短时流量预测。
而灰色理论对于非平稳的时间序列有着很好的效果,常与马尔科夫算法一起使用,所以本
发明提出基于灰色Verhulst‑马尔科夫模型的网络短时流量预测模型。在此基础上,利用
GRU在非线性时间序列中的优势,与上一模型组合,提出基于灰色Verhulst‑马尔科夫‑GRU
模型的网络短时流量预测。
[0020] 结合图1~图4,本发明基于组合模型的网络短时流量预测方法,包括以下步骤:
[0021] 步骤1、使用灰色Verhulst‑马尔科夫模型进行网络短时流量预测;
[0022] 步骤1.1、计算网络短时流量状态:
[0023] 网络短时流量可以以一个时间序列X(t)表示,而Markov模型能够有效的对非线性的时间序列进行预测,所以使用一阶马尔科夫链构造预测模型。
[0024] 设定集合s(t)网络短时流量的状态,X(t),(t∈{1,2,...,n}),X(t)代表了在t时刻的流量值,因此,首先把网络流量值归属于不同的状态,这些不同的状态构成了状态序列
s(t),(t∈{1,2,...,n}),s(t)是网络短时流量的状态集合,即在t时刻流量值所处的状态;
[0025] 网络短时流量状态系统介绍如下,
[0026] Xmin(t)和Xmax(t)为网络短时流量中的最小值和最大值,θi为相邻两个状态之间的阈值,间隔I为每一个状态所包含的范围;网络短时流量中的最小值Xmin(t)和最大值Xmax(t)
为:
[0027] Xmin(t)=mint∈{1,2,...,n}(X(t))     (1)
[0028] Xmax(t)=maxt∈{1,2,...,n}(X(t))       (2)
[0029] 参数μ1为阈值,通过有限个阈值把网络流量分为若干个状态,参数μ2为阈值的集合,参数μ1和μ2的推导公式为:
[0030] μ1=Xmin:I:Xmax     (3)
[0031] μ2={θ1,θ2,...,θk}      (4)
[0032] 由式(4)可知,当某一时刻的网络短时流量值X(t)处于阈值θi‑1和阈值θi之间时,则此时的流量状态为si状态;阈值θi与状态si之间的关系为:
[0033] si={X(t)∈(θi‑1,θi)},i∈{1,2,...,k}      (5)
[0034] S为着所有状态的集合,描述如下:
[0035] S={s1,s2,...,sk}      (6)
[0036] 状态的个数通过Xmax(t)、Xmin(t)和间隔I的计算公式为:
[0037]
[0038] 当时间序列X(t)的最大值不是间隔I的整数倍时,添加一个状态sk+1:
[0039] sk+1=Xmax                          (8)
[0040] 当Xmax不能被I整除时,状态集合S的定义如下:
[0041] S={s1,s2,...,sk,sk+1}                       (9)
[0042] 然后计算不同值的状态如下:
[0043] X(t)∈si|θi‑1≤X(t)≤θi                     (10)
[0044] 步骤1.2、计算转移概率矩阵:
[0045] 转移概率矩阵又称跃迁矩阵,描述了状态之间的转移概率,并且第n次的结果仅仅和第n‑1的结果有关,与之前的结果无关,即无后效性的体现;该矩阵中的状态变化概率基
于历史流量数据统计得出。设定mi是状态si在历史流量中发生的次数,mij是状态si转移至状
态sj事件发生的次数,则状态之间的变化概率pij如下:
[0046]
[0047] 在进行预测时,根据pij对未来的网络短时流量进行预测;由式(11)可知,pij的准确性越高,Markov方法的预测精度越高,所以Markov模型对于历史数据的要求较高,历史数
据覆盖面越广泛,能够覆盖所有的状态,则Markov模型的预测精度越高;
[0048] 转移概率矩阵为:
[0049]
[0050] 转移概率矩阵P的向量表示形式为:[pi1,pi2,...,pin];
[0051] 步骤1.3、预测未来网络短时流量:
[0052] 计算测试数据集的流量值所处的状态,Y(t)为测试数据集, 为根据马尔科夫模型得到的预测值,Y(i)为当前时刻的流量值,si为Y(i)所处的状态,根据当前时刻的流量
值Y(i)所处的状态si,使用跃迁矩阵P计算出下一时刻可能的状态;
[0053] 在跃迁矩阵中,一个状态有概率会转移到一个或多个状态,网络短时流量的预测值就是这些状态对应的阈值加权之后的值。状态si可能转移的状态的集合为{sk1,sk1,...,
skn},这些状态对应的阈值的集合为{θk1,θk2,...,θkn},每个状态出现的频数的集合为{tk1,
tk1,...,tkn},则下一时刻的预测值 为:
[0054]
[0055] 步骤1.4、使用灰色Verhulst‑马尔科夫模型进行网络流量预测:
[0056] 由于网络短时流量的非平稳特征,将灰色Verhulst模型与Markov算法组合成灰色Verhulst‑马尔科夫(VM)模型,将该模型运用于网络短时流量预测,首先灰色Verhulst模型
用于预测下一时刻的网络短时流量,然后使用马尔可夫链的状态转移矩阵确定权重,解决
由数据波动引起的预测精度问题。
[0057] 在灰色Verhulst‑马尔科夫预测模型中,时刻T处的历史网络短时流量序列为{x1,x2,...,xn},并且使用灰色Verhulat模型求得预测值 然后使用马尔科夫链的状态转移矩
阵确定权重,并将概率转移矩阵随时间更新;
[0058] 在时刻T+t,从状态i到状态j的马尔可夫链的新的概率P'ij(n)为:
[0059] P'ij(n)=p{X'n+1=j|X'n=i}      (14)
[0060] 设定根据历史网络流量数据求得的状态概率转移矩阵为:
[0061]
[0062] 经过t后,新的状态转移概率转移矩阵为:
[0063]
[0064] 使用新的状态概率转移矩阵预测下一时刻的网络短时流量;
[0065] 为了使预测值尽可能接近实际值,时刻T的实际值为xij,并且从时间T到预测状态的状态概率为pij,将该概率作为 的权重。将从T时刻的状态到其他状态及其对应的概率结
果作为波动数据的处理,则最终的预测值 为:
[0066]
[0067] 其中φ为修正值,即灰色Verhulst预测模型的预测增量。
[0068] 步骤2、将灰色Verhulst‑马尔科夫模型的预测结果和实际流量的误差组成一个新的时间序列;
[0069] 基于统计学、概率论的数学方法对于网络短时流量这类非线性、非平稳的离散时间序列效果欠佳,而深度学习神经网络具有自适应能力和学习能力,能很好的拟合非线性、
非平稳的时间序列。所以采用灰色Verhulst模型、马尔科夫算法和GRU的组合模型(VM‑
GRU),首先使用灰色Verhulst‑马尔科夫模型进行网络短时流量预测;然后将使用数学方法
的预测结果和实际流量的误差组成一个新的时间序列;将误差的时间序列放入GRU中进行
训练;最后将灰色Verhulst‑马尔科夫模型的结果和GRU神经网络的结果相加,获得流量预
测值。
[0070] 步骤2.1、建立灰色Verhulst‑马尔科夫‑GRU神经网络模型
[0071] 使用TensorFlow中的GRU模块来实现GRU模型。TensorFlow是Google Brain建设的机器学习(Machine Learning,ML)系统,能够使用GPU、CPU进行运算,目前已经被企业、研究
人员广泛运用到ML和DNN的应用与研究,例如NPL、自动翻译、文本预测、模式识别等多个领
域。
[0072] TensorFlow有以下几种特性:
[0073] (1)可定制性:采用TensorFlow时,研究人员可以基于数据流图,根据自己的实际需求,使用简单的子模型定制复杂的神经网络结构。
[0074] (2)便携性:TensorFlow可以使用GPU或者CPU进行运算,并且支持在Windows、Linux、Mac系统甚至移动平台(即Android)上运行。
[0075] (3)便于调试:TensorFlow提供了TensorBoard工具,能够详细、便捷地对使用的模型分析。
[0076] (4)可扩展性:Google的团队还在不断地对TensorFlow进行开发、改进,并且在GitHub上公开其源码(https://github.com/tensorflow/tensorflow)。
[0077] (5)多语言支持:可以使用Python、Java、Go等多种编程语言进行编写。
[0078] 本发明使用具有8个隐藏单元的GRU神经网络,隐藏单元的输出信息为:
[0079] y=W·x+b       (17)
[0080] 在式(17)中,y为输出值,x为输入值,W为权重值,b为偏置值;
[0081] 神经网络训练中损失函数定义公式为:
[0082]
[0083] 公式(18)中,loss为损失值,yi为每次神经元的输出值,yreal为真实值;
[0084] 将神经元的输出值yi减去真实值yreal,再进行平方,最后对其进行平均得到方差,所得到的方差即为损失函数的损失值。损失函数用于评估预测值和输入的差距,当函数值
越小,则神经元的输出与输入的差值越小,权重值越适用。
[0085] 最后使用梯度下降的方法优化目标函数,定义梯度下降的学习率(learning_rate),作为每次优化训练模型的下降梯度,本发明选取的学习率为0.003。TensorFlow提供
了多种进行损失函数的优化器,本发明选用AdamOptimizer。
[0086] 随机梯度下降算法是对每次迭代计算每批次的梯度,再对参数进行更新,也是优化器中最常使用的优化算法。SGD形式简单,因而得到了广泛的应用。但是也有不足,首先对
于SGD算法中的学习率(learningrate)选择比较困难。在优化中所有参数的更新都是使用
相同的学习率,使用同样的学习率,以稀疏的数据特征举例,对数据中不经常出现的特征希
望能更新地快一点,而对数据中经常出现的特征希望能更新地慢一点,这样SGD就不符合需
求了。因为是梯度下降,所以就很容易收敛到局部最优。针对SGD算法的这些不足,因此提出
了其他的优化器算法。
[0087] Adagrad算法也就是对学习率进行了优化,对学习率进行了一个约束。当前期梯度较小时,Adagrad算法定义的约束项较大,这样就可以放大梯度;当后期梯度较大时,
Adagrad算法定义的约束项较小,这样就可以约束梯度。这样对学习率进行约束,就能很好
的适应稀疏梯度。当然Adagrad算法也有不足的地方,如果将学习率设置的过大,则会使算
法中的约束项过于敏感,从而对梯度的调节过大。
[0088] Adam算法本质上是对Adagrad算法的优化,Adam算法对学习率进行了近一步的优化,通过一阶矩估计和二阶矩估计,能够自适应地调整每个参数的学习率。Adam算法在每次
的偏置校正值后,学习率都是有个确定的范围,从而使得参数较为平稳。Adam算法的优点主
要有能处理稀疏梯度和非平稳目标;对各个参数可以动态的获得学习率;适用于高维度的
数据。
[0089] 本发明选取了能较好处理非平稳目标的Adam算法,将经过GRU神经网络训练出的模型保存。
[0090] 步骤2.2、将灰色Verhulst‑马尔科夫模型取得的预测值 与真实流量值Y的差值ΔF组成一个误差的相对时间序列。
[0091]
[0092] 根据式(19)求出的误差相对序列为V(t),(t∈{1,2,...,n}),V(t)中的每一个元素均为马尔科夫模型预测到的数据 与真实数据Y之间的差值,即V={ΔF1,ΔF2,...,Δ
Fn}。
[0093] 步骤3、将误差的时间序列放入GRU中进行训练;
[0094] 步骤3.1、确定GRU神经网络的输入数据和理想输出数据,并进行归一化处理;
[0095] 步骤3.2、计算各层输入值和输出值;
[0096] 步骤3.3、计算输出误差;
[0097] 步骤3.4、判断输出误差是否满足全局误差,如果不满足,则修正权值和阈值,返回步骤3.2;如果满足,进入步骤4。
[0098] 步骤4、将灰色Verhulst‑马尔科夫模型的结果和GRU神经网络的结果相加,获得最终流量预测值,具体如下:
[0099] 将输出结果反标准化处理得到实际结果,将该结果与灰色Verhulst‑马尔科夫模型的预测结果以及GRU的输出相叠加,得到最终的预测结果。