基于BP神经网络算法的广电视频QoS控制方法*
2014-09-17许林园
许林园
(江苏省广电有线信息网络股份有限公司 连云港分公司,江苏 连云港 222005)
0 引言
广播电视网络为用户提供了丰富的视频内容,既有实时的各个电视台的播出信号,也包含有存储在服务器集群中的视频录像,用户可以通过机顶盒实现视频的点播。随着广电网络中用户数量的日益增长,对服务器的处理要求也越来越高。如果要提高用户的忠诚度、减少客户的流失、保证收视率,服务质量(quality of service,QoS)就显得非常重要。QoS控制技术是目前网络的核心技术之一,很多科研工作者一直在致力于这方面的研究。通常情况下,QoS强调的是网络边界到边界或者是端到端的整体服务水平,描述的主要指标是带宽、吞吐量、延迟等等。
目前广电网络基本实现了光纤覆盖,从单向的数据传输发展到了双向的宽带交互式数据网络。针对视频点播逐渐转移到TVOD(true video on demand)上来,用户通过网络向前端发出请求,当用户的请求较多时,服务器的响应时间就会延长,在极端的情况下,用户的服务可能会被拒绝。这种情况会使用户的观感受到极大的影响,再次尝试如果仍被拒绝,那么用户可能就会放弃使用,这对用户的忠诚度影响极大。
近年来,在提高和保证QoS的研究中,将控制理论引入QoS成为学者们的研究热点。文献[1]提出了根据用户的需求偏好信息处理策略来提高QoS;文献[2]中提出了将tomcat 网络服务器近似拟合为一个线性时不变(linear time-invariant,LTI) 的控制系统,然后加入比例积分(proportional-integral,PI) 反馈控制方法;文献[3]的作者建立了一个自适应的服务器环境,根据不同的请求服务提供不同的延时保障。本文提出一种随机控制策略周期的监控网络前端发往服务器的请求,根据服务器的负载观测值和期望值之间的误差,以及保存在数据库中的历史误差,通过BP神经网络来整定负载比例积分微分(proportion integral derivative,PID)控制,实现了准入的PID控制,取得服务器的较好负载均衡。
1 BP神经网络的PID控制器
1.1 常规PID负载控制系统
常用的模拟控制系统中,PID控制应用非常广泛。控制系统通常由模拟PID控制器和被控对象组成,其控制规律为
(1)
式中:Kp为比例系数,Ti为积分时间系数,Td为微分时间系数[4]。
将式(1)进行数字离散化,得数字控制规律为
u(k)=u(k-1)+
Kp[e(k)-e(k-1)]+
Tie(k)+
Td[e(k)-2e(k-1)+e(k-2)]。
(2)
数字PID控制器的设计中,核心问题是比例、积分和微分系数的选择[5]。
1.2 神经网络系统结构
本文采用的BP网络是3层的前馈阶层网络,分别是输入层、隐含层和输出层。输入单元与隐含单元,隐含单元与输出单元之间,相互连接间具有相应连接权,其结构如图1所示[6]。图中的输入层单元的个数n=3,中间层单元的个数为p,q为输出层单元的个数。使用具有局部接收域性质的非线性函数为隐含层神经元激活函数,隐含层到输入层之间的权重为ω,隐含层和输出层之间为线性组合关系,权重为V。
图1 BP神经网络结构图
1.3 服务器负载控制系统结构
基于神经网络的PID服务器负载控制系统的结构如图2所示。
图2 服务器负载控制系统结构
在神经网络中,BP神经网络具有的任意非线性逼近能力比较强,并且结构比较简单、学习速度也比较快。服务器负载观测值和期望值之间的误差以及保存在数据库中的历史误差可以作为算法学习以及BPNN(BP neural network)的输入参数,被控制的对象可以由PID控制器直接进行闭环控制,对Kp,Ti和Td等参数进行在线整定。BPNN可以根据服务器负载的运行状态,实时地调节PID控制器的Kp,Ti以及Td等参数,最后达到服务器负载性能指标的最优化。
2 服务器负载控制算法
BP神经网络是多前向网络,由3层构成,包括输入节点、隐层节点和输出节点3部分,对于视频处理可以选择3—4—3网络。BP标准算法的修正过程容易使学习的过程发生振荡,收敛速度比较慢,所以必须对算法进行归一化处理,加快网络学习的速度。BP网络输出节点对应PID控制器的3个整定参数Kp,Ti以及Td,隐含层神经元的活化函数可以取正负对称的Sigmoid函数。输出层神经元的活化函数由于Kp,Ti以及Td不能为负值,所以要取正的Sigmoid函数。
在BP网络算法中,要不断通过调整权值进行学习,逐渐减小学习率是BP算法中一种可行的方法,实现的公式为
δ(k)=e-λδ(k-1),
(3)
其中,k为迭代的次数,λ取值范围在0.001≥λ≥0.000 1。由于学习速率的比例系数固定,在反馈误差值减小的情况下,就停止学习速率的降低,采用式(4)的模型。
(4)
如果在反馈的误差值下降幅度较大时,认为该学习速率比较合适,不需要更改学习速率,保持原值即可。
控制服务器前端的请求首先进入到请求接纳器中,服务器根据PID调节器的输出结果对请求进行处理,基于BP神经网络服务器负载PID请求控制算法步聚如下。
(5)
(2) 根据服务器的负载请求,确定δ(k)和y(k),计算
e(k)=δ(k)-y(k)。
(3) 网络参数归一化处理,反馈回网络。
(4) 网络学习计算输出PID控制所需的参数Kp,Ti和Td。
(5) 控制器输出至Web服务器,结合服务请求接纳器的输出,得到网络服务实际延迟比y(k)。
(6) 反馈修正神经网络输出层的加权系数。
(7) 修正输出,延迟比y(k)是否小于设定值,不满足,返回(3)修正;满足停止学习。
3 仿真实验
根据视频服务器的工作环境,采用3台PC作为客户端,1台作为服务器,所有计算机均为Pentium Core2 2.8 GHz,2 GB内存,连接到100 Mb/s Ethernet实验网络中。视频服务器使用Apache Tomcat7.0,客户端使用Ubuntu10.04,Httperf产生网络视频服务请求,请求超时时间设定为30 ms,如果在30 ms内一个服务请求未得到响应,则认为请求失败。
图3给出了采用原始的请求控制方法和采用基于BP神经网络的PID算法后二者响应时间的比较,图4给出了采用原始请求控制方法和采用基于BP神经网络的PID算法后二者的出错率对比。由图3和图4看出,当视频服务器收到的请求超过30次/s后,原始请求的算法响应时间和出错率显著增加,而采用基于BP神经网络的PID算法以后服务性能变化就不大,出错率也能够控制在10%以内。实验结果充分说明,在视频服务器请求超过100次/s,负载较为严重时,基于BP神经网络的PID算法仍然能够提供较好的服务处理能力,很好地保障了服务质量。
图3 响应时间对比
图4 出错率对比
网络环境是复杂多变的,具有不确定性,本文只定性的介绍了基于BP神经网络的PID控制方法解决视频服务器的QoS问题,得到了一种较好的解决方案,同样可以推广到网络中的Web服务器中。
参考文献:
[1] 梁泉,王元卓.网络计算环境下QoS 偏好的处理策略及其应用[J].计算机应用,2009,29(6):1502-1505.
[2] 江滢,孟丹.基于接纳时间比控制和比例积分调节器的接纳控制机制[J].计算机研究与发展,2007,44(1):65-70.
[3] LU Chunyang, LU ying, ABDELZAHER T F. Feedback control architecture and design methodology for service delay guarantees in web servers[J]. IEEE Transactions on Parallel and Distributed Systems, 2006, 17(9): 1014-1027.
[4] 王伟,张晶涛,柴天佑.PID参数先进整定方法综述[J].自动化学报,2000,26(3):347-355.
[5] 陈书谦,张丽虹.BP神经网络在PID控制器参数整定中的应用[J].计算机仿真,2010,27(10):171-174.
[6] 王敬志,任开春,胡斌.基于 BP 神经网络整定的 PID 控制[J].工业控制计算机,2011,24(3):72-73.
[7] QING S H. Formal analysis of authentication protocols[J]. Jounral of Software, 2008(7): 107-114.
[8] ARBAUG W A, SHANKAR N, WAN Y J. Wireless network has no clothes[J]. IEEE Wireless Communications, 2007, 9(6): 44-51.
[9] SOLINAS J A. Improved Algorithms for Arithmetic on Anomalolls Binary Curves[R]. Waterloo: University of Waterloo, 1999.
[10] 陈晓琳.BP神经网络算法在传输网络系统QoS中的应用研究[D].武汉:湖北大学,2012.
[11] 侯亚丽,李铁基.LM优化算法的BP神经网络目标识别方法[J].探测与控制学报,2008,33(1):54-57.