当前位置:文档之家› 基于粒子群优化与BP算法的协同神经网络学习方法

基于粒子群优化与BP算法的协同神经网络学习方法

第3O卷第9期 

2013年9月 计算机应用与软件 

Computer Applications and Software Vo1.3O No.9 

Sep.2013 

基于粒子群优化与BP算法的协同神经网络学习方法 

江丽王爱平 

(安徽大学计算机科学与技术学院安徽合肥230601) 

摘要 针对标准BP算法易陷入局部极值及收敛速度慢等问题,提出一种基于粒子群优化与BP算法的协同神经网络学习方 

法。该方法在网络的学习过程中,同时利用PSO优化算法与BE算法进行最优网络权值的协同搜索,从而充分利用粒子群算法的全 

局搜索性及BP算法的反向传播特点。将该算法应用于4个复杂函数的拟合仿真,并与标准BP算法以及传统的粒子群优化BP神 

经网络算法进行比较。实验结果表明所提的协同算法的性能优于传统的BP网络优化算法。 

关键词 BP算法 粒子群算法优化 函数拟合协同算法 

中图分类号TP183 文献标识码A DOI:10.3969/j.issn.1000-386x.2013.09.006 

CooPERATIVE NEURAL NETWoRK LEARNING ALGoRITHM BASED oN 

PARTICLE SWARM oPTIMISATIoN AND BP NEURAL NETWoRK 

Jiang Li Wang Aiping 

(School of Computer Science and Technology,Anhui University,Hefei 230601,Anhui,China) 

Abstract For the standard BP algorithm usually has the limitations of local extreme values and slow convergence,a cooperative neural 

network learning method based on particle swarm optimisation(PSO)and BP algorithm is proposed in this paper.During the process of 

network learning,this method makes use of both PSO and BP algorithms simultaneously to carry out the.cooperative search of optimal network 

weight,SO that it takes the full advantages of global search property of PSO and back propagation feature of BP algorithm.We apply this 

algorithm in fitting simulation with four complex functions and compare it with the BP neural network algorithms based on either standard BP 

network or traditional PSO.Experimental results show that the cooperative algorithm proposed performs better than the traditional BP network 

optimisation algorithms. 

Keywords BP algorithm Particle swa//n optimisation algorithm Optimising Function fitting Cooperative algorithm 

0 引 言 

BP算法(误差逆向传播学习算法)是神经网络中最为常用 

的方法之一u j。这种算法通过误差反向传播来不断调整网络 

的权值和阈值,从而使网络的误差平方和最小。尽管BP神经 

网络具有很多显著的特点,但是也存在着固有的缺陷,即收敛速 

度较慢、容易陷入局部极小以及网络泛化能力较弱等问题。因 

此,许多改进的学习算法相继被提出 -lo]。作为其中的改进算 

法之一,基于粒子群优化算法的网络学习算法已经得到广泛的 

应用 J。粒子群优化算法PSO(Particle Swarm Optimization)是 

一种群体自适应全局搜索优化算法 一1ol。该算法通过种群中 

个体之间的协作和信息共享来寻找目标问题的最优解,且实现 

简单,需要参数少,收敛速度较快。 

本文同时考虑PSO算法与BP算法,提出一种基于PSO优 

化与BP算法的协同网络学习新方法。该方法在网络的学习过 

程中,同时利用PSO算法与BP算法进行网络最优权值的协同 

搜索,从而充分利用了PSO算法的全局搜索性及BP算法的反 

向传播特点。通过对4个典型的复杂函数进行函数拟合仿真实 

验,然后与标准BP算法和传统的PSO优化BP神经网络的方法 (TPSO-BP)进行比较。实验结果表明,本文提出的方法相比于 

传统方法具有更高的收敛精度,且收敛速度更快。 

1 基于粒子群算法优化的BP网络权值更新 

1.1标准粒子群优化算法 

在粒子群优化算法中,待优化问题的解用粒子在搜索空间 

中的位置表示。优化计算时粒子群算法首先随机产生一群粒 

子,然后通过迭代不断更新粒子的位置从而找到待优化问题的 

最优解。假设有一个群体包含 个粒子,在d维的搜索空间 

中,粒子群的第i个粒子的位置向量为置=( ,…, ), 

速度向量为 =( V ,…, ),该粒子自身搜索到的最佳位 

置记为P =(P P ,…,P ),全部粒子搜索到的全局最佳位 

置记为P =(P P ,…,P )。在迭代过程中,粒子根据自己 

当前的最佳位置 和全局最佳位置 来不断更新自己的位置 

和速度。具体过程可用如下公式来描述 …: 

收稿日期:2012—06—24。国家自然科学基金项目(61074071, 

61104022)。江丽,硕士生,主研领域:人工智能,容错控制。王爱平, 

教授。

 20 计算机应用与软件 2013丘 

。 ( +1)=叼( )・ ( )+cLrl(P 一 (f))+c2r2(P ̄一 。 (f))(1) 

(t+1)= (t)+ (t+1) (2) 

卵(t)= …一(叼…一叼 i )t/itmax (3) 

其中m=1,2,…,d;i=1,2,…, ;卵(t)为惯性权值;t为当前 

迭代次数;itmo ̄为最大迭代次数;c ,C 为学习因子;r ,r:为0 

~1之间的随机数。 

1.2网络权值粒子化及权值更新 

BP网络的权值和阈值的粒子化是将BP网络的权值与阈值 

看作PSO算法中各个粒子的位置分量。设BP网络的输入层, 

