当前位置:文档之家› 基于遗传算法的神经网络优化设计

基于遗传算法的神经网络优化设计

基于遗传算法的神经网络优化设计
基于遗传算法的神经网络优化设计

沈阳化工学院

硕士学位论文

基于遗传算法的神经网络优化设计

姓名:宋新乔

申请学位级别:硕士

专业:控制理论与控制工程

指导教师:姜长洪

20030224

沈阳化T学院硕士学位论文Y602779

中文摘要

基于遗传算法的神经网络优化设计

摘要:神经网络理论是在现代神经科学研究成果的基础上提出来的,它反映了人脑功能的若干特性,但并非神经系统的逼真描述,而只是其简化,抽象和模拟。神经网络是一个非线性动力系统,其特色在于信息的分布式存储和并行协同处理。虽然单个神经元的结构极其简单,功能有限,但大量神经元组成网络系统所能实现的行为却是极其丰富多彩的。它具有很强的容错性和鲁棒性,善于联想,综合和推广,因此它广泛用于人工智能,自动控制,机器人,统计学等领域的信息处理。

遗传算法(GeneticAlgorithm—GA)是一类借鉴生物界自然选择和自然遗传机理的随机优化算法,是模拟达尔文遗传选择和自然淘汰生物进化过程的计算模型。主要特点是群体搜索策略和群体中个体的信息交换,搜索不依赖于梯度信息。尤其适用于处理传统搜索方法难以解决的复杂和非线性问题。可广泛用于组合优化,机器学习,自适应控制,规划设计和人工生命等领域。

本文深入讨论了神经网络与遗传算法理论,同时二者的结合使神经网络的应用更加广泛,人工智能领域也有了新的扩展。本文首先将神经网络控制器应用于生物反应器,对生物细胞生长进行仿真控制研究。在此基础上,本文创新地移入遗传算法来对神经网络控制算法进行改进,包括加入自适应遗传算法,采用遗传算法完全取代神经网络BP算法,对生物反应过程进行模拟仿真控制。最后对神经网络结构设计进行了阐述,提出一系列设计方法,由于神经网络结构的设计没有现成的理论,只能依据专家的经验设计,所以设计比较困难,神经网络结构设计的瓶颈问题是隐含层层数和隐含层神经元个数的确定,本文提出了一种简单的针对异或问题的神经网络结构设计算法,能够同时确定隐含层和隐含层神经元个数,可见遗传算法在神经网络设计问题上有很好的应用前景。

关键词:神经元;神经网络;遗传算法;生物反应过程;神经网络控制器;神经网络优化;

素自§舴髫、导师陵鬈

匆全文公布

沈阳化T学院硕士学位论文英义摘要NeuralnetworkoptimumdesignwithGA

Abstract:NeUl'91tietworktheOFiesarebringingupt0ComeinIllOdeFrl

characteriStic0frlervescierlce.ItreflectedthefunCtiorl’ssome

likedeScribe,andpeJcsonbrain.butnotrleFvoussystemof1ife

