BP(Back Propagation)神经网络是一种多层前馈神经网络,该网络的主要特点是信号前向传递,误差反向传播。在理论上,BP神经网络可以逼近任意连续的非线性关系,但是,由于BP神经网络的误差代价函数是全体连接权值的一个复杂函数,因此,优化权值过程中必然会存在两个问题:(1)寻优的参数过多,造成收敛速度慢;(2)误差代价复杂函数可能存在的多个极值点,可能会造成寻优过程陷入局部极值。针对这些问题,文章采用改进PSO算法来优化BP神经网络权值,通过Hermit逼近试验,对BP算法和改进PSO优化BP神经网络权值算法进行了对比,结果表明,改进PSO优化BP神经网络权值具有更好的收敛性和更快的速度; 1.标准PSO算法 粒子群算法(Partical Swarm Optimization),缩写为 PSO,是由Eberhart博士和kennedy博士于1995年发明。源于对鸟群捕食的行为研究。 PSO算法从鸟群捕食问题中得到启示并用于解决优化问题。PSO中,每个待优化问题的解被规定为空间中的一只鸟,我们称之为“粒子”。所有的粒子都有一个由待优化问题决定的适应值,每个粒子还有一个速度决定了它们搜索的方向和距离。PSO初始化这样一群随机粒子(随机解),然后通过迭代找到最优解。在每一次迭代过程中,粒子通过跟踪两个“极值”来更新自己。第一个“极值”就是粒子本身所找到的最优解,另一个“极值”就是整个粒子群体到目前为止找到的最优解。更新的公式如下: 速度更新:
![bp 算法 如何调整权值 改进PSO算法优化BP神经网络权值算法研究](http://img.413yy.cn/images/a/06020206/020610343335198245.jpeg)
(1) 位置更新: (2) 其中,表示第 个粒子;表示第个粒子的第维;和为学习因子,也称为加速常数,和为范围内的均匀随机数。为时刻粒子的速度,为时刻粒子的位置。 2. PSO算法的改进策略 PSO的改进策略是通过一个惯性权重来协调PSO算法的全局搜索(在整个搜索空间中搜索)和局部搜索(在局部近优解附近搜索)能力。具体做法是将基本PSO的速度方程修改为下式,而位置方程不变。 (3) 惯性权重决定了粒子先前飞行速度对当前飞行速度的影响程度,因此通过调整惯性权重的值可以实现全局搜索和局部搜索之间的平衡:当惯性权重值较大时,全局搜索能力强,局部搜索能力弱,这样有利于全局搜索,提高了收敛速度,但是不易得到最优解;当惯性权重值较小时,局部搜索能力强,全局搜索能力弱,这样有利于局部搜索,但收敛速度慢且有时会陷入局部极值。因此,恰当的惯性权重可以提高算法性能,提高寻优能力,同时减少迭代次数。 根据惯性权重的选择策略,本文采用非线性动态的惯性权重方法。下式为非线性动态的惯性权重的计算的公式: (4) 式中,随着迭代次数的增加而非线性递减,使算法在初期具有较强的全局搜索能力,迅速地在整个搜索空间遍历后,局部搜索能力不断增强,在可能的最优解领域内进行搜索,在提高算法收敛性能的同时有效地避免陷入局部最优。为控制因子,控制和变化曲线的平滑度。可以通过试验调整值以满足实际问题对PSO算法性能的要求。 3 .改进PSO优化神经网络权值 改进PSO算法优化BP神经网络权值问题描述。采用改进PSO训练神经网络时,首先应将BP网络中所有神经元之间的连接权值编码成实数码串来表示一个粒子个体。假设BP网络中包含了M个待优化的权值(包括连接权值和阈值),则每个粒子个体将由M个权值参数组成的一个向量来表示。 初始化粒子群。初始化粒子群的规模、最大迭代次数、粒子个体极值等相关参数,并按照粒子群规模随机产生一定数量的粒子个体。初始化粒子的位置、速度。同时初始化粒子个体极值和粒子群体极值。 粒子群迭代训练神经网络权值及适应度函数。由以上描述可以知道,粒子群中每个个体的分量都映射为BP神经网络的权值,也就是说每个粒子个体都代表了一个神经网络。粒子群的迭代过程就是对BP神经网络权值的优化过程。在BP神经网络的优化过程中,给定的样本空间往往要分为两部分:一部分作为训练样本,称为训练样本集;一部分作为测试样本,称为测试样本集。 粒子群优化神经网络过程中,计算每一个BP神经网络在训练集上产生的均方误差,并以此作为适应度函数,用来计算粒子个体的适应度值。 (5) 其中,为第组输入样本,;为输入样本的第个输出,为为输入样本的第个输出的期望值,。 MPSO-BP算法终止条件。MPSO-BP算法终止条件设定为两个,满足任意一个条件算法即终止:第一个条件是算法到达最大迭代次数;第二个条件是适应度值小于给定的适应度值。 4 .仿真研究 为了说明改进PSO优化BP神经网络权值方法优越性,进行仿真实验,并且与BP算法进行比较。 Hermit多项式逼近 (6) 式(6)为Hermit多项式的数据表达式。为了达到实验的目的,在区间随机采样100个实数值及其对应的函数值作为训练的输出样本,再以0.06为步长在区间采样101个实数值及其对应的函数值作为BP网络的测试样本集。BP网络结构取。因此,待优化的参数为15个,即改进PSO算法中的粒子群的维数为15。粒子数取50,学习因子,惯性权重函数的,最大迭代次数2000,取目标误差。基于Matlab软件的测试结果如下图。 由实验结果明显可以看出,虽然两种算法都没有完全的逼近Hermit曲线,但是从整体的逼近效果来看,改进PSO优化BP神经网络的逼近效果明显优于BP算法,且收敛速度也远远快于BP算法。改进PSO优化BP神经网络算法的分类准确到达93%以上,且收敛速度很快,说明改进PSO优化BP神经网络算法具有较好的性能。 针对BP神经网络算法收敛速度慢、易陷入布局极值的缺点,采用改进PSO算法优化BP神经网络权值。试验结果表明,改进的PSO具有更好的收敛性和更快的速度。 参考文献 【1】韩立群.智能控制理论及应用[M].北京:机械工业出版社,2007.11 【2】曾建潮,介婧,崔志华.微粒群算法[M].北京:科学出版社,2004.05 【3】李丽,牛奔.粒子群优化算法[M].北京:冶金工艺出版社,2009.10 【4】王磊,戚飞虎.进化计算在神经网络学习中的应用[J].计算机工程,1999.11