- 1 -
基于粒子群算法的小波神经网络
王乐,史健芳*
(太原理工大学信息工程学院,太原 030024)
摘要:小波神经网络常采用梯度下降法训练网络参数,但梯度下降法具有收敛速度慢、易陷
入局部极小值等缺点。本文提出了用改进的粒子群算法训练小波神经网络中的参数,并将其5
用于函数的仿真实验。通过仿真实验进行对比表明,该算法减少了迭代次数,提高了收敛精
度。
关键词:粒子群算法;小波神经网络;函数仿真
中图分类号:
10
A wavelet neural network based on PSO
Wang Le, Shi Jianfang
(College of Information Engineering,Taiyuan University of Technogy, TaiYuan 030024)
Abstract: Wavelet neural network gradient descent method is often used to train the network
parameters,but the gradient descent method is slow convergence,easily falling into local minima and 15
other paper proposes an improved particle swarm algorithm trained wavelet neural
network parameter and for simulating compared by simulation by simulation show that
the algorithm reduces the number of iterations,improve the convergence precision.
Keywords:PSO; WNN; the simulation of function
20
0 引言
小波神经网络[1-2]是小波变换与神经网络相结合的产物,它通常的训练算法是梯度下降
法也就是 BP 算法,但是这种方法收敛速度慢且有可能陷入局部极值。
粒子群算法[3]是 Eberhart 和 Kennedy 于 1995 年提出的一种新的群智能优化算法,它起
源于人们对鸟群捕食行为的研究,是一种通过个体之间的互动协作来搜寻全局最优解的优化25
算法。它最主要的特点是收敛速度快,并具有较好的全局与局部收敛能力,现已成为国际研
究的热点,但是粒子群算法存在易限于局部最优,进化后期收敛慢等缺点。本文对粒子群算
法进行了改进,通过仿真实验并进行对比表明,改进的算法不仅减少了迭代的次数、精度得
到了提高,而且有效的克服了早熟收敛的问题。
1 小波神经网络 30
小波神经网络是小波变换与神经网络相结合的产物,它具有小波变换良好的时频局域化
特性和神经网络自学习的优点。本文采用了把小波函数作为基函数构造神经网络的方法,相
对于传统的 BP 神经网络而言,小波神经网络在网络的隐层通常用小波基取代了 Sigmoid 函
数,由于引入了平移和伸缩因子,因此小波神经网络具有更灵活有效的逼近能力和教强的容
错能力。单输入单输出的小波神经网络结构模型如图 1 所示: 35
- 2 -
图 1 单输入单输出的小波神经网络
其中,隐层激励函数取小波基函数,通常采用 Morlet 母小波函数,输出层激励函数取
purline 线性函数。在图 1 中 a 和 b 是小波神经网络的伸缩和平移因子, iω 是输入层到隐层40
的权值, iυ 是隐层到输出层的权值,它们可以通过下述均方误差能量函数进行优化:
( )2
1
1 ∑
=
−=
N
i
ii YDN
E (1)
其中, iD 是期望输出, iY 是对应的实际输出
2 粒子群算法优化的小波神经网络
标准的粒子群算法 45
在粒子群算法中,每个粒子都是优化函数的一个解。每个粒子都有一个位置、一个速度
来决定它们飞行的距离和方向,都有一个优化函数所决定的适应度值来衡量粒子的优劣。
PSO 算法运行过程中,随机产生一群粒子,每个粒子都有一个随机的位置和速度,并通过
跟踪两个位置来更新自己,一个是粒子本身所找到的最优解 pbest,即个体最优值;另一个
是整个种群迄今找到的最优解 gbest,即全局最优值,也就是公式(2)和(3)来更新粒子的速度50
和位置[4-5]。
( ) ( ) ( )( ) ( ) ( )( )txtgrandctxtprandctvtv −∗∗+−∗∗+=+ 21)(1 ω (2)
( ) ( ) ( )11 ++=+ tvtxtx (3)
其中,v 是粒子的速度, c1、c2 是学习因子,rand 是介于(0,1)之间的随机数,x
是粒子当前位置,p 代表粒子迄今找到的最好位置,即个体最优值,g 代表整个种群迄今找55
到的最好位置,也就是全局最优值。w 为粒子群算法的惯性权值,计算公式一般如下:
( )( ) minminmax max
max ωωωω +−−=
generation
generationgeneration
(4)
其中, maxω , minω 分别是ω的最大值和最小值,generaton 和 maxgeneration 分别是当
前迭代代数和最大迭代代数。
⎟⎟⎠
⎞
⎜⎜⎝
⎛ −
n
n
a
bxψ
Y
⎟⎟⎠
⎞
⎜⎜⎝
⎛ −
1
1
a
bxψ
X ⎟⎟⎠
⎞
⎜⎜⎝
⎛ −
2
2
a
bxψ ∑
iω iυ
- 3 -
改进的粒子群算法 60
标准的粒子群算法虽然得到了广泛的应用,但是也存在易限于局部最优,进化后期收敛
慢等缺点。因此本文提出了一种改进的粒子群算法应用于小波神经网络参数的训练中。如果
粒子群算法陷入了局部最优,就对部分粒子进行变异,从而在以后的迭代过程中获得新的搜
索位置,增加求得更优解的可能。将陷入局部最优且不是全局最优的粒子重新随机赋值,不
满足上述条件的粒子保持不变,这样粒子在随后的迭代中两部分粒子组成一个新群体,每当65
算法陷入局部最优,改进的粒子群算法就适时的给部分粒子重新赋值,这样既保留了每一代
的全局最优粒子,又能一次次的跳出局部解向全局解靠近。
如果粒子群算法达到全局收敛或者陷入早熟收敛,粒子群中的粒子将聚集在搜索空间中
的一个或者几个特定位置,此时可以用粒子群体的适应度方差[6]来表示。
群体适应度方差
2
1
2 1 ∑
=
⎟⎟⎠
⎞
⎜⎜⎝
⎛ −=
N
i
avgi
f
ff
N
σ (5) 70
其中 N为粒子群的数目, if 为第 i个粒子的适应度, avgf 为粒子群目前的平均适应度,
f 为归一化标准因子,取值为:
{ }{ }avgi fff −= max,1max (6)
群体适应度方差越小,则粒子群趋于早熟收敛或者全局收敛;反之,粒子群处于随机搜
索阶段。但是仅凭适应度方差接近于零,即 μσ <2 ,不能区别全局收敛与早熟收敛,还需75
进一步判断此时所得到的最优解与期望值的关系。如果此时 ( ) δ>− mfgbestf ,表明算法
陷入局部最优;反之达到全局收敛。当陷入局部最优时,对部分粒子进行重新赋值,增加粒
子的多样性,就能够有效的避免早熟收敛问题。
其中δ 为收敛精度,μ 的取值与实际问题有关, ( )gbestf 是全局最优粒子的适应度值,
mf 为期望值。 80
算法测试及分析
为了验证改进的粒子群算法的寻优效果,分别将改进的粒子群算法和标准的粒子群算法
各自运行 20 次进行比较。下面通过三个经典的测试函数进行测试。
1)Sphere 函数的表达式是 ( ) ∑
=
=
D
i
ixxf
1
2
1 ,它是一个单峰函数,函数的全局极小值点位
于(0,0…,0)处,全局极小值为 0。 85
2)Griewank 函数的表达式是 ( ) 1cos
4000 11
2
2 +⎟⎠
⎞⎜⎝
⎛−= ∏∑
==
D
i
i
D
i
i
i
xxxf ,它是典型的高维优化
问题,该函数在(0,0…,0)时取得全局最小值为 0。
3)Rastrgin 函数的表达式是 ( ) ( )( )∑
=
+−=
D
i
ii xxxf
1
2
3 102cos10 π ,它是一个多峰函数,有
很多正弦突起的局部极小点,在(0,0…,0)时,取得全局最小值为 0。
设种群大小 N=30,维数 D=20,学习因子 c1=c2=2,迭代次数 1000, =ω ,90
=ω , =μ ,收敛精度 ( )5^10 −=δ 。
- 4 -
两种算法各进行 20 次试验, 图 2、图 3、图 4 是三个测试函数对于改进的粒子群算法
和标准的粒子群算法的适应度曲线比较图。横坐标为迭代次数,纵坐标为最优适应值。
95
图 2 改进的 PSO 算法与标准 PSO 算法对 Sphere 函数优化比较图
图 3 改进的 PSO 算法与标准 PSO 算法对 Griewank 函数优化比较图
100
图 4 改进的 PSO 算法与标准 PSO 算法对 Rastrgin 函数优化比较图
图 2 中改进的粒子群算法在经过 693 次迭代就找到了最优解,达到了收敛精度,而标准
的粒子群算法经过 1000 步只达到了误差精度为 ;图 3 改进的粒子群算法经过 731 步105
也找到了最优解,而标准的粒子群算法经过 1000 步只达到了误差精度为 ;图 4 中,
标准的粒子群算法经过 1000 次迭代精度只达到了 ,而改进的粒子群算法在迭代进行
到 847 次时,达到了收敛精度,找到了全局最优值。
由以上结果能够清楚的看出,在相同的条件下,标准的粒子群算法在收敛后期陷入了局
部最优解,达到最大迭代次数时仍然没跳出局部最优解,图 4 中改进的粒子群算法在某段时110
间内陷入极值解,但在某一刻瞬间跳出来,最终搜索到了全局最优值。大量实验表明,改进
的粒子群算法比标准的粒子群算法进化速度快,搜索到的精度高,而且有效的避免了早熟收
敛问题。
改进的粒子群算法优化的小波神经网络
用粒子群算法优化小波神经网络就是将小波神经网络的各个参数作为粒子群的位置向115
量,进行优化。其训练过程如下:
1)初始化粒子群的相关参数:粒子种群大小 N;学习因子 c1,c2;惯性权重的最大、
- 5 -
中国科技论文在线
最小值分别为 maxω 和 minω ;最大迭代次数 maxgenergation;解空间的维数D ;收敛精度δ 。
2)利用公式(2)、(3)、(4)对粒子的位置和速度进行更新,记录每个粒子的个体
最优值和全局最优值,利用公式 1)计算个体最优值和全局最优值相对应的适应值; 120
3)判断每个粒子的个体最优值,将当前粒子的适应值与上一次个体最优值进行比较,
如果当前适应值优于个体最优值,则令个体最优值的取值变为当前适应值,否则,个体最优
值不变;
判断整个粒子群的全局最优值,将个体最优值和全局最优值进行比较,如果个体最优值
优于全局最优值,则全局最优值的值变为个体最优值,否则全局最优值不变; 125
4)判断粒子是否早熟收敛,如果早熟收敛,转到步骤 5);否则,转到步骤 6);
5)对部分粒子重新赋值;
6)检查终止条件,如果满足则结束训练,输出全局最优值;否则转入步骤 2)。
3 仿真分析
经过实验比较后,选择小波神经元个数为 9,种群大小 N=30,学习因子 c1=c2=2,误差130
精度 ,最大迭代次数 3000, =ω , =ω 。
给定目标函数 ( ) ( )xxy ππ 20sin10sin += ,在区间[0,]上取 20 个数据点,分别用传统
小波神经网络算法和标准的粒子群算法以及本文改进的粒子群算法对网络进行训练,各个算
法分别训练 20 次。
135
图 5 小波神经网络误差演化曲线
图 6 标准 PSO 算法与改进 PSO 算法误差演化曲线
140
从图 5 中可以看出,小波神经网络在 300 次迭代之后,训练误差就不再变化,经过 3000
次迭代误差为 。图 6 表示标准粒子群算法与改进的粒子群算法在训练性能上的对比情
况,从图 6 可看出,标准的粒子群算法经过 3000 次迭代误差达到 ,而改进的粒子群
算法优化的小波神经网络经过 1362 次迭代后误差达到 -004。标准的粒子群算法很早
- 6 -
中国科技论文在线
就陷入了局部解,并且一直保持在 ,直到达到最大迭代次数时仍然没有跳出局部极值145
解;而改进的粒子群算法训练误差一直保持下降直至达到了要求的收敛精度,有效的避免了
早熟收敛。
4 结论
本文提出了一种改进的粒子群算法,通过测试函数仿真对比表明改进的粒子群算法有效
的改善了标准粒子群算法易陷入局部最优的问题,提高了进化速度和收敛精度。最后将改进150
的粒子群算法优化的小波神经网络应用于函数仿真实验,实验结果表明其性能优于小波神经
网络,减少了迭代次数,提高了误差精度。
[参考文献] (References)
[1] 单海鸥,李平.小波神经网络的改进及应用[J].甘肃科学学报,2007,19(1):0075-0078. 155
[2] 岑翼刚,孙德宝,李宁. WNN 中的改进 PSO 算法及参数初始化[J].华中科技大学学报,2006,34(8):
0043-0045.
[3] 杨迪威,李少华,沈远彤.基于粒子群优化算法的小波神经网络[J].工程地球物理学报,2007,4(6):
0529-0532
[4] 刘军,邱晓红,汪志勇,等.PSO 粒子群算法在神经网络泛化能力中研究[J].计算机工程与应用,2009,160
45(29):34-36.
[5] 徐小平,钱富才,刘丁,等.基于改进粒子群优化算法的新型小波神经网络研究[J].信息与控制,2008,
37(4):0418-0422.
[6] 杜玉平.关于粒子群算法改进的研究[D].西安:西北大学,2008.
165