{UStitSSimplificati0ElabStractionwithi珈itate.NeuralFIE"tworkiSaFIOn—liFiemotiVeofSYStem.ItStheSpeCialfeatuFeSCOilSiStii"1theinformati0n’SdiStributestOrewithproCeedtogetherandbeiFtconjUEICtionwitht0handle.A1thoughSingletheCOnStFUCtionforneI-veLInitiSverySimple,andthefunCti013iS1imited.Butthebehavior1argequantitYnerveUElitSCOilStitUtewhatiqetworkSYsreiniSVeryabundant.Ithasve:FysttongpropertYofpermittinginiStakeandtherobust.Be900dattheassOCiatiorlofthought,SyritheSize21.rldtheeXpansion.1hereforeitarE.extensiVet0usedfortheaFtifiCialintelligence,AutocontF01,Robot,thecovaril3.riceiearin_’sinformatiOilhandle.

GenetiCA190rithmiStherandomoptimizea,rithrnetiCthatitiSorlthebaseof8,FIimaterlat.Ul-e’schoosenaturallY

WithinheritnatU/'a11Y.itiSthecalCUlatiOnmodel0fimitating1)arwinGASelectiOFtandnaturalwashingOUtcreatureevolVeSpr0Cess.ItSmaii"1characteriSticSareCommunitYSea,rchStrategyandindiVidual’SinformatiOilexchangeinthepopulatiOFt.TosearchforinformEtti011thatisriott0dependOilthegradeinformatiOn.SoitcanbeUSedforcombins,tiOnoptimizati012,machitiestudY,fitCOntl"01.programdeSignandai"tifiCiallife.

ThiSpaperthoroughlYdisCUSStheNeuralNetworktheorYandGeneticAlgorithmtheOi"Y.andpointouttheirSadvanceand9/eakness.Buttheirscombill8.tionmakemakethetierverletwoFkapplicationmoi"eexterlsiveandtheartifiCialfieldmoreexpandingFirstBeFVetietworkiSappliedt0thebioreactOFmodel.t0researchCellgrowth.WiththiSUnderStanding,thiSpaperiSel'eatiVet0CombinetheneuralFletworkarldGAt0controlthebi0I"eactormodelandgetgoodeIllLllatiOilI'eSl,11t.Afterwardresearchedthe/3eu/-al

沈阳化T学院硕士学位论文英文摘要

lqetwork’SstructureandbringupaSe/"ieSthedesignthemethods.Owingt0beI'UFIshortoflReady—madetheories,socabonlYdesignitwithexpert’Sexperiel'ICeS.Bottleneckproblemthatdesignrlei"veiletworkstFUctureishiddeEl1a.yernumber8,rldeveryhidderl1aye/"’StieLiralUrlitsnumber.YhiSpapergiveamethoddeSigningtheneuralnewworkStrLICtUrewithXORproblemthatCanC013firmth0hidden1aYSnumberanditSneUral13Umber.S0itiS0bVi0USthatGACallbeUSedii"1neurftltietworkstructuredeSignin.

KeyWord:NeuralUnit;NeuralNetwork;GetieticA190rithm;CreatureEV0lVesPr0Cess:NeuralNetWOrkContr011er:NeuralNetworkOptimiStiCDeSign:

第一章绪论

1.1引言

80年代后期,在美国、日本等一些工业发达国家里,掀起了一股竞相研究开发神经网络(NeuralNetworks,简称NN)的热潮。神经网络是模拟人类生理上的神经机制的计算模型。近15年来,神经网络技术已渗透到各个领域,在智能控制、模式识别、计算机视觉、非线性优化、连续语音识别、信号处理等方面取得了巨大的成功和进展,但仍然存在一些难以解决的问题【9l。

本文正是针对神经网络由于存在一些难以解决的问题而应用遗传算法来作为优化算法的理论研究,由于遗传算法能够收敛到全局最优解,而且遗传算法的鲁棒性强,将遗传算法与神经网络(前馈网络)结合起来是很有意义的,不仅能发挥神经网络的泛化映射能力,而且,使神经网络具有很快的收敛性以及较强的学习能力。遗传算法与神经网络结合主要有两种方式【60】:一是用于网络训练,即学习网络各层之问的连接权值;二是设计网络的拓扑结构,即确定网络隐含层数及每层神经元个数等等。

1.2遗传算法脚

遗传算法(GeneticAlgorithms,GA)研究的历史比较短,20世纪60年代末期及70年代初期,主要由美国Michigan大学的JohnHolland与其同事、学生们研究形成了一个较完整的理论和方法,从试图解释自然系统中生物的复杂适应过程入手,模拟生物进化的机制来构造人工系统的模型。随后经过20余年的发展,取得了丰硕的应用成果和理论研究的进展,特别是近年来世界范围形成的进化计算热潮,计算智能已作为人工智能的一个重要方向,以及后来的人工生命研究兴起,使遗传算法受到广泛的关注。

遗传算法是一类借鉴生物界自然选择和自然遗传机理的随机优化算法,是模拟达尔文遗传选择和自然淘汰生物进化过程的计算模型。主要特点是群体搜索策略和群体中个体的信息交换,搜索不依赖于梯度信息。尤其适用于处理传统搜索方法难以解决的复杂和非线性问题。可广泛用

于组合优化,机器学习,自适应控制,规划设计和人工生命等领域。其作为一种新的全局优化搜索方法,具有简单通用,鲁棒性强,适用于并行处理以及应用范困广等优点。

随着神经网络应用的广泛,传统优化方法在许多应用中有明显的缺点,加上人工智能发展迅速,使遗传算法这种优化算法在人工智能方向上走出了新路,尤其是与神经网络的结合,更加推动了人工智能理论应用的前景。

1.3神经网络及其应用

1987年6月,首届国际神经网络学术会议在美国加利弗尼亚洲召开,到会代表有1600余人。在会上成立了国际神经网络学会(InternationalNeuralNetworkSociety)。接着于1988年创办了世界第一份神经网络杂志<<NeuralNetwork>>。随后,国际电气工程师与电子工程师学会(IEEE)也成立了神经网络协会并出版神经网络刊物。

近几年来,在神经网络这个涉及多种学科的新的高科技领域中,吸引了众多的神经生理学家,心理学家,数理科学家,计算机与信息科学家以及工程师和企业家等。大量豹有关神经网络机理、模型、算法特性分析,以及在各方面应用的学术论文像雨后春笋般在报刊杂志上和许多国际学术会议中涌现,神经网络以及建立在神经网络原理基础上的神经计算机(NeuroComputer)成为当代高科技领域中方兴未艾的竞争热点。

人工神经网络以其独特的优点引起了人们的极大关注,其基本思想是从仿生学的角度对人脑的神经系统进行模拟,使机器具有人脑那样的感知,学习和推理等智能。神经网络理论是在现代神经科学研究成果的基础上提出来的,它反映了人脑功能的若干特性,但并非神经系统的逼真描述.而只是其简化,抽象和模拟。人工神经网络是一种抽象的数学模型,它可用作大脑结构模型,认识模型,计算机信息处理方式或算法结构。神经网络由许多并行运算的功能简单的单元一一神经元组成,这些单元类似于生物神经系统的神经元。神经网络是一个非线性动力系统,其特色在于信息的分布式存储和并行协同处理。虽然单个神经元的结构极其简单,功能有限,但大量神经元组成网络系统所能实现的行为却是极其丰富多彩的。它具有很强的容错性和鲁棒性,善于联想,综合和推广,因此它广泛用于人工智能,自动控制,机器人,统计学等领域的信息处理。有代表性的神经网络模型有感知器,多层映射BP网络,RBF网络,Hopfield网络等。其中,BP网络是应用比较广泛的~种模型。

1.4遗传算法优化神经网络研究现状

针对神经网络的联结权重初始化和训练,网络结构设计,学习规则调整等网络实现问题,目前基于GA的神经网络优化设计主要分为以下几类:

(一)网络联结权重的优化训练

传统的网络权重训练一般采用梯度下降的算法R“,但是易于陷入误差函数的局部极小点,利用遗传算法进行网络权重训练,就是将权重训练过程看成权重在网络结构和学习任务环境中进化。权重进化训练的实现主要包括两方面内容:一是权重个体染色体表达式的确定;

二是根据选取的染色体表达方式设计遗传操作算子。不同的表达方式和操作算子将产生不同的训练性能。标准遗传算法用二进制位串进行个体染色体表达【24】。在网络权重进化训练的早期研究中,多采用这种表达方式f2。2“。权重个体染色体的实值表达,对于实值表达,EP(进化规则)和ES(进化策略)更为适合,因为它们主要是基于突变操作,可避免杂交操作造成的负面影响。目前,在这方面已有大量成功的研究事例【27’281在这些实例中,遗传算子主要是Gaussian突变算子,也有采用Cauchy突变算子””。

(二)网络结构的优化设计

目前,对于网络结构设计已提出了一些方法,这些方法均可归结为结构“增构法”和“减构法”两类Ⅲ。“”】,其结构设计包括结构个体的染色体表达式设计和进化方法的选取两方面内容。大量研究[331表明,节点传递函数的不同选取将直接影响网络性能,因此网络结构的进化设计应考虑节点传递函数的选取。文献[34]将节点传递函数信息融入网络拓扑结构的编码表达中,实现了节点传递函数的进化选取;文献[35]则在初始群体中设定每个个体80%的节点为Sigmoid函数,20%的节点为Gaussian函数,传递函数的优化即为两种传递函数的节点比例的优化。

(三)网络结构和联结权重的同时优化

文献[36]指出无权重信息的结构优化设计中个体适应度的准确评价是困难的,克服这一问题的有效方法是对网络结构和网络权重同时进行优化,即结构信息和权重信息同时编码,以消除适应度评价噪声,从而提高个体进化效率和进化质量。

(四)训练算法的优化设计

大量研究已揭示出网络结构与训练算法间存在内在联系。因此,网络要得到更优的性能,须对其训练算法进行调整。训练算法的优化设计主要包括训练算法参数优化和学习规则进化两方面。训练算法进化设计的初期研究主要集中在对算法参数(如学习率和惯性系数等)的进化选取。其基本方法是将算法参数与网络结构一起编码进行优化m】。对于BP算法的学习参数也提出了一些非进化方式的参数调整方法,但这两者问的优缺点比较还有待于进一步研究。文献[38]将学习规则定义为4个节点局部变量及其2阶生成项的线性组合,忽略了3阶项和4阶项,并将10个口系数和1个尺度系数编码为二进制串,个体适应度计算采用单隐层网络。经过1000代的进化,得到了著名的delta规则和delta规则的派生规则。文献[39]采用文献[38]的进化策略对感知器的学习规则进行进化,也取得了满意的结果。文献[39]进一步将网络结构,联结权重和学习规则同时进化。

1.5本文的主要内容

本文主要讨论了遗传算法在神经网络优化设计中的应用,尤其对遗传算法与神经网络的结合在非线性控制中的应用情况加以研究。首先在第二章介绍了神经网络的理论基础,主要阐述了神经网络的基本理论与相关算法,然后讨论了BP网络的结构与理论,BP网络是应用比较广泛,研究也相对多的神经网络算法,但是它也存在许多缺点,尤其是收敛时间慢、极易陷入局部最小值,而应用遗传算法代替神经网络算法能够很好解决以上问题。在第三章重点讨论了遗传算法的理论与应用,结合各种遗传思想,对遗传算法作了深刻的理论阐述与应用展望,遗传算法作为优化算法的积极推动者,尤其是遗传算法与神经网络的结合使人工智能研究更具有挑战性和实用性,已经成为工业界和学术界的热点研究方向之一。

从第四章开始阐述了遗传算法与神经网络结合的具体应用,在神经网络对非线性对象生物反应器控制的基础上,加入遗传算法作为神经网络优化算法,对非线性对象生物反应器过程进行模拟控制,系统动态响应有明显的提高。随后对遗传算法作了相应的改进,采用自适应遗传算法,利用在遗传过程中根据种群每代性能对遗传交叉和变异进行自适应改变,使每代个体都是最优的。通过以上几种方法对生物反应器用神经网络控制器进行控制,取得了不同的控制效果,从而证明遗传算法对神

沈阳化T学院硕士学位论义第一章绪论经网络权值优化有更好的优化结果,能够完成对复杂非线性问题的优化计算。文章对提到的每种算法都用不同个数神经元的神经网络加以研究。对于神经网络结构的设计问题,主要针对网络隐含层和隐含层节点数的确定,提出一种方法设计神经网络结构,以异或(XOR)问题的神经网络为例,讨论了一种同时确定神经网络结构和权值的遗传优化方法,能够处理各节点任意连接的神经网络。关于神经网络结构设计的研究也是比较多,各种方法也都有其优缺点,在讨论了过去研究方法的基础上,对这方面也作了相应的研究,神经网络结构的研究还不够完善,有必要在以后的工作中对这方面进行更深入的研究。

第二章神经网络理论基础

2.1神经网络的历史回顾

从人脑的生理结构出发来研究人的智能行为,模拟人脑信息处理的过程,即人工神经网络的研究,经历了一条曲折的路程。大致分为兴起、萧条和兴盛三个时期。

早在1943年,心理学家Mcculloch和数学家Pitts在数学生物物理学会刊BulletinofMathematicalBiophysics上发表文章,总结了生物神经元的一些基本生理特性,提出了形式神经元的数学描述与结构方法,即M.P模型。在M.P模型中,赋予形式神经元的功能较弱但网络的计算能力巨大,同时具有并行计算的能力。M.P模型的提出兴起了对神经网络的研究。

1949年心理学家D.O.Hebb提出神经元之间突触联系强度可变的假设。他认为学习过程是在突触上发生的,突触的联系强度随其前后神经元的活动而变化。根据这一假设提出的学习率为神经网络的学习算法奠定了基础。

50年代末,Rosenblatt的感知机第一次把神经网络的研究付诸工程实践。这是~种学习和自组织的心理学模型。当时人们对神经网络研究过于乐观,认为只要将这种神经元互连成一个网络,就可解决人脑思维的模拟问题,以后碰到了理论上和实现技术上的困难,加上其它因素的影响,使得对神经网络的研究开始进入低潮。60年代,Minsky和Papert合作发表了颇有影响的《Perceptron》一书,得出了消极悲观的论点,加上数字计算机正处于全盛时期,并在人工智能领域取得显著成就,七十年代人工神经网络的研究完全处于低潮。

进入八十年代后,传统的VonNeumann数字计算机在模拟视听觉的人工智能方面遇到了物理上不可逾越的极限,与此同时,Rumelhart与McClelland以及gopfield等人在神经网络领域取得了突破性进展,神经网络的热潮再次掀起高潮。

目前在研究方法上已形成多个流派,最富有成果的研究工作包括:多层网络BP算法,Hopfield网络模型,自适应共振理论(ART),自组织特征映射理论等等。如今,神经网络已经应用到生产,生活的各个方

面,其应用十分广泛。

2.2神经网络主要原理及主要算法

2.2.1神经元网络的基本单元

图2.2.1表示了在中央神经系统中,典型神经细胞的主要元件。

图2.2.1神经元的构造

(1)细胞体:由细胞膜,细胞质和细胞壁等组成。

(2)轴突:有细胞体向外伸出的最长的一条分支,称为轴突,既神经纤维。

轴突相当于细胞的传输电缆,其端部的许多神经末梢为信号的输出端,用以送出神经激励。

(3)树突:由细胞体向外伸出的其它许多较短的分支,它相当于神经细胞的输入端,用于接受来自其它神经细胞的输入激励。

(4)突触:细胞与细胞之间通过轴突与树突相互连结,其接口称为突触,有兴奋型和抑制型两种。

(5)膜电位:细胞膜内外之间有电势差,约为70一100raV,膜内为负,膜外为正。

2.2.2神经元模型

人工神经元是对生物神经元的一种模拟与简化。它是神经网络的基本处理单元。图2.2.2显示了一种简化的人工神经元结构.它是一个多输入,单输出的非线性元件.其输入,输出关系可推述为:

,,=∑彩∥_-t9i(2.2.1)

i=l

(2-2-2)

其中,x,(1∥2?1")是从其他神经元传来的输入信号;%表示从神经元j到神经元i的连接权值;只为域植;“?)称为激发函数或作用函数。常用的几种激发函数有阂值型函数,饱和型函数,双曲函数,S型函数,高斯函数。其中最常用的是S型函数:

f(炉志肛。(2-2-3)

×

×

y×

图2.2.2人工神经元模型

垄堕些三竺堕堡主兰竺堡苎兰三兰i生型型墨里!!型旦2.2.3人工神经网络模型

人工神经网络是以工程技术手段来模拟人脑神经元网络的结构与特征的系统。我们利用人工神经元可以构成各种不同拓扑结构的神经网络,它是生物神经网络的一种模拟和近似。就神经网络的主要连接型式而言,目前已有数十种的神经网络模型,其中前馈型网络和反馈型网络是两种典型的结构模型。

fl、前馈型神经网络:

前馈型神经网络,又称前向网络(FeedforwardNN)。如图2.2.3所示,神经元分层排列,有输入层,隐层和输出层,每~层的神经元只接受前一层神经元的输入。

从学习的观点来看,前馈网络是一种强有力的学习系统,其结构简单而易于编程;从系统的观点看,前馈网络是一静态非线性映射,通过简单非线性处理单元的复合映射,可获得复杂的非线性处理能力。典型的前馈网络有感知器网络,BP网络等。

输入层!隐层:输出层

图2.2.3前馈型神经网络结构

(2)反馈型神经网络:

反馈型神经网络(FeedbackNN)的结构如图2.2.4所示。若总节点(神经元)数为N,则每个节点有N个输入和一个输出,也就是说,所有节点都是一样的,它们之间都可相互连接。反馈神经网络是一种反馈动力学系统,它需要工作一段才能稳定。Hopfield神经网络是反馈网络中最简单且应用广泛的模型,它具有联想的功能。

图2.2.4反馈型神经网络结构

2.2.4神经网络的学习方法

学习方法是体现人工神经网络智能特性的主要标志,离开了学习算法,人工神经网络就失去了自适应,自组织和自学习的能力。目前神经网络的学习方法有多种,按有无导师来分类,可分为有教师学习,无教师学习和再励学习等几大类。在有教师的学习方式中,网络的输出和期望的输出进行比较,然后根据两者之间的差异调整网络的权值,最终使差异变小。在无教师的学习方式中,输入模式进入网络后,网络按照预先设定的规则自动调整权值,使网络最终具有模式分类等功能。再励学习是介于上述两者之间的一种学习方式。

下面介绍神经网络中常用的几种最基本的学习方法:

f1)Hebb学习规则:

Hebb学习规则是一种联想式学习方法。联想是人脑形象思维过程的一种表现形式。生物学家D.O.Hebbian基于对生物学和心理学的研究,提出了学习行为的突触联系和神经群理论。认为突触前与突触后二者同时兴奋,即两个神经元同时处于激发状态时,它们之间的连接强度得到加强,这一论述的数学描述被称为Hebb学习规则,即:

COⅣ(露+1)=∞。(k)+Ii,,(2—2-4)

其中,彩。(≈)为从神经元i到神经元J的当前权值;,。,,,为神经元的激活水平。

(2)Delta学习规则:

假设下列误差准则函数:

1P‘P

占=÷∑(d,一y,)=∑E,(2_2-5)

厶D=lPtl

神经网络中W是网络的所有权值组成的向量,现在问题是如何调整权值∥使准则函数最小,可用梯度下降法来求解,其基本思想是沿着E的负梯度方向不断修正矿值,直到E达到最小,∥的修正规则为:

△%=77∑(d,一%),1(p,)?X,(2—2-6)

此式既为Delta学习规则,也叫占学习规则,又称误差修正规则。J规则实现了E中的梯度下降,因此使误差函数达到晟小值。但它只适用于线性可分函数,无法用于多层网络。

(3)概率式学习:

从统计力学,分子热力学和概率论中关于系统稳态能量的标准出发,进行神经网络学习的方式称概率式学习。神经网络处于某一状态的概率主要取决于在此状态下的能量,能量越低,概率越大。同时,概率还取决于温度参数T。T越大,不同状态出现的概率的差异便越小,较容易跳出能量的局部极小点;T越小时,情形正相反。

(41竞争式学习:

竞争式学习属于无教师学习方式。这种学习方式是利用不同层问的神经元发生兴奋性联接,以及同一层距离很近的神经元间发生同样的兴奋性联接,而距离较远的神经元发生抑制性联接。在这种联接机制中引入竞争机制的学习方式称为竞争学习。它的本质在于神经网络中高层次的神经元对低层次神经元的输入模式进行竞争识别。在这类学习规则中,关键不在于实节点的输出怎样与外部的期望输出相~致,而在于调整权向量以反映观察事件的分布,提供基于检测特性空间的活动规律的性能描写。

2.3BP网络及其算法

2.3.1BP网络

下面具体讨论本课题主要研究的基于遗传算法优化的BP网络的相

关理论,误差反向传播神经网络,简称BP网络,是一种单向传播的多层前向网络。在自适应控制、模式识别、图象处理、系统辨识、函数拟合、优化计算,最优预测等领域有着较为广泛的应用。图2.3.1是BP网络示意图。

墙入层隐舍屡蝓出羼

———1磊丽——一

图2.3.1BP网络结构

误差反向传播的BP算法简称BP算法,其基本思想是最小二乘法。它采用梯度搜索技术,以期使网络的实际输出值与期望值的误差均方值为最小。

BP算法的学习过程由正向传播和反向传播组成。在正向传播过程中,输入信息从输入层经隐含层处理,并传向输出层,每层神经元的状态只影响下一层神经元的状态。如果在输出层不能得到期望的输出,则转入反向传播,将误差信号沿原来的连接通路返回,通过修改各层神经元的权值,使误差信号最小。

设BP网络的结构如图2.3.1所示,有M个输入节点,输入层节点的输出等于其输入.输出层有L个输出节点,网络的隐含层有q个节点,缈。是输入层和隐含层节点之间的连接权值。国。是隐含层和输出层节点之间的连接权值,隐含层和输出层节点的输入是前一层节点的输出的加权和,每个节点的激励程度由它的激发函数来决定。

2.3.2BP算法

(1)BP网络的前馈计算

在训练该网络的学习阶段,设有N个训练样本,先假设用其中的某一固定样本中的输入输出模式彳,和{d肚}对网络进行训练。暂时将公式中样本P的记号略去,如隐含层的第j个节点的输入写为:

net∥=netJ=∑%DJ(2—3-1)

J=1

第j个节点的输出为

Oj=f(net,)(2-3—2)

其中,f(netj)=—丢而

(2—3—3)

1+P一—r

其中,q表示偏置或闽值,正的q的作用是使激发函数沿水平轴向右移;吼的作用是调节艿函数的形状,较小的晚使占函数逼近阶跃函数,较大的吼使J函数变得较为平坦。占函数为:

万。薏=一瓦OEp瓦3yp(:。。)

a8。ay。a0,、’

第j个节点的输出g将通过加权系数∞且向前传播到第≈个节点,输出层第≈个节点的总输入为:

netk=∑%Oj(2-3—5)

其中q为隐含层的节点数。输出层第|i}个节点的实际网络输出为:0^=f(net々)若网络输出与期望输出值d。不一致,则将其误差从输出端反向传播(见图2.3.1),并在传播过程中对加权系数不断修J下,使在输出层节点上得到的输出结果尽可能接近期望输出值以。对样本

P(P=1,2,…,P)完成网络加权系数的调整后,再送入另一样本模式对,进行类似学习,直到完成P个样本的训l练学习为止。

(21BP网络权值的调整规则

设每一样本P的输入输出模式对的二次型误差函数定义为:

1上2

E,=寺∑(d肚一D肿)

(2_3?6)

厶}=1系统的平均误差代价函数为:

O肚)=∑EF(2—3-7)

式中,P为样本模式对数,L为网络的输出节点数。问题是如何调整连接权系数以使代价函数E最小。下面给出一阶梯度法的优化方法,即最速下降法权值调节的权系数公式。

输出层权系数修正公式为:

A(oj,=r/(dk—Q)f(netI)Oj=可以Oj

(2—3-8)对于输出节点k:Apco业=∥。(netp,)(d肚-0肚)0∥

(2—3—9)隐含层节点权系数调整:

对于隐含节点,:Ap(OF=矿‘(nFf∥)I∑占pk(0止10,(2-3.10)

,L、\k=l/式中,0肚是输出节点k的输出,Opj是隐含节点,的输出,0。,是输入节点i的输出。因此有网络连接权值调整式;

c00(t+1)=c00,(t)+卵4q+口f%(0一co,j(t—1)】

(2.3.11)

式中,t+l表示第t+l步,口平滑因子,0<口<1。(3)BP网络学习算法的流程图如图2.3.2

在使用BP算法时,要注意几个问题:

1)学习开始,各隐含层连接权系数的初值应以设置较小的随机数为适宜。2)采用S型激发函数时,由于输出层各神经元的输出只能趋于1或O,

不能到达1或0。在设置各训练样本时,期望的输出分量d。不能设置为1或0,以设置为0.9或0.1为适宜。

沈阳化T学院硕士学位论文第二章神经网络理论基础3)学习速率柙的选择,在学习开始阶段,叩选较大的值可以加快学习速率。

学习接近优化区时,玎值必须相当小,否则权系数将产生振荡而不收敛。

平滑因子班的选值在0.9左右。

初始化

给定输入向量和目标输出

求隐含层、输出层各节点输出

求目标值与实际输出的偏差

计算反向误差

,夏、权值学习

N//\\

—<二,学习结束?∑

结柬

图2.3.2BP网络学习算法流图

2.3.3BP算法的改进

为了克服BP算法收敛速度慢和局部极小点问题,许多学者从不同

的侧面对BP算法进行修正。

(1)变步长算法。

BP算法是在梯度基础上推算出来的,在一般最梯度法中,步长r/是由一维搜索求得的,求解有下面几个步骤:

a.给定初始权W(O)和允许误差e>0;

b.计算误差E的负梯度方向d(”)=.VE(co):

c.若肛枷’Jf<e,则停止计算;否则从W(n。)出发,沿d‘”’作一维搜索,求

兰堕些三竺堕堡主兰堡丝兰篁三童壁垒堕塑堡笙茔型出最优步长,7(n。);

d.进行权的迭代:

W(n。+1)=W(no)+即(咒o)d‘‰’(2-3—12)并转ba

但是在BP算法中步长五(学习率)是不变的,其原因是由于E(w)是一

个十分复杂的非线性函数,很难通过最优求极小的方向得到最优的步长五。可是从BP网络的误差吐面看出,有平坦区存在,如果在平坦区上五太小使迭代次数增加,而当w落到误差剧烈变化的地方,步长太大又使误差增加,反而使迭代次数增加影响了学习收敛的速度,变步长方法可以使步长得到合理的调节。

(2)加动量项。

为了加速收敛和防止振荡,在许多文献中都建议引入一个动量因子a:

W(no+1)=W(no)+五(辩o)d(”o)+OAW(no)(Z-3—13)

其中第三项是记忆上一时刻权的修改方向,而在时刻n。的修改方向为(12。一1)时刻的方向与11。时刻方向的组合。将式(2.3.13)改写为:

W(no+1)2W(no)+^(no)[d(no)+—i笋_AW(no)】(2-3-14)

x4,noJ

上式中动量因子0<a<l。建议在五(n。)进行调整时,碰到AE>0,五要

减小时,让a=O,然后调节到五增加时,使a恢复。

此外还有很多BP算法的改进方法,以上列出的是最常用的改进方法。2.4小结

本章在回顾了神经网络的发展历史的同时,详细地介绍了神经网络理

论,讨论了不同结构的神经网络以及它们的算法,包括前馈神经网络结

构和反馈神经网络结构,这两种结构也是最典型的神经网络结构。随后

重点介绍了本课题主要研究的BP网络的相关理论,针对BP网络给出了

详尽的讨论,最后在介绍了BP网络算法的同时总结了这种算法的不足之处,提出几种改进方法,BP网络是一种前馈网络,其算法具有反向传播的特点,其反向传播的是网络输出值与期望值的偏差。不过BP网络极易陷入局部极小值,下章讨论的遗传算法具有全局寻优的特点,能够很好的弥补BP网络收敛速度慢、容易陷入局部极小值问题。

matlab遗传算法优化神经网络权值教程

matlab遗传算法优化神经网络权值教程第4章nnToolKit神经网络工具包 4.1 nnToolKit简介 神经网络工具包是基于MATLAB神经网络工具箱自行开发的一组神经网络算法函数库 可在MATLAB环境下均独立运行,也可打包成DLL组件,直接被VB、VC、 C++ 、C#、JAVA或其他支持COM的语言所调用 本工具包中增加了一些MATLAB中没有的神经网络算法,如模糊神经网络、小波神经网络、遗传神经网络算法等 4.2nnToolKit函数库 4.2nnToolKit 函数库 4.2nnToolKit函数库 例4-1 对ch4\nnToolKit工具箱\lmnet文件夹中文件(input_para1.txt和output_para1.txt)提供的专家样本数据进行网络训练。%此为BP网络训练程序

function retstr = LmTrain(ModelNo,NetPara,TrainPara,InputFun,OutputFun,DataDir)NNTWARN OFF retstr=-1; ModelNo=‘1’;NetPara(1)=7;Ne tPara(2)=1; NetPara(3)=6;NetPara(4)=10; 4.2nnToolKit函数库 4.2nnToolKit函数库 例4-2 输入一组测试样本数据,对例4-1训练的网络模型进行仿真 %此为一仿真程序%首先读入权域值参数 function retdouble = LmSimu(ModelNo,NetPara,SimulatePara,InputFun,OutputFun,DataDir)NNTWA RN OFF %%%% 输入参数赋值开始 %%%%%%%%%%%%%%%%%%%%%%%% 这 部分代码主要是方便用户调试用ModelNo=‘1’; NetPara(1)=7; 4.2nnToolKit函数库

MATLAB实验遗传算法和优化设计

实验六 遗传算法与优化设计 一、实验目的 1. 了解遗传算法的基本原理和基本操作(选择、交叉、变异); 2. 学习使用Matlab 中的遗传算法工具箱(gatool)来解决优化设计问题; 二、实验原理及遗传算法工具箱介绍 1. 一个优化设计例子 图1所示是用于传输微波信号的微带线(电极)的横截面结构示意图,上下两根黑条分别代表上电极和下电极,一般下电极接地,上电极接输入信号,电极之间是介质(如空气,陶瓷等)。微带电极的结构参数如图所示,W 、t 分别是上电极的宽度和厚度,D 是上下电极间距。当微波信号在微带线中传输时,由于趋肤效应,微带线中的电流集中在电极的表面,会产生较大的欧姆损耗。根据微带传输线理论,高频工作状态下(假定信号频率1GHz ),电极的欧姆损耗可以写成(简单起见,不考虑电极厚度造成电极宽度的增加): 图1 微带线横截面结构以及场分布示意图 {} 28.6821ln 5020.942ln 20.942S W R W D D D t D W D D W W t D W W D e D D παπππ=+++-+++?????? ? ??? ??????????? ??????? (1) 其中πρμ0=S R 为金属的表面电阻率, ρ为电阻率。可见电极的结构参数影响着电极损耗,通过合理设计这些参数可以使电极的欧姆损耗做到最小,这就是所谓的最优化问题或者称为规划设计问题。此处设计变量有3个:W 、D 、t ,它们组成决策向量[W, D ,t ] T ,待优化函数(,,)W D t α称为目标函数。 上述优化设计问题可以抽象为数学描述: ()()min .. 0,1,2,...,j f X s t g X j p ????≤=? (2)

遗传算法在BP神经网络优化中的应用.

遗传算法在 BP 神经网络优化中的应用 2O世纪80年代后期,多机器人协作成为一种新的机器人应用形式日益引起国内外学术界的兴趣与关注。一方面,由于任务的复杂性,在单机器人难以完成任务时,人们希望通过多机器人之间的协调与合作来完成。另一方面,人们也希望通过多机器人间的协调与合作,来提高机器人系统在作业过程中的效率。1943年,Maeullocu和 Pitts融合了生物物理学和数学提出了第一个神经元模型。从这以后,人工神经网络经历了发展、停滞、再发展的过程,时至今日正走向成熟,在广泛领域里得到了应用,其中将人工神经网络技术应用到多机器人协作成为新的研究领域。本文研究通过人工神经网络控制多机器人完成协作搬运的任务-3 J,并应用遗传算法来对神经网络进行优化。仿真结果表明,经过遗传算法优化后的搬运工作效率显著提高,误差降低。 1 人工神经网络 ANN)的基本原理和结构 人工神经网络(Artiifcial Neural Network,ANN)) 是抽象、简化与模拟大脑神经结构的计算模型,又称并行分布处理模型 J。ANN 由大量功能简单且具有自适应能力的信息处理单元——人工神经元按照大规模并行的方式通过一定的拓扑结构连接而成。ANN拓扑结构很多,其中采用反向传播(Back-Propa- gation,BP)算法的前馈型神经网络(如下图1所示),即BP人工神经网络,是人工神经网络中最常用、最成熟的神经网络之一。 BP网络模型处理信息的基本原理是:输入信号x;通过中间节点(隐层点 )作用于出节点,经过非线形变换,产生输出信Yk,网络训练的每个样本包括输入向量 x和期望输出量 T,网络输出值Y与期望输出值T之间的偏差,通过调整输入节点与隐层节点的联接强度取值w;;和隐层节点与输出节点之间的联接强度Y以及阈值,使误差沿梯度方向下降,经过反复学习训练,确定与最小误差相对应的网络参数 (权值和阈值),训练即告停止。此时经过训练的神经网络即能对类似样本的输入信息,自行处理输出误差最小的经过非线形转换的信息。

遗传算法与优化问题(重要,有代码)

实验十遗传算法与优化问题 一、问题背景与实验目的 遗传算法(Genetic Algorithm—GA),是模拟达尔文的遗传选择和自然淘汰的生物进化过程的计算模型,它是由美国Michigan大学的J.Holland教授于1975年首先提出的.遗传算法作为一种新的全局优化搜索算法,以其简单通用、鲁棒性强、适于并行处理及应用范围广等显著特点,奠定了它作为21世纪关键智能计算之一的地位. 本实验将首先介绍一下遗传算法的基本理论,然后用其解决几个简单的函数最值问题,使读者能够学会利用遗传算法进行初步的优化计算.1.遗传算法的基本原理 遗传算法的基本思想正是基于模仿生物界遗传学的遗传过程.它把问题的参数用基因代表,把问题的解用染色体代表(在计算机里用二进制码表示),从而得到一个由具有不同染色体的个体组成的群体.这个群体在问题特定的环境里生存竞争,适者有最好的机会生存和产生后代.后代随机化地继承了父代的最好特征,并也在生存环境的控制支配下继续这一过程.群体的染色体都将逐渐适应环境,不断进化,最后收敛到一族最适应环境的类似个体,即得到问题最优的解.值得注意的一点是,现在的遗传算法是受生物进化论学说的启发提出的,这种学说对我们用计算机解决复杂问题很有用,而它本身是否完全正确并不重要(目前生物界对此学说尚有争议). (1)遗传算法中的生物遗传学概念 由于遗传算法是由进化论和遗传学机理而产生的直接搜索优化方法;故而在这个算法中要用到各种进化和遗传学的概念. 首先给出遗传学概念、遗传算法概念和相应的数学概念三者之间的对应关系.这些概念如下: 序号遗传学概念遗传算法概念数学概念 1 个体要处理的基本对象、结构也就是可行解 2 群体个体的集合被选定的一组可行解 3 染色体个体的表现形式可行解的编码 4 基因染色体中的元素编码中的元素 5 基因位某一基因在染色体中的位置元素在编码中的位置 6 适应值个体对于环境的适应程度, 或在环境压力下的生存能力可行解所对应的适应函数值 7 种群被选定的一组染色体或个体根据入选概率定出的一组 可行解 8 选择从群体中选择优胜的个体, 淘汰劣质个体的操作保留或复制适应值大的可行解,去掉小的可行解 9 交叉一组染色体上对应基因段的 交换根据交叉原则产生的一组新解 10 交叉概率染色体对应基因段交换的概 率(可能性大小)闭区间[0,1]上的一个值,一般为0.65~0.90 11 变异染色体水平上基因变化编码的某些元素被改变

基于遗传算法的BP神经网络MATLAB代码

用遗传算法优化BP神经网络的Matlab编程实例(转) 由于BP网络的权值优化是一个无约束优化问题,而且权值要采用实数编码,所以直接利用Matlab遗传算法工具箱。以下贴出的代码是为一个19输入变量,1个输出变量情况下的非线性回归而设计的,如果要应用于其它情况,只需改动编解码函数即可。 程序一:GA训练BP权值的主函数 function net=GABPNET(XX,YY) %-------------------------------------------------------------------------- % GABPNET.m % 使用遗传算法对BP网络权值阈值进行优化,再用BP算法训练网络 %-------------------------------------------------------------------------- %数据归一化预处理 nntwarn off XX=[1:19;2:20;3:21;4:22]'; YY=[1:4]; XX=premnmx(XX); YY=premnmx(YY); YY %创建网络 net=newff(minmax(XX),[19,25,1],{'tansig','tansig','purelin'},'tra inlm'); %下面使用遗传算法对网络进行优化 P=XX; T=YY; R=size(P,1); S2=size(T,1); S1=25;%隐含层节点数 S=R*S1+S1*S2+S1+S2;%遗传算法编码长度 aa=ones(S,1)*[-1,1]; popu=50;%种群规模 save data2 XX YY % 是将 xx,yy 二个变数的数值存入 data2 这个MAT-file,initPpp=initializega(popu,aa,'gabpEval');%初始化种群 gen=100;%遗传代数

遗传算法与神经网络的结合.

系统工程理论与实践 Systems Engineering——Theory & Practice 1999年第2期第19卷 vol.19 No.2 1999 遗传算法与神经网络的结合 李敏强徐博艺寇纪淞 摘要阐明了遗传算法和神经网络结合的必要性和可行性,提出用多层前馈神经网络作为遗传搜索的问题表示方式的思想。用遗传算法和神经网络结合的方法求解了短期地震预报问题,设计了用遗传算法训练神经网络权重的新方法,实验结果显示了遗传算法快速学习网络权重的能力,并且能够摆脱局部极点的困扰。 关键词遗传算法进化计算神经网络 On the Combination of Genetic Algorithms and Neural Networks Li Minqiang Xu Boyi Kou Jisong (Institute of Systems Engineering, Tianjin University, Tianjin 300072 Abstract In this paper, we demonstrate the necessity and possibility of combining neural network (NN with GAs. The notion of using multilayered feed forward NN as the representation method of genetic and the searching technique is introduced. We combine GA and NN for solving short term earthquake forecasting problem, design a novel method of using GAs to train connection weights of NN.The empirical test indicates the capability of the new method in fast learning of NN and escaping local optima. Keywords genetic algorithms; evolutionary computation; neural networks

遗传算法优化的BP神经网络建模[精选.]

遗传算法优化的BP神经网络建模 十一月匆匆过去,每天依然在忙碌着与文档相关的东西,在寒假前一个多月里,努力做好手头上的事的前提下多学习专业知识,依然是坚持学习与素质提高并重,依然是坚持锻炼身体,为明年找工作打下基础。 遗传算法优化的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问题的遗传算法求解 优化设计小论文

TSP问题的遗传算法求解 摘要:遗传算法是模拟生物进化过程的一种新的全局优化搜索算法,本文简单介绍了遗传算法,并应用标准遗传算法对旅行包问题进行求解。 关键词:遗传算法、旅行包问题 一、旅行包问题描述: 旅行商问题,即TSP问题(Traveling Saleman Problem)是数学领域的一个著名问题,也称作货郎担问题,简单描述为:一个旅行商需要拜访n个城市(1,2,…,n),他必须选择所走的路径,每个城市只能拜访一次,最后回到原来出发的城市,使得所走的路径最短。其最早的描述是1759年欧拉研究的骑士周游问题,对于国际象棋棋盘中的64个方格,走访64个方格一次且最终返回起始点。 用图论解释为有一个图G=(V,E),其中V是顶点集,E是边集,设D=(d ij)是有顶点i和顶点j之间的距离所组成的距离矩阵,旅行商问题就是求出一条通过所有顶点且每个顶点只能通过一次的具有最短距离的回路。若对于城市V={v1,v2,v3,...,vn}的一个访问顺序为T=(t1,t2,t3,…,ti,…,tn),其中ti∈V(i=1,2,3,…,n),且记tn+1= t1,则旅行商问题的数学模型为:min L=Σd(t(i),t(i+1)) (i=1,…,n) 旅行商问题是一个典型组合优化的问题,是一个NP难问题,其可能的路径数为(n-1)!,随着城市数目的增加,路径数急剧增加,对与小规模的旅行商问题,可以采取穷举法得到最优路径,但对于大型旅行商问题,则很难采用穷举法进行计算。 在生活中TSP有着广泛的应用,在交通方面,如何规划合理高效的道路交通,以减少拥堵;在物流方面,更好的规划物流,减少运营成本;在互联网中,如何设置节点,更好的让信息流动。许多实际工程问题属于大规模TSP,Korte于1988年提出的VLSI芯片加工问题可以对应于1.2e6的城市TSP,Bland于1989年提出X-ray衍射问题对应于14000城市TSP,Litke于1984年提出电路板设计中钻孔问题对应于17000城市TSP,以及Grotschel1991年提出的对应于442城市TSP的PCB442问题。

神经网络的应用及其发展

神经网络的应用及其发展 [摘要] 该文介绍了神经网络的发展、优点及其应用和发展动向,着重论述了神经网络目前的几个研究热点,即神经网络与遗传算法、灰色系统、专家系统、模糊控制、小波分析的结合。 [关键词]遗传算法灰色系统专家系统模糊控制小波分析 一、前言 神经网络最早的研究20世纪40年代心理学家Mcculloch和数学家Pitts合作提出的,他们提出的MP模型拉开了神经网络研究的序幕。神经网络的发展大致经过三个阶段:1947~1969年为初期,在这期间科学家们提出了许多神经元模型和学习规则,如MP模型、HEBB学习规则和感知器等;1970~1986年为过渡期,这个期间神经网络研究经过了一个低潮,继续发展。在此期间,科学家们做了大量的工作,如Hopfield教授对网络引入能量函数的概念,给出了网络的稳定性判据,提出了用于联想记忆和优化计算的途径。1984年,Hiton教授提出Boltzman机模型。1986年Kumelhart等人提出误差反向传播神经网络,简称BP 网络。目前,BP网络已成为广泛使用的网络;1987年至今为发展期,在此期间,神经网络受到国际重视,各个国家都展开研究,形成神经网络发展的另一个高潮。神经网络具有以下优点: (1) 具有很强的鲁棒性和容错性,因为信息是分布贮于网络内的神经元中。 (2) 并行处理方法,使得计算快速。 (3) 自学习、自组织、自适应性,使得网络可以处理不确定或不知道的系统。 (4) 可以充分逼近任意复杂的非线性关系。 (5) 具有很强的信息综合能力,能同时处理定量和定性的信息,能很好地协调多种输入信息关系,适用于多信息融合和多媒体技术。 二、神经网络应用现状 神经网络以其独特的结构和处理信息的方法,在许多实际应用领域中取得了显著的成效,主要应用如下: (1) 图像处理。对图像进行边缘监测、图像分割、图像压缩和图像恢复。

介绍遗传算法神经网络

课程设计作业——翻译 课题:介绍遗传算法神经网络 穆姣姣 0808490233 物流08-班

介绍遗传算法神经网络 理查德·坎普 1. 介绍 一旦一个神经网络模型被创造出来,它常常是可取的。利用这个模型的时候,识别套输入变量导致一个期望输出值。大量的变量和非线性性质的许多材料模型可以使找到一个最优组输入变量变得困难。 在这里,我们可以用遗传算法并试图解决这个问题。 遗传算法是什么?遗传算法是基于搜索algo-rithms力学的自然选择和遗传观察到生物的世界。他们使用两个方向(\适者生存”),在这种条件下,探索一个强劲的功能。重要的是,采用遗传算法,这不是必需要知道功能的形式,就其输出给定的输入(图1)。 健壮性我们这么说是什么意思呢?健壮性是效率和效能之间的平衡所使用的技术在许多不同的环境中。帮助解释这个问题,我们可以比其他搜索和优化技术,如calculus-based,列举,与随机的求索。 方法Calculus-based假设一个光滑,无约束函数和要么找到点在衍生为零(知易行难)或者接受一个方向梯度与当地日当地一所高中点(爬山)。研究了这些技术已经被重点研究、扩展、修改,但展现自己缺乏的鲁棒性是很简单的。 考虑如图2所示的功能。利用Calculus-based在这里发现极值是很容易的(假定派生的函数可以发现…!)。然而,一个更复杂的功能(图3)显示该方法是当地——如果搜索算法,在该地区的一个开始,它就会错过低高峰目标,最高的山峰。 图1 使用网络神经算法没必要知道它的每一项具体功能。 一旦一个局部极大时,进一步改进需要一个随机的重启或类似的东西。同时,假设一个函数光滑,可导,并明确知道很少尊重现实。许多真实世界充满了间断模型和设置在嘈杂的多通道搜索空间(图4)。 虽然calculus-based方法在某些环境中至非常有效的,但内在的假

遗传算法优化BP神经网络的实现代码-共6页

%读取数据 data=xlsread('data.xls'); %训练预测数据 data_train=data(1:113,:); data_test=data(118:123,:); input_train=data_train(:,1:9)'; output_train=data_train(:,10)'; input_test=data_test(:,1:9)'; output_test=data_test(:,10)'; %数据归一化 [inputn,mininput,maxinput,outputn,minoutput,maxoutput]=premnmx(input_tr ain,output_train); %对p和t进行字标准化预处理 net=newff(minmax(inputn),[10,1],{'tansig','purelin'},'trainlm'); net.trainParam.epochs=100; net.trainParam.lr=0.1; net.trainParam.goal=0.00001; %net.trainParam.show=NaN %网络训练 net=train(net,inputn,outputn); %数据归一化 inputn_test = tramnmx(input_test,mininput,maxinput); an=sim(net,inputn); test_simu=postmnmx(an,minoutput,maxoutput); error=test_simu-output_train; plot(error) k=error./output_train

基于遗传算法的齿轮减速器优化设计

煤矿机械Coal Mine Machinery Vol.30No.12 Dec.2009 第30卷第12期2009年12月 0引言 工程机械中所用电动机的转速较高,为了满足工作机低转速的需要,一般在电动机和工作机之间安装减速器,用来降低电机的转速或增大转矩,减速器是一种机械传动装置,广泛地应用于运输机械、矿山机械和建筑机械等重型机械中。因此,减速器的设计非常重要。 遗传算法(GA)是模拟生物在自然界中优胜劣汰的自然进化过程而形成的一种具有全局范围内优化的启发式搜索算法。这种方法已在很多学科得到广泛的应用,为减速器的优化设计提供有力的保证。因此,本文采用遗传算法对两级齿轮减速器进行优化设计,并通过与惩罚函数法和模拟退火算法等优化方法计算结果进行比较,来探讨适合于减速器的优化设计方法。 1建立数学模型 两级齿轮传动减速器结构如图1所示。该减速器的总中心距 a∑=[m n1z1(1+i1)+m n2z3(1+i2)]/2cosβ(1)式中m n1、m n2—— —高速级与低速级的齿轮法面模 数; i1、i2—— —高速级与低速级传动比; z1、z3—— —高速级与低速级的小齿轮齿数: β—— —2组齿轮组的螺旋角。 1.1设计变量的确定 在进行两级齿轮传动减速器设计时,一般选择齿轮传动独立的基本参数或性能参数,如齿轮的齿数、模数、传动比、螺旋角等为设计变量。两级齿轮传动由4个齿轮组成,分别用z1、z2、z3、z4表示,高速级的传动比由i1表示,低速级传动比由i2表示,两组齿轮组的法面模数分别由m n1和m n2表示,2组齿轮的螺旋角用β表示,由于两级齿轮传动减速器的总传动比i0,在设计时会给出具体数据,并且满足i0=i1i2,可以得出i2=i0/i1,可以确定独立的参数有z1、z3、m n1、m n2、i1和β。因此,可以确定该设计变量X=[z1,z3,m n1,m n2,i1,β]T=[x1,x2,x3,x4,x5,x6]T。 图1减速器结构简图 1.2目标函数的建立 在对减速器进行优化设计时,首先要确定目标函数。确定目标函数的原则是在满足各种性能要求的前提下,使减速器的体积最小,这样设计的减速器既经济又实用,从而达到了优化的目的。要使减速器的体积最小,必须使减速器的总中心距最小。因此,以减速器的中心距最小建立目标函数为 a∑=[x3x1(1+x5)+x4x2(1+i0/x5)] 6 (2)1.3约束条件的确定 为使两级齿轮传动减速器满足强度、设计变量 基于遗传算法的齿轮减速器优化设计* 吴婷,张礼兵,黄磊 (安徽建筑工业学院机电学院,合肥230601) 摘要:对两级齿轮减速器优化设计进行了分析,建立了其优化设计的数学模型,确定了优化设计的约束条件,采用遗传算法对两级齿轮减速器进行优化设计,并通过实例说明,采用遗传算法对减速器进行优化,可以得到更加优化的设计结果。 关键词:减速器;遗传算法;优化设计 中图分类号:TH132文献标志码:A文章编号:1003-0794(2009)12-0009-03 Gear Reducer Optimal Design Based on Genetic Algorithm WU Ting,ZHANG Li-bing,HUANG Lei (School of Mechanical and Electrical Engineering,Anhui University of Architecture,Hefei230601,China)Abstract:T he optimal design of a gear reducer was analyzed,the mathematic model was established, and the restriction condition was confirmed.Design of the gear reducer was optimized with genetic algorithm and the examples showed that design of the gear reducer based on genetic algorithm can gain more optimized result. Key words:reducer;genetic algorithm;optimal design *安徽省教育厅自然基金项目(2006KJ015C) 轴1轴2轴3 z1z2 z3z4 9

基于遗传算法的BP神经网络的应用

基于遗传算法的BP神经网络的应用 ----非线性函数拟合 摘要人工神经网络在诸多领域得到应用如信息工程、自动控制、电子技术、目标识别、数学建模、图像处理等领域,并且随着神经网络算啊发的不断改进以及其他新算法的结合,使其应用的领域越来越广。BP神经网络是目前神经网络领域研究最多应用最广的网络,但BP神经网络学习算法易陷入局部极小的缺陷,本文采用遗传算法来优化BP神经网络的性能。首先采用遗传算法来优化BP神经网络的权值和阈值,然后将这些优化值赋给网络得到优化的BP神经网络,最后用MATLAB仿真平台,对非线性函数的逼近拟合和极值寻优问题进行实验。数值仿真结果表明:经遗传算法优化的BP神经网络能有效地避免原始BP神经网络容易出现的局部极小的缺陷,且具有收敛速度快和精度高等优点。 关键词:BP神经网络遗传算法 MATLAB 结构优化 Abstract— In recent years, artificial neural network gradually attention has been paid into the hot area of research in many fields have been involved in electronic applications such as other fields have a wide range of applications, and also continued to expand its applications. To alleviate the shortcoming of easily sinking into the local minimum existing in the BP neural network, the paper exploits the genetic algorithm to optimize the BP neural network. First of all, the genetic algorithm is utilized to optimize the weight values as well as the threshold values of the BP neural network. Subsequently, by using the optimized weight values and threshold values, we are able to get the improved BP neural network. Furthermore, we employ the simulation data to measure the performance of the improved BP neural network. The numerical results indicate that the optimized BP neural network can effectively overcome the local minimum of the original BP neural network and outperform the original BP neural network in the aspects of convergence speed and

基于遗传算法的BP神经网络优化算法

案例3:基于遗传算法的BP神经网络优化算法 ******************************************************************************* **** 论坛申明: 1 案例为原创案例,论坛拥有帖子的版权,转载请注明出处(MATLABSKY论坛,《MATLAB 智能算法30个案例分析》 2 案例内容为书籍原创内容,内容为案例的提纲和主要内容。 3 作者长期驻扎在板块,对读者和会员问题有问必答。 4 案例配套有教学视频和完整的MATLAB程序,MATLAB程序在购买书籍后可以自由下载,教学视频需要另外购买。 MATLAB书籍预定方法和优惠服务:https://www.doczj.com/doc/bd10795061.html,/thread-9258-1-1.html 点击这里,预览该案例程序:https://www.doczj.com/doc/bd10795061.html,/znsf/view/s3/GABPMain.html 已经预定的朋友点此下载程序源代码:https://www.doczj.com/doc/bd10795061.html,/thread-11921-1-1.html * ******************************************************************************* ** 1、案例背景 BP网络是一类多层的前馈神经网络。它的名字源于在网络训练的过程中,调整网络的权值的算法是误差的反向传播的学习算法,即为BP学习算法。BP算法是Rumelhart等人在1986年提出来的。由于它的结构简单,可调整的参数多,训练算法也多,而且可操作性好,BP 神经网络获得了非常广泛的应用。据统计,有80%~90%的神经网络模型都是采用了BP网络或者是它的变形。BP网络是前向网络的核心部分,是神经网络中最精华、最完美的部分。BP神经网络虽然是人工神经网络中应用最广泛的算法,但是也存在着一些缺陷,例如: ①、学习收敛速度太慢; ②、不能保证收敛到全局最小点; ③、网络结构不易确定。 另外,网络结构、初始连接权值和阈值的选择对网络训练的影响很大,但是又无法准确获得,针对这些特点可以采用遗传算法对神经网络进行优化。 本节以某型号拖拉机的齿轮箱为工程背景,介绍使用基于遗传算法的BP神经网络进行齿轮箱故障的诊断。

神经网络与遗传算法

5.4 神经网络与遗传算法简介 在本节中,我们将着重讲述一些在网络设计、优化、性能分析、通信路由优化、选择、神经网络控制优化中有重要应用的常用的算法,包括神经网络算法、遗传算法、模拟退火算法等方法。用这些算法可以较容易地解决一些很复杂的,常规算法很难解决的问题。这些算法都有着很深的理论背景,本节不准备详细地讨论这些算法的理论,只对算法的原理和方法作简要的讨论。 5.4.1 神经网络 1. 神经网络的简单原理 人工神经网络(Artificial Neural Networks,简写为ANNs)也简称为神经网络(NNs)或称作连接模型(Connectionist Model),是对人脑或自然神经网络(Natural Neural Network)若干基本特性的抽象和模拟。人工神经网络以对大脑的生理研究成果为基础的,其目的在于模拟大脑的某些机理与机制,实现某个方面的功能。所以说, 人工神经网络是由人工建立的以有向图为拓扑结构的动态系统,它通过对连续或断续的输入作出状态相应而进行信息处理。它是根据人的认识过程而开发出的一种算法。假如我们现在只有一些输入和相应的输出,而对如何由输入得到输出的机理并不清楚,那么我们可以把输入与输出之间的未知过程看成是一个“网络”,通过不断地给这个网络输入和相应的输出来“训练”这个网络,网络根据输入和输出不断地调节自己的各节点之间的权值来满足输入和输出。这样,当训练结束后,我们给定一个输入,网络便会根据自己已调节好的权值计算出一个输出。这就是神经网络的简单原理。 2. 神经元和神经网络的结构 如上所述,神经网络的基本结构如图5.35所示: 隐层隐层2 1 图5.35 神经网络一般都有多层,分为输入层,输出层和隐含层,层数越多,计算结果越精确,但所需的时间也就越长,所以实际应用中要根据要求设计网络层数。神经网络中每一个节点叫做一个人工神经元,他对应于人脑中的神经元。人脑神经元由细胞体、树突和轴突三部分组成,是一种根须状蔓延物。神经元的中心有一闭点,称为细胞体,它能对接受到的信息进行处理,细胞体周围的纤维有两类,轴突是较长的神经纤维,是发出信息的。树突的神经纤维较短,而分支众多,是接收信息的。一个神经元的轴突末端与另一神经元的树突之间密

遗传算法优化BP神经网络权值和阈值(完整版)

https://www.doczj.com/doc/bd10795061.html,/viewthread.php?tid= 50653&extra=&highlight=%E9%81%97%E4%BC%A0%E7% AE%97%E6%B3%95&page=1 Matlab遗传算法优化神经网络的例子(已调试成功)最近论坛里问到用遗传算法优化神经网络问题的人很多,而且论坛里有很多这方面的代码。但可惜的是所有代码都或多或少有些错误!最郁闷的莫过于只有发帖寻求问题答案的探索者,却很少有对问题进行解答的victor。本人在论坛里看到不少会员对能运行成功的遗传算法优化神经网络例子的需求是多么急切,我也深有感触!现把调试成功的一个例子贴出来,供大家参考!(本例子是基于一篇硕士论文里的代码为蓝本改 编的,此处就不再注明作者了。)遗传算法优化bp.rar (3.34 KB) 注:该代码是由会员“书童”耗费了一整天的时间调试成功的,在此再次对我们的“书童”同学乐于助人的高尚品德致敬,并对其深表感谢!PS:参考会员“ilovexyq”意见,先对其做以补充。该网络为遗传算法 优化bp的一个典型例子,输入为7,输出为7,隐层为25。该网络输入输出数据就是为了说明问题而随便加的,没有实际意义。如用于自己的实际问题,把数据替换并根据需要改一下网络结构就行了。

PS:如有问题,请先阅读此贴: https://www.doczj.com/doc/bd10795061.html,/thread-52587-1-1.html### [本帖最后由 yuthreestone 于 2009-10-15 10:52 编辑] 搜索更多相关主题的帖子: 调试例子算法Matlab神经网络 https://www.doczj.com/doc/bd10795061.html,/thread-52587-1-1.html 遗传算法优化BP神经网络权值和阈值(完整版) 会员renjia前一段时间分享的程序,地址如下: https://www.doczj.com/doc/bd10795061.html,/viewthread.php?tid=50653&extra=&highlight=% E9%81%97%E4%BC%A0%E7%AE%97%E6%B3%95&page=1: (1)renjia提供的程序存在一些小错误,主要是设计的bp网络是两个隐含层,但编码的时候只有一个隐含层。修改后的程序将bp改成了单隐层以确保一致;(2)很多会员不知道该如何运行程序,各个m文件之间的关系弄不清楚。修改后的程序共包含三个m文件: 其中,主程序为ga_bp.m,适应度函数为gabpEval.m,编解码子函数为gadecod.m 注意:使用前需安装gaot工具箱(见附件),上述三个文件需放在同一文件夹中且将该文件夹设置为当前工作路径。 运行程序时只需运行主程序ga_bp.m即可。 (3)此程序仅为示例,针对其他的问题,只需将数据修改即可,但需注意变量名保持一致,尤其是全局变量修改时(在gadecod.m和gabpEval.m中也要修改)(4)gaot工具箱如何安装? 点击file选择set path,在弹出的对话框中选择add folder,将gaot文件夹添加进去,然后点击save保存即可。

用遗传算法优化BP神经网络的Matlab编程实例

用遗传算法优化BP神经网络的 Matlab编程实例 由于BP网络的权值优化是一个无约束优化问题,而且权值要采用实数编码,所以直接利用Matlab遗传算法工具箱。以下贴出的代码是为一个19输入变量,1个输出变量情况下的非线性回归而设计的,如果要应用于其它情况,只需改动编解码函数即可。 程序一:GA训练BP权值的主函数 function net=GABPNET(XX,YY) %-------------------------------------------------------------------------- % GABPNET.m % 使用遗传算法对BP网络权值阈值进行优化,再用BP 算法训练网络 %-------------------------------------------------------------------------- %数据归一化预处理 nntwarn off XX=premnmx(XX); YY=premnmx(YY); %创建网络 net=newff(minmax(XX),[19,25,1],{'tansig','tansig','purelin'},' trainlm'); %下面使用遗传算法对网络进行优化 P=XX; T=YY; R=size(P,1); S2=size(T,1); S1=25;%隐含层节点数 S=R*S1+S1*S2+S1+S2;%遗传算法编码长度 aa=ones(S,1)*[-1,1]; popu=50;%种群规模 initPpp=initializega(popu,aa,'gabpEval');%初始化种群 gen=100;%遗传代数 %下面调用gaot工具箱,其中目标函数定义为gabpEval [x,endPop,bPop,trace]=ga(aa,'gabpEval',[],initPpp,[1e-6 1 1],'maxGenTerm',gen,... 'normGeomSelect',[0.09],['arithXover'],[2],'nonUnifMutatio n',[2 gen 3]); %绘收敛曲线图 figure(1) plot(trace(:,1),1./trace(:,3),'r-'); hold on plot(trace(:,1),1./trace(:,2),'b-'); xlabel('Generation'); ylabel('Sum-Squared Error'); figure(2) plot(trace(:,1),trace(:,3),'r-'); hold on plot(trace(:,1),trace(:,2),'b-'); xlabel('Generation'); ylabel('Fittness'); %下面将初步得到的权值矩阵赋给尚未开始训练的BP网络 [W1,B1,W2,B2,P,T,A1,A2,SE,val]=gadecod(x); net.LW{2,1}=W1; net.LW{3,2}=W2; net.b{2,1}=B1; net.b{3,1}=B2; XX=P; YY=T; %设置训练参数 net.trainParam.show=1; net.trainParam.lr=1; net.trainParam.epochs=50; net.trainParam.goal=0.001; %训练网络 net=train(net,XX,YY); 程序二:适应值函数 function [sol, val] = gabpEval(sol,options) % val - the fittness of this individual % sol - the individual, returned to allow for Lamarckian evolution % options - [current_generation] load data2 nntwarn off XX=premnmx(XX); YY=premnmx(YY); P=XX; T=YY; R=size(P,1); S2=size(T,1); S1=25;%隐含层节点数 S=R*S1+S1*S2+S1+S2;%遗传算法编码长度 for i=1:S, x(i)=sol(i); end; [W1, B1, W2, B2, P, T, A1, A2, SE, val]=gadecod(x);

遗传算法电机优化设计简介

收稿日期:20001225 综 述 遗传算法电机优化设计简介 李鲲鹏,胡虔生 (东南大学,南京210096) B rief I ntroduction of Motor Optimizing Design B ased on G enetic Algorithms L I Kun -peng ,HU Qian -sheng (S outheast University ,Nanjing 210096,China ) 摘 要:介绍了遗传算法的基本思想及其特点,实现了基于遗传算法的电机优化设计,讨论了保证其全局收敛性的方法,最后给出了基于遗传算法的电机优化设计实例。 关键词:电机优化设计;遗传算法;全局收敛性中图分类号:T M302 文献标识码:A 文章编号:1004-7018(2001)04-0032-02 Abstract :In this paper ,the essence and a pplications of genetic alg orithms are friendly introduced.Based on com paris ons between ge 2netic alg orithms and conventional methods ,the a pplication of genetic alg orithm to motor design is im plemented.In this process ,the meth 2ods to improve the global convergence of genetic alg orithm are dis 2cussed.Finally ,the results of the optimization of three -phase electri 2cal machine design based on genetic alg orithms are presented. K eyw ords :motor optimal design ;genetic alg orithms (G A );glob 2al convergence 1遗传算法的基本思想及其特点 遗传算法是模拟生物进化机制的一种现代优化计算方法。其基本思想是:首先通过编码操作将问题空间映射到编码空间(如[0,1]L ),然后在编码空间内进行选择、交叉、变异三种遗传操作及其循环迭代操作,模拟生物遗传进化机制,搜索编码空间的最优解,最后逆映射到原问题空间,从而得到原问题的最优解。选择操作模拟了个体之间和个体与环境之间的生存竞争,优良个体有更多的生存繁殖机会。在这种选择压力作用下,个体之间通过交叉、变异遗传操作进行基因重组,期望得到更优秀的后代个体,在这场竞争中胜出。选择、交叉、变异遗传操作都是以概率值进行的。这些概率值与当时生存环境和个体适应能力密切相关。从这里可以看出遗传算法是一种随机性搜索算法,但是它不同于传统的随机搜索算法。遗传算法通过交叉算子(Cross over operator )和变异算子(Mutation Operator )的协同作用确保状态空间([0,1]L )各点的概 率可达性,在选择算子(Selection Operator )的作用下保证迭代进程的方向性。 2电机优化设计的数学模型和一般优化方法 电机优化设计的一般数学模型: min/max :f (x ) g i (X )≤0,i =1,2,3,…,m X j ∈[a j ,b j ],j =1,2,3,…,n (1) 其中:X =[x 1,x 2,x 3,…,x n ]为设计参量即电磁系统的参数,如冲片尺寸、绕组参量等。g i (X )(i =1,2,3,…,m )为约束条件,如性能约束和一般约束。由于目标函数f (X )和约束条件g i (X )都是X 的高度非线性函数,因此电机优化设计问题是求解约束非线性最优化问题。 由于电机设计的目标函数f (X )不是一个单纯的数学表达式,而是一段电机设计分析计算程序,在计算目标函数值的同时还计算各个性能指标值,即约束条件函数值,因此利用目标函数的梯度确定搜索方向的优化方法在电机优化设计中是相当繁琐,直接利用目标函数值的优化方法在电机优化设计中具有优势,遗传算法通过选择、交叉、变异算子的协同作用,既保证了搜索的方向性,又满足了状态空间各点的概率可达性,具有概率意义下的全局收敛性。遗传算法继承了传统确定性算法和一般随机算法的优点,是一种新的启发式随机搜索算法。 遗传算法对约束的处理有两种思路:增加修正算子将约束条件反映在遗传算子的设计中;利用惩罚函数法将有约束优化问题转化为无约束优化问题。在电机优化设计中常采取后者。基于遗传算法的惩罚函数主要分为静态惩罚函数、动态惩罚函数和自适应惩罚函数三种[4]。自适应惩罚函数法效果较好,但较复杂; 静态、动态惩罚函数相对较简单,经常使用。约束条件 23 微特电机 2001年第4期

相关主题
文本预览
相关文档 最新文档