数模论坛

 找回密码
 注-册-帐-号
搜索
热搜: 活动 交友 discuz
查看: 81318|回复: 105

遗传算法介绍

[复制链接]
b
发表于 2004-5-28 03:51:25 | 显示全部楼层 |阅读模式
<><b><FONT size=5>遗传算法介绍</FONT></b></P>
<>遗传算法是模拟达尔文的自然选择学说和自然界的生物进化过程的一种计算模型。它采用简单的编码技术来表示各种复杂的结构,并通过对一组编码表示进行简单的遗传操作和优胜劣汰的自然选择来指导学习和确定搜索的方向。遗传算法的操作对象是一群二进制串(称为染色体、个体),即种群。这里每一个染色体都对应问题的一个解。从初始种群出发,采用基于适应值比例的选择策略在当前种群中选择个体,使用杂交和变异来产生下一代种群。如此模仿生命的进化一代代演化下去,直到满足期望的终止条件为止。

一般应用于在一个问题的解集中查找最优解情况
如是一个问题有多个答案,但是想查找一个最优答案的话
那么使用遗传算法可以达到更快更好的效果

基于遗传算法的人工神经网络的应用综述

 文绍纯  罗飞 付连续 莫鸿强


                      (华南理工大学电子与信息学院 广州,510640)  

  
    摘 要:本文介绍了一种新型的、随机性的全局优化方法———遗传算法,系统地讨论了基于遗传算法的人工神经网络的主要应用,并给出了大量实验数据,实验结果表明遗传算法具有快速学习网络权重的能力,并且能够摆脱局部极点的困扰。
    关键词:遗传算法 人工神网络 学习 权值

0 引 言
    自然界的生物进化是按“适者生存,优胜劣汰”规律进行的,Michigan大学Holland教授根据这一规律于1975年首次提出了遗传算法(GA)[1],其基本思想是力求充分模仿这一自然寻优过程的随机性、鲁棒性和全局性。这是一种新型的全局优化搜索算法,因为其直接对结构对象进行操作,不存在求导和函数连续性的限定,鲁棒性强、随机性、全局性以及适于并行处理,已广泛应用于神经网络、计算机科学、优化调度、运输问题、组合优化、机器学习、信号处理、自适应控制和人工生命等领域,并且遗传算法在实际应用中也取得了巨大成功。
    遗传算法用于神经网络主要是用遗传算法学习神经网络的权重和学习神经网络的拓朴结构,而最主要的是学习神经网络的权重,也就是用遗传算法来取代一些传统的学习算法 。评价一个学习算法的标准是:简单性、可塑性和有效性。一般地,简单的算法并不有效,可塑的算法又不简单,而有效的算法则要求算法的专一性、完美性,从而又与算法的可塑性、简单性相冲突。目前广泛研究的前馈网络中采用的是Rumel hart等人推广的误差反向传播(BP)算法,BP算法具有简单和可塑的优点,但是BP算法是基于梯度的方法,这种方法的收敛速度慢,且常受局部极小点的困扰,采用GA则可把神经网络的结构优化和权值学习合并起来一起求解,克服了BP算法的缺陷,是神经网络权值学习的有效方法。但这种方法对计算机的处理能力要求很高,随着计算机技术的不断发展,使得该方法的应用成为可行。
1 人工神经网络和遗传算法的基本原理
1.1 人工神经网络(ANN)
    ANN[2]是对人类大脑的一种物理结构上的模拟,即以计算机仿真的方法,从物理结构上模拟人脑,以使系统具有人脑的某些智能。在众多的ANN模型中,多层前馈神经网络模型是目前应用最为广泛的模型。用反向传播学习算法(简称BP算法)可以实现多层前馈神经网络的训练,BP算法具有简单和可塑性的优点,但是BP算法是基于梯度的方法,这种方法的收敛速度慢,且常受局部极小点的困扰,而采用GA则可克服BP算法的缺陷。
</P>
b
 楼主| 发表于 2004-5-28 03:51:31 | 显示全部楼层
1.2 遗传算法(GA)
    GA[3]以生物进化过程为背景,模拟生物进化的步骤,将繁殖、杂交、变异、竞争和选择等概念引入到算法中,通过维持一组可行解,并通过对可行解的重新组合,改进可行解在多维空间内的移动轨迹或趋向,最终走向最优解。它克服了传统优化方法容易陷入局部极值的缺点,是一种全局优化算法。遗传算法的步骤如下:
(1)定义一个目标函数;

(2)将可行解群体在一定的约束条件下初始化,每一个可行解用一个向量x来编码,称为一条染色体,向量的分量代表基因,它对应可行解的某一决策变量;

