应用于AQM的神经网络PID控制器优化设计

2015-05-15 08:09周雪寒
科技视界 2015年20期
关键词:队列权值神经元

周雪寒

(桂林电子科技大学,广西 桂林541004)

0 引言

近年来人们对计算机网络的服务质量要求越来越高,路由器的主动队列管理(AQM)是一项减少端到端的时间延时和吞吐量的重要技术。随机早期检测算法(Random Early Detection,RED)是最早提出的符合主动队列管理思想的算法,它的基本思想是在缓冲区溢出或网络拥塞发生之前随机的丢弃数据包。对于不同的网络条件,RED算法的参数很难调整,同时RED算法的参数对不同网络负载非常敏感。

随着TCP协议和模拟计算机网络的发展,基于控制理论的AQM成为了一个研究热点。相比RED算法,在AQM中基于经典控制理论的P与PI控制器都有很好的队列稳定性,但它们的响应速度较慢。文献1基于增益和相位裕度提出了一种PID控制器,它比RED算法具有更好的队列稳定性,但PID控制器的参数很难调整,尤其是在不确定的时变网络环境中更难调整。为了解决AQM和ECN标记的问题,文献[2]提出了一种基于神经网络的自适应PID控制器,为了克服PID控制器在AQM中的不足,本文基于神经网络提出了一种改进的PID控制算法,新算法结构简单易于实现。

1 TCP/AQM系统模型

根据流体流动理论,Misra[3]利用非线性微分方程对TCP窗W(t)和队列行为函数q(t)进行了描述,

上式中W˙(t)表示W(t)对时间的导数,且W(t)是预期的TCP窗口大小,q(t)是期望的队列长度,R(t)是往返时间,p(t)是丢包概率,C是链路容量大小,Tp是传输延迟,N是TCP连接数。

为了分析系统的稳定性,在图1中给出了线性化的AQM控制系统框图

图1 线性AQM控制系统框图

传输函数C(s)表示AQM的控制策略,例如RED算法或PID控制器。图1中对象传输函数P(s)可以表示为网络参数,即P(s)=Ptcp(s)Pqueue(s)。

2 基于神经网络PID控制器的设计

文献[4]首先提出了基于神经网络的PID控制器,本文基于在线自学习和任意函数近似表示性能,利用PID控制器解决网络拥塞问题。在AQM中,我们根据网络的变化对损失概率进行调整,由于信息源能根据丢包程度不同随时间进行响应,因此我们采用一个简单的基于神经网络的PID控制器(SPIDNN)作为输出。SPIDNN是三层前馈神经网络,其结构设定为2*3*1。神经网络的输入层有两个神经元,可以接收两个输入信息。隐含层有三个神经元,它们分别是比例、积分、微分神经元,这些神经元可以实现比例、积分、微分操作。输出层只有一个神经元作为控制器的输出,图2是一个基于神经网络的PID控制器框图。

图2 SPIDNN控制器

在图2中,qref是期望队列长度,q是真实的队列长度,P是损失概率。虚线框中部分是新的AQM控制器,p(s)e-sR0是对象传输函数。

SPIDNN的前向反馈算法如下:输入层可以输入两个信息,一个是预期队列长度,另一个是控制系统中的实际队列长度。在采样时刻t输入可以表示为:,输入神经元对应比例的输出为:xi(k)=neti(k),根据典型的PID控制规律,设置输入层到隐含层的初始权值为1和-1,隐含层的输入为,表达式中j=1,2,3;e(k)=qref-q,在隐含层中比例神经元的输出为:

隐含层中积分神经元的输出为:

隐含层中微分神经元的输出为:

为了加快收敛速度,我们给出从隐含层到输出层的权值,它们分别是通过PID控制器得到的比例、微分、积分系数。因此输出层的输入可表示为:,最终隐含层的活化函数为一个比例阈值函数,AQM控制器的输出通过神经网络的输出来确定:

SPIDNN的反向传播算法具有学习和记忆能力,能够自适应更新网络权值等多种功能,SPIDNN训练学习的目的是最小化目标函数E(k)=12[qref-q(k)]2。通过采用梯度下降法,便可以对从隐含层到输出层的网络权值进行一步步的调整。经过n0次学习训练后,便可得到下式:

上式中

最后通过(7)、(8)、(9)式便可以得到合理的权值。

3 两种提高SPIDNN学习率的方法

一种是附加动量法。在从输入层到输出层网络权值学习的过程中,我们不仅要考虑误差在梯度中所起的作用,同时还要考虑误差的影响趋势。为了避免在学习过程中的权值振荡,收敛速度慢和目标函数陷入局部极小值,我们可以用附加动量法。该方法从本质上考虑先前的权值在当前权值中所起的作用,因此它能确保权值调整方向的正确性,最终通过反响传播算法得到新的权值。权值调整的新规则如下:

在上式中K是训练次数,α为动量因子。另一种是自适应学习速率法。在SPIDNN算法中η是学习速率,它的值影响SPIDNN的学习速度,如果学习率小,该算法的收敛性较好,但学习速度慢。如果学习率大,学习速度快,但该系统易于振荡。在学习速率固定的情况下,很难在收敛和学习速度间得到一个平衡。通常人们根据根据经验来选取学习率。对于一个固定的学习率,训练开始是更好的,但在后面的训练中可能就不适合了。为了解决这个问题,可以在训练过程中不断调节学习率。

自适应学习速率法的基本思想是:将当前误差与先前误差进行对比,如果误差反弹或上升,表明过调制,然后我们就减少学习率。如果误差一直在下降,表明学习率较小应该增大,当误差再次反弹时,我们再次减小学习速率,从而反复对收敛速度进行调整,这种方法也避免了自适应学习陷入局部极小。自适应学习率的计算公式如下:

4 小结

本文提出一种新的应用于AQM的神经网络PID控制器算法,提出了两种学习率改进方法,本文算法结合了PID控制和神经网络算法两者的优点,同时在时延、吞吐量和稳定性方面均优于一般的PID控制器。

[1]Chu SY,Teng C C.Tuning of PID controllers based on gain and phase margin specifications using fuzzy neural network[J].Fuzzy sets and systems,1999,101(1):21-30.

[2]Zhou C,Zhang L,Chen Q.An adaptive PID controller for AQM with ECN marks based on neural networks[C]//Asian Control Conference,2009.ASCC 2009.7th.IEEE,2009:779-783.

[3]Misra V,Gong WB,Towsley D.Fluid-based analysis of a network of AQM routers supporting TCP flows with an application to RED [C]//ACM SIGCOMM Computer Communication Review.ACM,2000,30(4):151-160.

[4]Shu huailin.PID controller based on neural networks and its control system[M].Nation Defense Industry Press.Beijing.2006.

猜你喜欢
队列权值神经元
一种融合时间权值和用户行为序列的电影推荐模型
《从光子到神经元》书评
CONTENTS
队列里的小秘密
在队列里
跃动的神经元——波兰Brain Embassy联合办公
丰田加速驶入自动驾驶队列
基于权值动量的RBM加速学习算法研究
基于二次型单神经元PID的MPPT控制
毫米波导引头预定回路改进单神经元控制