- 1 -
基于 BP 神经网络的 web 服务选择算法
肖科,芮兰兰**
(北京邮电大学网络技术研究院网络管理中心,北京 100876)
5 摘要:良好的 web 服务选择算法可以为用户选取最合适的服务,然而传统的误差反向传播神
经网络算法具有收敛速度缓慢以及学习过程中容易出现振荡等问题,不能用于实际的服务选
择场景中.本文提出了一个新颖的误差反向传播算法,并且能在每次迭代中自适应调整学习
因子.仿真结果表明,新颖的算法在训练速度方面得到了优化,并减缓了学习过程中的振荡,
在 web 服务的选取上,优化效果明显. 10
关键词:误差反向传播算法;web 服务选择;平缓因子;UPS
中图分类号:TP183
BP Neural Network-Based Web Service Selection Algorithm
Xiao Ke, Rui Lanlan 15
(Institute of Technology Network School,Beijing University of Posts and
Telecommunications,Beijing 100876)
Abstract: A good web selection algorithm can select the most suitable service for users.
However,the traditional error back propagation neural network algorithm converges slowly and
prone to oscillations during the learning process,which can not be used in the actual 20
paper presents a novel error back propagation algorithm,and the learning factor is adaptive in
every simulation results show that the training speed get optimized,the algorithm
slows the oscillations of the learning optimize effect is obvious on the web services
select.
Key words: error back propagation algorithm;web services selection;gentle factor;UPS 25
0 引言
随着 web 服务提供者数量的激增,具有相同或相似功能的 web 服务可能由许多不同的
web 服务提供者来提供,但是它们会有不同的服务质量。例如,不同的响应时间、不同的价
格、不同的信誉等等[1]。因此,如何从所有相同或相似的服务中来选择一个最合适的服务提30
供给用户,已经成为了 web 服务环境下亟待解决的关键问题。
许多研究者提出了不同种类的服务选择算法,比如遗传算法[2],模拟退火算法[3]。遗传
算法的主要特点是不受搜索空间的限制性假设的约束,具有内在的并行性,并且收敛速度快。
但实践表明,遗传算法容易产生早熟收敛、后期搜索效率低、局部寻优能力差等不尽人意的
地方。模拟退火算法局部寻优能力强,但它对整个搜索空间的了解不多,不便于使搜索过程35
进入最有希望的搜索区域,从而使得模拟退火算法的运算效率不高。更关键的一点是,这两
种算法无法对已经运算过的标准解存在认知和记忆的能力,这对于 web 服务选择问题是不
利的。因为期望一个算法能够保存标准解中的分类标准,再用该标准来进行最优 web 服务
的选择。
综合考虑选择算法对不断变化的 web 服务评判指标以及适应能力的要求,本文选用人40
工神经网络中的误差反向传播(Back Propagation, BP)算法作为 web 服务选择算法[4]。BP 神经
网络是基于后向传播算法的多层前馈网络,被应用在很多重要的互联网应用中,如语音识别、
- 2 -
图像识别、自然语言处理等,是目前应用最为广泛和成功的神经网络之一。传统的 BP 神经
网络在实际应用时常出现学习收敛速度慢、训练过程振荡的问题,为了改善传统 BP 神经网
络算法的不足,本文提出一种在传统算法的基础上添加一个新因子的 BP 神经网络算法。该45
算法在原有学习因子和动量因子的基础上增加一个创新因子,称为平缓因子,该因子实现简
单,并且能对训练产生稳定的效果。将该新颖 BP 算法和传统 BP 算法同时应用于仿真的电
力供应场景中,对这两个算法评估结果的对比分析,容易看出新颖 BP 算法的收敛速度、训
练时间以及选择出来的 UPS 电源频率稳定性都优于传统的 BP 算法。
本文的基本结构如下:第二章提出了要解决的现实问题,对 web 服务选择进行了定义,50
为目标问题建立了 web 服务选择模型,包括模型中应用到的一些协议,定义了服务的描述
方法,提出了本文算法要达到的目标以及服务质量的计算方法;第三章先介绍了传统的 BP
算法,提出了创新方法,对学习因子自适应进行了定义,最后详细说明了用新颖 BP 算法运
算的步骤;第四章对仿真的机房电力供应场景建立了具体的服务选择模型,然后在模型中对
新颖和传统的两个 BP 算法进行了测试、比较和验证;第五章总结并展望。 55
1 Web 服务选择问题模型
问题的来源和背景
为保障大型数据中心内各类计算机、存储、网络、通信等设备的正常、安全和不间断运
行,机房电源设备重要性日益凸显。机房电源设备主要包括高、低压供配电系统、UPS 系
统等。由于网络管理员与 UPS 以及受 UPS 保护的计算机之间的物理距离日益增大,需要通60
过网络技术来远程监控电源设备。而网络管理员需要管理多台服务器和计算机,要管理集线
器、路由器等网络设备,还要管理多台 UPS 等等,管理点的增加[5],使网络管理员难以做
到监控每台设备,这样会导致当出现供电故障时,网络管理员可能无法在 UPS 电池电量耗
尽之前及时关闭计算机和 UPS 的电源,此时需要计算机及外设能“自主”应付一些可能预
见到的问题,并能进行自动管理和调整。 65
本文将要解决的问题是为机房网络设备自动选择 UPS 供电电源,根据 UPS 供电的频率
稳定性,符合场景目标要求的 UPS 服务被选择出来分配给各设备。
Web 服务选择
Web 服务选择是根据用户的需求来选择合适服务的过程,根据这些需求来选择一个最
合适的 web 服务是一个难以捉摸的任务,因为这些相似服务往往都具有相同的功能。服务70
选择技术按照执行选择的依据,常用的技术主要有基于功能的 web 服务选择技术和基于服
务质量(Quality of Service, QoS)的 Web 服务选择技术[6],其中前者是根据所需要的功能从多
个服务中选择合适的服务,来满足功能上的需求;而后者是在相同功能的服务中,根据所需
要的 QoS 从这些服务中选择合适的服务,来满足 QoS 上的需求。一个 web 服务的 QoS 是指
其非功能性的属性,比如执行时间、吞吐量、服务可用性、服务价格、执行的安全性等[7]。75
在本文的研究中,只讨论在同一个区域中注册的单个服务,并只使用该单独服务的可测量的
QoS 属性,可测量的 QoS 属性的意思是这些客观的质量属性是离散值的形式,并且可以被
观测得到,比如响应时间、带宽、输入输出电压、频率、电源温度等。
基于 BP 神经网络的 web 服务选择模型
本课题的 web 服务体系架构主要包含三个模块:服务请求者、服务提供者和服务注册80
- 3 -
中国科技论文在线
中心,如图 1 所示。首先,服务提供者将其可以提供的服务注册到服务注册中心,注册是将
一个服务添加到该系统的过程,服务注册中心会记录该服务的对象和属性。服务的对象包含
了该服务的接口地址,利用该接口,用户可以调用该服务;其次,服务请求者向服务注册中
心请求服务,他们必须向服务注册中心传入想要的服务的参数,这些参数包括服务的 ID、
类型、关键字和属性等值;最后,在服务注册中心,所有满足该请求的服务被组成一个服务85
相似集,服务查找模块将该服务相似集的拷贝发送给神经网络预测器,神经网络预测器会评
估所有的候选服务,并且对每个服务给出一个服务质量评估值,然后将所有的评估值传到服
务选择控制器中,服务选择控制器会选择出符合目标场景要求的最合适的评估值,然后将该
值对应的服务返回给服务请求者,服务请求者完成对服务的调用。
90
图 1 基于神经网络的 web 服务选择模型
其中服务注册中心使用 UDDI(Universal Description, Discovery and Integration)来查找和
发布服务,UDDI 是一套分布式的、为 web 服务提供信息注册中心实现的标准规范;服务提
供者注册 web 服务时,使用 WSDL(Web Services Description Language)来描述服务,WSDL
是用来描述网络服务或终端的一种 XML 语言,用于定义以及调用 web 服务,从而可用于动95
态发布 web 服务、查找已发布的 web 服务以及绑定 web 服务;服务请求者使用 SOAP(Simple
Object Access Protocol)协议来调用服务,SOAP 是一种轻量的、简单的、基于 XML 的协议,
被设计成在 web 上交换结构化的和固化的信息,定义了一种可以通过模块化的封装机制和
对应用定义的数据进行编码的机制,以便和现存的许多 Internet 协议和格式结合使用。
对于 节提出来的 UPS 供电场景,在这里将 UPS 电源服务作为服务提供者,实时地100
注册到 web 服务注册中心,而运行在服务器上的服务请求程序则实时地去注册中心寻找
UPS,通过神经网络预测控制程序从许多相似的 UPS 电源中选到合适的服务,将其分配给
机房的设备,实现了自动调整 UPS 电源的目的。
Web 服务描述语言
Web 服务描述语言描述了 web 服务发布的 XML 格式,还描述了 web 服务的公共接口。105
这是一个基于 XML 的关于如何与 web 服务通讯和使用的服务描述,也就是描述与目录中列
出的 web 服务进行交互时需要绑定的协议和信息格式。
将 UPS 电源服务定义为一个实体,该实体提供确定的功能,并且该实体由一系列的原
子服务组成。对于服务的形式化定义可以描述如下:
, , , , , ,S ID T K P V Z A (1) 110
- 4 -
中国科技论文在线
S 表示当前服务系统下的可见服务,其中 ID 代表全局服务定义,并且要保证其在系统
中的唯一性,T 代表服务类型,K 代表关键字,此关键字用于查找,P 代表服务属性的特征,
V 代表属性值,Z 代表服务质量值,该值用来评估 UPS 服务的可靠性,A 代表服务接口的
地址[8]。与 WSDL 的描述方法一样,用来描述该服务的语言也基于 XML,图 2 是该服务的
语言描述。 115
图 2 Web 服务实体描述语言
模板的根是一个服务标签,它代表了服务定义的开始。第一个子节点是 ServiceID,接
下来是 ServiceType,该值定义了服务的类型。第三个子节点是 Keywords,每一个 Keywords
都由 Word 标签进行封装。ServiceID, ServiceType 和 Keywords 在服务注册中首先被用到,120
然后 Properties, ServiceQualityValue 和 Address 主要在服务选择中被用到。Properties 描述了
服务的特征。每一个 Properties 都由一个 PropertyName,一个 Description 和一个 Value 联合组
成。ServiceQualiltyValue 是 ZCurrentValue 和 ZEstimatedValue 联合组成的。Address 则表示
服务的接口地址,该地址由 Value 标签进行封装。
由于本文的 UPS 电源服务也是 Internet 环境下的 Web 服务,每一个 UPS 的服务参数都125
用上述 WSDL 语言描述。ID 表示 UPS 电源在当前区域里所有 UPS 中的唯一编号;T 表示
UPS 服务是属于电源类型的服务;K 表示当前 UPS 的服务备注,也是用来查找对应 UPS 服
务的关键字;P 和 V 成对出现,P 用来描述当前 UPS 电源的一些属性,包括输入输出电压、
频率、电流、负载百分比、温度、电池容量等属性,而 V 则是每个属性所对应的值。Z 代
表当前 UPS 的服务质量值,具体表现为电源的频率稳定性值,在服务质量值的标签下面有130
两个小标签,分别为 ZCurrentValue 和 ZEstimatedValue,这两个标签在本文的 UPS 服务中
一般不同时使用。当训练 BP 神经网络时,频率稳定性的标准值写在 ZEstimatedValue 标签
中,此时 ZCurrentValue 标签中的值为空;当用已经训练好的 BP 神经网络来选择 UPS 服务
时,ZEstimatedValue 标签中的值为空,而 ZCurrentValue 标签中的值则为用 BP 神经网络计
算之后得到的当前 UPS 的频率稳定性值,这个标签中的值是选择合适 UPS 服务的关键及唯135
一的参考依据。最后,A 则是当前 UPS 服务的调用接口地址。每一个 UPS 的服务信息都用
这样一个 XML 格式的文件来进行描述、传输、保存,极大的方便了服务的注册、选择和调
用过程。
- 5 -
中国科技论文在线
算法目标与服务选择过程
Web 服务选择过程的整体目标是选择一个服务相似集,并且从该相似集中选取一个最140
合适的服务分配给用户。选择一个服务能满足机房设备的需求,需要满足以下条件,这些条
件也就是本文模型和算法要达到的目标:
目标 1:响应时间尽可能少,也就是要求算法的收敛速度尽可能快
目标 2:选取的 UPS 电源的服务质量更可靠
本文的 Web 服务选择过程可简单描述为:计算服务相似集中每个服务的 ZCurrentValue145
值,得到所有的这些值之后将其输入到服务选择控制器中,服务选择控制器会从中选择符合
仿真场景要求的最合适的 ZCurrentValue 值,然后将该值对应的 UPS 服务分配给网络设备。
基于以上规定,我们可以假设有 m 个 Web 服务提供相同的功能,每一个服务有 n 个
QoS 属性,这些 QoS 属性分别对应 UPS 电源的一些属性值,所以我们可以得到 QoS 的属性
矩阵 Q,如图 3 所示。 150
图 3 QoS 属性矩阵
通常,我们可以设定一个权重向量 ω来测量和评估 Q 矩阵中的每一个 Web 服务,评估
式如(2)所示。
1 1
, 1
n n
i j ij j
j j
score q
(2) 155
权重向量说明了每一个 QoS 属性在最终评估结果里的重要性,式(3)最终决定了服务
质量输出值。
1
m
i i
i
y f score
(3)
式中 f 函数是 BP 神经网络中神经元的激活函数,用该式计算出所有候选 Web 服务的质
量评估值,具有最合适评估值的 Web 服务被认为是全局最优的服务。 160
从(2)式中我们可以看到评估值 score 不仅由 QoS 属性值影响,还由分配给它们的权
值所影响。当提供的 web 服务改变时,一些 QoS 属性值会被改变,服务注册中心会更新这
些改变了的 QoS 属性。不管发生什么,权重向量 ω也可能会因为一些机制问题而被同时改
变。所以,如果想基于(2)式建立一个自动评估 web 服务的机制,那么 Q 矩阵和权值向量
ω必须被同时考虑。 165
2 基本理论及算法改进
基本 BP 算法
典型的 BP 神经网络是一种具有三层或三层以上结构的无反馈的、层内无互连结构的前
向网络,典型的三层 BP 神经网络结构如图 4 所示,其中首尾两层分别称为输入层和输出层,
中间各层称为隐藏层。BP 神经网络中各层之间的神经元为全连接关系,层内的各个神经元170
之间无连接。
- 6 -
中国科技论文在线
1
2
3
m
1
2
3
4
K-1
k
输入层
隐藏层
输出层
图 4 三层前馈 BP 神经网络结构拓扑图
BP 神经网络的训练方法是把一个样本加到输入层,并根据前向传播的规则:
k ki ix f u (4)
175
k
iu 表示第 k 层的第 i 个神经元的输入总和,该神经元的输出为
k
ix ,神经元激发函数均
为 sigmoid 函数:
1
1 x
f x
e
(5)
不断一层一层向输出层传递,最终在输出层可以得到输出 mix ,
m
ix 表示输出层为第 m
层并选取该层的第 i 个节点,本例中输出层只有 1 个节点。把 mix 和期望输出 iY 同时输入式180
(6)计算得到误差 E。
21
2
m
i i
i
E x Y (6)
接着按下面公式得到误差函数的梯度,用该梯度从输出层传回隐藏层再传回输入层,反
向调整连接权值。
ij
ij
E
(7)
185
式(7)采用非线性规划中的最速下降法,按误差函数的负梯度方向修改神经节点之间
的连接权值,其中 为学习速率。
由于上面的标准梯度下降算法是一种贪心算法,虽然可以很有效地求解优化问题,但是
可能会陷入局部极小值。为了避免这种缺陷, 在文献[9]中提出了一种方法,
该方法是在修改规则中增加一个动量项,该项会考虑上一次迭代的梯度贡献,其权值迭代公190
式如下所示:
1ij ij
ij
E
n n
(8)
式中 n 为迭代的次数,β 称为动量系数,0 1 。
- 7 -
中国科技论文在线
改进的 BP 算法
在以上传统的 BP 算法中,学习因子 α 越小,从一次迭代到下一次迭代的网络突出权值195
的变化量越小,误差曲面越光滑,但是这样会让神经网络的训练速度变得非常缓慢。另一方
面,如果加大 α 的值来加快学习速度的话,可能容易造成神经网络权值变化量的不稳定,即
容易产生振荡。这些缺陷说明传统的 BP 算法存在学习收敛速度缓慢、训练过程振荡等缺陷。
为了减小振荡,提高网络的训练速度,本文提出一种新颖的 BP 神经网络算法,该算法的表
现是:将每次迭代的输出值和目标值之差按比例添加到连接权值的调整公式中。 200
1 mij ij i i
ij
E
n n x Y
(9)
式(9)中 η 就是那个比例,称为平缓系数。在引入平缓项后,总是力图使连接权值的
调整向着同一方向进行,即使两次连接权值调整的方向不同,也可以减少振荡趋势,提高训
练速度,加速网络收敛。该项的加入,意味着考虑到了实际输出值和标准输出值的差别,为
了尽快逼近标准输出值,在该方向上每次了缩短两者之间差距的 η 倍。相比传统的只有学习205
因子和动量因子的 BP 算法,该新颖算法在逼近标准输出值上的速度更快,同时,由于考虑
到了全空间的下降方向,可以克服训练过程中振荡的缺陷。在平缓项的作用过程中,如果辅
以可变的学习速率,将会加快网络的学习和迭代速率。
图 5 简单描述了自适应学习速率算法的工作流程。
210
图 5 自适应学习速率算法流程图
根据图 5,自适应学习速率算法中的学习速率自动调整描述如下:先检查并判断相邻两
次的迭代误差函数值的比值,来看有没有实现降低误差函数值的效果,如果误差函数值降低
了,说明网络算法所选用的学习速率值 α 偏小,得在上次的基础上适当地增大学习速率;如
果误差函数值没有降低,那说明网络算法所选用的学习速率值 α 有点偏大,此时得在上一次215
的基础上适当地减少学习速率 α 的值,直到神经网络收敛。
规定这样一个方法来调整学习速率:如果新产生的误差和上一次的旧误差的比值超过了
某一个固定的值(在本文中定义为 k,可以设 k=[10]),那么学习速率就需要进行下调工
作(在本文中将学习速率的实际值乘以一个因子 b,可以设 b=[10]);如果新产生的误差
和上一次的旧误差的比值少于固定值 k,那么学习速率就需要进行上调工作(在本文中将学220
习速率的实际值乘以一个因子 a,可以设 a=[10])。该调整规则可用下面的伪代码语言来
- 8 -
中国科技论文在线
描述:
1
1 ;
ij ijIF E n kE n
n a n
(10)
1
1 ;
ij ijELSE IF E n kE n
n b n
(11)
1 ;
ELSE
n n
(12) 225
根据以往的经验和本文的实际要求,上述变量的取值分别为 a=,b=,k=。开始
迭代时,神经网络算法中学习速率的初始值一般从(0,1)区间中任意选取一个浮点数。
新颖 BP 算法的运算步骤
在 BP 神经网络中使用新颖的添加了平缓因子以及学习速率自适应的算法进行学习,这
是一个全新的过程,需要有一个新算法的推导过程,来逐步实现仿真以及实际场景的要求。230
改进后的新颖 BP 神经网络算法的学习步骤如图 6 所示:
图 6 新颖 BP 神经网络算法流程图
- 9 -
中国科技论文在线
以上算法流程图的学习步骤描述如下。
(1)首先初始化神经网络。为每层设定节点数目,输入层节点数目一般根据 web 服务属235
性值的个数来决定,而输出层节点数目一般设为 1,关于隐藏层节点个数,目前使用最为广
泛的方法为,对于输入层节点数目为m的三层前馈神经网络,将隐藏层的节点数目设为 2m+1
个。
(2)确定样本的输入以及样本的期望输出,给神经网络算法随机选取一个比较小的连接
权值矩阵 ω 和算法的学习因子 α、动量因子 β 以及平缓因子 η,并设定神经网络学习过程中240
所允许的误差精度 ε,开始训练神经网络。
(3)对输入样本数据进行归一化预处理。由于输入数据的单位不一样,有些数据的范围
可能特别大,导致的结果是神经网络收敛慢、训练时间长;数据范围大的输入在模式分类中
的作用可能会偏大,而数据范围小的输入作用可能会偏小;同时,由于神经网络输出层的激
活函数的值域是有限制的,因此需要将神经网络训练的目标数据映射到激活函数的值域。本245
文中,神经网络采用 sigmoid 激活函数,而 sigmoid 函数的值域限制在(0,1)区间内,也就是
说神经网络的输出只能限制在(0,1),所以训练数据的输出就要归一化到[0,1]区间内。还有一
个比较重要的原因是,sigmoid 激活函数在(0,1)区间以外的区域很平缓,区分度太小。简单
而快速的归一化算法是线性转换算法。线性转换算法的通用形式如下[11]:
' min
max min
i
i
x x
x
x x
(13) 250
maxx , minx 是每组输入属性值的最大值和最小值; ix ,
'
ix 分别是归一化前和归一化之
后的值。
(4)分别求隐藏层和输出层各单元的输出。从输入层到隐藏层、从隐藏层到输出层的传
递函数均为 sigmoid 函数,根据前向传播的规则,计算出每层每个节点的输出,最终在输出
层得到唯一一个节点的实际输出。 255
(5)根据式(6)求出目标值与实际输出值的误差。记录这个误差,转入下一个步骤。
(6)将第(5)步骤得到的值与第(2)步骤中设定的误差精度进行比较。如果误差值小于误差
精度,那么说明训练的目的已经达到,转入步骤(7)。否则转入步骤(8)。
(7)BP 神经网络已经训练成功,误差达到限定的精度范围内,停止训练。
(8)将相邻两次迭代得到误差值相比,如果该比值小于 k,则根据式(10)进行调整;如260
果该比值大于 k,则根据式(11)进行调整。得到新的学习因子值,进入步骤(9)。
(9)从该步骤开始进入误差反向传播阶段,在反向传播过程中对连接权值进行调节。根
据误差函数来求得误差梯度值,然后乘上新的学习因子的值,进入步骤(10)。
(10)用本次迭代的实际输出值减去理论上的标准输出值,将得到的结果乘以平缓因子,
进入步骤(11)。 265
(11)将步骤(9)和(10)得到的两个值相加,再加上动量项,用得到的结果来反向调整输出
层到隐藏层、隐藏层到输入层的连接权值,调整完成之后转步骤(4)。
3 应用及性能分析
实验环境和目标
为了评估以上改进的神经网络算法,在机房的电力供应系统中应用该算法,该电力系统270
被设定来给图 7 的设备进行供电。在该实验中,UPS 都是被动态选择的,选择的依据是当
- 10 -
中国科技论文在线
前设备的需要和当前 UPS 的供电状态。主要的测试对象有路由器、空调、服务器、交换机
等。这些内联的设备在局域网中形成了一个分布式的环境。工作的过程是系统评估 UPS 的
服务质量并选择符合要求的电力供应设备分配给网络设备,选择的依据是 UPS 供电的可靠
性,电源频率稳定性符合波动要求的 UPS 电源才被选出来分配给网络设备。采用如下假设275
和条件[12]:有一个交流电源供电的网络和许多 UPS 供电设备,已连接的 UPS 设备都处于监
控状态并且采样时间周期设为 60 秒。在本文中规定,如果 UPS 电源的频率波动超出 %,
那么则认为该 UPS 电源的服务会伤害或影响已连接的设备,并且供电服务会在 60 秒内被重
新选择。
连接 连接
不间断供电电源 不间断供电电源
前端网络 前端网络
嵌入式接入设备 嵌入式接入设备
以太网
路由器
区级监控中心
因特网 网络
调制解
调器
市级监测 电源监测
电源监测 市级监测
市级监测系统
区级监测系统
地方一级的监测系统
或前端设备
280
图 7 电力供应监测系统的层次结构
在该仿真场景中,为了实现用 BP 神经网络算法来给各个网络设备选择电源频率稳定性
不超过±%的 UPS 供电设备,首先得为该仿真系统建立 Web 服务选择模型,然后在该 Web
服务选择模型中运行 BP 神经网络算法,自动监测 UPS 的当前状态,根据这些当前状态来给
网络设备分配合适的 UPS 电源。 285
为了更直观地描述这个 Web 服务选择模型,我们可以用图 8 来表示。
- 11 -
中国科技论文在线
图 8 直观的 Web 服务选择模型
如上图所描述的,网络设备如服务器、路由器、交换机、空调等通过电缆连接到调制解
调器,而所有的 UPS 电源也通过电缆与调制解调器相连,这样便达到了将网络 UPS 与各个290
设备上的相应的通信接口相连的目的。在本文的仿真中,我们可以将网络 UPS 看成网络打
印机,打印机同所有的用户相连,如果哪个用户需要用打印机,那么通过微机上的应用程序
就可以获取到打印机的资源,网络 UPS 也是公用的资源。本仿真中的应用程序则是在服务
器上安装相应的监控软件,利用这个监控软件,计算机便与所有的 UPS 建立了通信联系,
监控软件定时发送指令,UPS 在规定的时间内返回确认信息[13]。这个监控软件就相当于 UPS295
服务注册中心,UPS 内部的微控制器把当前自身的状态如输入输出电压、频率、负载、电
池容量、输出电压功率、电压稳定性等数据发送到服务器的监控软件,监控软件以数据或图
形的形式记录每一个 UPS 的信息。UPS 服务请求者就是图 8 中的服务器,路由器、交换机、
空调等网络设备,UPS 服务提供者就是 UPS 自身。服务器中的监控软件记录所有的 UPS 电
源数据,运行 BP 神经网络算法,选择电源频率波动值符合要求的 UPS 来分配给服务器、路300
由器、交换机、空调等设备。监控软件的采样频率为 60 秒,每次重新记录所有 UPS 的状态
变化,如果某一个已经分配的 UPS 频率稳定性超出了±%,那么得重新为网络设备分配
UPS 电源服务,否则会危害当前设备的正常运行。
BP 神经网络的首先要经过训练,将标准的 UPS 的选择模式固化到神经元节点之间的连
接权值里,然后才可以用该训练好的神经网络来进行实际的 UPS 服务选择分配。先选用一305
些标准的数据,这些数据是当前的服务器、空调、路由器、交换机等网络设备正常工作时的
UPS 参数,将这些标准的 UPS 数据用来训练 BP 神经网络。
表 1 展现了不间断电源的性能参数。
表 1 UPS 电源性能参数
- 12 -
中国科技论文在线
不间断电源属性 属性值 单位
输入电压
输出电压
频率
频率稳定性
转换时间
输出电压
电压稳定性
0-160,160-276,276以上
0-240,240-415,415以上
f<50,f=50,f>50
±%
0-5,5-10,15-20
0-5,5-10,15-20
V
V
Hz
-
S
KVA
-
310
将 BP 神经网络的输入层节点数目初始化为 6,可知隐藏层应该设为 13 个节点,并将输
出层设为 1 个节点。根据仿真场景,将学习因子 α 初始化为 ,动量因子 β 初始化为 ,
平缓因子 η 初始化为 ,误差精度 ε 设为 。把输入层到隐藏层、隐藏层到输出层的各
层节点之间的权值初始化为-1 到 1 之间的浮点数。
将 UPS 电源的输入电压、输出电压、频率、转换时间、输出电压功率、电压稳定性这315
六个值当作输入向量,将频率稳定性当作期望输出向量,10 个 UPS 输入服务集如下:
{(160,240,50,,5,),(180,250,43,,8,),(260,380,53,,13,),(240,340,55,,
10,),(258,400,51,,12,),(270,410,60,,20,),(190,360,50,,9,),(210,390,
52,,11,),(300,420,60,,18,),(290,410,55,,16,)},10 个期望输出分别为
{,,,,,,,,}。这些 UPS 供电数据都是空调、路由器、服320
务器、交换机等网络设备正常工作的历史数据,这些历史数据被用来训练完 BP 神经网络后,
已经将选择模式记忆在了 BP 神经网络的权值中,训练好的 BP 神经网络于是可以用来进行
以后的自主对 UPS 电源的选择工作。
对以上 UPS 供电数据进行归一化处理,处理的规则根据式(13)来进行。处理完成之后,
开始训练 BP 神经网络。 325
实验过程、结果以及性能分析
对传统的 BP 神经网络算法和新颖的 BP 神经网络算法进行运算比较。比较这两个算法
在学习训练上的时间和效率。表 2 展现了对这两个算法进行训练得到的性能值,该表分别统
计了每个算法训练十轮的一些数据,记录了两个 BP 算法的迭代次数以及迭代时间。
表 2 两种算法性能值 330
从表中可以看出改进的 BP 算法的训练次数明显要少,训练次数决定了总的迭代时间,
新颖的 BP 算法完成训练的时间只需要传统 BP 算法时间的一半。这也说明,新颖的 BP 算
法在学习性能上远优于传统的 BP 算法。
- 13 -
中国科技论文在线
335
图 9 算法收敛比较图
两种算法的收敛速度比较如图 9 所示,竖轴为每次迭代的误差值。随着训练次数的增加,
传统 BP 算法的误差下降速度缓慢,而改进的 BP 算法一直保持较快的误差下降速率,收敛
速度得到明显优化。
图 10 展现了改进 BP 算法和传统 BP 算法在 UPS 选择方面的比较,纵轴为 UPS 的频率340
波动,单位为%,横轴为算法运行的次数。
图 10 两种算法对 UPS 的选择
如图 10 所示,综合每个 BP 算法运行十次的数据比较,传统的 BP 算法选择的 UPS 电
源频率波动范围%到 %,而改进的 BP 算法选择的 UPS 电源频率波动范围%到345
%,明显可以看出改进的 BP 算法选择的 UPS 频率波动范围更小、更稳定,对设备更有
利。
4 结论
BP 神经网络是目前神经网络算法中应用最为广泛、使用最为成熟的人工神经网络,考
虑到传统 BP 神经网络的不足之处,本文提出了一种添加平缓因子的算法,该因子可以减小350
神经网络训练过程中的振荡趋势,提高训练速度,加速网络收敛。由于加入了平缓因子,再
辅以自适应的学习速率,将会进一步提高神经网络的学习速率。
将改进后的 BP 神经网络算法应用于仿真的机房电力供应系统中,使用许多台 UPS 电源
来进行仿真实验。实验过程中,将传统的和改进的 BP 算法进行学习比较,通过评估结果的
对比分析,验证了本课题提出的新颖 BP 算法具有更优的收敛速度、更少的训练时间。而且355
- 14 -
中国科技论文在线
在 UPS 电源的选取上,优化效果明显,稳定性更好。
在本文工作的基础之上,我们在进一步考虑将改进的算法应用到更加复杂的 web 服务
环境中,在这个环境中将会有数量庞大的 web 服务提供商,如何快速鲁棒地选择出更优的
web 服务是一个非常大的挑战。
360
[参考文献] (References)
[1] Haibin Cai,Fang Pu,Runcai Huang, etal. A novel ANN-based service selection model for ubiquitous computing
environments[J].Journal of Network and Computer Applications, 2008,31(4):944-965.
[2] 张成文,苏森等.基于遗传算法的 QoS 感知的 Web 服务选择[J].计算机学报,2006,29(7):20-25.
[3] 龙丽娟.基于遗传模拟退火算法的语义 Web 服务选择[D].北京:北京邮电大学,2009. 365
[4] Haibin Cai,Xiaohui Hu,Qingchong Lu,etal. A novel intelligent service selection algorithm and application for
ubiquitous web services environment[J].Expert Systems with Applications,2009, 36(2):2200-2212.
[5] Maolin hybrid genetic algorithm for the optimal constrained web service selection problem in web
service compositon[J].Evolutionary Computation(CEC),2010,30(5):1-8.
[6] 邵凌霜,周立,赵俊峰等.一种 Web Service 的服务质量预测方法[J].软件学报,2009,20(8):2062-2073. 370
[7] 李友坤.BP 神经网络的研究分析及改进应用[D].安徽:安徽理工大学,2012.
[8] 张德丰.MATLAB 神经网络应用设计[M].北京:机械工业出版社,2009.
[9] Rumelhart ., Hinton ., and Williams ..Parall Distributed Processing-Explorations in the
Microstructure of Cognition[J].MIT press, 1986, 30(5): 318-362.
[10] 刘晓光.网络化制造中 web 服务自动组合的若干关键技术研究[D].上海:上海交通大学,2008. 375
[11] Yong Wang,Xiang actor-based language to unifying web service orchestration and web service
choreography[J].Computer Science and Information Processing,2012,8(2):1055-1060.
[12] Forouzanfar M,Dajani of Feed-Forward Neural Network training algorithms for
oscillometric blood pressure estimation[J].Soft Computing Applications,2010,7(2):119-123.
[13] 郭超,姚雷博,董红政,等.嵌入式 UPS 远程控制管理系统设计[J].电源技术,2011,35(9):38-42. 380