(3)计算群体中每条染色体xi(i=1,2,…,n)所对应的目标函数值,并以此计算适应值Fi,按Fi的大小来评价该可行解的好坏;
(4)以优胜劣汰的机制,将适应值差的染色体淘汰掉,对幸存的染色体根据其适应值的好坏,按概率随机选择,进行繁殖,形成新的群体;
(5)通过杂交和变异的操作,产生子代。杂交是随机选择两条染色体(双亲),将某一点或多点的基因互换而产生两个新个体,变异是基因中的某一点或多点发生突变;
(6)对子代群体重复步骤(3)~(5)的操作,进行新一轮遗传进化过程,直到迭代收敛(适应值趋稳定)即找到了最优解或准最优解。

b
 楼主| 发表于 2004-5-28 03:52:09 | 显示全部楼层
2 基于遗传算法的人工神经网络的应用
    基于遗传算法的人工神经网络的应用的基本原理是用遗传算法(GA)对神经网络的连接权值进行优化学习,利用GA的寻优能力来获取最佳权值。
    由于遗传算法具有鲁棒性强、随机性、全局性以及适于并行处理的优点,所以被广泛应用于神经网络中,其中有许多成功的应用。
    李敏强[4]采用了一种改进的遗传算法(MGA),将之应用于人工神经网络中,求解了短期地震预报问题。在改进的MGA中,采用了自适应交叉率和变异率,并且把GA和BP结合起来。文[4]将误差反传算法(BP)和实数编码遗传算法(GA),改进型(MGA)三种算法应用于神经网络短期地震预报中,并给出了三种方法的结果比较。
    其中,网络选用三层BP网络,前一年的最大震级、最大震级之差、累计能量及累计能量之差为网络的输入,网络的输出是下一年的震级,隐层节点数为30,这个4-30-1网络共有150个可调权值,各层的激发函数均为Sigmoid型函数。BP算法中,学习率η=0.7;惯性系数α=0.2。实数GA中,群体容量n=40,交叉率PC=0.12,变异率Pm=0.1,亲代度量S=0.9,各参数在算法运行过程中保持不变。MGA中,常量kc=0.1,km=0.11。三种算法的运行结果如图1所示。
                          
    由实验结果可以看出遗传算法具有快速学习网络权重的能力,并且能够摆脱局部极小点的困扰。
    蔡鹭欣[5]把基于反向传播神经网络的遗传算法用于酒类气体识别实验中的传感器阵列的筛选,通过评价传感器组合对反向传播神经网络识别酒类气体结果的影响,建立一种挑选传感器阵列的方法。遗传算法(GA)是一类借鉴生物界自然选择和自然遗传机制的随机化搜索算法,由于其主要特点是群体搜索策略和群体中个体之间的信息交换,搜索不依赖梯度信息。该算法从多点出发开始搜索,加上交叉作用,所以该算法不容易陷入局部最小误差。目前在气体识别中用得比较广泛的是阵列传感器。阵列传感器对被测气体产生原始响应,然后利用模式识别等方法通过对原始响应的识别达到识别气体的目的。
    抽取文[5]中实验训练集中3组有代表性的实验数据作为遗传算法中训练集适应度的检验数据,其余作为训练数据,经过实验验证,表明在迭代了11次后,遗传算法所求的最优解群都具有很好识别葡萄酒、啤酒和白酒的能力。
    按照一般的定义:若神经网络在第i次实验中对气体A的|计算值-期望值|<0.5则认为在第i次实验中,神经网络可以识别气体A;否则认为,神经网络不能识别气体A。把遗传算法所得的解群进行统计分析,如果如表1所示,与表2的统计相比较,结果基本一致 。因此可以认为,用遗传算法可以达到挑选传感器组合和判别各传感器在识别中的贡献大小的作用。
                  

                 
    葛红[6]将遗传算法应用于优化基于神经网络结构的控制器的参数,并用该控制器去控制有纯滞后的对象,通过实验证明了用遗传算法优化后的控制系统具有良好的静态性能和动态性能,为解决控制领域中的这一难题做出了新的探索。
    文[6]中应用神经网络构成的一个控制器,用于控制有纯滞后的对象,整个控制系统结构如图2所示。
                     
    根据Kolmlgorol定理[7],采用三层神经网络结构作为控制器,即:输入层、隐层、输出层,根据有关公式与经验,输入层维数n定为2(输入误差e及误差率e),输出层维数m为1(输出控制量y),隐层维数n1定为8。由此构成的神经网络控制器的结构中共有24个权值需确定。BP网络权值的训练算法中,最常用和成熟的是BP算法,但BP算法收敛速度慢,且易陷入局部最优,文[6]中引用GA作为权值优化方法,作者根据实际应用情况,选用以下的GA的具体实现形式:
  (1) 由于神经网络的权值为实数,所以解空间采用二进制编码;
    (2) 引入精华策略,即每代都保留父代中几个最优解,以保证搜索过程收敛;
    (3) 引入均匀交叉算子,以求得全局最优解。
    其他操作则采用简单的GA的形式。
    为了说明神经网络结构的控制和GA参数训练的有效性,选取经典控制问题中较为典型的一阶纯滞后对象进行实验。
                              
    其中:时间常数T=1,增益系数K=0.5。
  采用MATLAB语言编程,分别对系统的定值控制,抗干扰性和鲁棒性进行了仿真实验,结果如图3所示。
                       
    (1) 在阶跃输入的情况下,输出响应曲线如图3所示。
    结论:从仿真结果可见,系统动态过程较平稳,超调量小,过渡过程时间短,且静态误差小。说明经过训练后,模糊控制器能达到较好的性能。
    (2) 抗干扰实验
    在t=20时加入单位脉冲干扰信号,仿真结果如图4所示。
                           
    结论:从仿真结果可见,在脉冲干扰作用后,系统能快速、平稳的恢复稳定状态,说明系统抗干扰能力强。
    (3) 鲁棒性实验
    改变对象的参数,以检验GA优化后的神经网络控制器的适应性,仿真结果如图5所示 。
                                
    结论:从仿真结果可见,对象参数改变,对仿真曲线影响不大。说明系统对不同对象适应性强,有较好的鲁棒性。
    王珏[8]将遗传算法应用于人工神经网络模型,确定一零部件的维修策略,并结合实例进行了分析,经实验检验,该系统选择维修策略与实际完全符合,维修费用预测值与实际值的相对误差在允许范围内,故该模型是可信的。文[8]采用遗传算法学习神经网络连接权,不仅可以发挥神经网络的广泛映射能力,而且有助于提高其收敛速度和学习能力 。
    肖专文[9]将遗传算法应用于神经网络,构成GA-ANN法,协同求解复杂工程中的优化问题。该法既利用了神经网络的非线性映射、网络推理和预测的功能,又利用了遗传算法的全局优化特性,可广泛地应用于目标函数难以用决策变量的显函数形式来表达的众多复杂工程问题中。
    杨兆升[10]运用遗传算法进行参数选择,克服了传统流体神经网络的权值矩阵对称等限制,拓宽了这种智能搜索方法的应用领域。
    基于遗传算法的人工神经网络的应用还有很多成功的例子,在此不再一一说明。
