基于改进蚁群优化算法的神经网络训练的研究摘要在基本的蚁群优化算法原理和结构上,对它进行了改进,将离散的信息素分布矩阵改进为连续的信息素分布函数,并将改进后的蚁群算法引入到神经网络的训练中,提出了改进的蚁群算法训练神经网络的基本原理和步骤,该算法不仅克服了传统bp神经网络算法的不足,而且使得新算法同时具有蚁群算法的全局快速寻优能力和神经网络的广泛映射能力。
并通过实例验证了该算法的快速性和有效性。
关键词蚁群优化算法神经网络信息素分布函数
中图分类号:th183 文献标志码:a
20世纪90年代初,意大利学者dorigo、maniezzo首先提出了一种新的模拟进化算法—蚁群算法,基本的蚁群优化算法,主要用于离散的参数优化问题,并已经成功的解决了tsp,vrp,qap,jsp 等一些列困难的组合优化问题。
而神经网络的的训练是典型的连续优化问题,本文在分析基本的蚁群优化算法特点的基础上,提出一种新的信息素分布方式及其概率分布函数,将蚁群算法成功的延伸到连续优化的范畴,并且建立了蚁群优化算法训练神经网络的基本模型,克服了传统bp算法的不足,同时使得该算法同时具有蚁群算法的快速全局寻优能力和神经网络的广泛映射能力。
一、改进的蚁群算法训练神经网络
(一)优化模型。
常规的神经网络是属于连续性优化的范畴,其优化的目的是从
每一个的参数的取值范围中选取一个具体的值,使得神经网络的输出误差,满足误差条件。
本文用于连续优化的模型与组合优化相似,只是其解空间从离散变量变成了连续变量的组合。
图1比较直观地表达了蚂蚁觅食时路径的选择。
其中m表示蚂蚁的个数,依次从n个连续的取值范围内选取一个值,组成自己的解sj,其中xji表示蚂蚁在个元素的取值范围内所选取的具体值。
每一个蚂蚁在信息素的影响作用下,依照概率原则,构建一组的完整的解。
通过蚂蚁间的团体协作,构建一个全局最优解。
(二)改进的蚁群优化算法。
1、信息素的分布。
理想化的状态下,蚂蚁对信息素的感知力不受左右两侧信息素浓度的影响,但在实际生活中,这种影响是无法避免的,并且路径两侧的蚂蚁对该信息素的感知会随着距离的增大而减弱,而且关于信息素的散发点是对称的。
在此模型中考虑这种因素,可以克服常规蚁群算法易陷入局部最优,以及解空间搜索不够的缺点。
通过比较不难发现,这种信息素的分布类似于正态分布,因此可以选择用正态分布函数来表达信息素的分布函数:
(1)
其中为随即变量的方差,可以通过控制的大小来控制该路径上信息素对周围区域的影响程度。
图2比较形象的表达了信息素的分布形状与的关系:
u=0,分别取1/2,1,2。
图2
正态分布函数只是决定了信息的分布形状,反映了某一路径上的信息素对两侧各路径上蚂蚁的影响,蚂蚁在选择路径时会根据解的质量散发出不同浓度的信息素,依据神经网络的优化特点,这里采用输出误差来描述解的质量的比较合适,即释放出的信息素与解的误差成反比,可以得出第j只蚂蚁在所选取的路径上所散发的信息素为:
(2)
上式中,h为一个常数;t为样本的数量;e(l)为输出误差。
因为所得到的最优解是针对所有样本的,因此输出误差应取为所有样本的误差绝对值之和。
将上式中信息素分布的峰值与函数的形状结合,可得到第j只蚂蚁在第i参数上散发的信息素浓度公式为:(3)
式中,xji为第j只蚂蚁在第i个参数的取值范围内选取的具体值。
每一只都会在自己所选取的待优化的参数上散发信息素,所有的蚂蚁散发完信息素之后,对每一个参数在其整个取值范围内进行求和,可以得出每一个参数上的信息素浓度分布函数:(4)
式中,kj为蚂蚁所选取的解的加权系数,该解的质量越高,即最终输出误差越小,则加权系数的值就越大。
2、信息素概率分布函数在蚂蚁选取路径的过程中,每一个参数被选取的几率与该参数上的信息素浓度有关,信息素浓度越大,则被选取的概率越大,反之,则越小,根据上文得出的公式,蚂蚁按照一下概率分布函数,依次选择每一个参数的具体值:(5)该式中,ximin与ximax分别为待选取参数i在其取值范围内的上,下两个极值。
(三)优化算法的流程。
用改进后的蚁群算法优化神经网络的大致过程如下:
(1)建立前向型的神经网络模型,要包括神经网络的层数,每一层的节点数,和每一个待优化的权值的取值范围以及蚂蚁样本;(2)在算法开始,蚂蚁们没有信息素的指导,从各个参数的取值范围内随机的选取一个具体值,从而构建去一条路径;(3)当所有的蚂蚁完成了解的构建之后,输入样本根据式(4)来更新各路径上信息素,并初始化所有蚂蚁的路径;(4)根据公式(5)计算出所有参数的概率分布函数,所有蚂蚁根据该函数,依次从n个参数各自的取值范围内选取一个具体的值,构建出一个完整的解;
重复执行步骤(3)~(5),直到最终输出误差满足终止条件。
二、实验验证及结果分析
为了更加直观的验证该算法的有效性,在这里我们用已知非线性函数y=3x2e-x对算法进行验证,而神经网络的结构,我们采用三层前向式神经网络,共包括输入层,隐含层,输出层,三者各有1,10,1个节点。
在此实例中,我们利用上述函数表达式,在[0,5]内随机选取50个值作为输入样本,利用该函数在样本上的理论输出值作为输出样本,以该样本的理论输出值与神经网络的实际输出值之差的绝对值,作为需要优化的目标函数。
在这里,输出层的激励函数采用线性函数:
f(x) = x
隐含层的激励函数采用sigmoid函数:
f(x) = (1-e-x)/(1+e-x)
因此,待优化的权值共有31个,其取值范围为[-2,2]。
在此实例中,蚂蚁的个数设定为31个,经过蚂蚁间的协作寻优,对神经网络的权值不断优化,样本的平均误差很快达到了0.00033。
通过该实例可以总结出,只要有足够多可以利用的,并且具有代表性的样本,该改进后的算法可以用来表达任何的非线性函数。
同时,也可以通过修改蚂蚁的个数和样本的数量来控制该算法的鲁棒性跟其收敛速度,蚂蚁与样本的数量越大,该算法的鲁棒性就越强,但收敛速度就比较慢;反之,蚂蚁样本的数量越小,该算法的鲁棒性就越差,但是收敛速度较快。
三、结论
1、本文针对传统的蚁群优化算法主要用于组合优化的特点,将它进行了改进,将离散的信息素矩阵与概率矩阵延伸为连续的信息素分布函数与信息素概率分布函数,使得该算法可以应用至连续优化的范畴,与其他算法相比,该优化算法简单易懂,容易理解。
2、利用改进后的蚁群算法来训练神经网络的权值,并给出该算法的具体步骤,用实例证明了该算法的可行性与有效性。
3、该算法克服了传统神经网络算法自身的不足,不仅使其具有神经网络的广泛映射能力,还具有了蚁群算法的快速全局寻优能力。
(作者:兰州交通大学机电工程学院在读硕士研究生,研究方向:虚拟仪器,智能交通系统)
参考文献:
[1]dorigo m , gambardella l m . ant colony system : a cooperative learning approach to the traveling salesman problem.ieee p.1997(1):53-66.
[2]杨勇,宋晓峰等.蚁群算法求解连续空间优化问题.控制与决策,2003,18(5):573-576.
[3]张国立,王晶等.利用蚁群算法优化前向神经网络.电子商务,2005(18):65-67.
[4]汪镭,吴启迪.蚁群算法在连续空间寻优问题求解中的应用.控制与决策,2003,18(1):45-48.
[5]maniezzo v , carbonaro a . an ants heuristic for the frequency assignment problem. futrue generation computer systems,2000,16:927-935.
[6]洪炳熔,金飞虎等.基于蚁群算法的多层前馈神经网络.哈尔滨工业大学学报,2003,35(7):823-825.。