当前位置导航:炫浪网>>网络学院>>编程开发>>C++教程>>C++基础入门教程

算法研究之遗传算法

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

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

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

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

    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算法的缺陷。

     无双 回复于:2003-04-20 16:44:28
    1.2 遗传算法(GA)
        GA[3]以生物进化过程为背景,模拟生物进化的步骤,将繁殖、杂交、变异、竞争和选择等概念引入到算法中,通过维持一组可行解,并通过对可行解的重新组合,改进可行解在多维空间内的移动轨迹或趋向,最终走向最优解。它克服了传统优化方法容易陷入局部极值的缺点,是一种全局优化算法。遗传算法的步骤如下:
    (1)定义一个目标函数;

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

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


     无双 回复于:2003-04-20 16:47:15
    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所示。

  

共2页 首页 上一页 1 2 下一页 尾页 跳转到
相关内容
赞助商链接