隐层及输出层的结点数分别为n , ,n。,则第i粒子的位置所 

表示的网络为: 

=( 1, 忍,…, ) 

(Ull,U12,…, f, l1, 12,…,W ^, 1,…,0 ,01,…, ^)(4) 

其中, 表示输入结点h与隐结点 的连接权值, 表示隐结点 

与输出层结点 的连接权值( =1,2,…, ; =1,2,…,n^; 

=1,2,…,n );d=n。nh+ h +n。+nh。在网络权值与阈值 

粒子化后,则粒子的适应度函数表示如下: 

1 nt f(x )=÷∑(0 ) (5) 

。 t q 1 其中, 表示第i个粒子的位置, 为训练样本的个数,O , 

分别表示第q个训练样本在第i粒子所确定的网络权值与阈值 

下的网络实际输出和期望输出。 

将网络的权值与阈值用粒子表示后,每个粒子的位置就唯 

一确定一个神经网络。此时,粒子位置的更新对应着相应的神 

经网络权值与阈值的更新。传统的PSO优化的BP网络学习算 

法正是利用这种粒子更新过程来搜索最佳的网络权值与阈值, 

从而达到网络训练的目的。 

2基于PSO与BP算法的协同网络学习算法 

2.1标准BP算法的网络权值更新 

BP网络拓扑结构包括输入层、隐层和输出层。常用的神经 

网络的参数有输入结点与隐结点的连接权值( (t)),隐结点 

与输出结点的连接权值( (t)),隐结点的阈值 ,以及输出结 

点阈值0 。在标准BP算法中,它们的更新过程如下所示 : 

(t+1)= (t)十 (6) 

H(t+1)= w(t)+ ^ (7) 

(t+1)=oj(t)+融 (8) 

0 (t+1)=0 (t)+ (9) 

其中, 为隐结点的输出;, 为输入结点的输入;6 为输出结点j 

的输出误差, 为隐结点 的输出误差;OL,口为学习参数,通常 

在[0.1,0.9]之间取值。 

2.2基于PSO与BP算法的协同学习算法 

标准的BP算法是按照梯度下降法进行寻优,这种方法收 

敛速度较慢且容易陷于局部最优。本文提出一种基于PSO与 

BP算法的协同网络学习算法。该算法在更新网络权值的过程 

中,同时利用PSO优化算法与BP算法进行协同搜索。通过这 

种协同的搜索方法不仅可以有效地提高BP算法的收敛精度, 

而且可以进一步提高PSO算法的收敛速度。该算法的具体实 

现步骤如下: 步骤1初始化: 

(1)初始化BP神经网络的网络结构,包括网络的输入层、 

隐层及输出层的结点个数,训练样本的输入和输出以及学习率 

Ot, 等参数; 

(2)初始化粒子群,包括粒子的规模Ⅳ,每个粒子的位置向 

量和速度向量,每个粒子的个体最佳位置,全局最佳位置以及迭 

代误差精度s等。 

步骤2对粒子群中的每个粒子i(i=1,2,…,Ⅳ)进行如 

下迭代更新: 

(1)利用式(1)对粒子i的速度进行更新;利用式(2)产生 

粒子i的新位置向量 (i=1,2,…,N); 

(2)对于粒子i的位置向量 所确定的神经网络利用BP 

算法(式(6)一式(9))进行网络权值与阈值的更新并将新的网 

络权值及阈值粒子化得到 ; 

(3)计算两个新解 和 BP的适应度值;如果/( )</ 

( ),则更新第i个粒子的位置向量为 。,否则更新第i个粒 

子的位置向量为 ;也即: 

f so 若 so)<l厂( BP (10) 

L 否则 

(4)计算粒子的全局最小适应值l厂( ):若_厂(Pe)<s(训 

练达到网络误差精度)或当前迭代次数达到最大迭代次数,则 

迭代结束转步骤3;否则,转步骤2。 

步骤3输出粒子全局最佳位置P 所对应的神经网络权 

值与阈值。 

3仿真实验 

3.1 函数列表 

选用以下4个典型的复杂函数: 

(1) =100×( — 2) +(1一 1) 

E[一l0,10]i=1,2 

(2) =∑( 一10cos(21rxi)+lo) 

∈[一5,5]i=1,2,3 

(3) = 1( + )…s os( )+1 

i∈[一l0,10]i=l,2 

(4) = + i—XI 2 +扎一sinx;一cos( ̄l ;) 

∈[一2盯,2 ]i=1,2,3 

3.2函数拟合及误差分析 

利用本文提出的神经网络学习新算法,对上述4个复杂函 

数进行拟合仿真。实验参数设置:(1)网络的参数:输入结点数 

ni为函数自变量个数,隐层结点数 采用经验试凑法,输出结 

点数 为函数因变量个数;(2)粒子群算法参数:粒子规模Ⅳ 

=20,最大迭代次数itmax:1000次,网络训练误差s=1e一6, 

惯性权值的取值范围[0.3,0.9],学习因子C,=c =2.0,粒子 

最大速度啪 =1。初始样本:对于每个待拟合的函数,在自变 

量取值范围内随机生成训练样本 =600个,测试样本 = 

200个。图1是各个函数在三种训练方法下训练误差比较结 

果,图中横坐标为训练次数,单位为次数,纵坐标为训练误差。 

表1是各个函数在三种训练方法作用下拟合误差结果,其中E 、 

E 分别表示n 个测试样本和n 个训练样本的均方误差,即: 

(下转第99页)

相关主题