资源描述:
《利用蚁群算法优化前向神经网络》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、利用蚁群算法优化前向神经网络内容摘要:蚁群算法(antcolonyalgorithm,简称ACA)是一种最新提出的新型的寻优策略,本文尝试将蚁群算法用于三层前向神经网络的训练过程,建立了相应的优化模型,进行了实际的编程计算,并与加动量项的BP算法、演化算法以及模拟退火算法进行比较,结果表明该方法具有更好的全局收敛性,以及对初值的不敏感性等特点。 关键词:期货经纪公司综合实力主成分分析聚类分析 人工神经网络(ANN)是大脑及其活动的一个理论化的数学模型,由大量的处理单元(神经元)互连而成的,是神经元联结形式的数学抽象,是一个大规模的非线性自适应模型。人工神经网络具有高
2、速的运算能力,很强的自学习能力、自适应能力和非线性映射能力以及良好的容错性,因而它在模式识别、图像处理、信号及信息处理、系统优化和智能控制等许多领域得到了广泛的应用。 人工神经网络的学习算法可以分为:局部搜索算法,包括误差反传(BP)算法、牛顿法和共轭梯度法等;线性化算法;随机优化算法,包括遗传算法(GA)、演化算法(EA)、模拟退火算法(SA)等。 蚁群算法是一种基于模拟蚂蚁群行为的随机搜索优化算法。虽然单个蚂蚁的能力非常有限,但多个蚂蚁构成的群体具有找到蚁穴与食物之间最短路径的能力,这种能力是靠其在所经过的路径上留下的一种挥发性分泌物(pheromone)来实现的。
3、蚂蚁个体间通过这种信息的交流寻求通向食物的最短路径。已有相关计算实例表明该算法具有良好的收敛速度,且在得到的最优解更接近理论的最优解。 本文尝试将蚁群算法引入到前向神经网络的优化训练中来,建立了基于该算法的前向神经网络训练模型,编制了基于C++语言的优化计算程序,并针对多个实例与多个算法进行了比较分析。 前向神经网络模型 前向人工神经网络具有数层相连的处理单元,连接可从一层中的每个神经元到下一层的所有神经元,且网络中不存在反馈环,是常用的一种人工神经网络模型。在本文中只考虑三层前向网络,且输出层为线性层,隐层神经元的非线性作用函数(激活函数)为双曲线正切函数:
4、 其中输入层神经元把输入网络的数据不做任何处理直接作为该神经元的输出。设输入层神经元的输出为(x1,x2,Λ,xn),隐层神经元的输入为(s1,s2,Λ,sh),隐层神经元的输出为(z1,z2,Λ,zh),输出层神经元的输出为(y1,y2,Λ,ym),则网络的输入-输出为: 其中{(5) 前向神经网络的训练样本集为 A={Xi,Tii=1,2,A,n)} (其中Xi∈Rn,为第i组训练数据的输入,Ti∈Rm为与第i组训练数据的输入对应的期望输出,Tki为输出层第k个神经元的期望输出),设第i组训练数据的输入的实际输出为Yi∈Rm,Yki为输出层第k个神经元
5、的实际输出,则基于该训练样本集的误差函数为 该函数是一个具有多个极小点的非线性函数,则对该前向神经网络的训练过程为调整各个神经元之间的连接权值和阀值{inF(x1,x2,Λ,xn),使得,ai1x1+ai2x2+Λ+ainxn≥bi,i=1,2,Λ,r。这里F为任一非线形函数,约束条件构成Rn上的一个凸包。可以使用不等式变换的方法求得包含这个凸包的最小的n维立方体。设该立方体为 设系统中有m只蚂蚁,我们将解的n个分量看成n个顶点,第i个顶点代表第i个分量,在第i个顶点到第i+1个顶点之间有ki条连线,代表第i个分量的取值可能在ki个不同的子区间。我们记其中第
6、j条连线上在t时刻的信息量为τij(t)。每只蚂蚁要从第1个顶点出发,按照一定的策略选择某一条连线到达第2个顶点,再从第2个顶点出发,…,在到达第n个顶点后,在kn条连线中选取某一条连线到达终点。每个蚂蚁所走过的路径代表一个解的初始方案,它指出解的每一个分量所在的子区间。用pijk(t)表示在t时刻蚂蚁k由城市i转移到城市j的概率,则(式(7)) 为了确定解的具体值,可在各个子区间已有的取值中保存若干个适应度较好的解的相应分量作为候选组,为了加快收敛速度,参考具有变异特征的蚁群算法提出的具有变异特征的蚁群算法,使用遗传操作在候选组中确定新解的相应分量的值。首先可随机在
7、候选组中选择两个值,然后对他们实行交叉变换、变异变换,以得到新值作为解的相应分量。该候选组中的值在动态的更新,一旦有一个更好的解的分量在该子区间中,就用这个值替换其中的较差者。 在m只蚂蚁得到m个解后,要对它们进行评估,本人使用Lagrange函数作为评估解的优劣的适应度函数,否则要对每个解进行合法性检查并去除其中的不合法解。然后要根据适应度函数值更新各条边上的信息量。要根据下式对各路径上的信息量作更新: Δτijk表示蚂蚁k在本次循环中在城市i和j之间留下的信息量。 重复这样的迭代过程,直至满足停止条件