神经网络与遗传算法

Posted 低低秋月

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了神经网络与遗传算法相关的知识,希望对你有一定的参考价值。

神经网络是用来处理 非线性关系的,输入和输出之间的关系可以确定(存在非线性关系),可以利用神经网络的自我学习(需要训练数据集 用明确的输入和输出),训练后权值确定,就可以测试新的输入了。

      遗传算法是用来解决最值问题的,生物进化、优胜略汰。更灵活没有限制,唯一的难处就是  编码染色体 和评价函数的选择。

      两者的结合可以从两个方面确定:

      第一种,辅助结合方式:用GA对数据进行预处理,然后用NN解决问题,例如模式识别用GA进行特征提取,再用nn进行分类

      第二种,合作,GA和NN共同处理问题,在NN固定的网络拓扑下,利用GA确定链接权重,或者直接利用GA优选网络结构再用,bp训练网络。

首先,NN和GA辅助结合方式:

      按照GA在配合NN 处理可题过程中出现的不同阶段,分为以下三种方式:
      1.在模式分类应用中进行数据预处理,利用GA进行特征提取,其后用NN进行分类;
      2.在训练网络方面,利用GA选择网络学习参数或学习规则;
      3.利用GA解释或分析神经网络.

1.在模式分类应用中进行数据预处理
一般地讲,特征提取的成功与否对模式分类结果起关键作用.利用GA为NN选择训练数据是一门新的技术.Kelly和Davisll 利用GA 选择数据集的参数和每一特征的尺度因子,藉此来缩小数据间类内的差别,加大类间的差别,从而大大改进了网络对模式分类性能.Chang和Lippmannll 在一个复杂的语音识别事例中不仅把原来153个特征利用GA压缩到33个特征,而且利用GA合成新的特征.这样,通过特征压缩不仅改进了神经网络分类的性能,而且计算量也大大减少.类似地,Guo和Uhrlg也利用GA提取特征的办法训练NN来监控棱电厂的意外事故,模拟实验证实了这种方法的有效性。所不同的是,他们的适合度函数除了考虑训练误差之外,还考虑了所选择的输入个数.

利用进化的思想,对BP算法参数,如学习率,矩等进行自适应调节,是进化学习规则的最初尝试、Harp等人 将BP算法参数和网络结构一同编码在染色体中,通过进化操作,从而得到BP算法和网络结构的最优组合,这种编码方法,实质上也是对学习算法和网络结构间相互作用的研究.Belew等人则在预先固定网络结构的情况下,用GA优选学习率及矩,结果表明用GA得出的学习率总是高于经验采用的数值.他们推测出现这个结果的原因是实验采用的学习次数相对较低.他们的研究工作实质上是通过对学习算法本身参数的调节来达到学习算法的优化,而对于比学习算法的优化更深层次上的学习规则(即权重更新规则)的优化,仅被有限的研究者所探讨.虽然Hebb学习规则被广泛采纳并用作许多学习算法的基础.然而Hancockn 等人最近研究表明,在Artola E。 等人工作基础上的另一个学习规则同优化Hebb学习规则相比更加有效.因为与此比较,它不仅能学习更多的模式,而且除了能学习正常模式,也能学习异常模式 因而对于具体的网络和应用对象发展自动优化网络学习规则的方法无疑是十分诱人的.

人类的学习能力从相对较弱到十分强大的进化过程表明把进化机制引入神经网络的学习具有巨大的潜力.在人工生命领域中有些研究则体现了学习与进化的相互关系, 然而大部分工作集中在学习如何指导进化或是结构训练和权重训练间的关系等方面.对于学习规则的进化仅受到了一定程度的注意.而Chalmers 在此方面则进行了初步的尝试,他假定网络权重的更新只取决于局部信息,如输入、输出信号、训练信号以及当前连接权重,而学习规则则表示为这四个独立变量及它们间两两乘积的线性函数.这10个变量的系数和一个尺度参数编码在染色体中,学习规则进化的目标是确定这些系数.实验中所采用的网络结构不含隐层,仅有一个输出节点,网络的输入从2个到7个不等,用各种线性可分的学习事例对它们进行测试、评价学习规则.GA 最终发现了众所周知的8规则和它的一些变形,这些简单而初步的实验表明通过学习规则进化发现新奇、有用学习规则的潜力,然而学习规则形式上的约束,即仅含二个变量的乘积而不包括三个、四个变量的乘积,也可能妨碍GA发现一些新的学习规则.

3.利用GA解释、分析神经网络
不同于利用GA 设计NN,一些研究人员也尝试着用GA 来解释、分析神经网络Suzuki和Kakazu在分析相关联想记忆模型的吸引域中使用了GA.在吸引域中记忆过程呈现单调变化现象,为了分析这种现象,他们把此现象的基本特征抽象为一十多项式函数,然后用GA优化出多项式的系数.而Eberhart等人则借助GA来分析神经网络的决策表面,为神经网络的解释提供了一个新选径.

以上是关于神经网络与遗传算法的主要内容,如果未能解决你的问题,请参考以下文章

神经网络与遗传算法

基于Matlab的遗传算法优化BP神经网络的算法实现(附算法介绍与代码详解)

c语言实现*/遗传算法改进BP神经网络原理和算法实现怎么弄

遗传算法中保证和不变的交叉方法

matlab遗传算法改进bp神经网络

怎么用遗传算法工具箱调用神经网络来寻求最优解啊