一种基于RBF神经网络的SDN流量预测方法与流程

文档序号:16857281发布日期:2019-02-12 23:28阅读:263来源:国知局
一种基于RBF神经网络的SDN流量预测方法与流程

本发明属于无线通信网络技术领域,特别是涉及一种适用于网络的性能分析和网络规划方法。



背景技术:

流量预测对于网络的性能分析和网络规划具有重要的意义。在传统的tcp/ip网络中,分布式的网络架构使得网络的灵活性和智能化不高,导致流量预测算法不能够很好的应用于工业中。软件定义网络(softwaredefinednetworking,sdn)作为一种新型的网络架构,具有控制平面与数据平面的解耦分离、开放的可编程接口以及逻辑集中式的控制等特征,使得sdn灵活性和智能化与传统网络相比有了较大地提高。因此,sdn的提出给流量预测算法的应用提供了一个很好的平台。而目前关于sdn的流量预测研究比较少,此外,由于sdn流量的动态变化和随机突发性,要进行准确预测是比较困难的。因此,提出准确且有效的sdn流量预测方法是非常重要的。

流量预测方法的研究是随着网络规模和网络应用的变化而不断变化的。其预测方法的发展经历了四个阶段:第一阶段,网络应用种类少,网络规模小,这一阶段主要是基于传统模型的流量预测研究。第二阶段,由于传统模型的局限性,即只具有短相关性,无法描述网络流量的长相关性。所以,提出了基于自相似模型的流量预测方法。第三阶段,网络规模的日益增大且自相似模型的参数计算过于复杂,导致自相似模型的预测性能下降,因此,提出了基于智能算法预测方法。第四阶段,随着网络规模的进一步扩大和网络应用种类的多样化,单一模型不能刻画流量的全部特性,提出了基于组合模型的流量预测方法。

传统网络中,流量预测是一个重要的研究方向。但是,传统网络是分布式的网络,不能够灵活地控制,网络的灵活性差、智能化程度低,这导致流量预测算法不能很好地应用于工业中。

正是在这一背景下,需要找到一种更加灵活高效的网络部署模式,以适应网络越来越灵活多变的需求,降低网络复杂性,并且能够加快网络创新的步伐。因此,软件定义网络的概念被提出并逐渐得到认可,其核心技术openflow将控制层从网络设备中单独提取出来作为控制器。sdn具有控制平面与数据平面解耦、开放的可编程接口以及集中式的控制等特征,使得sdn灵活性和智能化较传统网络有了较大地提高。因此,它的提出给流量预测算法的应用提供了一个很好的平台。但是,目前关于sdn的流量预测研究还比较少。本发明利用抽样算法获取流计数器的统计信息,利用这些数据训练模型,建立准确的流量预测模型,从而准确有效地预测流量的变化趋势。

随着sdn的兴起,研究人员将研究重点从传统网络转移到sdn。因此,基于sdn的流量预测研究也受到了研究人员的广泛关注。在传统的tcp/ip网络中,分布式的网络架构使得网络的灵活性和智能化不高,导致流量预测不能够很好的应用。在sdn中,将控制层分离出来做成控制器,实现对数据层的集中控制。因此,流量预测算法的部署和应用在sdn中得到了很好的应用。



技术实现要素:

针对现有技术存在的缺点,由于sdn流量的动态变化和随机突发性,要进行准确预测是比较困难的,一些模型在用于预测高可变性的网络流量时,它很难刻画大规模网络流量的复杂的非线性关系,在一定程度上影响模型的预测效果。本发明提出一种基于rbf神经网络的sdn流量预测方法。

本发明技术方案为一种基于rbf神经网络的sdn流量预测方法,该方法包括:

步骤1:对sdn流量测量及抽样;

获取openflow交换机中流表项中计数器存储的信息,得到抽样数据;所述计数器存储的信息记载着属于这条流的报文已经收到了多少个,以及收发分组数、收发字节数和查找次数;

步骤2:rbf神经网络初始化及数据预处理;

