神经网络的设计要用到遗传算法,遗传算法在神经网络中的应用主要反映在3个方面:网络的学习,网络的结构设计,网络的分析。1.遗传算法在网络学习中的应用在神经网络中,遗传算法可用于网络的学习。
这时,它在两个方面起作用(1)学习规则的优化用遗传算法对神经网络学习规则实现自动优化,从而提高学习速率。(2)网络权系数的优化用遗传算法的全局优化及隐含并行性的特点提高权系数优化速度。
2.遗传算法在网络设计中的应用用遗传算法设计一个优秀的神经网络结构,首先是要解决网络结构的编码问题;然后才能以选择、交叉、变异操作得出最优结构。
编码方法主要有下列3种:(1)直接编码法这是把神经网络结构直接用二进制串表示,在遗传算法中,“染色体”实质上和神经网络是一种映射关系。通过对“染色体”的优化就实现了对网络的优化。
(2)参数化编码法参数化编码采用的编码较为抽象,编码包括网络层数、每层神经元数、各层互连方式等信息。一般对进化后的优化“染色体”进行分析,然后产生网络的结构。
(3)繁衍生长法这种方法不是在“染色体”中直接编码神经网络的结构,而是把一些简单的生长语法规则编码入“染色体”中;然后,由遗传算法对这些生长语法规则不断进行改变,最后生成适合所解的问题的神经网络。
这种方法与自然界生物地生长进化相一致。3.遗传算法在网络分析中的应用遗传算法可用于分析神经网络。神经网络由于有分布存储等特点,一般难以从其拓扑结构直接理解其功能。
遗传算法可对神经网络进行功能分析,性质分析,状态分析。遗传算法虽然可以在多种领域都有实际应用,并且也展示了它潜力和宽广前景;但是,遗传算法还有大量的问题需要研究,目前也还有各种不足。
首先,在变量多,取值范围大或无给定范围时,收敛速度下降;其次,可找到最优解附近,但无法精确确定最扰解位置;最后,遗传算法的参数选择尚未有定量方法。
对遗传算法,还需要进一步研究其数学基础理论;还需要在理论上证明它与其它优化技术的优劣及原因;还需研究硬件化的遗传算法;以及遗传算法的通用编程和形式等。
谷歌人工智能写作项目:爱发猫
AI爱发猫。
===============学习神经网络可以到================可以先用matlab神经网络工具箱训练网络,当网络训练好之后,把网络存起来.然后编写遗传算法,你知道,遗传算法是每代不断迭代的,然后每代会根据适应度决定是否进入下一代,这里的适应度你就用sim(net,x)得到的值的倒数(或者类似的)作为适应度,然后其它就和遗传算法没什么两样了.最后得到的最优解,就是网络的最优解.也就是你要的结果了.不过兄弟,这想法很牛B,很值得鼓励这样的想法.但我不得不说两句,从实际角度来说,这样的实现没有太大的意义.你的目的就是想从数据中找到Y最小的时候,X的什么值,但数据上毕竟只是数据,不管你怎么绕,透露出来的信息还是有限的,不管怎么绕,其实数据能提供最大限度的信息就是:在Y=10.88时,即X1=25,X2=24....X6=1.5时,Y是最小值的,这是数据能提供的最大限度的信息,你再怎么绕,其实当你懂得神经网络的深层原理时,你会发现,你的方案并没能挖掘出更优的解(因为数据的信息是有限的),这只是把自己绕晕了不过能有这样的想法,兄弟肯定是个学习的好材料,加油.===============学习神经网络可以到================。
遗传算法优化的BP神经网络建模借鉴别人的程序做出的仿真,最近才有时间整理。目标:对y=x1^2+x2^2非线性系统进行建模,用1500组数据对网络进行构建网络,500组数据测试网络。
由于BP神经网络初始神经元之间的权值和阈值一般随机选择,因此容易陷入局部最小值。本方法使用遗传算法优化初始神经元之间的权值和阈值,并对比使用遗传算法前后的效果。
步骤:未经遗传算法优化的BP神经网络建模1、随机生成2000组两维随机数(x1,x2),并计算对应的输出y=x1^2+x2^2,前1500组数据作为训练数据input_train,后500组数据作为测试数据input_test。
并将数据存储在data中待遗传算法中使用相同的数据。2、数据预处理:归一化处理。3、构建BP神经网络的隐层数,次数,步长,目标。
4、使用训练数据input_train训练BP神经网络net。5、用测试数据input_test测试神经网络,并将预测的数据反归一化处理。6、分析预测数据与期望数据之间的误差。
遗传算法优化的BP神经网络建模1、读取前面步骤中保存的数据data;2、对数据进行归一化处理;3、设置隐层数目;4、初始化进化次数,种群规模,交叉概率,变异概率5、对种群进行实数编码,并将预测数据与期望数据之间的误差作为适应度函数;6、循环进行选择、交叉、变异、计算适应度操作,直到达到进化次数,得到最优的初始权值和阈值;7、将得到最佳初始权值和阈值来构建BP神经网络;8、使用训练数据input_train训练BP神经网络net;9、用测试数据input_test测试神经网络,并将预测的数据反归一化处理;10、分析预测数据与期望数据之间的误差。
神经网络并行性和自适应性很强,应用领域很广,在任何非线性问题中都可以应用,如控制、信息、预测等各领域都能应用。蚁群算法最开始应用于TSP问题,获得了成功,后来又广泛应用于各类组合优化问题。
但是该算法理论基础较薄弱,算法收敛性都没有得到证明,很多参数的设定也仅靠经验,实际效果也一般,使用中也常常早熟。遗传算法是比较成熟的算法,它的全局寻优能力很强,能够很快地趋近较优解。
主要应用于解决组合优化的NP问题。这三种算法可以相互融合,例如GA可以优化神经网络初始权值,防止神经网络训练陷入局部极小且加快收敛速度。
蚁群算法也可用于训练神经网络,但一定要使用优化后的蚁群算法,如最大-最小蚁群算法和带精英策略。
。
来自nnetinfo目前可以做的一般有:分类.函数拟合压缩.图象识别等等,其实说到底,所有的都能归于第2点--函数拟合.一般如果输入与输出是有强烈关系的,网络都能找得到这个关系.例如病人的特征作为输入,判断这个是否为病人,一般都是可以的.业务背景知识强,才能把神经网络运用到实际中.另外,还需要把实现问题转换为数学问题的能力.例如数字识别就是一个经典的应用.但直接把图片放进去训练是得不到识别效果的,因为维度太多了,而且信息冗余量很大.于是有人把图片的特征先自已提取出来:例如对角线与图片上的数字有几个交点等等,再把这些特征作为输入,数字类别向量作为输出,放到网络中训练.最后你再写一个数字,提取这个数字的特征,再把这特征放进网络中的时候,它就能识别到你是哪个数字了.另外,又有人用卷积神经网络去做数字识别.还有人用深度网络去做,即先把原来图片的信息用RBM网络进行压缩,然后再训练,效果就好了.等等,其实很多问题都可以做,但前提是你要想到好的方式去运用神经网络.。
神经网络的设计要用到遗传算法,遗传算法在神经网络中的应用主要反映在3个方面:网络的学习,网络的结构设计,网络的分析。1.遗传算法在网络学习中的应用在神经网络中,遗传算法可用于网络的学习。
这时,它在两个方面起作用(1)学习规则的优化用遗传算法对神经网络学习规则实现自动优化,从而提高学习速率。(2)网络权系数的优化用遗传算法的全局优化及隐含并行性的特点提高权系数优化速度。
2.遗传算法在网络设计中的应用用遗传算法设计一个优秀的神经网络结构,首先是要解决网络结构的编码问题;然后才能以选择、交叉、变异操作得出最优结构。
编码方法主要有下列3种:(1)直接编码法这是把神经网络结构直接用二进制串表示,在遗传算法中,“染色体”实质上和神经网络是一种映射关系。通过对“染色体”的优化就实现了对网络的优化。
(2)参数化编码法参数化编码采用的编码较为抽象,编码包括网络层数、每层神经元数、各层互连方式等信息。一般对进化后的优化“染色体”进行分析,然后产生网络的结构。
(3)繁衍生长法这种方法不是在“染色体”中直接编码神经网络的结构,而是把一些简单的生长语法规则编码入“染色体”中;然后,由遗传算法对这些生长语法规则不断进行改变,最后生成适合所解的问题的神经网络。
这种方法与自然界生物地生长进化相一致。3.遗传算法在网络分析中的应用遗传算法可用于分析神经网络。神经网络由于有分布存储等特点,一般难以从其拓扑结构直接理解其功能。
遗传算法可对神经网络进行功能分析,性质分析,状态分析。遗传算法虽然可以在多种领域都有实际应用,并且也展示了它潜力和宽广前景;但是,遗传算法还有大量的问题需要研究,目前也还有各种不足。
首先,在变量多,取值范围大或无给定范围时,收敛速度下降;其次,可找到最优解附近,但无法精确确定最扰解位置;最后,遗传算法的参数选择尚未有定量方法。
对遗传算法,还需要进一步研究其数学基础理论;还需要在理论上证明它与其它优化技术的优劣及原因;还需研究硬件化的遗传算法;以及遗传算法的通用编程和形式等。
遗传算法(GeneticAlgorithm)是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法。
遗传算法是从代表问题可能潜在的解集的一个种群(population)开始的,而一个种群则由经过基因(gene)编码的一定数目的个体(individual)组成。
每个个体实际上是染色体(chromosome)带有特征的实体。染色体作为遗传物质的主要载体,即多个基因的集合,其内部表现(即基因型)是某种基因组合。
韩力群老师有一本书叫人工神经网络教程,上面把神经网络介绍得非常清楚,遗传算法也有讲解。附件是一个基于matlab的案例教程,非常有参考价值。