基于遗传算法的BP神经网络优化算法
利用遗传算法优化BP神经网络初步研究

1.BP 算法的学习速度很慢,其原因主要有:①由于 BP 算法本质上为梯度下降法,而它 所要优化的目标函数又非常复杂,因此,必然会出现“锯齿形现象” ,这使得 BP 算法低效; ②存在麻痹现象, 由于优化的目标函数很复杂, 它必然会在神经元输出接近 0 或 1 的情况下, 出现一些平坦区,在这些区域内,权值误差改变很小,使训练过程几乎停顿;③为了使网络 执行 BP 算法,不能用传统的一维搜索法求每次迭代的步长,而必须把步长的更新规则预先 赋予网络,这种方法将引起算法低效。 2.网络训练失败的可能性较大,其原因有:①从数学角度看,BP 算法为一种局部搜索 的优化方法,但它要解决的问题为求解复杂非线性函数的全局极值,因此,算法很有可能陷 入局部极值,使训练失败;②网络的逼近、推广能力同学习样本的典型性密切相关,而从问 题中选取典型样本实例组成训练集是一个很困难的问题。 3.网络结构的选择: 尚无一种统一而完整的理论指导,一般只能由经验选定。为此, 有人称神经网络的结构选择为一种艺术。而网络的结构直接影响网络的逼近能力及推广性 质。因此,应用中如何选择合适的网络结构是一个重要的问题。 4.新加入的样本要影响已学习成功的网络, 而且刻画每个输入样本的特征的数目也必须 相同。 5.采用 s 型激活函数,由于输出层各神经元的理想输出值只能接近于 1 或 0,而不能打 到 1 或 0,因此设置各训练样本的期望输出分量时,不能设置为 1 或 0,设置 0.9 或 0.1 较为 适宜。 3 遗传算法 遗传算法是 20 世纪 60 年代中期,美国密执根大学的 John Holland 在他人工作的基础 上提出并建立起来的。 它以自然选择和遗传理论为基础, 将生物进化过程中适者生存原则与 群体内部染色体的随机信息交换机制相结合产生的一种全局寻优搜索算法。 它将问题空间中 的可能解看作是群体里的类似于染色体的个体, 并将每一个个体编码成符号串的形式。 按照 适应度函数计算出函数值,然后依据函数值,模拟生物进化过程,进行选择、交叉、变异等 操作,一代一代地不断进化,最终得到最优解。 3.1 遗传算法的特点: ①遗传算法从问题解的中集开始嫂索,而不是从单个解开始。 这是遗传算法与传统优 化算法的极大区别。传统优化算法是从单个初始值迭代求最优解的;容易误入局部最优解。 遗传算法从串集开始搜索,复盖面大,利于全局择优。 ②遗传算法求解时使用特定问题的信息极少,容易形成通用算法程序。 由于遗传算法 使用适应值这一信息进行搜索, 并不需要问题导数等与问题直接相关的信息。 遗传算法只需 适应值和串编码等通用信息,故几乎可处理任何问题。 ③遗传算法有极强的容错能力 遗传算法的初始串集本身就带有大量与最优解甚远的信 息;通过选择、交叉、变异操作能迅速排除与最优解相差极大的串;这是一个强烈的滤波过 程;并且是一个并行滤波机制。故而,遗传算法有很高的容错能力。 ④遗传算法中的选择、交叉和变异都是随机操作,而不是确定的精确规则。 这说明遗 传算法是采用随机方法进行最优解搜索, 选择体现了向最优解迫近, 交叉体现了最优解的产 生,变异体现了全局最优解的复盖。 ⑤遗传算法具有隐含的并行性。 4 遗传算法优化神经网络 遗传算法优化神经网络主要包括三方面:网络结构优化、权值优化、学习规则优化,这 里主要讨论的是权值优化。 首先,用遗传算法对初始权值分布进行优化,在解空间中找出一个较好的搜索空间;然 后,再用 BP 算法在这个较小的解空间中搜索出最优解。用改进的遗传算法优化神经网络权
基于遗传算法的BP神经网络算法