数据预处理为对步骤1得到的抽样数据进行归一化处理;因为rbf神经网络对[0,1]的数据最为敏感,归一化后可以加快训练过程的收敛速度并且避免训练过程中计算的溢出;

步骤3:rbf神经网络学习;

本发明采用了newrb函数,newrb创建的rbf神经网络是一个不断尝试的过程,在创建过程中不断地增加隐含层的数量和神经元的数目,直至满足设定的误差为止;

步骤4:滑动窗口预测;

设置滑动窗口,在采样得到的抽样数据上依次滑动,滑动窗口中的抽样数据为需要训练的数据;通过滑动窗口能够更好的捕获多个时刻后流量的变化特性;滑动窗口的预测的主要思想是保持数据长度不变,滑动窗口补充新数据,同时剔除旧数据,这样建立的模型更能够反映流量的特征。

步骤5:引入了均方误差mse作为训练结束的衡量标准;

mse是流量估计值和真值之差平方的期望值,可以评价数据的变化程度,mse值越小,说明预测模型描述实验数据精确度越高;反之,预测精确度越低;

步骤6:反归一化处理;

保存数据并进行反归一化处理,得到网络流量的实际预测值。

进一步的,所述步骤1中采用等时间间隔抽样方法或等数据包抽样方法对sdn流量进行抽样;

所述等时间间隔抽样方法的具体过程如下:

首先选择要测量的网络流,然后确定测量的网络流经过的网络路径,从而确定网络流经过的交换机;设置抽样周期,控制器定期向交换机发送flowstatisticsrequest消息,交换机收到flowstatisticsrequest消息,发送flowstatisticsreply消息给控制器,然后利用获取的字节数除以抽样间隔,获得时间间隔内的平均信息传输速率;存储这些统计信息;

等时间间隔抽样方法的具体过程如下:

首先选择要测量的网络流,然后确定测量的网络流经过的网络路径,从而确定网络流经过的交换机;每当交换机计数器的数据包数增加固定数目100、500或1000时,将计数器的统计信息发给控制器,并启动定时器;等到下一个统计消息发上来时,计算时间,控制器利用数据包数除以两个统计消息获得控制器的时间间隔;最后存储这些统计信息。

进一步的,所述步骤2的rbf神经网络初始化,具体过程如下:

首先我们要对神经网络参数进行初始化;最大训练次数为500,学习速率0.0005,动量因子为0.005中心向量,输出权值,输出偏移取[0,1]的随机数,扩展常数取[0.1,2.5]的随机数;

步骤2所述的数据预处理,具体过程如下:

从sdn网络中抽样的数据是具有突发,随机性,而且变化幅度比较大,为了提高神经网络的学习速度,训练模型开始之前,要对数据进行归一化处理。这是因为rbf神经网络对[0,1]的数据最为敏感,归一化后可以加快训练过程的收敛速度并且避免训练过程中计算的溢出。

x=xnormal(xmax-xmin)+xmin(2)

其中,xnormal表示网络流量序列的归一化值,xmax和xmin分别表示网络流量序列的最大值和最小值,x表示归一化后网络流量序列。

进一步的,所述步骤3所述的rbf神经网络学习,具体过程如下:

rbf神经网络由输入层,隐含层和输出层组成;增加隐含层的层数可以增加人工神经网络的处理能力,同时降低预测误差,提高预测精度;但是,在增加隐含层的层数的同时网络的复杂性会提高,因此网络的学习时间会增加,训练时收敛比较慢;而预测精度的提高实际上也可以通过增加隐含层节点数来获得,其rbf神经网络学习的效果比增加层数更容易观察和调整;所述的rbf神经网络采用newrb函数,newrb创建的rbf神经网络是一个不断尝试的过程,在创建过程中不断地增加隐含层的数量和神经元的数目,直至满足设定的误差为止;输入层实现从x→ri(x)的非线性映射,输出层实现从x→ri(x)的线性映射;

所述rbf神经网络中输入层映射到隐含层的径向基函数为:

