基于RBF神经网络的时延预测模型与仿真
2014-03-26危锋
危锋
(河南经贸职业学院信息管理系,河南郑州 450046)
0 引言
神经网络具有自组织、自学习、自适应等特点。信息处理过程中具有很强的泛化能力,同时它还具有较强的容错特性,提高了信息处理的可靠性和鲁棒性[1-3]。网络时延数据处理全过程可以用神经网络来实现,形成具有学习功能的神经控制系统,可以实现对网络时延进行有效的预测。
1 基于RBF神经网络时延预测模型
网络控制系统中的时延变化有一定的规律性,可以通过总结其规律来实现时延的预测。据此,我们根据网络时延测量得到的时延数据进行处理,将采集到时延数据按照时间先后分成若干个时间片段,选取其中某一个时间点T,将此时间点之前得到了N个x值(时延)来估计出T+d时间点的x值,从而实现对时间序列的预测。从形式上可描述为:寻找一个能根据时间点T的前N步值来估计T+d时间点的值的函数RN→R的函数f,即
式中d通常取值为1,这样T之后下一个时间点的x值可以根据函数f来预测。
通过对输入序列使用滑动窗口(Sliding Window),从而实现RBF神经网络预测功能。即以连续20步时序时延采样数据作为网络输入,网络输出时用20步采样值的均值来实现,为了提供样本数据映射对在整个训练集上“滑动”(采用滑动窗口技术),来对神经网络进行训练;使得RBF神经网络经过训练后能够较好地实现拟合时延特性。因此,如果要得到下一时刻数据的预测值,可以利用当前采样点前的20个数据作为输入,得到的输出值可看作是预测值。其数学描述为:
其中,K≥20,且K+1起为预测时刻;N为20。
输出层和隐含层在RBF神经网络的预测中所完成的任务不同,因而它们的学习策略也不同。对作用函数的参数进行调整是隐含层的主要任务,选取高斯基函数作为基函数,通过非线性映射,来调整个神经元的线性权值和激活,采用的是非线性优化策略(公式3),而对线性权进行调整是输出层的主要任务,网络的输出是隐含层单元输出的线性加权和,采用的是线性优化策略(公式4)。RBF神经网络所表示的输入输出映射结构模型如图1所示。
图1 基于RBF神经网络的网络时延模型
其中,m为隐含单元数,ci为基函数的中心。
将时延数据样本做为输入即式中x值,通过不断调整基函数中心(ci),根据距离中心点的远近即半径(δi)的不同,神经元的变化程度不一样。输出层根据线性映射方程组求解得出输出值,根据预期的输出值和设定精度目标[4],通过不断的调整隐含单元数目,对隐含层到输出层的线性权值求和得到模型输出的判断,以期达到预定的效果。
2 基于RBF神经网络时延预测模型仿真
2.1 RBF神经网络MATLAB仿真
本文用到MATLAB工具箱中的函数,主要包括以下几种:
1)newrb函数
格式:net=newrb[net,tr]=newrb(P,T,goal,spread,MN,DF)
说明:设计RBF神经网络函数newrb利用的是迭代方法,在该方法中每实现一次迭代相应的神经网络元就增加一个,一直到误差下降到目标误差以下或隐含层神经元个数达到最大值时迭代停止。
其中P:输入矢量;T:目标矢量;goal:均方误差,默认时为0;MN:最大的神经元个数;spread:函数的分布,默认时为1.0;DF:迭代频率,默认时为25。
2)radbas()径向基传递函数
格式:A=radbas(N)info=radbas(code)
说明:radbas是径向基传递函数,计算层的输出是根据网络的输入来确定的。
N:输入矢量阵;
radbas(code)该函数可返回如下信息:
‘deriv’导函数名称的返回;‘name’全名返回;‘output’输出范围返回;‘active’激活输入范围返回。
本文选取高斯函数作为基传递函数。
3)网络识别调用函数
网络识别调用sim函数:
式中:net——训练成功后的网络名称;
P:测试样本输入矩阵或训练样本输入矩阵;T:对应于P的网络输出矩阵。
E由sse函数计算,E是一个重要指标,它可以用来反映神经网络总体识别效果,体现RBF网络测试样本输出T与理想输出T之间的平方和误差。
4)sse平方误差性能函数
格式:perf=sse(E,X,PP)perf=sse(E,net,PP)info=sse(code)
说明:sse是网络性能函数,此函数测量网络性能是按照均方误差来实现的。
E为误差矢量;X为阀值和所有权值组成的矢量;PP为性能参数;Net由阀值和所有权值组成的矢量x的神经网络。
sse(code)函数可返回如下信息:
‘derive’为导数函数名称的返回;‘namer’为全名的返回;‘pnames’为训练参数名的返回。
2.2 仿真测试数据的获取与预处理
本文结合我院电子工程系参与的河南省某纸板厂4200/450板纸机生产线控制系统设计项目,通过Profibus-dp网和工业以太网将各类控制设备和监视设备有效地集成的板纸机控制系统。如图2所示,该系统有三层,第一层为驱动控制级,第二层为控制级,第三层为监控管理层。通过工业以太网与QCS上位机、DCS上位机、车间管理级、厂级管理级等联网控制。
图2 板纸机控制系统结构图
本文的时延数据采集主要以上面的混合控制系统项目建设为依托,采用请求应答(Echo Request)报文的方式,利用使用较为广泛的MegaPing工具中的“Ping”命令,连续实际测量了从我院中心机房到该工控网络的时延。测试时间持续了一周的时间,从周一开始到周末结束,每分钟测量1次,通过反复的测量、观察和分析,我们选取了比较有代表性的周四和周五两天的2 891个时延测量数据(约每分钟一个数据)来作为本次实验的数据样本集,时延数据如图3所示。
图3 网络时延特性曲线
2.3 RBF神经网络的训练样本的选取和处理
2.3.1 RBF神经网络训练样本的选取
网络训练的结果的准确度受到样本的复杂性和代表性的影响[5-6]。由于单纯地记忆已学过的输入并不是神经网络学习的真正目的,而是通过学习有限个数据样本,学到和挖掘出隐含在其中的规律性的方法,因此在测试网络性能时,样本要与训练和学习分开,要利用训练样本以外的样本数据。测试之前要把所得的样本分为两部分,一部分用于训练神经网络模型,作为训练样本集;另一部分用于验证网络学习效果,作为测试样本集。
2.3.2 RBF神经网络输入数据的归一化处理
利用Ping命令工具采集得来的这些历史数据,由于这些历史数据除了受测量主机本身的影响外,在传输过程中测量数据还会受到各种网络原因的影响,比如路由器可以屏蔽ICMP数据报。例如,当网络负载由于数据流量过多而加重时,路由器就会导致某个数据包的丢失,这样这个数据包的时延值就不存在了。如果利用这些历史时延数据来完成模型训练和测试,必然会给时延预测的结果产生较大的误差,最终可能导致预测算法失败。因此,在利用这些历史数据之前,应该进行相关的预处理,利用相邻的历史时延数据的平均值来取代。
在网络模型中输入变量确定之后,需要对变量进行尺度变换和数据预处理。尺度变换通常情况下会将它们变换到[0,l]或[-1,1]的范围。对数据的预处理就是使神经网络对经变换后的数据能够更容易训练和学习,因为原始数据时延幅值大小不一,神经网络的学习过程就会被大的测量值的波动所垄断,如果不进行预先处理,小的测量值的变化就不能得到正确反映。而且网络要保证能学习到变量相对的重要性,必须通过调整各权值的大小来训练,如果输入变量之间幅值本身相差很大,那么网络完成学习时必然会使得权值之间的大小相差也很大。实际上,对权值范围的限制在很多学习算法中都会出现,因此数据变化范围太宽广是不能适应的。为此,需通过把输入数据归一化(Normalizing)处理,使网络所有权值都限制在一个不太大的范围之内,以便于降低网络训练的难度。可以在模型的单个输入变量通道上独立进行归一化处理,也可以同时对所有的输入通道进行。本文采用的输入变量归一化方法是线性变换到[0,1]区间的函数,如(7)式所示。
其中,xn为处理后的数据,xo为原始数据,xmax和xmin分别为输入变量的最大值和最小值。实际研究表明,所有的输入变量在同一个数量级是模型训练最好的方法。对不同的变量,如果变换后数量级不同,那么对输出偏差的影响相对比较大是数值比较大的变量,在训练过程中,算法则会对数值大的变量修改所对应的权值,因此忽略了数值较小的变量对输出的影响。
3 基于RBF神经网络时延预测模型的仿真训练和验证
取图3中所示的2 891个(包含大约两天的数据)网络时延实际测试样本数据作为时延预测的研究对象,并将所有样本数据按序号的奇偶性分成两组,也即令序号为奇数的1 446个数据作为训练数据集,序号为偶数的1 445个数据作为测试数据集。
在本实验中,利用的是Matlab工具箱中提供的sim()和newrb()函数分别来仿真和设计径向基函数网络[7-11]。隐含层节点数量可以在学习过程中自适应地调整直至达到目标误差要求是newrb ()函数的一大优点。
RBF神经网络的学习过程是:设计函数newrb()用来设计一个径向基网络,在函数newrb()训练中,会有两层神经网络,第一层为隐含层,包含radbas()径向基传递函数的神经元,矢量与权值矢量的距离乘以阈值作为radbas()函数的输入,神经元作为输出,此层通过dist(W,X)加权计算输入值,其中,X是输入矩阵,W是权值矩阵;第二层是包含purelin()线性函数的神经元,通过dot2prod()函数加权计算输入值。训练的开始阶段,设定隐含层神经元个数为零,网络开始训练阶段,若RBF神经网络精度达不到所设目标精度,那么隐含层神经元个数相应会增加一个,而后为了减小误差值就将线性层的各权值进行重新估算,如果设定值仍小于该值,则继续将隐含层神经元增加一个,重复上述过程直到误差值到设定值以下。其流程图如图4所示。
通过样本数据训练后的神经网络如图5所示,其性能训练结果如图6所示。利用RBF神经网络预测仿真模型预测的网络时延结果如图7所示。
图4 RBF神经网络学习算法流程图
图5 RBF神经网络的创建与训练
图6 RBF神经网络训练结果
图7 RBF神经网络时延预测结果
经过对比图7中的时延预测值和网络时延值的差别可以发现,互联网时延变化基本可以在采用RBF神经网络模型预测的时延变化趋势的预测结果中得到体现,由于采用的方法是平均值预测,因此,预测的时延值变化在互联网时延变化较为剧烈部分时,得到的结果并不是太理想,但是在互联网时延变化较为缓和的部分,预测值基本上符合时延实际值的变化。在互联网络情况下,RBF神经网络模型预测效果还是比较理想的,绝大部分的时延预测值与实际时延值都是相符的,而只是在时延变化剧烈的情况下模型的预测值才会出现较大误差。
4 结语
仿真实验表明,在对采集的数据进行归一化处理之后用于模型的训练和仿真测试提高了模型的预测能力,通过结果的比较说明这种方法是行之有效的。因此,RBF神经网络模型成为互联网时延预测行之有效的一种方法。
[1]严大考,李猛,郭朋彦,等.基于Matlab的智能车软件系统设计与仿真[J].计算机应用与软件,2014,31(1):256-259.
[2]王吉芳,徐小力,费仁元,等.基于径向基神经网络的设备运行状态新信息加权预测模型研究[J].制造业自动化,2011,33(4):76-80.
[3]黄波,丁浩,张孝芳,等.基于RBF神经网络的某复杂装备故障预测方法[J].计算机仿真,2014,31(1):14-17.
[4]葛超,孙丽英,张淑卿,等.RBF神经网络中心选取算法[J].河北理工大学学报:自然科学版,2007,29(4):95-97.
[5]潘峥嵘,王群.基于模糊神经网络的COD软测量技术的研究[J].计算机测量与控制,2011,19(7):1 572-1 574.
[6]顾耀娟.一种基于VC++与Matlab接口的预测控制仿真系统的设计[D].南京:南京信息工程大学,2010.
[7]张艳.基于RBF网络辨识的模型参考自适应控制系统分析与仿真[D].成都:西南交通大学,2010.
[8]胡治国,张大陆,侯翠平,等.基于随机神经网络的多步网络时延预测模型[J].计算机科学,2009,36(7):324-328.
[9]李光升,康洪铭,谢永成,等.基于BP神经网络的装甲车辆电源系统故障诊断方法研究[J].计算机测量与控制,2012,20(10):2 719-2 721.
[10]王春兴.基于MATLAB实现经典功率谱估计[J].曲阜师范大学学报:自然科学版,2011,37(2):59-62.
[11]俞克强,宫宁生,丁磊.一种神经网络控制模型的研究与应用[J].计算机应用与软件,2013,30(6):60-62.