3 结束语
    综上所述,遗传算法作为一种新型的全局优化搜索算法,由于其直接对结构对象进行操作,不存在求导和函数连续性的限定,又具有鲁棒性强、随机性、全局性以及适于并行处理的优点,在人工神经网络的应用上展现了它的独特魅力与优势,但同时,它在理论和应用技术上也存在着许多不足和缺陷,比如相对鲜明的生物基础,其数学基础显得极为薄弱,尤其是缺乏深刻且具有普遍意义的理论分析。随着理论研究的深入,可以肯定,作为一种高效并行的全局搜索方法,遗传算法以其特有的算法特点使其在许多实际问题中的应用会越来越广;同时,广泛的数学方法和强大的计算机模拟工具的出现,必将使遗传算法的研究取得长足的进展
发表于 2004-5-29 21:23:38 | 显示全部楼层
<><FONT style="BACKGROUND-COLOR: #8a916f" face=隶书 color=#000000 size=4>你好:</FONT></P><><FONT style="BACKGROUND-COLOR: #8a916f" face=隶书 size=4>你做的很棒,我望尘莫及。希望以后,多多指教,</FONT></P><><FONT style="BACKGROUND-COLOR: #8a916f" face=隶书 size=4>不甚感激。</FONT></P>
发表于 2004-5-30 19:22:59 | 显示全部楼层
<>请问这样一个问题:</P><>N抬机器M个零件加工,要加工时间最短,可否用这个算法啊?????</P>
发表于 2004-5-30 20:12:43 | 显示全部楼层
<>好啊,多谢!</P>
发表于 2004-6-28 07:14:03 | 显示全部楼层
应该可以吧,遗传算法只是将以前只能优化一个变量变成优化多组变量了
发表于 2004-7-2 03:57:11 | 显示全部楼层
<>[em23][em23][em23]</P><>对遗传算法的学习,应该从那里下手呢?</P>
发表于 2004-7-31 08:04:27 | 显示全部楼层

[求助]

<>我想要一些关于遗传算法的程序如果有的话请发给我好吗?</P>
<>我的QQ是121365317联系!!Thank you!!!!</P>
发表于 2004-7-28 01:49:33 | 显示全部楼层
我可以发几年前我读大学时的资料给有兴趣学习GA的朋友,包括matlab code.请留下联系email。[em05]
您需要登录后才可以回帖 登录 | 注-册-帐-号

本版积分规则

小黑屋|手机版|Archiver|数学建模网 ( 湘ICP备11011602号 )

GMT+8, 2024-4-20 00:20 , Processed in 0.060416 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表