- 1 -
粒子群算法与神经网络的结合建模
李文婷,吴锦*
(太原理工大学信息工程学院,太原 030024)
摘要:粒子群算法是一种基于群体智能的优化技术,该算法原理简单、易于实现。本文利用
粒子群算法优化神经网络的参数,提出了粒子群算法与神经网络相结合的建模方法。为了提
高基本粒子群算法的搜索性能,采用了基于外推技巧的引导型更新公式,同时,在粒子的搜
索过程中,不断监测各个粒子的最优位置,多次没有变化并且距离优化目标太远时,粒子跳
出当前位置继续搜索,避免陷入局部值。最后使用改进后的粒子群神经网络算法对正弦函数
进行拟合,仿真结果表明新的算法有更好的收敛性。
关键词: 建模;粒子群算法;神经网络;外推技巧
中图分类号:TP183
The modeling of particle swarm optimization combined with
neural network
LI Wenting, WU Jin
(College of Information Engineering, Taiyuan University of Technology, Taiyuan 030024)
Abstract: Particle swarm optimization is an optimization technique based on swarm intelligence,
which is simple, easy to implement. In this paper a modeling method combined PSO algorithm with
neural network is proposed by using particle swarm optimization to optimize neural network
parameters. To improve particle swarm optimization’s searching performance, a guided updating
formula is adopted based on extrapolation techniques, meanwhile, the optimal location of each particle
is constantly monitored in the searching process, if the location has not changed constantly and not
close to the optimal target, the particles jump out of the current position to continue the searching in
order to avoid falling into local values. Finally, sine function approximation is simulated by using the
improved PSO-NN algorithm , the results show that the new algorithm has better convergence.
Key words: modeling; particle swarm optimization; neural network; extrapolation techniques
0 引言
对实际系统的任何研究都不能脱离实际系统的数学模型,建立合适的模型是对实际系统
进行控制的必要条件。系统辨识是建模的一种方法,主要通过实际数据按照一定的准则建立
可以体现系统特征的模型。系统辨识从 1962给出定义以后,经过研究者们的不断研究获得
了长足的发展,近年来,随着智能控制理论研究的不断发展,成为现代系统辨识的有力补充。
其中,人工神经网络及应用的研究对于非线性系统辨识具有重要意义。
粒子群算法[1]是 Kennedy和 Eberhart于 1995年首次提出的一种群体智能算法,它是模
拟鸟类的觅食行为:在一定的搜索空间之内,鸟群分别根据自身的位置和其他鸟群的位置来
不断调节自身的位置,直至找到食物所在地。粒子群算法作为一种有效的优化工具,目前已
经广泛应用于函数优化、神经网络训练、模糊系统、遗传算法等领域。
理论上 BP神经网络可以逼近任何连续的非线性函数,但是有可能陷入局部最小值,而
不能保证收敛到全局极小值。因此,本文采用改进的粒子群算法与神经网络相结合,对神经
网络的参数进行优化,使得建模过程快速收敛。
- 2 -
1 基本粒子群算法
粒子群算法(Particle Swarm Optimization,PSO)是一种基于群体智能理论的优化算法,
将群体中的个体抽象为搜索空间中没有质量和体积的粒子,这些粒子在搜索空间中以一定的
速度飞行,并根据粒子本身的飞行经验以及同伴的飞行经验对自己的飞行速度进行动态调
整,即每个粒子通过统计迭代过程中自身的最优位置和群体的最优位置来不断地修正自己的
速度大小和位置,从而将个体逐步移到较优的区域,并最终搜索、寻找到问题的最优解。
粒子群算法模型
粒子群算法作为鸟群和现实问题之间的桥梁,模拟鸟群的寻优机制来解决实际的问题。
粒子群算法将需要优化的 D个参数的所在范围作为 D维搜索空间,D维搜索空间中有 m个
粒子,每个粒子由D维组成,代表解空间的一个候选解。粒子群算法采用速度--位置搜索模
型,其中第 i个粒子的位置矢量是:
1 2( , ,..., )i i i iDx x x x= ,i=1,2,…m
其速度矢量为:
1 2( , ,..., )i i i iDv v v v=
速度矢量决定粒子在搜索空间单位迭代次数的位移。根据实际问题的寻优要求建立适应
函数,通过将 xi带入到适应函数得到的适应值来判定粒子搜索到的位置的优劣程度。
记第 i个粒子搜索到的最优位置为 1 2( , , ..., )i i i iDp p pp = ,整个粒子群搜索到的最优
位置记为 1 2( , ,..., )g g g gDp p p p= 。
粒子根据以下公式来更新其速度和位置:
1 1 2 2( ) ( )id id id id gd idv v c r p x c r p x= + − + − (1)
id id idx x v= +
其中,下标 i=1,2…m,标识粒子;d=1,2…D,标识搜索空间;vid为第 i个粒子飞行
速度矢量的第 d维分量;xid为第 i个粒子位置矢量的第 d维分量,学习因子 c1,c2是非负常
数,直接影响飞向自身最优位置和全局最优位置的程度,若太小,则粒子可能远离目标区域,
若太大则会导致突然向目标区域飞去,或飞过目标区域。合适的 c1,c2可以加快收敛且不易
陷入局部最优,通常令 c1,c2=2[2],r1和 r2是介于[0,1]之间的随机数。
由式(1)可知,粒子的速度更新公式主要由三项构成,在之前速度的基础上,第二项与
粒子自身的飞行经验有关,表示粒子本身的思考,鼓励飞向自身曾经发现的最佳位置;第三
项参照全局最有位置,代表粒子间的信息共享与合作,鼓励其飞向整个粒子群目前为止发现
的最佳位置。
粒子群算法的实现步骤
Step1 初始化:设定粒子群的群体规模为 m,在允许的范围内随机给定每个粒子的初始
位置和速度,根据优化的目标定义适应函数。计算初始状态每个粒子的适应度,定出每个粒
子的最好位置 pi和群体最优位置 pg。
Step2 根据公式更新粒子状态,包括速度和位置。
Step3 评价粒子的优劣:对每个粒子计算适应值,如果其适应值好于其经过的最好位置
- 3 -
pi,则用当前的位置取代 pi。
Step4 将所有粒子中最好的 pg作为当前的最好位置 pg。
Step5 判断结束条件:未达到结束条件,转步骤 2;否则结束。
迭代终止条件根据具体问题一般选为最大迭代次数或粒子群搜索到的最优位置满足预
定最小适应阈值。
每一次执行操作时,所有的粒子同时进行,各个粒子的状态是不断更新的,不存在等待
问题,随时都处于调整自身状态的过程中,直到最后找到最优位置,即食物所在地。
2 粒子群算法优化人工神经网络
人工神经网络具有非线性映射能力强、自适应学习和并行处理信息的优点,在辨识系统
时,人工神经网络可以逼近任意非线性映射,从而在给定算法的指导下学习,得到具有神经
网络结构的正向模型或逆向模型:正向模型与辨识系统并联,用辨识系统与网络的输出误差
来训练网络;逆向模型以系统的输出作为输入,用给定输入和网络输出的误差训练网络。在
神经网络辨识中,神经网络的确定需要依赖于网络的权值调整,而权值的优化调整需要根据
某种算法来实现。神经网络训练中对权值和阈值的优化是建模过程的重要研究内容。对于目
前普遍采用的BP算法虽然具有一定的推广能力,并且理论上证明可以逼近任意非线性映射,
但是其存在学习速度慢、易陷入局部极小值等问题[3]。
图 1 粒子群优化神经网络的流程图
Fig. 1 The flowchart of particle swarm optimization neural network
- 4 -
中国科技论文在线
粒子群算法收敛快、算法简单,将粒子群算法与 BP神经网络相结合,利用粒子群算法
的全局搜索能力训练神经网络的各项权值,可以大大提高神经网络的性能。粒子群优化神经
网络的流程如图 1所示。
然而基本的粒子群算法后期搜索速度减慢,粒子趋向于同一化,同时无法继续优化收敛
[4],因此必须对基本粒子群算法进行改进。
粒子群算法的改进
在粒子群算法中,参数的优化主要依据粒子所搜到的个体极值点和全局极值点,个体极
值点与全局极值点位于同一点的粒子无法从别的粒子身上学习,优化出现停滞,假如这时对
应的只是一个局部最优解,那么算法就出现了早熟收敛现象。在处理某些复杂问题时,算法
容易出现早熟和局部收敛的问题,即在没有完成优化目标的前提下,所有粒子的个体最优位
置重合。为此,提出改进算法,在粒子优化的后期,当全局极值点多次没有变化时,粒子跳
出当前位置,随机进入周围区域,保持粒子搜索的多样性。
此外,基于外推技巧[5]的改进粒子群算法可以更好的引导粒子群找到最优位置。利用数
学中可以证明的外推技巧,即对于某段连续函数来说,在某点附近一定存在比它更优的点,
对粒子的位置更新加以引导,在粒子未达到最优点时,可以在它附近产生虚拟的更优点,从
而提高算法的搜索效率,避免陷入到局部最优中。
引导型粒子群算法的公式如下所示:
1 1 2 2( ) ( )id id id id gd idv v c r p x c r p xω= + − + −
6[ () ] 10 ()id id idx x rand k v rand
−= + + + 其中,k为调节系数。
图 2 基本 PSO算法与基于外推技巧的 PSO算法迭代过程
Fig. 2 The iterative process of basic PSO algorithm and PSO algorithm based on extrapolation skill
如图 2所示,对基于外推技巧的粒子群算法进行仿真,与普通的粒子群算法相比较,可
以看出随着迭代的进行,基于外推技巧的粒子群算法收敛到更小的误差。
- 5 -
中国科技论文在线
粒子群优化神经网络的参数设定
1998年,Shi和 Eberhart在基本粒子群算法的基础上增加了惯性权重ω [6],粒子的速度
公式更新为:
1 1 2 2( ) ( )id id id id gd idv v c r p x c r p xω= + − + −
惯性权重ω使粒子保持运动惯性,使其有扩展搜索空间的趋势。如果ω =0,由于速度
本身没有记忆性,只取决于粒子当前位置和其历史最好位置,所以,粒子群将收缩到当前的
全局最好位置,更像一个局部算法;ω ≠0,微粒有扩展搜索空间的趋势,即有全局搜索能
力。因此,ω对算法的优化性能有很大影响,对于较大的ω值有利于跳出局部极小点并且
提高收敛速度,而较小的ω值有利于算法收敛精度。对惯性权重的选择很多学者作了研究,
提出了自适应调整惯性权重、模糊动态调节、基于进化因子的权重选择等方法[7]。对全局搜
索,通常的好方法是在前期有较强的全局搜索能力,而在后期侧重于算法的局部搜索,为此
可将ω设为随时间线性减小。
max min
max
max
( )T
T
ω ωω ω −= −
其中, maxω 为最大惯性权值系数, minω 为最小惯性权值系数,T 为迭代次数, maxT 为
迭代总数。
加速度系数 c1、c2用于调整粒子的自身经验与社会经验在其运动中所起的作用,如果
c1=0,则粒子没有认知能力;如果 c2=0,粒子间没有社会信息共享,其算法变成一个多起点
的随机搜索;如果 c1=c2=0,粒子将一直以当前的速度飞行,直到到达边界。较高的值导致
粒子突然冲向或越过目标区域;低的值允许粒子在被拉回前在目标区域外徘徊,通常 c1、c2
的范围在 0~4之间。
采用粒子群算法训练 BP神经网络时,首先应将特定结构中所有需要优化的神经元间的
连接权值和阀值编码成实数码串表示的个体。神经网络中包含 D个优化参数,则每个个体
将由一个 D维向量来表示: 1 2( , ,..., )i i i iDx x x x= 。此时,个体结构中的每一个元素,即
代表神经网络中的一个权值。
网络训练的目的是使得最终的网络的输出与实际输出的差值最小,因此以网络在训练集
上产生的均方误差作为目标函数,构造如下的适应度函数,来计算个体的适应值。
2
1 1
1 ( )
2
n c
kp kp
p k
f y T
n = =
= −∑∑
式中: kpy 为神经网络计算实际输出; kpT 为目标输出;n为训练样本数;c为神经元输
出个数。
3 仿真研究
利用神经网络建立系统的模型,本质上是基于网络的逼近能力,即在训练的过程中逼近
隐含的系统非线性关系。本文采用两层神经网络完成正弦函数的逼近,并且选用粒子群算法
来优化神经网络的权值。选择粒子群规模 m为 30,最大迭代次数为 100, 1c 、 2c 取 2,仿
真结果如图 3所示。
- 6 -
中国科技论文在线
图 3 基本的粒子群神经网络与改进后的粒子群神经网络迭代过程
Fig. 3 The iterative process of basic PSO-NN algorithm and modified PSO-NN algorithm
结果表明,选用基于粒子群算法的神经网络对函数拟合具有较快的速度和较小的误差,
粒子群算法通过改进后比基本的算法有更好的收敛性。
图 4 粒子群神经网络与 BP神经网络的拟合曲线
Fig. 4 The fitting curves of PSO-NN and BP neural network algorithms
- 7 -
中国科技论文在线
通过 BP神经网络、基于基本粒子群的神经网络和基于改进粒子群神经网络对正弦曲线
的拟合图 4可以看,改进后的粒子群神经网络与正弦曲线拟合最接近。
4 结论
本文用粒子群算法训练神经网络的参数,克服了BP算法训练次数多、收敛速度慢的缺
点,基本的粒子群算法参数简单,收敛速度快,但是在求解复杂问题时可能陷入局部极值,
因此对基本的粒子群进行改进。采用引导性的位置更新公式,每次在粒子附近找到比它更优
的点,同时在粒子搜索过程不断监测避免粒子陷入局部极值,帮助粒子跳出更新迟缓的位置。
通过仿真软件对函数进行拟合,结果表明基于改进后的粒子群算法的神经网络有更好的收敛
性。
[参考文献] (References)
[1] . Eberhart, J. Kennedy. Particle swarm optimization, in: Proc. of IEEE Int. Conf. on Neural Network, Perth,
Australia,1995:1942~1948.
[2] 杨维, 李歧强. 粒子群优化算法综述[J]. 中国工程科学,2004,6(5): 87~94.
[3] 程球. 人工神经网络设计算法的研究[J]. 微机发展,2005,15(12): 61~63.
[4] 王建国,阳建宏,云海滨,等. 改进粒子群优化神经网络及其在产品质量建模中的应用[J]. 北京科技大学学
报, 2008,30(10): 1188~1193.
[5] 张建科,刘三阳,张晓清. 改进的粒子群算法[J].计算机工程与设计,2007,28(17):4215~4219.
[6] Y. Shi, . Eberhart, A modified particle swarm optimizer, in: Proc. of IEEE World Conf. on Computation
Intelligence,1998: 69~73.
[7] 董元,王勇,易克初. 粒子群优化算法发展综述[J]. 商洛学院学报,2006,20(4):28~33.