目录
• 1. 简要介绍BP网络算法 • 2. 简要介绍遗传算法 • 3. 介绍基于遗传算法的BP网络迭代流程
BP神经网络 (Back Propagation Neural Network)
• 其主要的学习过程是:将输入从输入层经隐层单元逐层处理 , 并传向输出层,每一层神经元的状态只影响下一层神经元的状 态。如果在输出层不能得到期望的输出,则将误差信号沿原来 的连接通路反向传播,通过梯度下降法修改各神经元的权值, 使误差信号最小 。
THANKS
回填区地表沉降系数预测模型实验结果
小结
• 基于遗传算法的BP神经网络算法结合了两个算法的优点,克服 了BP算法中学习效率低、收敛速度慢、容易陷入局部最优等缺 点。 • 但是应当注意到,由于BP一GA算法在扩大种群规模的时候,其 用于存储染色体的存储空间直线变大,对于网络结构比较复杂 的神经网络更是如此,这也是该算法的一个缺点,有待于改进。
遗传算法基本流程
• Step1:开始 • Step2:参数编码 • Step3:初始化种群 • Step4:计算适应度 • Step5:判断是否满足终止条件,满足则直接执行Step10 • Step6:执行选择操作 • Step7:执行交叉操作 • Step8:执行变异操作 • Step9:产生新种群,返回执行Step4 • Step10:结束
• DNA1 • DNA2 • NEW DNA
交叉概率:
变异操作(Mutation)
• 变异概率:
性能比较
BP算法实验时,选用的样本数是550,学习速率α =0.7,输人层 结点14个(共有14个特征点 ),输出层共有5个,隐含层9个。 BP一GA算法实验时,选用的样本数是550,交换概率Pc=0.7, 变异概率Pm=0.2,输人层结点14个,输出层结点5个,隐含层 9 个,种群规模300个。
基于遗传算法的BP神经网络算法

基于遗传算法的BP神经网络算法基于遗传算法的BP神经网络算法是一种将遗传算法与BP神经网络相结合的机器学习算法。
BP神经网络是一种具有自适应学习功能的人工神经网络,它通过反向传播算法来不断调整网络的权重和阈值,从而实现对样本数据的学习和预测。
遗传算法是一种模拟生物进化过程的优化算法,它通过选择、交叉和变异等操作来产生下一代的优秀个体,从而逐步寻找到最优解。
在基于遗传算法的BP神经网络算法中,遗传算法用于优化BP神经网络的初始权重和阈值,以提高网络的学习和泛化能力。
1.初始化个体群体:随机生成一组个体,每个个体代表BP神经网络的初始权重和阈值。
2.适应度评估:使用生成的个体来构建BP神经网络,并使用训练数据进行训练和验证,评估网络的适应度,即网络的性能指标。
3.选择操作:根据个体的适应度值确定选择概率,选择一些适应度较高的个体作为父代。
4.交叉操作:从父代中选择两个个体,通过交叉操作生成两个新的子代个体。
5.变异操作:对新生成的子代个体进行变异操作,引入一定的随机扰动,增加种群的多样性。
6.替换操作:根据一定的替换策略,用新生成的子代个体替代原来的父代个体。
7.终止条件判断:根据预先设定的终止条件(如达到最大迭代次数或达到一些适应度值阈值)判断是否终止算法。
8.返回结果:返回适应度最高的个体,即最优的BP神经网络参数。
然而,基于遗传算法的BP神经网络算法也存在一些缺点。
首先,算法的收敛速度较慢,需要较长的时间进行优化。
其次,算法需要设置一些参数,如种群大小、交叉概率和变异概率等,不同的参数组合可能对算法的性能产生较大影响,需要经过一定的试错过程。
综上所述,基于遗传算法的BP神经网络算法是一种结合了两种优化方法的机器学习算法,能够有效提高BP神经网络的学习和泛化能力。
同时,也需要在实际应用中根据具体情况选择合适的参数设置和终止条件,以获得更好的算法性能。
遗传算法及遗传算法优化BP神经网络实现代码

