粒子群优化算法在计算机神经网络中的应用

2013-09-13 02:30玲,范平,闻
电子测试 2013年17期
关键词:粒子神经网络速度

丁 玲,范 平,闻 彬

(湖北科技学院计算机科学与技术学院 421009)

0 引言

最优化问题就是从所有的解决方案中选取最合理的方案,达到国民经济、学科技术等领域,小到人们的日常生活等各个问题,均涉及到优化选择。粒子群优化算法又称为粒子群算法、微粒群算法、微粒群优化算法,是一种新型的优化计算技术。这种技术是由Eberhart博士和Kennedy博士通过模拟鸟群进食行为而提出的一种随机搜索的算法。通过对每个随机值进行搜索和比较可以得到最优答案,因而粒子群优化算法可以用于解决优化的问题。因为这种算法具有全局优化的特点,所以被广泛的用于函数优化和计算机神经网络等领域中。目前,国内对于粒子群优化算法的研究尚处于发展阶段,今后还有很多工作要逐步展开。本文将针对现有的研究,对粒子群优化算法的产生和发展以及其在神经网络中的应用进行论述,同时对粒子群优化算法的未来发展趋势进行展望。

1 粒子群优化算法的产生与发展

无论实际的生活还是科学研究,经常都会遇到一个问题有多个解决方案,需要从这些解决方案中寻求最合理的解决方案的情况。最经典的案例莫过于工程经济学中的资源分配问题了,如何让合理的分配有限的资源已选求最大的利益。对于这类问题可以通过数学建模的方法,通过转化为约定条件下,找出对应参数值的函数来解决问题,这就是通常所说的优化。对问题进行优化研究一直以来都是数学和工程经济学领域的研究热点,其研究算法也得到了不断的发展。随着研究的进行,配方法、数形结合法、不等式法等优化算法相继被人们所提出,但是这些优化算法均带有一定的局限性,只对特定的优化问题有效。不过导数的问世又给优化问题带了新的解决办法,研究者发现通过对导函数进行求解也可以解决优化问题。但是这种求导的解决方法也有一个很大的缺陷就是导函数只能对一些简单的并且满足一定条件的问题进行优化,对于复杂问题的优化就需要悍匪很大的精力和时间,因此,实际运用并不是很理想。

就在研究者走投无路的时候,数值算法应运而生。所谓数值算法就是通过设定一个初始值,根据优化问题的限制条件进行反复的迭代,最终得到优化问题的解的算法。随着科技的不断发展,模拟生物群体的行为特征也被应用到数值算法中。模拟生物的数值算法的迭代过程一般都很简单,只是迭代的次数比较大。随着计算机技术的飞速发展和不断普及,计算机的快速工作性为这类多次迭代的工作提供了保障。模拟生物算法包括蚁群算法和粒子群算法,粒子群算法最初是为了图形化地模拟鸟群优美而不可测的运动。研究者通过对鸟群运动的计算机仿真,发现通过对每个鸟运动轨迹的搜索和比较,最终可以得到鸟群的最优路径选,而这一发现正好适用于日常生活中的优化问题。

2 粒子群优化算法的基本原理

粒子群优化算法不同于遗传算法的个体选择,而是将整个群体中的每一个个体视为一个个微粒,这些微粒都具有各自的特性(包括地理方位、运行速度、本身的飞行经验等),通过对每个选择路径进行不断的调整,最终得出最优的选择路径。

设想这样一个场景:一群鸟在随机的搜索食物。在这个区域里只有一块食物,所有的鸟都不知道食物在那。但是它们知道自己当前的位置距离食物还有多远。那么找到食物的最优策略是什么?最简单有效的就是搜寻目前离食物最近的鸟的周围区域。鸟被抽象为没有质量和体积的微粒(点),并延伸到N维空间,粒子I 在N维空间的位置表示为矢量。

Xi=(x1,x2,…,xn),飞行速度表示为矢量Vi=(v1,v2,…,vn),每个粒子都有一个由目标函数决定的适应值(fitness value);并且知道自己到目前为止发现的最好位置(pbest) ;除此之外,每个粒子还知道到目前为止整个群体中所有粒子发现的最好位置(gbest)

在式(1)、(2)中,i=1,2,…,M,M是该群体中粒子的总数。

粒子怎么样到达下一步的运动? 在找到这两个最优值后,粒子通过下面的公式来更新自己的速度和位置。Vi 是粒子的速度;pbest和gbest如前定义;rand()是介于(0、1)之间的随机数; Xi 是粒子的当前位置;c1和c2是学习因子,通常取c1= c2=2;在每一维,粒子都有一个最大限制速度Vmax,如果某一维的速度超过设定的值,那么这一维的速度就被限定为 Vmax 。( Vmax >0)

其中,Vi 是粒子的速度;pbest和gbest如前定义;rand()是介于(0、1)之间的随机数;Xi 是粒子的当前位置;c1和c2是学习因子,通常取c1= c2=2;在每一维,粒子都有一个最大限制速度Vmax,如果某一维的速度超过设定的值,那么这一维的速度就被限定为Vmax 。

