一种基于高维粒子群算法的神经网络结构优化研究
2017-03-04黄余
黄余
摘 要: 为克服传统BP神经网络在运算过程的不足,提出一种基于高维粒子群算法的神经网络优化方法。通过在高维PSO算法中引入随机变化的加速常数来获得最优权值,对BP神经网络进行优化和训练,再将优化好的高维BP神经网络运用到交通事件自动检测中,通过检测训练算法,并对训练后的数据进行分类测试,把分类测试的结果与传统BP神经网络和经典事件检测算法比较。结果显示,经过优化后的高维粒子群BP神经网络的检测率、算法性能均优于BP神经网络算法和经典算法,其中97,50个测试样本中仅有2个测试样本与应该达到的数值不一致,其他样本都满足测试要求,并且平均优化测试时间是传统BP神经网络检测时间的一半,因此,优化后的BP神经网络算法的性能十分优越。
关键词: 高维BP神经网络; 粒子群算法; 神经网络; 结构优化
中图分类号: TN711?34; TP311 文献标识码: A 文章编号: 1004?373X(2017)03?0157?03
Research on a neural network structure optimization method based on
high?dimensional particle swarm optimization
HUANG Yu1, 2
(1. College of Computer Science, Chongqing University, Chongqing 400044, China; 2. Yibin Vocational and Technical College, Yibin 644003, China)
Abstract: In order to eliminate the shortcomings of the traditional BP neural network in the operation process, a neural network optimization method based on the high?dimensional particle swarm optimization algorithm is proposed. The acceleration constant with random variation is introduced into the high?dimensional PSO algorithm to acquire the optimal weight to optimize and train the BP neural network. The optimized high?dimensional BP neural network is applied to the automatic detection of the traffic incident. The trained data is performed with class test with the detection and training algorithm, and its result is compared with those tested with the traditional BP neural network algorithm and classical event detection algorithm. The results show that the detection rate and performance of the algorithm optimized with high?dimensional particle swarm optimization BP neural network algorithm are better than those optimized with BP neural network algorithm and classical algorithm, the values of 2 test samples are different with the expected values of 97 and 50 test samples, the rest samples can meet the test requirement, and the average optimal testing time is half of the detection time of the traditional BP neural network. The optimized BP neural network algorithm has excellent performance.
Keywords: high?dimensional BP neural network; particle swarm optimization; neural network; structure optimization
0 引 言
目前关于高维多目标优化问题的理论和方法大都限于少数几种算法,如NSGA?II算法,粒子群优化(PSO)算法。粒子群优化算法是Kennedy等受到飞鸟集群活动的启发而提出的一类新兴的基于集群智能优化算法[1?5]。相比进化算法,PSO具有易于实现和收敛速度快等优势。近年来PSO在多目标优化领域的研究上取得了较大进展[6?9],在神经网络训练、复杂函数优化、图像处理、工业系统优化等领域应用广泛[10],PSO在特性的函数优化问题上更是发挥着重要作用,这些特性函数通常具备维数高、非线性、规模大、非凸和不可微等特点,一般计算方法运算困难。针对粒子群优化算法的优点以及传统BP神经网络存在的诸如较慢的收敛速度、较低的学习效率,并且在计算过程中较难计算出局部极小值等问题[11?14],提出一种基于高维粒子群算法的神经网络优化方法,结合二者优点使其更好地应用于实际中。
1 基于高维PSO算法的BP神经网络优化
1.1 高维PSO算法简介
粒子群算法是一种集群行为的计算方法,在不局限于二维空间,考虑高维时,即是高维PSO算法。设搜索空间为[D]维,粒子集群是由[M]个粒子组成,其中,第[i]个粒子的空间位置表示为[Xi=xi1,xi2,…,xiD,i=][1,2,…,M,]其飞行速度应表示为[Vi=][vi1,vi2,…,viD。]将空间位置和飞行速度数值代入优化目标函数中,从而计算出用于衡量[x]优劣的适应值。假设粒子[i]搜索到的最优位置为[Pi=pi1,pi2,…,piD,]整个粒子群搜索到的最优位置记为[PK=pK1,pK2,…,pKD。]此时,对于每一代粒子,其第[d]维[1≤d≤D]的速度和位置根据式(1),式(2)迭代:
[vktt+1=ut?vitt+c1r1pid-xidt+c2r2pid-xidt] (1)
[xidt+1=xidt+vidt+1] (2)
[ut=umax-umax-umintitmax] (3)
式中:[ut]代表惯性权值数值,一般为线性惯性权值,惯性权值的作用是提高粒子群算法的全局、局部优化能力;[t]代表现在的迭代次数;[itmax]代表迭代的最大次数;[c1]和[c2]代表学习因子;[r1,r2]代表在[0,1] 范围内变化的两个随机数值。
粒子位置的更新如图1所示。
1.2 BP神经网络
BP神经网络在结构上一般由输入层、隐含层、输出层三层构成,属于多层前馈神经网络,包括输入信号前向传递和误差反向传播两个过程。BP神经网络广泛应用在各种预测模型中。网络结构一般只需单个隐含层就能以任意精度逼近任意有理函数。训练样本的输入、输出向量的维数分别决定了网络的输入、输出层神经节点个数,典型的只有单个隐含层、单个输出的BP神经网络结构如图2所示。
在图2中,[xi=x1,x2,…,xn]代表一组BP神经网络的输入向量;[y]代表一组BP神经网络的目标输出值;[wij]代表输入层和隐含层两层级之间的连接权值;[wj1]代表隐含层和输出层两层级之间的连接权值。[aj,b]分别为隐含层和输出层的节点阈值。若设隐含层节点个数为[m,]则[j=1,2,…,m=1,]在输入信号前向传递过程中,[xi]从输入层逐层传输到隐含层和输出层,由传输过程中各层连接权值矢量、阈值矢量和相应的激励函数计算,得出输出层的预测输出值[Y,]若预测值[y]与目标值[Y]之间有误差,则误差部分转入反向逐层传递,沿误差减小的方向调整网络各层连接的权值、阈值。反复执行以上过程,使得BP神经网络的预测值不断逼近实际输出值。
1.3 PSO算法的优化
在实验过程中,种群的中间粒子更容易得到全局最优位置而不是PSO算法中的所有粒子。因此,本文基于PSO算法并采用惯性因子[σ,]惯性因子更容易追踪种群中最优粒子的位置并确保速度连续变化,即粒子下一时段的运行速度是在上一时段運行速度的基础上迭代产生的,提高了PSO算法的性能,该优化算法称为带惯性项的粒子群算法。采用惯性因子[σ]后,新的粒子速度公式为:
[Vidt+1=σVidt+c1r1Pid-Xidt+c2r2Pgd-Xidt] (4)
优化后的PSO算法更容易找到最优位置。在最优位置找寻过程中,如果粒子探索的程度是在新的方向则被称为探测,而仍然在原始轨迹搜索则称为开发。探测和开发是找寻最优位置的必经过程,调整粒子探测和开发程度可以更好地找寻最优位置并达到优化效果。所以,常将随机变化的加速常数[c1]和[c2]应用到带惯性项的粒子群算法,代表粒子向个体极值和全局极值推进过程中的随机加速权值,从而动态改变探测和开发所占的比例,使其尽快找到全局最优位置,该优化算法称为引入惯性项和随机加速常数的粒子群算法。其中,加速常数[c1]和[c2]定义为:
[c1=random(a)+tTmax] (5)
[c2=random(b)-tTmax] (6)
式中:[random(a)]和[random(b)]代表系统随机生成的数;[t,Tmax]代表当前进化代数和最大进化代数。
1.4 BP网络权值优化方法
由BP网络的三层结构可知,用[ujht]代表输入层和隐含层的网络权值,[wkj(t)]代表隐含层和输出层的网络权值,[θk]代表输出节点阈值,[θj]代表隐含层节点阈值。具体更新公式如下:
[wkjt+1=wkjt+αδkHj] (7)
[ujht+1=ujht+αkσjIh] (8)
[θKt+1=θKt+βδk] (9)
[θjt+1=θjt+βσj] (10)
式中:[Hj]代表隐含层节点[j]的输出信号;[Ih]代表输入层节点[h]的输入信号;[δk]代表输出层节点[k]的误差;[σj]代表隐含层节点[j]的误差;[α, β]代表学习参数,参数取值范围为0.1~0.9。
1.5 高维粒子群BP的算法实现
高维粒子群优化BP神经网络需要确定网络的拓扑结构,根据网络的拓扑结构确定粒子搜索空间的维数,即粒子长度,以误差均方值作为基准调节BP网络中的权值和阈值,以粒子群优化的适应度函数作为BP网络误差的反传函数,据此建立误差均方值与粒子群优化的适应度函数的对等关系,目标函数的表达式如下:
[fi=1Nk=1Nyk-ymk2] (11)
式中:[N]代表总训练样本数;[fi]代表目标函数的误差平方和;[y(k)]代表目标函数的目标输出值;[ym(k)]代表目标函数的实际输出值。
改进粒子群算法寻优的具体步骤如下:
(1) 初始化粒子群参数。初始化粒子群规模、最大迭代次数[Tmax、]学习因子[c1]和[c2、]惯性权重[wmax]和[wmin]在特定位置与速度范围内随机初始化位置向量和速度向量。
(2) 初始化BP神经网络。由实际情况确定BP神经网络的拓扑结构,并建立下一步运算的网络模型,进一步明确粒子维度。
(3) 输入网络训练样本。通过步骤(1),步骤(2)初始化的位置向量输入网络训练样本,确定网络的权值和阈值,计算出期望输出的误差均方值和实际输出的误差均方值,由二者的误差均方值可以得到粒子群的适应度函数。在粒子群适应度函数的基础上结合位置和惯性因子可以计算粒子新的运动位置和运动速度。
(4) 迭代运算。确定每个粒子的个体极值和全局极值:粒子[i]的适应度值[fi]与个体最优值[Pbest]比较,如果小于[Pbest]则取代它作为当前的个体最优;适应度值[fi]与全局极值[gbest]比较, 如果小于[gbest]则取代它作为当前的全局最优。当停止迭代时,会得到粒子在全局的最优位置,此时需要把该数值作为BP网络的最后权重值,映射为BP神经网络的权值和阈值。
(5) 将样本数据源中训练样本输入到已确定的网络模型中进行训练,用测试样本做预测。
2 高维粒子群BP算法实例仿真
高维粒子群BP算法仿真实验的实验数据采集自沈阳市和平区易发生交通拥堵的某一路段,采集方式是在测试车辆上安装激光测距仪和 GPS设备,采样时间设置为2 s,采样时间段为早、中、晚高峰期三小时的时间区间,并多次测量采集数据,选择每组中发生事件的实验数据为6 rain,参照上述标准共采集150组样本数据,把样本数据归一化。将100组训练数据、50组测试数据输入到Matlab进行运算,电脑内存为8 GB,利用本文的高维粒子群算法的BP神经网络优化算法训练,最后将测试样本分类判别,检验最后的计算性能。部分原始样本数据见表1。
设置高维粒子群算法的参数,其中,种群数量设置为[m=30,]维数设置为[D=12×13+13×4+4=212,]加速因子设置为[c1=c2=1.50,]惯性因子设置为[ω=0.720,]速度最大值[Vmax=1,]速度最小值[Vmin=-1,]位置最大值为5,位置最小值为?5,最大迭代次数[N=100。]当计算循环过程达到终止迭代次数时则终止计算。
通常采用交通事件的检测率(DR)、平均检测时间(MTTD)、误判率(FAR)评价交通事件自动检测的算法效率。通过采用本文优化的计算方法对采集到的数据进行分类训练等一系列计算分析,并将最终分析结果和经典事件检测算法、BP神经网络算法比较。结果表明,经过优化后的高维粒子群BP神经网络的检测率、算法性能均优于经典算法和BP神经网络算法,其中97,50个测试样本中仅有2个测试样本与应该达到的数值不一致,其他样本都满足测试要求,并且平均优化测试时间是传统BP神经网络检测时间的一半,结果对比见表2。
3 结 语
本文基于高維粒子群算法的BP神经网络结构优化方法,改进了传统运算方法的检测时间长、收敛速度慢的缺点,且容易实现,是一种新兴的群智能优化算法,优化全面,适用范围广泛,具有较高的精度和较好的拟合性能。
参考文献
[1] 姚尔果,闫秋粉,南振岐,等.基于改进粒子群算法的BP神经网络模型研究[J].佳木斯大学学报(自然科学版),2012,31(1):107?109.
[2] 谢铮桂,钟少丹,韦玉科.改进的粒子群算法及收敛性分析[J].计算机工程与应用,2011,47(1):46?49.
[3] 闰纪如.粒子群优化的神经网络在交通流预测中的应用[D].杭州:浙江工业大学,2013.
[4] 刘洪波,王秀坤,孟军.神经网络基于粒子群优化的学习算法研究[J].小型微型计算机系统,2005,26(4):638?640.
[5] 胡卫东,曹文贵.基于改进粒子群算法的BP神经网络在边坡稳定性评价中的应用[J].湖南理工学院学报(自然科学版),2014,27(2):71?77.
[6] 刘坤,谭营,何新贵.基于粒子群优化的过程神经网络学习算法[J].北京大学学报(自然科学版),2011,47(2):238?244.
[7] 徐以山,曾碧,尹秀文,等.基于改进粒子群算法的BP神经网络及其应用[J].计算机工程与应用,2009,45(35):233?235.
[8] 张德慧,张德育,刘清云,等.基于粒子群算法的BP神经网络优化技术[J].计算机工程与设计,2015,36(5):1322?1328.
[9] 肖俊生,任讳龙,李文涛.基于粒子群算法优化BP神经网络漏钢预报的研究[J].计算机测量与控制,2015,23(4):1302?1305.
[10] 沈学利,张红岩,张纪锁.改进粒子群算法对BP神经网络的优化[J].计算机系统应用,2010(2):57?61.
[11] 江丽,王爱平.基于粒子群与BP混合算法的神经网络学习方法[J].计算机应用,2012,32(z2):13?15.
[12] 徐大明,周超,孙传恒,等.基于粒子群优化BP神经网络的水产养殖水温及pH预测模型[J].渔业现代化,2016,43(1):24?30.
[13] 许兆美,刘永志,杨刚,等.粒子群优化BP神经网络的激光铣削质量预测模型[J].红外与激光工程,2013,42(9):2370?2374.
[14] 关玉梅,李清江,张淑玮,等.基于粒子群优化的RBF神经网络模型研究[J].计算机光盘软件与应用,2013(3):150?151.