1、遗传算法在 BP 神经网络优化中的应用 2O 世纪 80 年代后期 ,多机器人协作成为一种新的机器人应用形式日益引起国内外学术界的兴趣与关注。一方面,由于任务的复杂性,在单机器人难以完成任务时,人们希望通过多机器人之间的协调与合作来完成。另一方面,人们也希望通过多机器人间的协调与合作,来提高机器人系统在作业过程中的效率。1943 年,Maeullocu 和 Pitts 融合了生物物理学和数学提出了第一个神经元模型。从这以后,人工神经网络经历了发展、停滞、再发展的过程,时至今日正走向成熟,在广泛领域里得到了应用,其中将人工神经网络技术应用到多机器人协作成为新的研究领域。本文研究通过人工神经网络控
2、制多机器人完成协作搬运的任务-3 J,并应用遗传算法来对神经网络 进行优化。仿真结果表明,经过遗传算法优化后的搬运工作效率显著提高,误差降低。1 人工神经网络 ANN)的基本原理和结构 人工神经网络(Artiifcial Neural Network,ANN) 是抽象、简化与模拟大脑神经结构的计算模型,又称并行分布处理模型 J。ANN 由大量功能简单且具有自适应能力的信息处理单元人工神经元按照大规模并行的方式通过一定的拓扑结构连接而成。ANN 拓扑结构很多,其中采用反向传播(Back-Propa- gation,BP)算法的前馈型神经网络(如下图 1 所示),即 BP 人工神经网络,是人工神经
3、网络中最常用、最成熟的神经网络之一 。BP 网络模型处理信息的基本原理是:输入信号 x;通过中间节点(隐层点 )作用于出节点 ,经过非线形变换,产生输出信 Yk,网络训练的每个样本包括输入向量 x 和期望输出量 T,网络输出值 Y 与期望输出值 T 之间的偏差, 通过调整输入节点与隐层节点的联接强度取值 w;和隐层节点与输出节点之间的联 接强度 Y 以及阈值 ,使误差沿梯度方向下降,经过反复学习训练,确定与最小误差相对应的网络参数 (权值和阈值),训练即告停止。此时经过训练的神经网络即能对类似样本的输入信息,自行处理输出误差最小的经过非线形转换的信息。 2 遗传算法的基本原理和步骤 遗传算法
4、(Geneitc Algoirthm,GA)类似于自然进化,通过作用于染色体上的基因寻找好的染色体来求解问题 J。与自然界相似,遗传算法对求解问题的本身一无所知,它所需要的仅是对算法所产生的每个染色体进行评价,并基于适应值来选择染色体 ,使适应性好的染色体有更多的繁殖机会。在遗传算法中,通过随机方式产生若干个所求解问题的数字编码 ,即染色体,形成初始群体 ;通过适应度函数给每个个体一个数值评价,淘汰低适应度的个体,选择高适应度的个体参加遗传操作,经过遗传操作后的个体集合形成下一代新的种群。对这个新种群进行下一轮进化。这就是遗传算法的基思想。 遗传算法的步骤为 : (1)初始化群体 ; (2)计
5、算群体上每个个体的适应度值 ; (3)按由个体适应度值所决 定 的某个规则选择 将进入下一代的个体; (4)按概率 P。进行交叉操作 ; (5)按概率 P 进行突变操作; (6)没有满足某种停止条件,则转第 (2)步 ,否则 进入第(7)步 ; (7)输出种群中适应度值最优的染色体作为问题的满意解或最优解 。程序的停止条件最简单的有如下两种情况:(1)完成了预先给的进化代数则停止 ;(2)种群中的最 优个体在连续若干代没有改进或平均适应度在连续 若干代基本没有改进时停止。 为了改善 BP 神经网络学习算法易陷入局部极小的缺陷,本文采用遗传算法来优化 BP 神经网络的性能。首先采用遗传算法来优化
6、 BP 神经网络的权值和阈值,然后将这些优化值赋给网络得到优化的 BP 神经网络,最后用仿真数据评估该优化网络的性能。数值仿真结果表明:经遗传算法优化 BP 神经网络能有效地避免原始 BP 神经网络容易出现的局部极小,且具有收敛速度快和精度高等优点。前馈神经网络(BP 模型)是目前神经网络领域研究最多应用最广的网络模型。其非线性逼近能力是它博得青睐的主要原因,而 BP 算法作为前馈网络的主要学习算法,则无可争议的对其推广应用起了举足轻重的促进作用。BP 算法因其简单、易行、计算量小、并行性强等优点,是目前神经网络训练采用最多也是最为成熟的训练算法之一。然而,由 BP 算法是一种梯度下降搜索方法
7、,因而不可避免地存在固有的不足,如易陷入误差函数的局部极值点,而且对于较大搜索空间、多峰值和不可微函数也不能有效搜索到全局极小点,而遗传算法则是克服这一不足的有效解决方法,主要是因为遗传算法是一种全局优化搜索算法,因而能够避开局部极小点,而且在进化过程中也无需提供所要解决问题的梯度信息。 3遗传算法优化 BP 神经网络 1 遗传算法优化 BP 神经网络算法流程 利用遗传算法来训练神经网络的大部分工作是预先固定好网络的拓扑,而后用遗传算法优化神经网络的权重。进化训练方法可分为两个主要步骤:(1)决定网络连接权重的编码方案;(2)用遗传算法完成进化。对于固定的神经网络结构,进化网络连接权重的过程典
8、型地分为以下几个步骤: (1)确定权重编码方案,生成初始群体; (2)解码群体中每个个体,构造出相应的神经网络; (3)根据一定的性能评价准则(如均方差、学习速度等)计算网络适合度; (4)根据适合度大小决定各个个体繁衍后代的概率,完成选种; (5)按照一定的概率,对选种后群体施以遗传算子(如交配、突变等)得到新一代群体; (6)返回(2) ,直至满足性能要求。 2 遗传算法实现 遗传算法优化神经网络是用遗传算法来优化 BP 神经网络的初始权值和阈值,使优化后的 BP 神经网络能够更好的预测输出。遗传算法优化 BP 神经网络的实现步骤如下: (1) 编码方式 神经网络的权值学习是一个复杂的连续
9、参数优化问题,如果采用二进制编码,会造成编码串过长,且需要再解码为实数,使权值变化为步进,影响学习精度。本文采用实数编码,神经网络的各个权值按照一定的顺序级联为一个长串,串上的每一个位置对应着网络的一个权值。编码串的顺序按照从输入到输出的顺序排列。 (2) 适应度函数计算 将个体上表示的各连接权值按照对应方式分配到给定的网络结构中,网络以训练集样本为输入输出,运行后返回均方差误差 mse,其中最大的 mse,表示为 msemax。则个体适应度值 F,计算公式为 式中,mse 为网络的均方误差;Nsample 为训练样本总数;Y 为网络输出;y 为样本实际输出;当 F 在一定程度上接近 1 时,
10、即被认为达到网络的精度要求。(3) 初始化过程 网络的各权值按照下式随机确定: 在 BP 算法中,初始权值一般取(-1.0,+1.0)均匀分布的随机数。 (4) 选择操作 遗传算法选择操作有轮盘赌法、锦标赛法等多种方法,本文选择轮盘赌法,即基于适应度比例的选择策略,每个个体 i 的选择概率 pi 为式中,Fi 为个体 i 的适应度值,由于适应度值越小越好,所以在个体选择前对适应度值求倒数;k 为系数;N 为种群个体数目。 (5) 交叉操作 由于个体采用实数编码,所以交叉操作方法采用实数交叉法,第 k 个染色体 ak 和第 l 个染色体 ai 在 j 位的交叉操作方法如下: 式中,b 是0,1间
11、的随机数。 (6) 变异操作 选取第 i 个个体的第 j 个基因 aij 进行变异,变异操作方法如下:式中,amax 为基因 aij 的上界;amin 为基因 aij 的下届;f(g)=r2(1-g/Gmax);r2 为一个随机数;g 为当前迭代次数;Gmax 是最大进化次数;r 为0,1间的随机数。 3仿真实例 我们选取了神经网络应用比较广泛的函数逼近来验证算法的可行性及有效性,选取下面的函数作为仿真对象:用单一的梯度下降法或者遗传算法只能以较低的精度来逼近,如果要提高逼近的精度,梯度下降法很容易陷入局部极小值,遗传算法能够迅速收敛到精度误差最优点的邻域内,实现最终收敛比较困难。本文分别采用
12、梯度下降法 BP 神经网络和本文提出的混合算法神经网络来逼近此函数,遗传算法优化得到的 BP 神经网络最优初始权值和阈值如表 1 所示,遗传算法优化得到的 BP 神经网络最优个体适应度值如图 1 所示,把初始权值和阈值赋给神经网络,用训练数据训练 100 次后预测函数输出,未优化的网络预测误差和优化后的网络预测误差对比曲线如图 2 所示。 从图 2 可以看出,遗传算法优化的 BP 网络预测更加精确,并且遗传算法优化 BP 网络的均方差为 5.380610-5,而未优化的 BP 网络的均方误差为 1.887610-4,预测均方误差也得到了很大的改善。 4结论 为了改善 BP 神经网络学习算法易陷入局部极小的缺陷,结合遗传算法和梯度下降法,本文提出了一种新的神经网络学习训练算法。该算法能够充分发挥两种算法的优点,有效地避免了局部极小,同时能以较快的速度收敛到神经网络权值学习的目标精度。仿真研究表明,该算法能够有效解决神经网络训练中的局部极小问题,且预测均方误差也得到了比较大的改善。然而,遗传算法的不足也是显而易见的,一方面,当遗传搜索迅速找到最优解附近时,无法精确地确定最优解的位置,也就是说,它在局部搜索空间不具备微调的能力;另一方面,如何选取遗传算法的参数才能得到最优结果。