从社会学的角度来看,公式(1)的第一部分称为记忆项,表示上次速度大小和方向的影响;公式第二部分称为自身认知项,是从当前点指向粒子自身最好点的一个矢量,表示粒子的动作来源于自己经验的分;公式的第三部分称为群体认知项,是一个从当前点指向种群最好点的矢量,反映了粒子间的协同合作和知识共享。粒子就是通过自己的经验和同伴中最好的经验来决定下一步的运动。以上面两个公式为基础,形成了后来PSO 的标准形式。

1998年shi等人在进化计算的国际会议上发表了一篇论文《A modified particle swarm optimizer》对前面的公式(1)进行了修正。引入惯性权重因子。

W为非负数,称为惯性因子;公式(2)和(3)是一直被沿用到现在的标准的粒子群优化算法公式。

3 粒子群优化算法在神经网络中的应用

现代生活中很多地方军涉及到优化选择问题,传统的优化方法都有很大的局限性,因此有必要进一步扩大粒子群优化算法在各个工程项目中的应用,本段接下来将对粒子群优化算法在计算机神经网络中的应用进行论述。

计算机神经网络是模拟大脑的思维能力,进行各种数据处理的数学模型。神经网络计算机除了具有许多处理器之外,还有许多类似人脑神经的节点,并且每个节点之间按照一定的规律进行连接。如果将处理的过程细分为一个个微程序并交给处理器进行处理,这样所有的微程序同时工作起来就像一条流水线进行迭代的工作,计算机的信息处理速度也会大大提高。粒子群优化算法在计算机神经网络中的应用包括神经网路训练、参数优化、组合优化等方面。粒子群优化算法在计算机神经网络中的应用主要包括链接权重、网络拓扑结构和传递函数、学习算法三个方面。通过将个体视为微粒(包括神经网络中所使用到的参数),经过一系列重复的工序,最终达到预期的训练结果。传统的神经训练一般使用的是BP算法,但是这种算法需要使用梯度信息和可微的函数,并且运行效率相比而言也较低。

粒子群优化算法在参数优化中的应用,主要是指用于各种离散性的问题(包括信号处理、路径规划、模式匹配等)。粒子群优化算法在组合优化中的应用最典型的莫过于在工程经济问题中的应用。工程经济学的目的就在于合理的组合各种资源从而达到经济效益最大化。对于这种有序性和有约束条件的组合问题就可以使用粒子群优化算法,通过不断的尝试最终得到最优的解决方案。粒子群优化算法除了应用于上述三个方面外,在其他的领域,像是电力系统、计算机辅助设计、游戏开发、软件编程等各个领域均有所应用,这里就不一一细说了。

4 粒子群优化算法的发展趋势

粒子群优化算法的研究目前在国内还处于一个初始阶段,其未来还有很长的一段路要走。从最初的求解简单的优化问题到现在的稍微复杂的问题,粒子群优化算法的发展趋势主要表现在以下几个方面:①逐步用于求解带有约束性的优化问题,像是求解各种几何问题;②用于求解随机性问题,像是对于汽车的随机路径问题的求解等;③用于最优控制问题的解决,例如对于航天器的太阳板在伸展过程中,航天器运动的最优控制问题;④多目标化问题,这类问题主要是针对水文等问题进行求解。随着粒子群优化算法对于复杂问题的求解,其改进也变得越来越精细。任何算法的研究不能仅限于对原有的研究成果的改进和应用,更多应该在于能够从改进达到技术的成熟和扩展,最好能够再进一步改进的基础上研发出更为完善的技术。粒子群优化算法作为一种数值算法,其收敛性分析将是未来的一个研究热点。粒子群优化算法的收敛性分析就是进一步对最优解进行分析,分析其是否真是问题的最优解,因为一般情况下得到的解是人们理想中的解决方案,但并非真正意义上的最优解。目前对于粒子群优化算法的收敛性分析的研究已经收到部分学者的关心,但是目前的研究结果只能说明通过粒子群优化算法所得到的解是否是最优解,但是并不能进行证明。因此,如何能够证明粒子群优化算法是收敛到优化问题的最优解将是未来的一个发展热点。

5 结束语

粒子群优化算法是一类新兴的群智能优化算法,该种方法实现简单并且具有全局优化的优势,因此被应用到各种优化问题中。本文对粒子群优化算法的产生、发展、原理以及其在计算机神经网络中的应用进行了详细的阐述,并在最后指出了其今后的研究热点。相信在广大学者的不懈研究下,粒子群优化算法将被更为广泛的应用到各种优化问题中。

[1]杨维,李歧强;粒子群优化算法综述[J];中国工程科学 ,2004

[2]李爱国,覃征,鲍复民;粒子群优化算法[J ];计算机工程应用,2002

猜你喜欢
粒子神经网络速度
行驶速度
速度
神经网络抑制无线通信干扰探究
Conduit necrosis following esophagectomy:An up-to-date literature review
基于粒子群优化的桥式起重机模糊PID控制
基于粒子群优化极点配置的空燃比输出反馈控制
比速度更速度——“光脑”来了
基于神经网络的拉矫机控制模型建立
复数神经网络在基于WiFi的室内LBS应用
基于支持向量机回归和RBF神经网络的PID整定