APP下载

基于粒子群优化BP神经网络的软件老化预测

2021-12-31白尚旺党伟超

太原科技大学学报 2021年6期
关键词:老化种群阈值

王 荣,白尚旺,党伟超

(太原科技大学 计算机科学与技术学院,太原 030024)

软件老化通常是由软件故障激活的累积效应造成的,最终致使软件失效、系统宕机的现象。为尽可能减少因软件老化导致的系统性能下降等不良影响,Y.Huang等人提出软件再生思想[1]。软件再生的频率很关键,过于频繁会延长停机时间,频率过低则无法及时解决老化问题,不能保证良好的运行效果[2],因此何时采取再生策略的关键在于能否准确预测出软件老化的趋势,根据预测结果适时采取再生策略,一定程度上保证了软件的可靠性[3]。

目前软件老化趋势预测主要是使用性能采集工具收集所需的参数,分析并推测软件未来的变化趋势。梁佩[4]以时间序列为研究对象,针对多步预测结果中的较差序列使用马尔科夫进行建模,对软件老化趋势进行预测。李焱[5]提出一种滑动模型,对软件老化进行评估,实验结果表明该方法能够较好地拟合季节性负载系统的软件老化趋势,并能做出准确的预测以支撑软件再生。渊岚[6]提出了基于AdaBoost算法的BP神经网络预测模型,以预测平均响应时间的长短判断老化的状态,提高了预测精度。

软件老化,呈现出一种非线性的特性。而BP神经网络,是一个复杂的非线性动力学习系统[7]。但其初始权值和阈值随机选取的问题[8],在一定程度上制约着它的发展。而粒子群算法能够针对此问题进行很好的改进。

因此本文构建了NPSO-BP神经网络预测模型,将NPSO算法获得的最优解还原成对应的权值和阈值,并将值赋值给BP神经网络的参数,实现对软件老化趋势预测,实验表明本文提出的NPSO-BP神经网络预测模型,有良好的预测精度和收敛性。

1 BP神经网络

BP(Back Propagation)神经网络是一种误差逆向推导的前馈神经网络,由大量的神经元相互连接构成复杂的网络结构。

随着应用领域不断扩大,BP神经网络的缺陷也逐渐显露出来[9],如收敛速度慢、局部极小化等问题。目前BP网络的改进方案分为两大类:基于负梯度思想的启发式改进方法和基于群智能优化算法。前者存在一个共性问题,即神经网络的初始参数是随机产生的,而群智能算法可以解决这一问题。群智能算法核心是通过众多简单个体组成的群体,相互合作,实现对复杂问题的求解。本文算法的主要思想是利用粒子群智能优化算法对BP神经网络进行优化。

2 NPSO-BP神经网络预测模型的建立

2.1 基本粒子群算法

粒子群算法(Particle Swarm Optimization,PSO),是一种模拟自然界中生物活动的一种随机搜索群智能优化算法。粒子在移动与飞行的过程中,依靠局部最优和全局最优实现最优位置的选取,建立最优函数,以确保粒子群中单个粒子运动方向最优[10]。

假设在一个N维的目标搜索空间中,种群中有m个粒子,第i个粒子的位置表示为Xi=(xi1,xi2,…,xiN),速度为Vi=(vi1,vi2,…viN),其中i=1,2,…m.第i个粒子自身迄今为止搜索到的最优位置为Pbest,粒子群搜索到的最优位置为gbest,粒子的速度和位置更新公式如下。

(1)

(2)

(3)

2.2 PSO算法的改进

PSO算法具有良好的全局收敛性,但在高维复杂问题上,易陷入局部最优解,尤其是当优化函数呈多峰性时。基于此,本文引入吴浩扬[11]的早熟收敛评价指标,进行粒子多样性分析。

2.2.1 PSO的早熟收敛判断算法

粒子群空间分布情况也就是粒子的多样性程度可以用适应度值分布的离散程度进行表示。因此,可以对种群空间中粒子适应度值的变化进行研究,从而来判断算法是否收敛。

2.2.2 整体信息引导

针对已经陷入局部最优的粒子,也就是评价指标Δ

(4)

2.2.3 算法多样性分析

以Schwefel函数为例,将NPSO、PSO算法进行多样性对比。图1为两个算法在初始化时的种群分布图,图2为两个算法在迭代后期至全局最优值时的种群分布图。由图1可知两种算法在初期粒子分布较为均匀。从图2中可以看出,PSO算法在迭代后期,粒子出现聚集,分布不均匀,种群的多样性降低。而NPSO算法,在迭代后期,粒子分布仍均匀,具有较强的进化能力。

图1 初始种群分布Fig.1 Initial population distribution

图2 迭代后期种群分布Fig.2 Population distribution in the later iterations

对Sphere(单峰函数)、Rastrigrin(多峰函数)这两个基准函数进行仿真实验,分析PSO算法、NPSO算法的收敛速度与收敛精度。从图3、图4及表1可以看出NPSO算法较PSO算法在收敛速度与收敛精度方面均有明显优势。

表1 测试函数上的数值对比

图3 Sphere收敛性能比较Fig.3 Comparison of Sphere convergence performance

图4 Rastrigrin收敛性能比较Fig.4 Rastrigrin convergence performance comparison

2.3 构建NPSO-BP神经网络

