精华内容
下载资源
问答
  • 利用matlab实现的遗传神经网络算法,内容详细,可以作为理解遗传算法和神经网络模型的优秀的参考文件
  • import torch from torch import nn class ModifiedVGG16Model(torch.nn.Module): def __init__(self): super(ModifiedVGG16Model, self).__init__() self.x = nn.Sequential( nn.Conv2d(1, 3,3,1), ...
  • 基于遗传神经网络的图像分割MATLABA源码,非常经典! 基于遗传神经网络的图像分割MATLABA源码,非常经典!
  • 自适应噪声抵消技术是...该系统中采用遗传算法优化网络权值方式构造遗传神经网络,用遗传神经网络替代传统的自适应滤波器,以此达到更好的噪声抵消效果。使用MATLAB仿真实例,发现其消噪效果显著同时信噪比得到提高。
  • 利用java程序实现的遗传神经网络模型,代码详细,注解清析完整,适合做神经网络算法的研究工作。也适合直接进行测试
  • 遗传神经网络预测路基沉降 一 概述 二 人工神经网络 人工神经网络结构图 反向传播网络 激励函数和适应度函数 三 遗传算法 选择 交叉 变异 遗传算法流程图 四遗传神经网络工程应用 模型介绍 五 结论 * 一概述 二人工...
  • 结果表明:改进遗传算法为BP神经网络提供了进一步优化的初始权值、阈值,应用改进遗传神经网络对安家岭1270平盘边坡位移进行预测,改进遗传神经网络的预测精度与遗传神经网络及未经优化的BP神经网络相比进一步提高,是一...
  • 基于遗传神经网络的图像分割
  • 基于遗传神经网络的倒立摆控制研究:基于遗传神经网络的倒立摆控制研究相关的论文。
  • 遗传神经网络算法

    2014-11-24 09:59:42
    遗传算法优化神经网络算法,直接输入训练数据和测试数据就可以,
  • 构建基于遗传神经网络算法 的空气能见度预测模型% 将与空气能见度相关的D 种气象因子和K 种污染物浓度因子经过主成份分析后作为输入数据! 输出@&** 能见度和+#&** 能见度% 该模型能够克服U]神经网络易陷入平坦区域和...
  • 使用抚顺西露天南帮边坡的雷达位移监测数据对BP神经网络、未改进的遗传神经网络、改进后的遗传神经网络进行训练,得出预测数据,并作对比分析。结果表明:与真实测得的位移数据相比,改进后的遗传神经网络的位移预测误差...
  • 论文研究-基于遗传神经网络的癌症死亡率预测.pdf, 分析了遗传算法(GeneticAlgorithm,GA)和人工神经网络(ArtificialNeuralNetwork,ANN)的优缺点,在此基础上,提出了将遗传...
  • 解决多属性决策中的高维、非线性问题,提出一种基于粗糙集和遗传神经网络的智能多属性决策方法.利用粗糙集对多属性决策问题的条件属性进行约简,用遗传算法直接训练神经网络的权重形成遗传神经网络,约简后的属性...
  • 基于改进适应度函数的遗传神经网络研究,李青林,,本文基于遗传算法的具有“较好的全局搜索性”和神经网络“对非线性有较强的逼近能力”的特点,对基于遗传算法的神经网络进行了研
  • 针对传统BP神经网络具有易陷入局部极小等缺陷,采用遗传算法(GA)对BP神经网络(初始权值、阈值)进行了优化,将人工智能技术和激光扫描测量技术有机结合,建立了金属板材数字化渐进成形回弹预测的遗传神经网络模型,对...
  • 为了有效解决数据清洗领域中相似重复记录的检测问题,提出了一种基于遗传神经网络的相似重复记录检测方法。 该方法计算两条记录对应字段间的相似度,构建基于神经网络的检测模型,利用遗传算法对网络模型的权值进行...
  • 基于一类改进遗传算法的进化神经网络研究.pdf 基于遗传算法的人工神经网络优化设计.pdf 基于遗传神经网络的股票价格短期预测.pdf
  • 基于遗传神经网络的图像分割.zip,VC++编写,供学习研究使用
  • 遗传神经网络在近红外光谱煤质分析中的应用,雷萌,李明,针对BP神经网络收敛速度慢及容易陷入局部最优解的缺点,本文结合遗传算法全局搜索的特点,提出了一种基于遗传算法的BP神经网络建��
  • 该方法不依赖于传感器的动态模型,可根据传感器的动态响应数据,建立补偿模型,采用改进遗传神经网络搜索和优化补偿模型参数,既保留了遗传算法的全局搜索能力,又具有神经网络的鲁棒性和自学习能力。介绍补偿原理及...
  • 介绍用于MotomamV3X机器人上的新型多维腕力传感器,比较遗传算法与...介绍动态建模与动态补偿原理及改进遗传神经网络算法,给出该传感器的动态模型和动态补偿模型。该方法利用腕力传感器的动态标定数据,采用改进遗传
  • 基对当前传统个人信用评价体系中的种种问题,提出了一种基于遗传神经网.络(GA-NN)的个人信用评估模型.利用 BP神经网络(BPNN)的自学习、自适应、强容错性,并通过遗传...表明,遗传神经网络的评价模型是令人满意的。
  • 论文参考,VC遗传神经网络在股票价格预测中的应用论文
  • 重点介绍神经网络在倒立摆控制问题中的研究方法
  • 针对BP网络极易收敛于局部极小点与过拟合等缺点,在构建小波神经网络的基础上,提出用遗传算法优化BP神经网络的模拟电路故障诊断方法。该方法使用小波作为预处理工具,经PCA分析和归一化后提取输出信号的能量信息...
  • MATLAB遗传神经网络算法学习

    千次阅读 2018-07-31 09:12:28
    误差反向传播(BP)神经网络根据反向传播的误差来调节连接权值和阈值,具有很强的非线性模拟能力 第一层为输入层,节点数目M由输入向量维数确定;中间层为双隐含层,节点数可选,一般不同层有不同的节点数;最后一层...

     

    误差反向传播(BP)神经网络根据反向传播的误差来调节连接权值和阈值,具有很强的非线性模拟能力

    第一层为输入层,节点数目M由输入向量维数确定;中间层为双隐含层,节点数可选,一般不同层有不同的节点数;最后一层为输出层,节点数目N由输出向量维数确定.


    不同层的神经元由权值连接,每个神经元带有一个阈值θ.

    其中Im为输入层第m个神经元的输入值,θj为第一隐含层第j个神经元阈值,ωjm表示第一隐含层第j个神经元与输入层第m个神经元之间的连接权值,netj表示第一隐含层第j个神经元的输入值.第一隐含层第j个神经元输出为hj=f(netj),其中f为激活函数,一般选择S型函数,函数形式为f(x)=1/(1+e-x).

    第一隐含层输出即为第二隐含层输入。

    其中hj为第一隐含层第j个神经元的输出值,θk为第二隐含层第k个神经元阈值,ωkj表示第二隐含层第k个神经元与第一隐含层第j个神经元之间的连接权值,Hk表示第二隐含层第k个神经元的输出值.

    Hk作为输出层的输入,得到最终预测输出。

     

     

    其中Hk为第二隐含层第k个神经元的输出值,θn为输出层第n个神经元阈值,ωnk表示输出层第n个神经元与第二隐含层第k个神经元之间的连接权值,On表示输出层第n个神经元的最终输出值.

    网络预测误差记为

     


     


    其中Tn为期望输出值,在大地电磁数据的网络学习训练中,Tn为已知模型的地电参数理论值.

    经典BP算法是采用梯度下降法修正权值和阈值,即

     

     


    其中η为学习速率,一般取值为0.1~0.2.Δω和Δθ分别为修正的权值和阈值,ωtθt分别为第t次迭代的权值和阈值,ωt+1和θt+1分别为第t+1次迭代的权值和阈值.通过公式(1)—(6)循环迭代,直到误差满足精度或达到设定迭代次数,网络训练结束.针对经典BP算法存在的收敛速度慢、易陷入局部最优等问题,出现了一些改进方法,如附加动量法、弹性BP算法、共轭梯度法等,本文就不再赘述.

    这里需要说明的是:在大地电磁数据反演中,网络学习训练的过程为公式(1)—(6)的多次循环迭代,以获得最优的网络参数;而反演测试时只需将已训练好的网络参数即最优权值和阈值与未知模型或实测视电阻率以公式(1)—(3)进行一次计算,得到的On就是未知模型或实测数据地电参数的计算值.这种网络学习训练和反演测试分两部分进行的反演方法是神经网络反演与其他反演方法的主要不同之处,其主要计算过程和耗时在网络学习训练阶段,而将训练好的网络进行直接反演测试(只要一次计算,无需迭代),可使反演具有实时性,这也是神经网络反演的最大优势.

    1.2 遗传算法优化神经网络

    遗传算法是基于自然选择和遗传学机理的迭代自适应概率搜索算法,具有很强的全局搜索能力,稳定性强.首先将待求解问题的各参数采用二进制(或其他编码形式)进行编码,每条染色体均包括所有参数信息,随机产生在模型空间均匀分布的初始模型群体.然后通过选择、交叉、变异一系列操作产生新一代种群.重复这一过程,使得种群不断进化,直到最优个体满足目标精度要求或达到最大遗传代数为止.

    面对较复杂的非线性系统问题时,由于BP网络设置的初始权值依赖设计者的经验和样本空间的反复试验,容易产生收敛速度慢、网络不稳定以及陷入局部最优等一系列问题.将BP神经网络算法与遗传算法结合,理论上可以对任意非线性系统进行映射,并且得到全局最优的效果,从而形成一种更加有效的非线性反演方法.本文中遗传算法对BP神经网络进行如下优化:

    (1) 依据待解决的问题,对网络结构进行初始化设置,确定输入层、输出层节点个数及双隐含层节点个数,分别记为MNH1、H2.

    (2) 产生初始化种群P(t),设定遗传的种群规模,并对种群中的每个个体进行基因编码,每条染色体编码长度为N=(M×H1+HH2+HN+H1+H2+NLL为变量的编码位数,包含了一个网络的所有权值和阈值信息,本文采用二进制编码.

    (3) 计算种群中每一个个体的适应度,并按一定法则选取适应度好的个体组成新种群P(t).适应度函数为, 其中E(k)为网络预测误差,见公式(4).函数值越小,则适应度越大,给定的神经网络的性能越好.

    (4) 将新种群中的个体随机搭配成对,对每对个体按照一定的交叉概率pc进行交叉操作,从而产生两个新的个体;并对新种群中每个个体按照设定的变异概率pm进行变异进化,产生新个体.

    (5) 将产生的新个体加入到种群中,形成新种群P(t+1),群体规模不变,计算新种群中个体适应度,若满足迭代终止条件,则进行下一步,否则重复(3)—(5)步.

    (6) 当达到最大遗传代数或满足误差要求时,选取最佳个体作为遗传结果,进行解码,对神经网络的连接权值和阈值进行初始赋值,然后进行网络训练,调节权值和阈值,直到满足精度要求或达到最大迭代次数,算法结束.

    遗传算法优化神经网络初始权值。

    作为三层BP神经网络模型,输入节点为272,输出节点为352,隐含层数为2,各隐含层节点数目按经验和试错法进行选取,确定双隐含层节点分别为12和8,训练算法选择弹性BP算法,设置训练目标拟合差(即均方误差,见公式(7))为0.1,网络的最大迭代次数为1000次.如果某次网络训练迭代次数达到了1000次,而迭代拟合差仍大于0.1,则该次训练不成功.

    遗传算法优化神经网络参数设置如下:种群规模30,遗传代沟为0.95,交叉概率为0.7,变异概率为0.01,最大遗传代数为20代.对建立的三层神经网络的不同层神经元之间连接权值及隐含层阈值、输出层阈值进行二进制编码,得到一个个体的编码染色体,基因长度为65480.选择算子采用随机遍历抽样,交叉算子采用高级重组算子.

    链接:http://html.rhhz.net/dqwlxb/2018-4-1563.htm#outline_anchor_12

    https://www.cnblogs.com/sallybin/p/3169572.html

     

    展开全文
  • 本场 Chat 中遗传算法对 BP 神经网络进行如下优化,话题将从遗传算法,BP 神经网络两部分分别开始,主要进行 BP 神经网络应用的快速实用入门,学完之后能够学会调用 GA_BP 算法处理数据。 本场 C

    一、简介

    面对较复杂的非线性系统问题时,由于 BP 网络设置的初始权值依赖设计者的经验和样本空间的反复试验,容易产生收敛速度慢、网络不稳定以及陷入局部最优等一系列问题.将 BP 神经网络算法与遗传算法结合,理论上可以对任意非线性系统进行映射,并且得到全局最优的效果,从而形成一种更加有效的非线性反演方法。本场 Chat 中遗传算法对 BP 神经网络进行如下优化,话题将从遗传算法,BP 神经网络两部分分别开始,主要进行 BP 神经网络应用的快速实用入门,学完之后能够学会调用 GA_BP 算法处理数据。

    本场 Chat 主要内容:
    BP 神经网络的原理;
    遗传算法引入;
    GA_BP 示范代码解读。
    第一步 认识 BP 神经网络
    我们主干是需要了解神经网络,因为遗传算法的的加入是对神经网络的改进,除了遗传算法还可以用小波算法,蚁群算法。遗传算法可以得到最优个体的初始权值和阈值。先从神经网络算法开始入门。

    1.1神经网络的分类
    人工神经网络分类为以下两种:
    1.1.1 依学习策略(Algorithm)分类主要有:
    监督式学习网络(Supervised Learning Network)为主。
    无监督式学习网络(Unsupervised Learning Network)。
    混合式学习网络(Hybrid Learning Network)。
    联想式学习网络(Associate Learning Network)。
    最适化学习网络(Optimization Application Network)。
    1.1.2 依网络架构(Connectionism)分类主要有:
    前向式架构(Feed Forward Network)。
    回馈式架构(Recurrent Network)。
    强化式架构(Reinforcement Network)。

    1.2 学习算法
    (1) Hebb 学习规则。
    (2) Delta 学习规则。
    (3) 梯度下降学习规则。
    (4) Kohonen 学习规则(就是SOM)。
    (5)向后传播学系规则(BP)。
    (6) 概率式学习规则(GA)。
    (7)竞争式学习规则(SOM,ART,CPN)。

    1.3 BP 神经网络
    BP 神经网络训练算法:
    (1) 初始化网络设置。
    (2) 向前传播输入。
    (3) 反向误差传播。
    (4) 网络权重与神经元偏置调整。
    (5) 判断结束。
    详细:BP 神经网络是怎样的一种定义?看这句话:一种按 “ 误差逆传播算法训练 ” 的多层前馈网络。
    BP 的思想就是:利用输出后的误差来估计输出层前一层的误差,再用这层误差来估计更前一层误差,如此获取所有各层误差估计。这里的误差估计可以理解为某种偏导数,我们就是根据这种偏导数来调整各层的连接权值,再用调整后的连接权值重新计算输出误差。
    直到输出的误差达到符合的要求或者迭代次数溢出设定值。
    说来说去,“ 误差 ” 这个词说的很多嘛,说明这个算法是不是跟误差有很大的关系?
    没错,BP 的传播对象就是 “ 误差 ”,传播目的就是得到所有层的估计误差。
    它的学习规则是:使用最速下降法,通过反向传播(就是一层一层往前传)不断调整网络的权值和阈值,最后使全局误差系数最小。
    它的学习本质就是:对各连接权值的动态调整。
    BP 网络由输入层、隐层和输出层组成,隐层可以有一层或多层:输入层(input),隐藏层(hide layer),输出层(output)BP 网络的优势就是能学习和储存大量的输入输出的关系,而不用事先指出这种数学关系。那么它是如何学习的?
    BP 利用处处可导的激活函数来描述该层输入与该层输出的关系,常用 S 型函数 δ 来当作激活函数。
    是 m × k × n 的三层 BP 网络模型,网络选用 S 型传递函数,通过反传误差函数 ( (Ti 为期望输出、Oi 为网络的计算输出),不断调节网络权值和 阈值使误差函数 E 达到极小。
    其中,n 为输入层神经元个数,m 为输出层神经元个数,a 为 [ 1, 10] 之间的常数。
    我们现在开始有监督的 BP 神经网络学习算法:
    1、正向传播得到输出层误差 e;=>输入层输入样本=>各隐藏层=>输出层。
    2、判断是否反向传播;=>若输出层误差与期望不符=>反向传播。
    3、误差反向传播;=>误差在各层显示=>修正各层单元的权值,直到误差减少到可接受程度。
    算法阐述起来比较简单,接下来通过数学公式来认识 BP 的真实面目。
    假设我们的网络结构是一个含有 N 个神经元的输入层,含有 P 个神经元的隐层,含有 Q 个神经元的输出层。
    认识好以上变量后,开始计算:

    一、 用(-1,1)内的随机数初始化误差函数,并设定精度 ε,最多迭代次数 M。
    二、随机选取第 k 个输入样本及对应的期望输出。
    重复以下步骤至误差达到要求:
    三、计算隐含层各神经元的输入和输出。
    四、计算误差函数 e 对输出层各神经元的偏导数,根据输出层期望输出和实际输出以及输出层输入等参数计算。
    五、计算误差函数对隐藏层各神经元的偏导数,根据后一层(这里即输出层)的灵敏度(稍后介绍灵敏度) δo(k),后一层连接权值 w,以及该层的输入值等参数计算
    六、利用第四步中的偏导数来修正输出层连接权值
    七、利用第五步中的偏导数来修正隐藏层连接权值
    八、计算全局误差(m 个样本,q 个类别)

    第二步 加入遗传算法
    1.1 遗传算法
    目的:神经网络里面有很多参数,但是你并不知道哪些参数训练出来的效率最高,识别率最高。这时候就可以以这个识别率为目标函数,用遗传算法来优化神经网络的参数。
    遗传神经网络算法和神经网络算法最本质的区别可以说是学习方法不同,或者说模型的优化方法不同。
    前者应该是基于遗传算法进行网络权值的学习,而后者大都是采用反向传播(BP)算法进行权值学习,而这两种算法差异很大。可以分别了解:
    1)遗传算法:
    遗传算法属于进化算法,模拟大自然生物进化的过程:优胜略汰。个体不断进化,只有高质量的个体(目标函数最小(大))才能进入下一代的繁殖。如此往复,最终找到全局最优值。遗传算法能够很好的解决常规优化算法无法解决的高度非线性优化问题,广泛应用在各行各业中。差分进化,蚁群算法,粒子群算法等都属于进化算法,只是模拟的生物群体对象不一样而已。

    2)反向传播算法
    详细介绍遗传算法:遗传算法 GA —模拟自然界遗传机制和生物进化论而成的一种并行随机搜索最优化方法。(具有 “ 生存 + 检测 ” 的迭代过程的搜索算法)基于自然界 “ 优胜劣汰,适者生存 ” 的生物进化原理引入优化参数形成的编码串联群体中,按照所选择的适应度函数并通过遗传中的选择、交叉和变异对个体进行筛选,使适应度值好的个体被保留,适应度差的个体被淘汰,新的群体既继承了上一代的信息,又优于上一代。反复循环,直至满足条件。
    种群中的每个个体是问题的一个解,称为 “ 染色体 ”,染色体是一串符号,如二进制字符串。利用 “ 适值 ”(适应性函数)测量染色体的好坏。 遗传算法基本操作分为:
    选择操作:以一定概率选择旧群体个体到新群体中,个体被选中的概率跟适应度值有关个体适应度越好被选中改了吧越大。
    交叉操作 – 信息交换思想选两个个体交换组合产生新的优秀个体,染色体位置互换。
    变异操作 — 以一定的低概率发生,染色体位置产生变异(通常取值 0.001 - 0.01 之间)。 遗传算法是具有高效启发式搜索、并行计算等特点,应用于函数优化、组合优化及生产调度等方面。
    算法基本要素:
    1、染色体编码方法 。
    2、适应度函数。
    3、遗传操作(选择、交叉、变异) 。
    4、运行参数 —(参数:群体大小 M、遗传代数 G、交叉概率 Pc 和变异概率 Pm) 。

    1、种群初始化
    个体编码方法为实数编码,每隔个体均为一个实数串,由输入层和隐含层连接权值、隐含层阈值、隐含层与输出层连接权值以及输出层阈值 4 个部分组成。个体包含了神经网络全部的权值和阈值,在网路结构一直的情况下,就可以构成一个结构、权值、阈值确定的神经网络。
    2、适应度函数
    根据个体得到 BP 神经网络的初始权值和阈值,用训练数据训练 BP 神经网络后预测系统输出,把预测输出个期望的输出之间的误差绝对值和 E 作为个体适应度值 F。
    3、选择操作
    遗传算法选择操作有轮盘赌法、锦标赛法等多种方法。选择轮盘赌法时,即基于适应度比例的选择策略,每个个体 i 的选择概率 pi。
    4、交叉操作
    由于个体采用实数编码,所以交叉操作方法采用实数交叉法。
    5、变异操作
    选取第 i 个个体的第 j 个基因 aij 进行变异变异操作。
    1.2 神经网络加入遗传算法
    1.2.1 遗传算法在神经网络中的应用
    神经网络的设计要用到遗传算法,遗传算法在神经网络中的应用主要反映在 3 个方面: 网络的学习,网络的结构设计,网络的分析。

    1.2.1.1 遗传算法在网络学习中的应用
    在神经网络中,遗传算法可用于网络的学习。这时,它在两个方面起作用。学习规则的 优化用遗传算法对神经网络学习规则实现自动优化,从而提高学习速率。网络权系数的优化 用遗传算法的全局优化及隐含并行性的特点提高权系数优化速度。
    1.2.1.2 遗传算法在网络设计中的应用
    用遗传算法设计一个优秀的神经网络结构,首先是要解决网络结构的编码问题;然后才 能以选择、交叉、变异操作得出最优结构。
    编码方法主要有下列 3 种:
    直接编码法:这是把神经网络结构直接用二进制串表示,在遗传算法中,“ 染色体 ” 实质 上和神经网络是一种映射关系。通过对 “ 染色体 ” 的优化就实现了对网络的优化。
    参数化编码法:参数化编码采用的编码较为抽象,编码包括网络层数、每层神经元数、 各层互连方式等信息。一般对进化后的优化“染色体”进行分析,然后产生网络的结构。
    繁衍生长法:这种方法不是在 “ 染色体 ” 中直接编码神经网络的结构,而是把一些简单 的生长语法规则编码入 “ 染色体 ” 中;然后,由遗传算法对这些生长语法规则不断进行改变, 最后生成适合所解的问题的神经网络。这种方法与自然界生物地生长进化相一致。
    1.2.1.3 遗传算法在网络分析中的应用
    遗传算法可用于分析神经网络。神经网络由于有分布存储等特点,一般难以从其拓扑结构直接理解其功能。遗传算法可对神经网络进行功能分析,性质分析,状态分析。
    遗传算法虽然可以在多种领域都有实际应用,并且也展示了它潜力和宽广前景;但 是,遗传算法还有大量的问题需要研究,目前也还有各种不足。首先,在变量多,取值范围 大或无给定范围时,收敛速度下降;其次,可找到最优解附近,但无法精确确定最扰解位置; 最后,遗传算法的参数选择尚未有定量方法。
    对遗传算法,还需要进一步研究其数学基础理 论;还需要在理论上证明它与其它优化技术的优劣及原因;还需研究硬件化的遗传算法;以及遗传算法的通用编程和形式等。
    小结:遗传算法和神经网络都是计算智能领域重要的算法,遗传算法借鉴生物界适者生存,优胜劣 汰遗传机制的规律,来寻找一个问题的最优解。
    神经网络则是模拟生物神经网络的结构和功 能的数学模型或计算模型。大量细胞构成各种神经网络。通过在遗传算法调整神经网络的结 构,使得神经网络获得动态的结构,从而更加智能。用遗传算法调整权重,获得更快的速度, 同时更大程度的避免出现局部最优情况下收敛。将遗传算法应用于神经网络,大大提高神经网络的性能。

    二、源代码

    unction varargout = interface(varargin)
    % INTERFACE M-file for interface.fig
    %      INTERFACE, by itself, creates a new INTERFACE or raises the existing
    %      singleton*.
    %
    %      H = INTERFACE returns the handle to a new INTERFACE or the handle to
    %      the existing singleton*.
    %
    %      INTERFACE('CALLBACK',hObject,eventData,handles,...) calls the local
    %      function named CALLBACK in INTERFACE.M with the given input arguments.
    %
    %      INTERFACE('Property','Value',...) creates a new INTERFACE or raises the
    %      existing singleton*.  Starting from the left, property value pairs are
    %      applied to the GUI before interface_OpeningFunction gets called.  An
    %      unrecognized property name or invalid value makes property application
    %      stop.  All inputs are passed to interface_OpeningFcn via varargin.
    %
    %      *See GUI Options on GUIDE's Tools menu.  Choose "GUI allows only one
    %      instance to run (singleton)".
    %
    % See also: GUIDE, GUIDATA, GUIHANDLES
    
    % Copyright 2002-2003 The MathWorks, Inc.
    
    % Edit the above text to modify the response to help interface
    
    % Last Modified by GUIDE v2.5 13-Mar-2006 11:25:28
    
    % Begin initialization code - DO NOT EDIT
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    %this define the global variables
    global OriginImg;       %this is the image of original
    global SegmentImg ;     %this is the image of segmented
    global threshold ;      %this is the fixed threshold for segment image
    global nnet ;           %this is the neural network
    global P ;              %this is the sample of original
    global T ;              %this is the sample of target
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    gui_Singleton = 1;
    gui_State = struct('gui_Name',       mfilename, ...
                       'gui_Singleton',  gui_Singleton, ...
                       'gui_OpeningFcn', @interface_OpeningFcn, ...
                       'gui_OutputFcn',  @interface_OutputFcn, ...
                       'gui_LayoutFcn',  [] , ...
                       'gui_Callback',   []);
    if nargin && ischar(varargin{1})
        gui_State.gui_Callback = str2func(varargin{1});
    end
    
    if nargout
        [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
    else
        gui_mainfcn(gui_State, varargin{:});
    end
    
    %initialize variables
    threshold = 80 ;
    
    % End initialization code - DO NOT EDIT
    
    
    
    % --- Executes just before interface is made visible.
    function interface_OpeningFcn(hObject, eventdata, handles, varargin)
    % This function has no output args, see OutputFcn.
    % hObject    handle to figure
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    % varargin   command line arguments to interface (see VARARGIN)
    
    % Choose default command line output for interface
    handles.output = hObject;
    
    % Update handles structure
    guidata(hObject, handles);
    
    global OriginImg;
    global SegmentImg ;
    
    OriginImg = imread('image\a.bmp');
    SegmentImg = OriginImg ;
    set(gcf,'CurrentAxes',handles.h1);
    imshow(OriginImg);
    set(gcf,'CurrentAxes',handles.h2);
    imshow(SegmentImg);
    
    % UIWAIT makes interface wait for user response (see UIRESUME)
    % uiwait(handles.figure1);
    
    
    % --- Outputs from this function are returned to the command line.
    function varargout = interface_OutputFcn(hObject, eventdata, handles) 
    % varargout  cell array for returning output args (see VARARGOUT);
    % hObject    handle to figure
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    
    % Get default command line output from handles structure
    varargout{1} = handles.output;
    
    
    
    function edit1_Callback(hObject, eventdata, handles)
    % hObject    handle to edit1 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    
    % Hints: get(hObject,'String') returns contents of edit1 as text
    %        str2double(get(hObject,'String')) returns contents of edit1 as a double
    
    
    % --- Executes during object creation, after setting all properties.
    function edit1_CreateFcn(hObject, eventdata, handles)
    % hObject    handle to edit1 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    empty - handles not created until after all CreateFcns called
    
    % Hint: edit controls usually have a white background on Windows.
    %       See ISPC and COMPUTER.
    if ispc
        set(hObject,'BackgroundColor','white');
    else
        set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
    end
    
    
    
    function edit2_Callback(hObject, eventdata, handles)
    % hObject    handle to edit2 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    
    % Hints: get(hObject,'String') returns contents of edit2 as text
    %        str2double(get(hObject,'String')) returns contents of edit2 as a double
    
    
    % --- Executes during object creation, after setting all properties.
    function edit2_CreateFcn(hObject, eventdata, handles)
    % hObject    handle to edit2 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    empty - handles not created until after all CreateFcns called
    
    % Hint: edit controls usually have a white background on Windows.
    %       See ISPC and COMPUTER.
    if ispc
        set(hObject,'BackgroundColor','white');
    else
        set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
    end
    
    
    
    function edit3_Callback(hObject, eventdata, handles)
    % hObject    handle to edit3 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    
    % Hints: get(hObject,'String') returns contents of edit3 as text
    %        str2double(get(hObject,'String')) returns contents of edit3 as a double
    
    
    % --- Executes during object creation, after setting all properties.
    function edit3_CreateFcn(hObject, eventdata, handles)
    % hObject    handle to edit3 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    empty - handles not created until after all CreateFcns called
    
    % Hint: edit controls usually have a white background on Windows.
    %       See ISPC and COMPUTER.
    if ispc
        set(hObject,'BackgroundColor','white');
    else
        set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
    end
    
    
    
    function edit4_Callback(hObject, eventdata, handles)
    % hObject    handle to edit4 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    
    % Hints: get(hObject,'String') returns contents of edit4 as text
    %        str2double(get(hObject,'String')) returns contents of edit4 as a double
    
    
    % --- Executes during object creation, after setting all properties.
    function edit4_CreateFcn(hObject, eventdata, handles)
    % hObject    handle to edit4 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    empty - handles not created until after all CreateFcns called
    
    % Hint: edit controls usually have a white background on Windows.
    %       See ISPC and COMPUTER.
    if ispc
        set(hObject,'BackgroundColor','white');
    else
        set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
    end
    
    
    

    三、运行结果

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    四、备注

    版本:2014a

    展开全文
  • 本场 Chat 中遗传算法对 BP 神经网络进行如下优化,话题将从遗传算法,BP 神经网络两部分分别开始,主要进行 BP 神经网络应用的快速实用入门,学完之后能够学会调用 GA_BP 算法处理数据。 本场 C

    一、简介

    面对较复杂的非线性系统问题时,由于 BP 网络设置的初始权值依赖设计者的经验和样本空间的反复试验,容易产生收敛速度慢、网络不稳定以及陷入局部最优等一系列问题.将 BP 神经网络算法与遗传算法结合,理论上可以对任意非线性系统进行映射,并且得到全局最优的效果,从而形成一种更加有效的非线性反演方法。本场 Chat 中遗传算法对 BP 神经网络进行如下优化,话题将从遗传算法,BP 神经网络两部分分别开始,主要进行 BP 神经网络应用的快速实用入门,学完之后能够学会调用 GA_BP 算法处理数据。

    本场 Chat 主要内容:
    BP 神经网络的原理;
    遗传算法引入;
    GA_BP 示范代码解读。
    第一步 认识 BP 神经网络
    我们主干是需要了解神经网络,因为遗传算法的的加入是对神经网络的改进,除了遗传算法还可以用小波算法,蚁群算法。遗传算法可以得到最优个体的初始权值和阈值。先从神经网络算法开始入门。

    1.1神经网络的分类
    人工神经网络分类为以下两种:
    1.1.1 依学习策略(Algorithm)分类主要有:
    监督式学习网络(Supervised Learning Network)为主。
    无监督式学习网络(Unsupervised Learning Network)。
    混合式学习网络(Hybrid Learning Network)。
    联想式学习网络(Associate Learning Network)。
    最适化学习网络(Optimization Application Network)。
    1.1.2 依网络架构(Connectionism)分类主要有:
    前向式架构(Feed Forward Network)。
    回馈式架构(Recurrent Network)。
    强化式架构(Reinforcement Network)。

    1.2 学习算法
    (1) Hebb 学习规则。
    (2) Delta 学习规则。
    (3) 梯度下降学习规则。
    (4) Kohonen 学习规则(就是SOM)。
    (5)向后传播学系规则(BP)。
    (6) 概率式学习规则(GA)。
    (7)竞争式学习规则(SOM,ART,CPN)。

    1.3 BP 神经网络
    BP 神经网络训练算法:
    (1) 初始化网络设置。
    (2) 向前传播输入。
    (3) 反向误差传播。
    (4) 网络权重与神经元偏置调整。
    (5) 判断结束。
    详细:BP 神经网络是怎样的一种定义?看这句话:一种按 “ 误差逆传播算法训练 ” 的多层前馈网络。
    BP 的思想就是:利用输出后的误差来估计输出层前一层的误差,再用这层误差来估计更前一层误差,如此获取所有各层误差估计。这里的误差估计可以理解为某种偏导数,我们就是根据这种偏导数来调整各层的连接权值,再用调整后的连接权值重新计算输出误差。
    直到输出的误差达到符合的要求或者迭代次数溢出设定值。
    说来说去,“ 误差 ” 这个词说的很多嘛,说明这个算法是不是跟误差有很大的关系?
    没错,BP 的传播对象就是 “ 误差 ”,传播目的就是得到所有层的估计误差。
    它的学习规则是:使用最速下降法,通过反向传播(就是一层一层往前传)不断调整网络的权值和阈值,最后使全局误差系数最小。
    它的学习本质就是:对各连接权值的动态调整。
    BP 网络由输入层、隐层和输出层组成,隐层可以有一层或多层:输入层(input),隐藏层(hide layer),输出层(output)BP 网络的优势就是能学习和储存大量的输入输出的关系,而不用事先指出这种数学关系。那么它是如何学习的?
    BP 利用处处可导的激活函数来描述该层输入与该层输出的关系,常用 S 型函数 δ 来当作激活函数。
    是 m × k × n 的三层 BP 网络模型,网络选用 S 型传递函数,通过反传误差函数 ( (Ti 为期望输出、Oi 为网络的计算输出),不断调节网络权值和 阈值使误差函数 E 达到极小。
    其中,n 为输入层神经元个数,m 为输出层神经元个数,a 为 [ 1, 10] 之间的常数。
    我们现在开始有监督的 BP 神经网络学习算法:
    1、正向传播得到输出层误差 e;=>输入层输入样本=>各隐藏层=>输出层。
    2、判断是否反向传播;=>若输出层误差与期望不符=>反向传播。
    3、误差反向传播;=>误差在各层显示=>修正各层单元的权值,直到误差减少到可接受程度。
    算法阐述起来比较简单,接下来通过数学公式来认识 BP 的真实面目。
    假设我们的网络结构是一个含有 N 个神经元的输入层,含有 P 个神经元的隐层,含有 Q 个神经元的输出层。
    认识好以上变量后,开始计算:

    一、 用(-1,1)内的随机数初始化误差函数,并设定精度 ε,最多迭代次数 M。
    二、随机选取第 k 个输入样本及对应的期望输出。
    重复以下步骤至误差达到要求:
    三、计算隐含层各神经元的输入和输出。
    四、计算误差函数 e 对输出层各神经元的偏导数,根据输出层期望输出和实际输出以及输出层输入等参数计算。
    五、计算误差函数对隐藏层各神经元的偏导数,根据后一层(这里即输出层)的灵敏度(稍后介绍灵敏度) δo(k),后一层连接权值 w,以及该层的输入值等参数计算
    六、利用第四步中的偏导数来修正输出层连接权值
    七、利用第五步中的偏导数来修正隐藏层连接权值
    八、计算全局误差(m 个样本,q 个类别)

    第二步 加入遗传算法
    1.1 遗传算法
    目的:神经网络里面有很多参数,但是你并不知道哪些参数训练出来的效率最高,识别率最高。这时候就可以以这个识别率为目标函数,用遗传算法来优化神经网络的参数。
    遗传神经网络算法和神经网络算法最本质的区别可以说是学习方法不同,或者说模型的优化方法不同。
    前者应该是基于遗传算法进行网络权值的学习,而后者大都是采用反向传播(BP)算法进行权值学习,而这两种算法差异很大。可以分别了解:
    1)遗传算法:
    遗传算法属于进化算法,模拟大自然生物进化的过程:优胜略汰。个体不断进化,只有高质量的个体(目标函数最小(大))才能进入下一代的繁殖。如此往复,最终找到全局最优值。遗传算法能够很好的解决常规优化算法无法解决的高度非线性优化问题,广泛应用在各行各业中。差分进化,蚁群算法,粒子群算法等都属于进化算法,只是模拟的生物群体对象不一样而已。

    2)反向传播算法
    详细介绍遗传算法:遗传算法 GA —模拟自然界遗传机制和生物进化论而成的一种并行随机搜索最优化方法。(具有 “ 生存 + 检测 ” 的迭代过程的搜索算法)基于自然界 “ 优胜劣汰,适者生存 ” 的生物进化原理引入优化参数形成的编码串联群体中,按照所选择的适应度函数并通过遗传中的选择、交叉和变异对个体进行筛选,使适应度值好的个体被保留,适应度差的个体被淘汰,新的群体既继承了上一代的信息,又优于上一代。反复循环,直至满足条件。
    种群中的每个个体是问题的一个解,称为 “ 染色体 ”,染色体是一串符号,如二进制字符串。利用 “ 适值 ”(适应性函数)测量染色体的好坏。 遗传算法基本操作分为:
    选择操作:以一定概率选择旧群体个体到新群体中,个体被选中的概率跟适应度值有关个体适应度越好被选中改了吧越大。
    交叉操作 – 信息交换思想选两个个体交换组合产生新的优秀个体,染色体位置互换。
    变异操作 — 以一定的低概率发生,染色体位置产生变异(通常取值 0.001 - 0.01 之间)。 遗传算法是具有高效启发式搜索、并行计算等特点,应用于函数优化、组合优化及生产调度等方面。
    算法基本要素:
    1、染色体编码方法 。
    2、适应度函数。
    3、遗传操作(选择、交叉、变异) 。
    4、运行参数 —(参数:群体大小 M、遗传代数 G、交叉概率 Pc 和变异概率 Pm) 。

    1、种群初始化
    个体编码方法为实数编码,每隔个体均为一个实数串,由输入层和隐含层连接权值、隐含层阈值、隐含层与输出层连接权值以及输出层阈值 4 个部分组成。个体包含了神经网络全部的权值和阈值,在网路结构一直的情况下,就可以构成一个结构、权值、阈值确定的神经网络。
    2、适应度函数
    根据个体得到 BP 神经网络的初始权值和阈值,用训练数据训练 BP 神经网络后预测系统输出,把预测输出个期望的输出之间的误差绝对值和 E 作为个体适应度值 F。
    3、选择操作
    遗传算法选择操作有轮盘赌法、锦标赛法等多种方法。选择轮盘赌法时,即基于适应度比例的选择策略,每个个体 i 的选择概率 pi。
    4、交叉操作
    由于个体采用实数编码,所以交叉操作方法采用实数交叉法。
    5、变异操作
    选取第 i 个个体的第 j 个基因 aij 进行变异变异操作。
    1.2 神经网络加入遗传算法
    1.2.1 遗传算法在神经网络中的应用
    神经网络的设计要用到遗传算法,遗传算法在神经网络中的应用主要反映在 3 个方面: 网络的学习,网络的结构设计,网络的分析。

    1.2.1.1 遗传算法在网络学习中的应用
    在神经网络中,遗传算法可用于网络的学习。这时,它在两个方面起作用。学习规则的 优化用遗传算法对神经网络学习规则实现自动优化,从而提高学习速率。网络权系数的优化 用遗传算法的全局优化及隐含并行性的特点提高权系数优化速度。
    1.2.1.2 遗传算法在网络设计中的应用
    用遗传算法设计一个优秀的神经网络结构,首先是要解决网络结构的编码问题;然后才 能以选择、交叉、变异操作得出最优结构。
    编码方法主要有下列 3 种:
    直接编码法:这是把神经网络结构直接用二进制串表示,在遗传算法中,“ 染色体 ” 实质 上和神经网络是一种映射关系。通过对 “ 染色体 ” 的优化就实现了对网络的优化。
    参数化编码法:参数化编码采用的编码较为抽象,编码包括网络层数、每层神经元数、 各层互连方式等信息。一般对进化后的优化“染色体”进行分析,然后产生网络的结构。
    繁衍生长法:这种方法不是在 “ 染色体 ” 中直接编码神经网络的结构,而是把一些简单 的生长语法规则编码入 “ 染色体 ” 中;然后,由遗传算法对这些生长语法规则不断进行改变, 最后生成适合所解的问题的神经网络。这种方法与自然界生物地生长进化相一致。
    1.2.1.3 遗传算法在网络分析中的应用
    遗传算法可用于分析神经网络。神经网络由于有分布存储等特点,一般难以从其拓扑结构直接理解其功能。遗传算法可对神经网络进行功能分析,性质分析,状态分析。
    遗传算法虽然可以在多种领域都有实际应用,并且也展示了它潜力和宽广前景;但 是,遗传算法还有大量的问题需要研究,目前也还有各种不足。首先,在变量多,取值范围 大或无给定范围时,收敛速度下降;其次,可找到最优解附近,但无法精确确定最扰解位置; 最后,遗传算法的参数选择尚未有定量方法。
    对遗传算法,还需要进一步研究其数学基础理 论;还需要在理论上证明它与其它优化技术的优劣及原因;还需研究硬件化的遗传算法;以及遗传算法的通用编程和形式等。
    小结:遗传算法和神经网络都是计算智能领域重要的算法,遗传算法借鉴生物界适者生存,优胜劣 汰遗传机制的规律,来寻找一个问题的最优解。
    神经网络则是模拟生物神经网络的结构和功 能的数学模型或计算模型。大量细胞构成各种神经网络。通过在遗传算法调整神经网络的结 构,使得神经网络获得动态的结构,从而更加智能。用遗传算法调整权重,获得更快的速度, 同时更大程度的避免出现局部最优情况下收敛。将遗传算法应用于神经网络,大大提高神经网络的性能。

    二、源代码

    unction varargout = interface(varargin)
    % INTERFACE M-file for interface.fig
    %      INTERFACE, by itself, creates a new INTERFACE or raises the existing
    %      singleton*.
    %
    %      H = INTERFACE returns the handle to a new INTERFACE or the handle to
    %      the existing singleton*.
    %
    %      INTERFACE('CALLBACK',hObject,eventData,handles,...) calls the local
    %      function named CALLBACK in INTERFACE.M with the given input arguments.
    %
    %      INTERFACE('Property','Value',...) creates a new INTERFACE or raises the
    %      existing singleton*.  Starting from the left, property value pairs are
    %      applied to the GUI before interface_OpeningFunction gets called.  An
    %      unrecognized property name or invalid value makes property application
    %      stop.  All inputs are passed to interface_OpeningFcn via varargin.
    %
    %      *See GUI Options on GUIDE's Tools menu.  Choose "GUI allows only one
    %      instance to run (singleton)".
    %
    % See also: GUIDE, GUIDATA, GUIHANDLES
    
    % Copyright 2002-2003 The MathWorks, Inc.
    
    % Edit the above text to modify the response to help interface
    
    % Last Modified by GUIDE v2.5 13-Mar-2006 11:25:28
    
    % Begin initialization code - DO NOT EDIT
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    %this define the global variables
    global OriginImg;       %this is the image of original
    global SegmentImg ;     %this is the image of segmented
    global threshold ;      %this is the fixed threshold for segment image
    global nnet ;           %this is the neural network
    global P ;              %this is the sample of original
    global T ;              %this is the sample of target
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    gui_Singleton = 1;
    gui_State = struct('gui_Name',       mfilename, ...
                       'gui_Singleton',  gui_Singleton, ...
                       'gui_OpeningFcn', @interface_OpeningFcn, ...
                       'gui_OutputFcn',  @interface_OutputFcn, ...
                       'gui_LayoutFcn',  [] , ...
                       'gui_Callback',   []);
    if nargin && ischar(varargin{1})
        gui_State.gui_Callback = str2func(varargin{1});
    end
    
    if nargout
        [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
    else
        gui_mainfcn(gui_State, varargin{:});
    end
    
    %initialize variables
    threshold = 80 ;
    
    % End initialization code - DO NOT EDIT
    
    
    
    % --- Executes just before interface is made visible.
    function interface_OpeningFcn(hObject, eventdata, handles, varargin)
    % This function has no output args, see OutputFcn.
    % hObject    handle to figure
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    % varargin   command line arguments to interface (see VARARGIN)
    
    % Choose default command line output for interface
    handles.output = hObject;
    
    % Update handles structure
    guidata(hObject, handles);
    
    global OriginImg;
    global SegmentImg ;
    
    OriginImg = imread('image\a.bmp');
    SegmentImg = OriginImg ;
    set(gcf,'CurrentAxes',handles.h1);
    imshow(OriginImg);
    set(gcf,'CurrentAxes',handles.h2);
    imshow(SegmentImg);
    
    % UIWAIT makes interface wait for user response (see UIRESUME)
    % uiwait(handles.figure1);
    
    
    % --- Outputs from this function are returned to the command line.
    function varargout = interface_OutputFcn(hObject, eventdata, handles) 
    % varargout  cell array for returning output args (see VARARGOUT);
    % hObject    handle to figure
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    
    % Get default command line output from handles structure
    varargout{1} = handles.output;
    
    
    
    function edit1_Callback(hObject, eventdata, handles)
    % hObject    handle to edit1 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    
    % Hints: get(hObject,'String') returns contents of edit1 as text
    %        str2double(get(hObject,'String')) returns contents of edit1 as a double
    
    
    % --- Executes during object creation, after setting all properties.
    function edit1_CreateFcn(hObject, eventdata, handles)
    % hObject    handle to edit1 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    empty - handles not created until after all CreateFcns called
    
    % Hint: edit controls usually have a white background on Windows.
    %       See ISPC and COMPUTER.
    if ispc
        set(hObject,'BackgroundColor','white');
    else
        set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
    end
    
    
    
    function edit2_Callback(hObject, eventdata, handles)
    % hObject    handle to edit2 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    
    % Hints: get(hObject,'String') returns contents of edit2 as text
    %        str2double(get(hObject,'String')) returns contents of edit2 as a double
    
    
    % --- Executes during object creation, after setting all properties.
    function edit2_CreateFcn(hObject, eventdata, handles)
    % hObject    handle to edit2 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    empty - handles not created until after all CreateFcns called
    
    % Hint: edit controls usually have a white background on Windows.
    %       See ISPC and COMPUTER.
    if ispc
        set(hObject,'BackgroundColor','white');
    else
        set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
    end
    
    
    
    function edit3_Callback(hObject, eventdata, handles)
    % hObject    handle to edit3 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    
    % Hints: get(hObject,'String') returns contents of edit3 as text
    %        str2double(get(hObject,'String')) returns contents of edit3 as a double
    
    
    % --- Executes during object creation, after setting all properties.
    function edit3_CreateFcn(hObject, eventdata, handles)
    % hObject    handle to edit3 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    empty - handles not created until after all CreateFcns called
    
    % Hint: edit controls usually have a white background on Windows.
    %       See ISPC and COMPUTER.
    if ispc
        set(hObject,'BackgroundColor','white');
    else
        set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
    end
    
    
    
    function edit4_Callback(hObject, eventdata, handles)
    % hObject    handle to edit4 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    
    % Hints: get(hObject,'String') returns contents of edit4 as text
    %        str2double(get(hObject,'String')) returns contents of edit4 as a double
    
    
    % --- Executes during object creation, after setting all properties.
    function edit4_CreateFcn(hObject, eventdata, handles)
    % hObject    handle to edit4 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    empty - handles not created until after all CreateFcns called
    
    % Hint: edit controls usually have a white background on Windows.
    %       See ISPC and COMPUTER.
    if ispc
        set(hObject,'BackgroundColor','white');
    else
        set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
    end
    
    
    

    三、运行结果

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    四、备注

    版本:2014a

    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 17,482
精华内容 6,992
关键字:

遗传神经网络