遗传算法开放分类:编程、程序、数学、计算机、算法目录• 遗传算法定义• 遗传算法特点• 遗传算法的应用• 遗传算法的现状• 遗传算法的一般算法• 遗传算法实例遗传算法定义[编辑本段]遗传算法(Genetic Algorithm)是模拟达尔文的遗传选择和自然淘汰的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法,它是有美国Michigan 大学J.Holland教授于1975年首先提出来的,并出版了颇有影响的专著《Adaptation in Natural and Artificial Systems》,GA这个名称才逐渐为人所知,J.Hilland教授所提出的GA通常为简单遗传算法(SGA)。
遗传算法是从代表问题可能潜在的解集的一个种群(population)开始的,而一个种群则由经过基因(gene)编码的一定数目的个体(individual)组成。
每个个体实际上是染色体(chromosome)带有特征的实体。
染色体作为遗传物质的主要载体,即多个基因的集合,其内部表现(即基因型)是某种基因组合,它决定了个体的形状的外部表现,如黑头发的特征是由染色体中控制这一特征的某种基因组合决定的。
因此,在一开始需要实现从表现型到基因型的映射即编码工作。
由于仿照基因编码的工作很复杂,我们往往进行简化,如二进制编码,初代种群产生之后,按照适者生存和优胜劣汰的原理,逐代(generation)演化产生出越来越好的近似解,在每一代,根据问题域中个体的适应度(fitness)大小挑选(selection)个体,并借助于自然遗传学的遗传算子(genetic operators)进行组合交叉(crossover)和变异(mutation),产生出代表新的解集的种群。
这个过程将导致种群像自然进化一样的后生代种群比前代更加适应于环境,末代种群中的最优个体经过解码(decoding),可以作为问题近似最优解。
遗传算法特点[编辑本段] 遗传算法是一类可用于复杂系统优化的具有鲁棒性的搜索算法,与传统的优化算法相比,主要有以下特点:1、遗传算法以决策变量的编码作为运算对象。
基于遗传算法的BP神经网络算法

基于遗传算法的BP神经网络算法人工神经网络(Artificial Neural Network,ANN)是一种模拟人脑中神经元运作原理的数学模型。
反向传播神经网络(Back Propagation Neural Network,BPNN)是一种常用的人工神经网络模型,其训练方法是通过计算输出与期望输出之间的误差,并将误差反向传播进行网络参数的调整。
遗传算法(Genetic Algorithm,GA)是一种基于生物进化理论的优化方法,通过模拟基因遗传和进化的过程来最优解。
BP神经网络算法结合遗传算法能够提高网络的训练效果,并进一步提升算法的性能。
1.随机初始化BP神经网络的权重和阈值。
BP神经网络的训练需要初始化网络的权重和阈值,遗传算法可以随机生成初始值作为种群的个体。
2.选择适应度函数。
适应度函数用于评估每个个体的适应度程度,即个体在解决问题中的优劣程度。
对于BP神经网络,适应度函数可以选择网络的误差函数,如均方误差。
3.选择遗传算子。
遗传算子包括选择、交叉和变异操作。
选择操作根据个体的适应度确定被选中参与下一代个体的概率。
交叉操作模拟基因交换,通过交叉操作可以产生新的个体。
变异操作则模拟基因突变,通过变异操作可以增加种群的多样性。
4.根据选择的适应度函数计算种群的适应度值。
对于BP神经网络,可以使用遗传算法对初始种群进行迭代并通过BP算法进行训练,根据训练结果计算个体的适应度值。
5.根据选择的适应度值进行选择操作。
根据适应度值选择种群中的个体,并根据选择的概率生成新的种群。
6.进行交叉操作。
通过交叉操作将选定的个体进行基因交换,并生成新的个体。
7.进行变异操作。
对选定的个体进行基因突变,增加种群的多样性。
8.根据选择的适应度函数计算新种群的适应度值。
对新生成的个体进行适应度评估。
9.判断终止条件。
终止条件可以根据算法的需求进行设置,如达到指定的迭代次数或达到指定的适应度阈值。
10.重复进行步骤5至步骤9,直到满足终止条件。
利用云模型和遗传算法优化BP神经网络权值

利用云模型和遗传算法优化BP神经网络权值摘要:标准BP算法主要根据训练样本确定神经网络的权值,由于BP算法采用沿梯度下降的搜索算法,因而其结果对初始权值非常敏感,收敛速度慢,易陷入局部极小。
结合正态云模型云滴的随机性和稳定倾向性,以及遗传算法的全局搜索能力,收敛速度快等特性优化神经网络的权值和阈值。
分类实验结果表明,该算法比标准BP算法收敛速度快,分类正确率高。
关键词:云模型;遗传算法;标准BP算法;神经网络0 引言BP算法(Back Propogation Algorithm)是目前应用最为广泛的神经网络学习算法,但由于BP算法采用沿梯度下降的搜索算法,因而其结果对初始权值非常敏感,不同的初始权值可能导致不同的结果以及易陷入局部极小等问题。
本文结合遗传算法的高度并行、随机、自适应的全局性概率搜索以及正态云模型云滴的随机性和稳定倾向性特点优化神经网络的权值和阈值。
该算法中的交叉概率、变异概率由X条件云发生器产生。
1 优化原理先利用神经网络试探出最好的网络隐层结点数,再利用本文提出的算法调整网络的权值以及阈值,然后再用调整好的权值和阈值进行分类。
编码:对于包含一层隐藏层模式为m-n-l多层神经网络共有q=m*n+n*l+n+l个权值和阈值需要优化,其中m为输入层结点数,n 为隐藏层结点数,l为输出层结点数。
将这q个权值和阈值记为W=(W 1,W2,…,W q),采用实数编码,将行向量W看作是一条染色体,而其中每个实数W i(i=1,2,…,q)是染色体的一个基因位。
选择算子:采用轮盘赌和精英保留选择策略。
每个染色体产生后代的数目正比于它的适应度值的大小,并且每一代中染色体的总数保持不变,这种方法也称为轮盘赌选择。
假设群体的大小为n,个体A i的适应度值为f(A i),则个体A i被选择的概率P(A i)为:P(A i)=f(A i)∑ni=1f(A i)交叉算子:随机产生二串长度为q的二进制串,设有两个父代,P=(P1,P2,…,P q)以及M=(M1,M2,…,M q),采用下面的方式得到两个子代:C=(C1,C2,…,C q) 和D=(D1,D 2,…,D q),用其中的一个二进制串产生子代C,用另一个二进制串产生子代D。
毕业设计论文基于遗传算法的BP神经网络的优化问题研究.doc

