logo资料库

遗传算法与BP神经网络.doc

第1页 / 共13页
第2页 / 共13页
第3页 / 共13页
第4页 / 共13页
第5页 / 共13页
第6页 / 共13页
第7页 / 共13页
第8页 / 共13页
资料共13页,剩余部分请下载后查看
遗传算法优化BP神经网络
引言
1. 传统BP神经网络与遗传算法简介
1.1 BP神经网络
1.2遗传算法
2.遗传算法优化BP神经网络的方法
2.1遗传算法优化BP神经网络的连接权值
2.2遗传算法优化BP神经网络结构
2.3遗传算法同时优化BP神经网络结构和连接权值
3.应用案例
3.1遗传算法同时优化网络权值、阈值及网络拓扑结构
3.2遗传算法优化BP网络的权值阈值——非线性函数拟合
4.国内外研究现状
参考文献:
遗传算法优化 BP 神经网络 引言 BP 神经网络有许多优点:能逼近任意复杂的非线性关系;有并行计算存储 能力;定量定性的信息可以存储在连接权中,有很强的容错性;对不确定的系统 有自学习自适应能力等。并且对于对象机理不清楚,神经网络只需根据对象的输 入输出进行学习,逼近系统性能的黑箱特性。所以神经网络有广泛的应用。 由于 BP 神经网络存在收敛速度慢;局部极值和难以确定隐层和隐节点的个 数等缺点,随着智能技术的不断发展,将 BP 神经网络与模糊技术、遗传算法、 专家系统等多种先进的技术相融合,为人来在更多复杂未知领域提供了解决问题 的有效途径。 本文研究用遗传算法优化 BP 神经网络,既可以用遗传算法优化神经网络的 连接权值,又可以优化神经网络的拓扑结构,还可以用遗传算法同时优化 BP 神 经网络的权值、阈值和网路拓扑结构。传统 BP 神经网络的权值通过梯度下降来 求最佳值,易陷入局部最优。而 BP 神经网络的拓扑结构,从原理上,只要有足 够多的隐层和隐节点,即可实现复杂的映射关系,但是如何根据特定的问题来具 体确定网络的结构尚无很好的方法,仍需要凭借经验和试凑。由于遗传算法具有 优化对象模型无关性、鲁棒性强、随机性、全局性以及适用并行处理等优点,能 够快速优化网络结构和网络连接权值。 1. 传统 BP 神经网络与遗传算法简介 1.1 BP 神经网络 1986 年 D.E. Rumelhart 和 J.L.McClelland 提出了一种利用误差反向传播训 练算法的神经网络,简称 BP(Back Propagation)网络,是一种有隐含层的多层前 馈网络,系统地解决了多层网络中隐含单元连接权的学习问题。
BP 网络能学习和存贮大量的输入—输出模式映射关系,而无需事前揭示描 述这种映射关系的数学方程。它的学习规则是使用最速下降法,通过反向传播来 不断调整网络的权值和阈值,使网络的误差平方和最小。 BP 神经网络主要用于:模式识别与分类:用于语言、文字、图像的识别, 医学特征的分类和诊断等;函数逼近:用于非线性控制系统的建模、机器人的轨 迹控制及其他工业控制等;数据压缩:编码压缩和恢复,图像数据的压缩和存储, 以及图像特征的抽取等。 BP 网络主要优点:只要有足够多的隐层和隐节点,BP 网络可以逼近任意的 非线性映射关系;BP 网络的学习算法属于全局逼近的方法,因而它具有较好的 泛化能力。它的主要缺点是:收敛速度慢;局部极值;难以确定隐层和隐节点的 个数。 BP 学习算法的基本原理是梯度最速下降法,中心思想是调整权值使网络总误 差最小,也就是采用梯度搜索技术,以期使网络的实际输出值与期望输出值的误 差均方值为最小。网络学习过程是一种误差边向后传播边修正权系数的过程。 BP (Back Propagation)神经网络,即误差反传误差反向传播算法的学习过程, 由信息的正向传播和误差的反向传播两个过程组成。在正向传播过程中,输入信 息从输入层经隐含层逐层处理,并传向输出层,每一层神经元的状态只影响下一 层神经元的状态。如果在输出层不能得到期望输出,则转入反向传播,将误差信 号沿原来的连接通道返回,通过修改各层神经元的权值,网络输出的误差减少到 可以接受的程度,或者预先设定的学习次数为止。 1.2 遗传算法 遗传算法(Genetic Algorithm)是一类借鉴生物界的进化规律(适者生存, 优胜劣汰遗传机制)演化而来的随机化搜索方法(随机寻优)。它是由美国的 J.Holland 教授 1975 年首先提出,其主要特点是直接对结构对象进行操作,不存 在求导和函数连续性的限定;具有内在的隐并行性和更好的全局寻优能力;采用 概率化的寻优方法,能自动获取和指导优化的搜索空间,自适应地调整搜索方向, 不需要确定的规则。遗传算法的这些性质,已被人们广泛地应用于组合优化、机 器学习、信号处理、自适应控制和人工生命等领域。
遗传算法的处理过程如下图 图 1:遗传算法步骤 遗传算法的特点(1)遗传算法从问题解的串集开始搜索,而不是从单个解 开始, 覆盖面大,利于全局择优 。(2)遗传算法同时处理群体中的多个个体, 即对搜索空间中的多个解进行评估,减少了陷入局部最优解的风险,同时算法本 身易于实现并行化 。(3)遗传算法基本上不用搜索空间的知识或其它辅助信息, 而仅用适应度函数值来评估个体,在此基础上进行遗传操作。适应度函数不仅不 受连续可微的约束,而且其定义域可以任意设定。这一特点使得遗传算法的应用 范围大大扩展。 (4)遗传算法不是采用确定性规则,而是采用概率的变迁规则 来指导他的搜索方向。 具有自组织、自适应和自学习性。遗传算法利用进化过 程获得的信息自行组织搜索时,适应度大的个体具有较高的生存概率,并获得更 适应环境的基因结构。 2.遗传算法优化 BP 神经网络的方法 用遗传算法优化 BP 神经网络,既可以用遗传算法优化神经网络的连接权值, 又可以优化神经网络的拓扑结构,遗传算法还可以同时优化 BP 神经网络的权值、 阈值和网络拓扑结构。
2.1 遗传算法优化 BP 神经网络的连接权值 优点 遗传算法 表 1:遗传算法与 BP 算法的比较 BP 算法 ①当容易获取梯度信息时,BP 算法目标明确,优化速度更快。 ②BP 算法结果依赖于初始状态; ③用于局部搜索时,更有效 ①可以在复杂、多峰、非线性和不可 微的空间实现全局搜索; ②不需考虑误差函数是否可微,只需 增加惩罚项,以提高优化的灵活性, 降低网络的复杂性 ③擅长全局搜索 根据以上的分析,有两种优化 BP 神经网络的方法,一是:只用遗传算法优 化神经网络连接权值[见文献 1];二是:将基于遗传算法的权重优化和 BP 训练 方法相结合的混合优化 BP 网络连接权值。一般情况下,混合优化效果更好。 1.只用遗传算法优化神经网络连接权值的过程如下: (1)随机产生一组权值和神经元阈值分布,并进行编码,作为初始种群个 体。(在网络结构和学习规则已定的前提下,一个个体编码码链就对应一个权值 和阈值确定的神经网络。) (2)对该神经网络计算学习样本的误差,根据总误差确定该个体的适应度, 误差越大,适应度就越小。 (3)在旧种群中根据适应度选择个体,作为父代参与交叉、变异,少数作 为精英直接复制遗传到下一代种群。 (4)利用交叉和变异等遗传操作算子对选择的个体进行处理,产生下一代 种群。 (5)重复(2)(3)(4),不断进化,直到训练目标得到满足为止。 2.混合优化对 BP 神经网络权值优化过程如下: (1)先用遗传算法对初始权值分布进行优化,在解空间中定位出一个较好 的搜索点。 (2)再采用 BP 算法,从这个较好的搜索点出发,按梯度搜索出最优解。 2.2 遗传算法优化 BP 神经网络结构 网络结构包括网络的连接方式和节点转换函数两部分。一个好的网络结构不
仅对训练样本的误差小,而且泛化性能强,对测试样本精度也高。而目前,对 BP 神经网络的结构设计,基本依赖人的经验,或者预先确定,或者采用递增或 递减的探测方法。而用遗传算法可以很好地解决这一问题。 遗传算法优化 BP 神经网络结构步骤如下: (1)随机产生 N 个神经网络结构,对每个结构编码,每个编码个体对应一 个结构。 (2)用许多不同的初始权值分布对个体集中的结构进行训练; (3)根据训练的结果或其他策略确定个体的适应度 (4)根据适应度选择个体作为父代,参与交叉、变异,少数作为精英直接 复制遗传到下一代种群。 (5)利用交叉和变异等遗传操作算子对选择的个体进行处理,产生下一代 种群。 (6)重复(2)—(5)直到最佳个体的适应度能满足要求为止,该个体对 应的优化网络就是优化后的最佳 BP 网络结构。 2.3 遗传算法同时优化 BP 神经网络结构和连接权值 BP 神经网络的网络结构和连接权值是强耦合的,单独优化一个变量难 以得到 BP 神经网络的总体最佳性能。故提出了多种同时优化方案,这里介 绍一种从复杂网络结构开始进行优化,具体注意点如下。 (1)个体编码只针对网络权值,某些权值优化为零来使某些连接退化, 甚至某些神经元退化消失。 (2)适应度函数不仅考虑训练误差的大小,还考虑连接权值为零的价 值。当连接权值为零时,可简化网络结构,使 BP 神经网络的泛化性能提高。 3.应用案例 本节给出两个案例,案例一:用遗传算法同时优化 BP 神经网络的拓扑结构 及权值阈值的具体方法;案例二:用遗传算法优化 BP 神经网络的权值阈值,并 对非线性函数进行拟合实例。
3.1 遗传算法同时优化网络权值、阈值及网络拓扑结构 采用三层 BP 神经网络,用遗传算法对其结构(指网络隐层节点数)以及权值、 阈值进行优化,使网络节点数最佳,同时权值、阈值落在全局最优区域. 用遗传算法同时优化 BP 神经网络的权值、阈值及网络结构,有以下难点: (1)将 BP 神经网络的拓扑结构及权值阈值转换为合适的染色体编码;(2)隐 层节点数的数量的不同,产生不同的物种,初始种群如何产生;(3)适应度函数 如何选择;(4)同一物种、不同物种如何进行选择、交叉和变异。 遗传算法优化 BP 神经网络结构及权值、阈值的步骤 (1)设置总迭代次数T ,交叉概率,变异概率,种群大小 M ,设置当 前迭代次数 0t ;随机生成 M 个个体,每个个体的第一个等位基因 k 表示隐含 层节点数, [k  NN  i  ,1 o NN  i  ]10 o , iN 是输入层节点数, oN 是输出层 节点数;选择激活函数,设置参数 c ,根据适应度函数计算每个个体的适应度值。 (2)用轮盘赌法选择个体,并进行交叉、变异产生下一代 (3)计算该后代种群各个个体的适应度。若最高适应度达到要求,或达到 最大迭代次数,算法停止;否则返回(2),直到达到最高适应度达到要求,或达 到最大迭代次数。 (4)输出适应度值最高的个体,若有多个适应度值相同的个体,则选择染 色体长度最短的个体(即隐含层节点数最少的个体)作为输出。 3.1.1 染色体编码 文献[2],给出了一种能和网络拓扑结构一一对应的、合适的染色体编码方 法。对 BP 神经网络拓扑结构(指网络隐层节点数)以及权值、阈值进行优化,使 网络节点数最佳,权值、阈值落在全局最优区域。BP 神经网络输入层节点数及 输出层节点数都已确定,其隐层节点数不确定。网络对应的染色体具体编码方式 为:两隐层节点阈值之间的等位基因表示前一隐层节点与输入层之间连接权值, 权值为 0 表示无连接.输出层节点也是如此.对应图如下:
图 2:染色体编码与 BP 网络结构的对应关系 3.1.2 初始物种生成 在网络输入层和输出层节点数确定的情况下,将隐层节点数相同而权值和阈 值不同的网络看作同一物种,仅将隐层节点数不相等的网络看作不同物种.在网 络训练中,形成一种或几种物种,物种竞争,优胜劣汰。 根据经验公式 N h  NN  i ,  ll ]10,1[ o ,随机生成正整数 k,使得 [k  NN  i  ,1 o NN  i  ]10 o ,其中 k 是隐含层节点数, iN 是输入层节点数, oN 是输出层节点数。则随机生成的一个实数序列长度(除隐层节点数)N 可由 以下公式计算得, N  ( NN  i k)1  N o o ,则随机生成的实数序列为: A  [ , aa 1 2  a n ]{ 1  a i  |1 i  1  } n ,将隐层节点数 k 加入该实数序列,则得到 初始种群个体的染色体编码为: 3.1.3 适应度函数 ,[x , aak  1  na ] 2
网络性能评价函数 ( Xf ) i _ sum e i   s i 1   c ,此公式中 iX 是单个个体, sums 是样 本总数, ie 指单个样本网络输出误差平方, c 是常数,且 0  c 。则令适应度函 1 数为 (it XF ) i  1 ( Xf ) i ,当 F 3.1.4 交叉 it  时,个体适应度值达到最大,此个体最优。 1 c 因为隐含层节点数的不同,种群个体中有同一物种,也有不同物种,故对种 群中个体间的交叉,需区分同一物种间交叉和不同物种间交叉来讨论。 一:同一物种间交叉 设交叉的两个父代个体染色体编码分别为 Ax , Bx ,并进行交叉运算产生下 一代个体染色体编码分别是 ' Ax , ' Bx ,则有 x ' A  x  B 1(  )  x A , x ' B  x  A 1(  )  x B , 其中自适应参数  1 fav  1( c  f max ) ,该式中, avf 为个体平均适应度值, max f 为两个个体中适应度函数值较大的。随着个体适应度增大而减小。适应度值大 的个体在较小的范围内进行搜索,避免搜索的波动性,保护适应度值大的个体, 加快算法的搜索速度。 二:不同物种间交叉 设交叉的两个父代个体染色体编码为 AY , AX ,长度为 YL , XL ,且设 L  ,交叉后产生的新的后代为 ' Y AY , ' AX ,且它们各自的长度与父代相同。 L X 具体交叉方法为,从个体 AX 中随机取 1YL 个等位基因(除首个等位基因即 隐含层节点数外)与 AY 中(除首个等位基因即隐含层节点数外)的剩余基因序 列互换,则得到新的后代个体染色体 ' AY , ' AX 。 3.1.5 变异 当变异操作时,令首个等位基因(即隐含层节点数)不发生变异。采用动态 单点变异,个体 ,[x , aak  1  na ] , ka 发生变异,则变异后的基因 ' ka 为 2
分享到:
收藏