其中,ri(x)表示对应层感知节点,x是n维输入向量;ci是第i个基函数的中心,与x具有相同维数的向量;σi是第i个感知的向量,它决定了该基函数中心点的宽度;m是对应层感知节点的个数;||x-ci||表示x与ci之间的距离;

所述rbf神经网络中隐含层映射到输出层的函数为:

其中yk表示rbf神经网络的输出,r是输出节点数,wik是权值。

进一步的,步骤4所述的滑动窗口预测,具体过程如下:

设置建模窗口的大小为wm,预测窗口大小为wp;首先在建模窗口wm内建立关于sdn流量的rbf神经网络,然后利用神经网络在预测窗口wp内进行预测并获得相应时刻的流量值;当对预测窗口wp内所有时间点预测结束后,滑动wp个时间点;这时,在新的建模窗口wm和预测窗口wp重复上述过程;

为了方便介绍滑动预测原理,图2中建模窗口的大小为w-1,预测窗口的大小为1,滑动窗口每次滑动1个单位;其中第k个预测窗口为建模窗口为当窗口向右滑动至第k+1个窗口时,与第k个窗口相比增加了xk+w-1,而去掉了xk,这时的建模窗口和预测窗口内的元素分别为其中当窗口持续向右滑动,依次得到新的预测结果窗口滑动的过程体现出了输入结果和输出结果的动态变化,从而实现了流量的滑动窗口预测。

进一步的,步骤5所述的方法的具体过程如下:

引入了均方误差mse作为训练结束的衡量标准:

其中xi表示实际流量,xi′表示流量预测值,k表示流量数据由k个数据点组成;

mse是指流量估计值和真值之差平方的期望值,mse用来评价数据的变化程度,mse值越小,说明预测模型描述实验数据具有更好的精确度,反之,预测精确度越差。

进一步的设置误差界限为0.01,当mse小于0.01时,rbf神经网络训练结束。算法预测步骤如图3所示。

本发明的有益效果:

本发明提出的基于rbf神经网络的sdn流量预测算法具有优良的非线性特性,特别适用于高度非线性系统的处理,通过研究历史数据记录来进行训练,一个经过适当训练的神经网络具有归纳全部数据的能力。其次,rbf神经网络具有灵活有效的学习方式,结构较其它神经网络来说,更加简单,学习速度更快。因此,rbf神经网络能够对复杂多变的网络流量进行更精确的预测。基于神经网络的流量预测是网络流量预测中比较有效的方法,在预测领域取得了巨大的成功。本发明利用pox和mininet对所提出的算法进行仿真,仿真结果表明所提出的算法能准确预测sdn流量变化趋势,具有较好的预测性能与较低的预测误差。

附图说明

图1为本发明的基于rbf神经网络的sdn流量预测算法的流程图;

图2为本发明涉及的rbf神经网络架构;

图3为本发明的滑动窗口预测示意图;

图4为本发明流量预测的真实数据和抽样数据的预测值对比(1min);

图5为本发明流量预测的真实数据和抽样数据的预测值对比(5min);

图6为本发明流量预测的真实数据和抽样数据的预测值对比(10min);

图7为本发明真实数据的预测值和抽样数据的预测值对比(1min);

图8为本发明真实数据的预测值和抽样数据的预测值对比(5min);

图9为本发明真实数据的预测值和抽样数据的预测值对比(10min);

图10为本发明流量预测的相对误差(1min、5min、10min);

图11为本发明等时间间隔抽样预测误差的累积分布函数;

图12为本发明真实数据与抽样数据预测对比(100packets);

图13为本发明真实数据与抽样数据预测对比(500packets);

图14为本发明真实数据与抽样数据预测对比(1000packets);

图15为本发明真实数据的预测值与抽样数据的预测值比较(100packets);

图16为本发明真实数据的预测值与抽样数据的预测值比较(500packets);

图17为本发明真实数据的预测值与抽样数据的预测值比较(1000packets);

图18为本发明等数据包隔抽样预测误差的累积分布函数。

具体实施方式

下面结合附图和具体实施例对本发明作进一步的详细说明:

一种基于rbf神经网络的sdn流量预测算法,具体步骤如下:

步骤1:sdn流量测量及抽样

等时间间隔抽样算法的具体过程如下:

首先选择要测量的网络流,然后确定测量的网络流经过的网络路径,从而确定网络流经过的交换机。设置抽样周期,控制器定期向交换机发送flowstatisticsrequest消息,交换机收到flowstatisticsrequest消息,发送flowstatisticsreply消息给控制器,然后利用获取的字节数除以抽样间隔,获得时间间隔内的平均信息传输速率。存储这些统计信息,用于仿真分析。

等时间间隔抽样算法的具体过程如下:

首先选择要测量的网络流,然后确定测量的网络流经过的网络路径,从而确定网络流经过的交换机。每当交换机计数器的数据包数增加固定数目(100,500,1000)时,将计数器的统计信息发给控制器,并启动定时器。等到下一个统计消息发上来时,计算时间,控制器利用数据包数除以两个统计消息获得控制器的时间间隔。最后存储这些统计信息,用于仿真分析。

步骤2:rbf神经网络初始化及数据预处理

首先我们要对神经网络参数进行初始化。最大训练次数为500,学习速率0.0005,动量因子为0.005中心向量,输出权值,输出偏移取[0,1]的随机数,扩展常数取[0.1,2.5]的随机数。

从sdn网络中抽样的数据是具有突发,随机性,而且变化幅度比较大,为了提高神经网络的学习速度,训练模型开始之前,要对数据进行预处理,即归一化处理。这是因为rbf神经网络对[0,1]的数据最为敏感,归一化后可以加快训练过程的收敛速度并且避免训练过程中计算的溢出。然后预测完成后进行反归一化处理,得到实际预测值。

x=xnormal(xmax-xmin)+xmin(2)

其中,xnormal表示网络流量序列的归一化值,xmax和xmin分别表示网络流量序列的最大值和最小值。

步骤3:rbf神经网络学习

rbf神经网络由输入层,隐含层和输出层组成。增加隐含层的层数可以增加人工神经网络的处理能力,同时降低预测误差,提高预测精度。但是,在增加隐含层的层数的同时网络的复杂性会提高,因此网络的学习时间会增加,训练时收敛比较慢。而预测精度的提高实际上也可以通过增加隐含层节点数来获得,其rbf神经网络学习的效果比增加层数更容易观察和调整。本发明采用了newrb函数,newrb创建的rbf神经网络是一个不断尝试的过程,在创建过程中不断地增加隐含层的数量和神经元的数目,直至满足设定的误差为止。

本发明采用径向基函数是高斯函数,它具有光滑性好,径向对称,表达形式简单和解析性好的优点。高斯函数形式为:

其中x是n维输入向量;ci是第i个基函数的中心,与x具有相同维数的向量;σi是第i个感知的向量,它决定了该基函数中心点的宽度;m是感知单元的个数;||x-ci||表示x与ci之间的距离。输入层实现从x→ri(x)的非线性映射,输出层实现从ri(x)→yk的线性映射,

即:

其中r是输出节点数,wik是权值。

步骤4:滑动窗口预测

设置建模窗口的大小为wm,预测窗口大小为wp。首先在建模窗口wm内建立关于sdn流量的rbf神经网络,然后利用神经网络在预测窗口wp内进行预测并获得相应时刻的流量值;当对预测窗口wp内所有时间点预测结束后,滑动wp个时间点。这时,在新的建模窗口wm和预测窗口wp重复上述过程。

为了方便介绍滑动预测原理,图2中建模窗口的大小为w-1,预测窗口的大小为1,滑动窗口每次滑动1个单位。其中第k个预测窗口为建模窗口为当窗口向右滑动至第k+1个窗口时,与第k个窗口相比增加了xk+w-1,而去掉了xk,这时的建模窗口和预测窗口内的元素分别为其中当窗口持续向右滑动,依次得到新的预测结果窗口滑动的过程体现出了输入结果和输出结果的动态变化,从而实现了流量的滑动窗口预测。