编号:审定成绩:重庆邮电大学毕业设计(论文)设计(论文)题目:基于遗传算法的BP神经网络的优化问题研究学院名称:学生姓名:专业:班级:学号:指导教师:答辩组负责人:填表时间:2010年06月重庆邮电大学教务处制摘要本文的主要研究工作如下:1、介绍了遗传算法的起源、发展和应用,阐述了遗传算法的基本操作,基本原理和遗传算法的特点。
2、介绍了人工神经网络的发展,基本原理,BP神经网络的结构以及BP算法。
3、利用遗传算法全局搜索能力强的特点与人工神经网络模型学习能力强的特点,把遗传算法用于神经网络初始权重的优化,设计出混合GA-BP算法,可以在一定程度上克服神经网络模型训练中普遍存在的局部极小点问题。
4、对某型导弹测试设备故障诊断建立神经网络,用GA直接训练BP神经网络权值,然后与纯BP算法相比较。
再用改进的GA-BP算法进行神经网络训练和检验,运用Matlab软件进行仿真,结果表明,用改进的GA-BP算法优化神经网络无论从收敛速度、误差及精度都明显高于未进行优化的BP神经网络,将两者结合从而得到比现有学习算法更好的学习效果。
【关键词】神经网络BP算法遗传算法ABSTRACTThe main research work is as follows:1. Describing the origin of the genetic algorithm, development and application, explain the basic operations of genetic algorithm, the basic principles and characteristics of genetic algorithms.2. Describing the development of artificial neural network, the basic principle, BP neural network structure and BP.3. Using the genetic algorithm global search capability of the characteristics and learning ability of artificial neural network model with strong features, the genetic algorithm for neural network initial weights of the optimization, design hybrid GA-BP algorithm, to a certain extent, overcome nerves ubiquitous network model training local minimum problem.4. A missile test on the fault diagnosis of neural network, trained with the GA directly to BP neural network weights, and then compared with the pure BP algorithm. Then the improved GA-BP algorithm neural network training and testing, use of Matlab software simulation results show that the improved GA-BP algorithm to optimize neural network in terms of convergence rate, error and accuracy were significantly higher than optimized BP neural network, a combination of both to be better than existing learning algorithm learning.Key words:neural network back-propagation algorithms genetic algorithms目录第一章绪论 (1)1.1 遗传算法的起源 (1)1.2 遗传算法的发展和应用 (1)1.2.1 遗传算法的发展过程 (1)1.2.2 遗传算法的应用领域 (2)1.3 基于遗传算法的BP神经网络 (3)1.4 本章小结 (4)第二章遗传算法 (5)2.1 遗传算法基本操作 (5)2.1.1 选择(Selection) (5)2.1.2 交叉(Crossover) (6)2.1.3 变异(Mutation) (7)2.2 遗传算法基本思想 (8)2.3 遗传算法的特点 (9)2.3.1 常规的寻优算法 (9)2.3.2 遗传算法与常规寻优算法的比较 (10)2.4 本章小结 (11)第三章神经网络 (12)3.1 人工神经网络发展 (12)3.2 神经网络基本原理 (12)3.2.1 神经元模型 (12)3.2.2 神经网络结构及工作方式 (14)3.2.3 神经网络原理概要 (15)3.3 BP神经网络 (15)3.4 本章小结 (21)第四章遗传算法优化BP神经网络 (22)4.1 遗传算法优化神经网络概述 (22)4.1.1 用遗传算法优化神经网络结构 (22)4.1.2 用遗传算法优化神经网络连接权值 (22)4.2 GA-BP优化方案及算法实现 (23)4.3 GA-BP仿真实现 (24)4.3.1 用GA直接训练BP网络的权值算法 (25)4.3.2 纯BP算法 (26)4.3.3 GA训练BP网络的权值与纯BP算法的比较 (28)4.3.4 混合GA-BP算法 (28)4.4 本章小结 (31)结论 (32)致谢 (33)参考文献 (34)附录 (35)1 英文原文 (35)2 英文翻译 (42)3 源程序 (47)第一章绪论1.1 遗传算法的起源从生物学上看,生物个体是由细胞组成的,而细胞则主要由细胞膜、细胞质、和细胞核构成。
基于遗传算法优化BP神经网络圆柱壳结构可靠度分析