BP神经网络的权值和阈值是随机设定的,因此本文将粒子群优化算法应用于BP神经网络的训练。但是PSO算法在处理复杂问题时易陷入局部最优、迭代后期收敛速度慢的问题。由此引入早熟收敛判断、多样性分析的改进方法,旨在提高算法的全局搜索能力。构建NPSO-BP神经网络预测模型,无论是在训练精度还是拟合效果上都得到了很大提高。

2.3.1 NPSO-BP神经网络预测模型的训练与预测

NPSO-BP神经网络模型的整体设计如下:

步骤1,建立BP神经网络,确定结构中的相关参数赋值。本文中BP神经网络的结构为3-10-1,学习速率为0.05,期望误差为1*10-6.

步骤2,对粒子群中粒子信息进行编码,建立粒子群与BP神经网络中权值和阈值间的对应关系。

步骤3,初始化粒子群,设置粒子群中相关参数。ωstart=0.9,ωend=0.4,学习因子c1=c2=1.494 45,种群规模为60,迭代次数为1 000次。

步骤4,计算适应度值,文中使用BP神经网络的输出均方根平均误差和作为适应度函数。

步骤5,更新粒子的速度和位置。

步骤7,判断结束条件,未达到结束条件时转到步骤4.若符合结束条件,将粒子群算法的种群极值作为最优解。

步骤8,将获取到的最优解还原成对应的权值和阈值,并将值赋值给BP神经网络的权值和阈值。

步骤9,对BP神经网络进行再训练,最终获得预测模型。

3 实验结果与分析

3.1 软件老化加速寿命实验

由于软件老化是错误不断积累的过程,需要耗费大量的时间才能观测到老化现象。因此针对软件老化的特性,本文基于R.Matias等人[12]的研究,将工业领域已成熟应用的加速寿命测试理论引入到软件领域。将内存泄漏故障作为老化因素,为程序注入了一段内存泄漏代码从而加快了内存资源的消耗速率,大大减少了测试时间[13]。

3.1.1 实验平台概述

为研究与内存泄漏相关的软件老化现象,本文以符合TPC-W基准测试标准的Web应用服务器为研究对象,该平台包含一个电子商务Web服务系统,一个数据库服务器以及一组模拟的浏览器。实验配置如表2所示。

表2 实验环境

服务器端,是一个符合TPC-W基准测试标准的在线售书网站系统。该系统通过模拟客户在网站浏览和购买产品的过程,收集电子商务服务器的性能特征。

客户端是一系列模拟浏览器(Emulated Browser,EB),对服务器端完成相关网页及所需图片资源的请求。每个EB能形成Browsing、Shopping,和Ordering三类不同的工作负载。Shopping行为出现的次数介于其他两类之间,因此本实验客户端主要模拟Shopping这种类型,以随机生成的概率对不同页面进行访问。

3.1.2 实验过程

因Java虚拟机存在垃圾回收机制(Garbage Collector GC)[14],GC仅回收无用和未引用的对象。为了模拟软件老化现象,在Servlet中增加一个HeapLeak类,服务器整个生命周期都保持对该类对象的引用,但不会被GC回收。当创建的实例数量达到最大堆容量时,会产生JVM堆溢出。运行客户端,实验共持续14 400 s,每隔120 s取一次均值,采集样本14 281个。JVM的变化趋势图如图5所示。

图5 Java堆内存使用量Fig.5 Java heap memory usage

3.2 实验分析

实验收集到的14 281个数据,取前7 000个作为训练集,后7 281个作为预测集。将NPSO-BP、PSO-BP、BP神经网络预测模型生成的预测效果图进行对比分析,3个模型的预测与期望输出对比曲线,如图6所示。本文使用平均绝对误差(Mean Absolute Error,MAE)和均方根误差(Root Mean Squared Error,RMSE)两个评价指标来描述模型的预测精度,公式如下。

图6 神经网络预测Fig.6 Neural network prediction

(5)

(6)

从图中可以看出本文提出的NPSO-BP神经网络预测模型,在预测精度、拟合效果方面存在明显的优势。

由表3预测精度对比中可以看出,本文提出NPSO-BP模型相比于PSO-BP模型在预测精度上提高了8%,相比于BP模型提高了30%.由此可见,本文提出的NPSO-BP神经网络模型在软件老化的预测精度上有了很大提高,该模型在软件老化预测领域中具有实用价值。

表3 预测精度对比

4 结束语

为了准确把握软件老化的总体趋势,结合老化数据非线性、复杂多变的特性,对Web服务器因内存泄漏引起的老化现象进行建模和预测。首先通过构建引入内存泄漏的软件老化实验平台,应用加速寿命理论,选出能够反映老化趋势的性能参数——内存变化量,作为实验的数据集。然后针对BP神经网络的权值和阈值是随机设定的这一缺陷,引入粒子群算法,提出并建立NPSO-BP预测模型。最后,在MATLAB 2016中进行仿真实验,不同的预测模型在实验训练过程中采用的是相同的老化数据,通过模型间的对比分析,证明该预测模型误差小、精度高,能准确地对软件老化趋势进行预测。

猜你喜欢

老化种群阈值
适老化理念下的整体橱柜设计创新研究
山西省发现刺五加种群分布
改进的软硬阈值法及其在地震数据降噪中的研究
土石坝坝体失稳破坏降水阈值的确定方法
基于小波变换阈值去噪算法的改进
改进小波阈值对热泵电机振动信号的去噪研究
“最大持续产量”原理分析
由种群增长率反向分析种群数量的变化
考虑知识老化的知识网络演化模型
考虑知识老化的知识网络演化模型