步骤5:算法设计

引入了均方误差(meansquarederror,mse)作为训练结束的衡量标准:

其中xi表示实际流量,xi′表示流量预测值,k表示流量数据由k个数据点组成。

mse是指流量估计值和真值之差平方的期望值。mse用来评价数据的变化程度,mse值越小,说明预测模型描述实验数据具有更好的精确度。反之,预测精确度越差。在这里,设置误差界限为0.01,当mse小于0.01时,rbf神经网络训练结束。算法预测步骤如图1所示。

步骤6:反归一化处理

从sdn网络中抽样的数据是具有突发,随机性,而且变化幅度比较大,为了提高神经网络的学习速度,训练模型开始之前,要对数据进行预处理,即归一化处理。这是因为rbf神经网络对[0,1]的数据最为敏感,归一化后可以加快训练过程的收敛速度并且避免训练过程中计算的溢出。因此在预测完成后要进行反归一化处理,得到实际预测值。

图4、图5、图6上中实线为真实值的预测值,虚线为抽样值的预测值,图6下中实线为真实值的预测值,虚线为抽样值的预测值。从图4、5和6可以看出,真实数据和抽样数据的预测值都能够准确地预测出真实数据和抽样数据的变化趋势,预测效果也是非常好的。

图7、图8、图9中实线为真实值的预测值,虚线为抽样值的预测值。从图7、8和9可以看出,抽样数据的预测值能够很好的逼近真实数据的流量变化趋势。这表明,在一定的抽样间隔下,可以利用抽样数据的预测值来代替真实数据的预测值,从而能够达到以较小的网络测量开销来预测流量变化趋势。

图10为流量预测的相对误差。在这里,我们分别计算获得相对误差的平均值。通过计算可知,随着抽样间隔的增大,相对误差也会随之增大,流量预测的效果也会下降。通过rbf神经网络预测的平均相对误差可以看出,抽样间隔越小流量的预测精度越高。

图11为等时间间隔抽样预测误差的累积分布函数。图11表明抽样间隔为1min时,预测精度是最高的。当相对误差为0.4时,该算法能对98%的真实数据(1min)进行准确预测,同时能对98%的抽样数据(1min)进行准确预测;当相对误差为0.2时,该算法能对80%的真实数据(5min)进行准确预测,同时能对85%的抽样数据(5min)进行准确预测;当相对误差为0.4时,该算法能对70%的真实数据(10min)进行准确预测,同时能对65%的抽样数据(10min)进行准确预测。而且,1min的两条曲线整体都在在5min和10min的上面,因此预测精度是优于5min和10min。

图12为真实数据与抽样数据的预测对比图(抽样间隔100packets)。图13为真实数据与抽样数据的预测对比图(抽样间隔500packets)。图14为真实数据与抽样数据的预测对比(抽样间隔1000packets)。从图12,13和14可以看出,真实数据和抽样数据的预测值都能够准确地预测出真实数据和抽样数据的变化趋势,预测性能和预测结果的稳定性都比等时间间隔抽样有了进一步的提高。

图15为真实数据的预测值和抽样数据的预测值对比图(抽样间隔1min)。图16为真实数据的预测值和抽样数据的预测值对比图(抽样间隔5min)。图17为真实数据的预测值和抽样数据的预测值对比图(抽样间隔10min)。从图15、16和17可以看出,抽样数据的预测值能够很好地逼近真实数据的流量变化趋势。

图18为相对误差的累积分布函数。图18说明,当相对误差为0.4时,该算法能对98%的真实数据(100packets)进行准确预测,同时能对97%的抽样数据(100packets)进行准确预测;当相对误差为0.4时,该算法能对91%的真实数据(500packets)进行准确预测,同时能对91%的抽样数据(500packets)进行准确预测;当相对误差为0.4时,该算法能对62%的真实数据(1000packets)进行准确预测,同时能对60%的抽样数据(1000packets)进行准确预测。且抽样间隔越小,该算法的流量预测精度越高。

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