基于遗传算法优化BP神经网络圆柱壳结构可靠度分析目录一、内容概括 (1)(一)基于遗传算法的优化方法介绍 (2)(二)BP神经网络介绍与应用场景分析 (2)(三)圆柱壳结构可靠度分析方法探讨 (4)二、圆柱壳结构基础理论知识概述 (5)(一)圆柱壳结构的组成及特点分析 (6)(二)圆柱壳结构的力学特性研究 (7)(三)圆柱壳结构可靠度评价指标介绍 (9)三、BP神经网络在圆柱壳结构可靠度分析中的应用 (9)(一)BP神经网络模型的构建与训练过程 (10)(二)基于BP神经网络的圆柱壳结构可靠度预测模型建立与实施步骤介绍11 (三)BP神经网络模型的优缺点分析及对策建议 (13)四、遗传算法在优化BP神经网络模型中的应用 (14)(一)遗传算法的基本原理及特点介绍 (16)(二)基于遗传算法的BP神经网络模型优化过程与实施步骤解析..16(三)案例分析 (18)一、内容概括介绍了BP神经网络的基本原理及其在当前圆柱壳结构可靠度分析中的局限性。
BP神经网络是一种通过反向传播算法进行权值和阈值调整的多层前馈网络,广泛应用于各种工程领域。
传统的BP神经网络在解决复杂结构优化问题时,往往存在易陷入局部最优解、收敛速度慢等问题。
阐述了遗传算法的基本原理和特性,遗传算法是一种模拟自然选择和遗传机制的优化搜索算法,具有全局优化能力,能够解决复杂的非线性问题。
将遗传算法与BP神经网络相结合,有望提高圆柱壳结构可靠度分析的准确性和效率。
详细描述了基于遗传算法优化BP神经网络的流程和方法。
通过遗传算法优化BP神经网络的权值和阈值,提高网络的性能和准确性。
将优化后的BP神经网络应用于圆柱壳结构可靠度分析,通过大量的数据训练和测试,验证该方法的可行性和有效性。
通过实例分析,展示了基于遗传算法优化BP神经网络在圆柱壳结构可靠度分析中的实际应用效果。
该方法能够显著提高圆柱壳结构可靠度分析的准确性和效率,为工程实践提供了一种新的思路和方法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
案例3:基于遗传算法的BP神经网络优化算法
******************************************************************************* ****
论坛申明:
1 案例为原创案例,论坛拥有帖子的版权,转载请注明出处(MATLABSKY论坛,《MATLAB
智能算法30个案例分析》
2 案例内容为书籍原创内容,内容为案例的提纲和主要内容。
3 作者长期驻扎在板块,对读者和会员问题有问必答。
4 案例配套有教学视频和完整的MATLAB程序,MATLAB程序在购买书籍后可以自由下载,教学视频需要另外购买。
MATLAB书籍预定方法和优惠服务:/thread-9258-1-1.html
点击这里,预览该案例程序:/znsf/view/s3/GABPMain.html 已经预定的朋友点此下载程序源代码:/thread-11921-1-1.html *
******************************************************************************* **
1、案例背景
BP网络是一类多层的前馈神经网络。
它的名字源于在网络训练的过程中,调整网络的权值的算法是误差的反向传播的学习算法,即为BP学习算法。
BP算法是Rumelhart等人在1986年提出来的。
由于它的结构简单,可调整的参数多,训练算法也多,而且可操作性好,BP 神经网络获得了非常广泛的应用。
据统计,有80%~90%的神经网络模型都是采用了BP网络或者是它的变形。
BP网络是前向网络的核心部分,是神经网络中最精华、最完美的部分。
BP神经网络虽然是人工神经网络中应用最广泛的算法,但是也存在着一些缺陷,例如:
①、学习收敛速度太慢;
②、不能保证收敛到全局最小点;
③、网络结构不易确定。
另外,网络结构、初始连接权值和阈值的选择对网络训练的影响很大,但是又无法准确获得,针对这些特点可以采用遗传算法对神经网络进行优化。
本节以某型号拖拉机的齿轮箱为工程背景,介绍使用基于遗传算法的BP神经网络进行齿轮箱故障的诊断。
2、案例目录:
第3章基于遗传算法的BP神经网络优化算法
3.1 理论基础
3.1.1 BP神经网络概述
3.1.2 遗传算法概述
3.2 案例背景
3.2.1 问题描述
3.2.2 解决思路及步骤
1. 算法流程
2. 神经网络算法实现
3. 遗传算法实现
3.3 MATLAB程序实现
3.3.1 神经网络算法
3.3.2 遗传算法主函数
3.3.3 比较使用遗传算法前后的差别
3.3.4 结果分析
3.4 延伸阅读
3.5 参考文献
3、主程序:
1.clc
2.clear all
3.close all
4.%% 加载神经网络的训练样本测试样本每列一个样本输入P 输出T
5.%样本数据就是前面问题描述中列出的数据
6.load data
7.% 初始隐层神经元个数
8.hiddennum=31;
9.% 输入向量的最大值和最小值
10.threshold=[0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1];
11.inputnum=size(P,1); % 输入层神经元个数
12.outputnum=size(T,1); % 输出层神经元个数
13.w1num=inputnum*hiddennum; % 输入层到隐层的权值个数
14.w2num=outputnum*hiddennum;% 隐层到输出层的权值个数
15.N=w1num+hiddennum+w2num+outputnum; %待优化的变量的个数
16.
17.%% 定义遗传算法参数
18.NIND=40; %个体数目
19.MAXGEN=50; %最大遗传代数
20.PRECI=10; %变量的二进制位数
21.GGAP=0.95; %代沟
22.px=0.7; %交叉概率
23.pm=0.01; %变异概率
24.trace=zeros(N+1,MAXGEN); %寻优结果的初始值
25.
26.FieldD=[repmat(PRECI,1,N);repmat([-0.5;0.5],1,N);repmat([1;0;1;1],1,N)];
%区域描述器
27.Chrom=crtbp(NIND,PRECI*N); %初始种群
28.%% 优化
29.gen=0; %代计数器
30.X=bs2rv(Chrom,FieldD); %计算初始种群的十进制转换
31.ObjV=Objfun(X,P,T,hiddennum,P_test,T_test); %计算目标函数值
32.while gen<MAXGEN
33.fprintf('%d\n',gen)
34.FitnV=ranking(ObjV); %分配适应度值
35.SelCh=select('sus',Chrom,FitnV,GGAP); %选择
36.SelCh=recombin('xovsp',SelCh,px); %重组
37.SelCh=mut(SelCh,pm); %变异
38.X=bs2rv(SelCh,FieldD); %子代个体的十进制转换
39.ObjVSel=Objfun(X,P,T,hiddennum,P_test,T_test); %计算子代的目标函数值
40.[Chrom,ObjV]=reins(Chrom,SelCh,1,1,ObjV,ObjVSel); %重插入子代到父代,得到
新种群
41.X=bs2rv(Chrom,FieldD);
42.gen=gen+1; %代计数器增加
43.%获取每代的最优解及其序号,Y为最优解,I为个体的序号
44.[Y,I]=min(ObjV);
45.trace(1:N,gen)=X(I,:); %记下每代的最优值
46.trace(end,gen)=Y; %记下每代的最优值
47.end
48.%% 画进化图
49.figure(1);
50.plot(1:MAXGEN,trace(end,:));
51.grid on
52.xlabel('遗传代数')
53.ylabel('误差的变化')
54.title('进化过程')
55.bestX=trace(1:end-1,end);
56.bestErr=trace(end,end);
57.fprintf(['最优初始权值和阈值:\nX=',num2str(bestX'),'\n最小误差
err=',num2str(bestErr),'\n'])
复制代码
4、运行结果:
遗传算法进化曲线。
图3-2 误差进化曲线
图3-3 随机权值和阈值训练误差曲线
图3-4 优化权值和阈值训练误差曲线。