可以将C语言表达式得基因表达式编程发给我吗,谢谢

基于改进型基因表达式编程的神经网络优化设计

简介:本文档为《基于改进型基因表达式编程的神经网络优化设计doc》可適用于综合领域

基于改进型基因表达式编程的神经网络优化设计王艳春,张金政()青岛农业大学理学与信息工程学院,山东青岛()摘要:提出一种用基因表达式编程GEP自动设计神经网络的算法。针对标准GEP算法在优化神经网络过程中的早熟现象和变异率低问题,对算法进行了改进,并给出算法嘚具体应用实例与其它优化算法的对比实验表明,GEP是一种有效的神经网络设计方法,并且改进的GEP算法比标准GEP算法进化效率高,将收敛率提高了個百分点,收敛速度快,进化代数仅是标准算法的。关键词:基因表达式编程神经网络网络结构权值进化()中图法分类号:TP文献标识码:A文章编号:OptimaldesignofneuralnetworksbasedonimprovedgeneexpressionprogrammingWANGYanchun,ZHANGJinzheng()CollegeofInformationScienceandEngineering,QingdaoAgriculturalUniversity,Qingdao,ChinaAbstract:Analgorithmforautomaticdesignofneuralnetworksusinggeneexpressionprogramming()GEPispresentedThestandardGEPisimprovedtosolvetheproblemofprematurityandlowermutationalrateinoptimizingneuralnetworksAnapplicationofdesigningneuralnetworksisformulatedandcomparedwithothersTheresultsdemonstratedthattheperformanceofmodifiedalgorithmismuchbetterthanthatofstandardGEPinthatitnotonlyhashigherevolutionefficiency,improvingconvergenceratebypercentagepointbuthasfasterconvergencespeedwithonlyevolutionarygenerationsofstandardGEPalgorithmKeywords:geneexpressionprogrammingneuralnetworksnetworkarchitectureweightsevolve动设計方法并对标准GEP算法进行了改进用异或问题对改引言进算法的高效性进行了验证并与其它算法进行了比较()()人工神经网络ANN是生物神经网络BNN嘚一种抽象()基因表达式编程GEP概述()和模拟是由大量的阈值逻辑单元也称为“神经元”高度并联、互联而成的一个复杂的自适应非线性动力学系统。它能GEP是演化算法的最新发展年月CandidaFer够通过对已知数据的学习、归纳和总结从而进行推理以形成(()reira在综合了遗传算法geneticalgorithmGAge和遗传编程一个可自動识别的系统目前神经网络在模式识别、故障检)neticprogrammingGP思想的基础上正式提出了该算法。它不仅继承了GA的简单性和变异的易操作性而且还保持叻测、预测等领域均得到了广泛的应用在实际应用中神经网GP在复杂问题求解过程中巨大的空间搜索能力它能通过简络的设计主要包括两個方面:确定网络的拓扑结构确定故GEP的性能优于传单紧凑的编码解决复杂的应用问题网络参数。然而由于没有一套系统完善的理论来指导神經GP目前GEP已经成功应用许多领域如函数发现、符统网络的设计其应用效果完全取决于使用者的经验和反复试号回归、时间序列预测等。验這不但不能保证一定能找到满足要求的神经网络更难保GEP的基因结构及编解码规则证所设计的网络是最佳的()GEP算法最大的特点就是个体的基洇型染色体表示形为了使神经网络在解决实际问题时更接近生物神经网络式。GEP的基因型个体是一个定长的线性符号串这个符号国内外学者對神经网络的结构和参数的确定进行了大量的研究提出了多种算法对神经网络进行优化设计其中年串由一个或多个等长基因组成。每个基因由头部和尾部构成(Ferreira在文献中提出用基因表达式编程geneexpressionpro头部可以选择任意函数符号和终结符而尾部只能选择终结)grammingGEP来优化设计神经网络但她呮对算法的可行性符对具体问题头长根据问题需要事先选定而尾长是和的函数其中是函数集中所需变量最多的函数的参数个进行了分析論证并没有考虑算法的效率及进化过程中存在的一些缺陷。本文研究了基于GEP的多层前馈神经网络的自()()也称最大操作数的大小由式得到数收稿日期:修订日期:()基金项目:国家自然科学基金项目。(()为:在每一代的进化过程中根据当代解的性能是否优于上一=×()代而动态确定变异率即当玳的变异率等于初始化时的变异在式中由于尾部和头部所具有的特定关系使得GEP的基因在任何遗传算子的作用下都不会产生句法上不率乘以仩一代最优个体适应度与当代最优个体适应度的商正确的个体。自适应代沟的替代策略()GEP的个体表现型被称为表达式树expressiontreeET种群的多样性是算法进化效率的保证为了降低选择压()()GEP的染色体基因型和表达式树表现型两者之间可以通中引入了自适应代沟的力保持种群的多样性笔者在攵献过简单的编码和解码规则无歧异地相互转化。替代策略取得了较好的效果试验表明该策略能使种群的()例如将如下基因==尾部用黑体表礻解码成表平均适应度和最大适应度逐代增大保证种群中个体的多样达式树只需按照从左到右的顺序逐个读取基因中的字符并性避免算法嘚早熟收敛。故这里仍采用该策略具体细节见按照从上到下的层次顺序和语法规则即可构成图所示的表这里不再赘述文献达式树。基于IGEP嘚神经网络设计方法()aa*bQabaabbababbab()IGEPImprovedGEP采用自动设计神经网络就是将神经网络的结构、参数编码为染色体并选取适宜的适应度评价函数然后进行GEP迭代直到达箌某种意义上的收敛其中染色体的编码、表达式树的转换、适应度函数的选择等问题是神经网络优化设计的关键。aIGEPNN的染色体结构和表达式树IGEPNNDw的染色体由部分组成即头部、身部、尾部、*a和Dt其中头部、身部和尾部编码网络的结构Dw和Dt则bQ分别编码网络的权值和阈值。这里头部只能取函数符号身部即可以取函数符号也可以取终结符号而尾部只能取终结a()()()符号其长度分别设定为ll××和l。IGEPNN中本文引入一种逻辑表达式树作為神经网络的在图基因的表达式树表现型现以图的神经网络为例阐述该逻辑表达式树与染色体之间的相互转化。对于给定的表达式树按照从上到下从左到右的顺序层神经网络表示为图所示的树结构其中p将图表示次遍历表达式树中的结点得到的符号序列即为基因编码的变量的函数该函数将每个变量值与相应的权值一个具有有效部分称为K表达式。如遍历图所示的表达式树可得相乘然后累加求和最后加上阈值鉯决定下层的输出ab分到如下K表达式:aa*bQa可以发现本例中的K表达式只别表示输入iiw~w表示连接权值D~D和表示阈值。个字符而整个基因的长度为个字符基因中位于包含在具体实现时其权值和阈值的初始值随机产生并分别存放K表达式之后的符号序列称为基因的非编码区Ferreira声称在两个一维数組中染色体DwDt和域的取值由存放其值的这些非编码区域的存在为程序进化提供了很大的空间。数组的下标来表示故可将图的树结构进一步轉化为图适应度函数和遗传操作的树结构。在GEP中常用的适应度函数有两种:基于绝对误差的适应度函数和基于相对误差的适应度函数对于不哃的具体问题应采用不同的适应度函数GEP中遗传操作包括选择复制操)(作、变异操作、插串操作IS插串、RIS插串、基因插串及重组操()单点重组、兩点重组、基因重组。具体细节参见文献作DOPwwWWGEP算法的改进hhDDPP在标准GEP算法的进化过程中主要考虑遗传算子在搜wwwwwwww索中的作用却忽视了种群多样性對算法效率的影响并且在iiabab进行遗传操作时各种算子均是按照事先确定的固定概率对种群进行操作而这可能造成种群的平均适应度下降甚至絀图简单神经网络图神经网络的树结构现未成熟收敛现象。针对标准GEP算法的这些缺陷本文对GEP算法进行了如下改进:动态变异率自适应代沟标准替代策略IGEPNN中将表达式树编码为染色体其编码规则为:动态变异率对表达式树的节点按照从上到下从左到右的顺序层次遍历()固定不变的变異率突变率、移位率和重组率等在某种得到的序列构成染色体的头部、身部和尾部然后按照从右到情况下并不能保证种群的多样性从而降低了进化效率并且左从下到上的顺序层次遍历表达式树节点的连接部分得到的序列构成染色体的Dw域最后按照从右到左从下到上的导致早熟現象发生。基于此提出动态变异率其具体规则顺序层次遍历表达式树的非叶子节点得到的序列即为染色(体的Dt域。如对图的表达式树按上述规则遍历得到序列与文献的遗传算法优化设计神经网络进行了比较本文实)染色体编码的有效部分pppabab即为IGEPNN验均在PGHz的PC机上运行。表给出了GEP的參数设置其中P、T、Q分别是具有、、变量的函数用Sigmoid函数计算所有输出表给出了两种算法的性能比较。P表GEP算法的参数设置运行参数详细描述運行参数详细描述PP进化代数染色体长度种群规模权重范围PTQ函数集阈值范围ababab终点集变异率个体基因数单点重组率图IGEPNN的表达式树头部长度IS插串率身部长度IS元素长度IGEP在进行适应度值的计算时需要将染色体串首先解码为表达式树然后再遍历表达式树由于树的构造和遍历操作非常耗时影响了算法的效率故本文采用文献提出的表标准GEP与标准GA的性能比较方法对染色体进行解码。GA优化方法标准GEPIGEPNN的遗传算子在标准GEP算法的进化過程中遗传算子对算法的性能收敛率平均进化代数影响较大为降低算法对遗传算子的依赖这里只选用单点重组、变异和IS插串种遗传算子進行重组操作时为保证神经网络的权值和阈值都得到进化对权值和阈值部分分别进从表看出标准GEP算法的收敛速度明显优于GA平行单点重组发苼变异时基因头部的符号只能变异成函数符GAGAGEP均进化代数仅是的但收敛率要低于然而在算法中可以得到所有适合于求解异或问题的神经网络包括号基因身部的符号可以变异成函数符号或终结符号基因尾部的符号只能变异成终结符号在基因的Dw域和Dt域变异结构化和非结构化的、冗餘的和节俭的并且可同时得到该结算子从存放权值和阈值的数组中随机选择一个目标位置然构中最优的权值和阈值。如序列PQbaaaa是算法连后产苼一个随机值来替换原有的值对DwDt或进行插串操续执行次得到的解图是其对应的表达式树若将个体作时ISDwDt元素必须是或域中的任意序列但序列的起始其它参数保持不变算法收敛率明显降低基因的身长变为{}位置、长度和目标位置是随机选择的。但能得到较图更节俭的解若将算法嘚函数集变为P其适应度函数它参数不变能得到图结构化的解这表明GEP算法的优采用各个输出神经元的实际输出与期望输出的误差平方化结果在规模和形式上具有多样性其取决于基因的头长、算的倒数作为适应度评价函数然后采用线性调整法对适应值法的函数集等。进行处理IGEPNN算法描述用IGEP根据上述的规则自动优化设计神经网络其算法PP描述如下:()设定参数初始化种群其个体的初始权值和阈值随机产生并存放在事先萣义的一维数组中PpQb()解码并计算种群所有个体的适应度()用轮盘赌选择策略执行选择操作()()种群进化执行单点重组、变异和IS插串产生新一ababaaaa代种群()解码并计算新一代种群中所有个体的适应度进行适图XOR中的表达式树图XOR中一个结构化解应度调整保存适应值最高的个体()(判断是否满足条件进囮代数满足事先确定的值或最为了提高标准GEP算法的收敛率从而提高算法的总体)优解在连续的次循环中改变量小于若满足则输出性能采用与標准GEP算法相同的参数设置用第节的改进最优个体作为神经网络的最佳结构结束运行否则执行自适GEP算法对求解异或问题的神经网络进行优化設计。将改进()重复执行上面步骤应代沟替代策略转到GEP算法独立运行次然后从收敛率、平均最优适应值和个方面将改进GEP算法与标准GEP算法的性能进平均误差行了比较如表所示。表改进GEP与标准GEP的性能比较收敛率平均最优适应值平均误差算法验证标准GEP改进GEP用C语言表达式编程采用异戓问题进行试验仿真为了验证GEP算法来设计神经网络并将它算法的有效性首先用标准()下转第页()质上变成与N>的情况是一样的此时:N=nNnN。置好PtTrend控件嘚资源即可对于全部相位数据我们在fff控件中绘制自己的图形同时还需要对某些指针事件进PtRaw放大定位行必要的处理经过测试当数据总点数茬时绘图在实际操作中往往要对图形的某一部分进行详细查看s完全满足系统设计时的要求。同时EAST所用的时间小于也就是说我们要将部分相位数据在屏幕上放大显示出来其实验也证明了程序具有良好的可靠性和可操作性低杂波系关键问题就是如何确定此部分数据的起点和终點其余工作统相位数据的显示方法具有一定的普遍性对其它数据在与绘制全部相位数据如出一辙。为此我们利用鼠标指针来QNX实时操作系统丅的显示也有一些可参考之处完成放大定位的问题单击鼠标左键时确定数据的起点拖动至鼠标左键释放时确定数据的终点。这一功能由PtRaw控件中原因为PtCBRAW的回调函参考文献:数来完成描述回调函数的信息结构体PtCallbackInfot中包PhEventt结构体的指针变量PhEventt是一个用含一个指向()丁伯江低杂波电流驱动LHCD嘚实验和数值模拟研究D于描述事件的数据结构其中包含了用于描述事件类型的成合肥:中国科学院等离子体物理研究所,员变量。程序中对事件类型进行判断处理王冬霞MDSPLUS在EAST低杂波数据管理系统中的应用回调函数对种事件类型进行处理:()J核电子学与探测技术,,:候业勤,张菁分()PhEVBUTPRESS:单击鼠标按键布式嵌入式实时操作系统QNXM北京:宇航,出版社()PhEVPTRMOTIONBUTTON:按键并移动鼠标RobertKQNXneutrinorealtimeoperatingsystemprogram()PhEVBUTRELEASE:释放鼠标按键此外程序mer'sguideMCanada:QNXSoftSystemLtd,还利用描述指针事件的结构体PhPointerEvent盖伊实战LinuxSocket编程M西安:西安電子科技大学出t对鼠标左键双击进行了处理。鼠标双击类似于某种还原操版社,作程序响应后把全部相位数据显示出来朱琳,罗家融,田一海核聚变实验数据采集系统中数据压缩算()法的研究J计算机工程,,:,AndrewSTranenbaum计算机网络M潘爱民,译版北京:清华大学出版社,结束语毛曙福LinuxC高级程序员指南M北京:國防工业出版社,低杂波系统相位数据分为实时相位数据和全部相位数据针对它们的不同特点我们使用不同的方法进行显示处理。对于实时楿位数据我们只需要利用系统提供的函数设()上接第页从表可以看出改进GEP算法性能明显优于标准GEPprogrammingCOnlineWorldConferenceonSoftComputing它能以较低的平均误差将收敛率提高到而且岼均最优inIndustrialApplications,适应值也明显提高表明改进GEP算法更适合于神经网络的王艳春基因表达式编程的LFC方法及其应用J计算机工程优化设计。究其原因在於改进GEP算法考虑了进化过程中的()与应用,,:随机性和早熟收敛使得种群的多样性得以保证避免了未成FerreiraCGeneexpressionprogramming:Anewadaptivealgo熟收敛的发生()rithmforsolvingproblemsJComplexSystems,,:结束语FerreiraCMutation,transposition,andrecombination:Ananaly通过以上对GEP算法的悝论分析和实验验证表明该算sisoftheevolutionarydynamicsCUSA:ProcofthethJoint法是一种有效进化神经网络的方法并且提出的改进策略能ConferenceonInformationSciences,thInternationalWork进一步提高其性能。主要体现在以下几点:shoponFrontiersinEvolutionaryAlgorithms,:()GEP算法采用叻遗传编码和个体表现型不同的思想ZuoJie,TangChangjie,LiChuan,etalTimeseriesprediction()通过对编码在固定长度的染色体基因型上的神经网络进行basedongeneexpressionprogrammingCProcofthethInt'l()表现型进化从而整体优化不同形状和大小嘚神经网络ConfforWebInformationAgeLNCSBerlin:Springer()GEP的染色体满足一定的结构约束从而允许任何遗Verlag,:传算子不受限制地在基因组上进行修改并且操作产生的基因在结构上都是合法的。FerreiraCDiscoveryoftheBooleanfunctionstothebestden()改进GEP算法从种群的多样性入手通过对种群变异sityclassificationrulesusinggeneexpressionprogrammingC率和适应度值的调整保证了种群的多样性避免了早熟收ProcofthethEuropeanConfonGeneticProgramming,LNCS敛从而提高了算法的收敛率和收敛速度Berlin:SpringerVerlag,:陈安升,蔡之华,谷琼,等一种新型的GEP算法及应用研究J计算机应用研()究,,:罗长寿,周丽英改进遗传算法的神经网()J情报杂志,:参考文献:络模型研究FerreiraCDesigningneuralnetworksusinggeneexpressionfile:D|峩的资料Desktop新建文本文档txtApplianceError(configurationerror)Yourrequestcouldnotbeprocessedbecauseofaconfigurationerror:"CouldnotconnecttoLDAPserver"Forassistance,contactyournetworksupportteamfile:D|我的资料Desktop新建文本文档txt::

}

近年来一些新的研究方法,如蟻群算法、人工神经网络、细胞自动机、人工免疫算法、进化算法等它们通过模拟某一自然现象或过程(“拟物”或“仿生”)来求得問题解决的办法,具有高度并行与自组织、自适应和自学习等特征已经在人工智能、机器学习、数据挖掘等领域中显示出强大的生命力與进一步发展的潜力。

在论文 基因表达式编程理论及其监督及其学习模型研究- 张克俊 中 提到:
通过构造独特的适应值函数和交叉验证方法來获得算法提前终止的条件相关实验究证明,采用改进的基因表达式编程算法比基本基因表达式编程算法和其它机器学习方法所构建的監督机器学习模型在噪声数据处理能力和泛化能力上有明显的提高

GEP在解码时按照从左到右的顺序读取基因中的一个个字符,然后根据语法规则将基因映射为相应的表达式树
GEP 的这种染色体结构兼备了GA 和GP 的个体组织方法的优点,因此在解决很多问题上GEP 的效率远远要高于GA 和GP。

基因表达式编程在监督机器学习中的应用研究成果表明,其非常适合于解决分类、复杂函数关系发现问题

基本GEP算法伪代码如下图所示:


种群:由多个等长的个体组成;
个体:(染色体)包含一个以上的等长基因

  • 头部:终结符集T+ 函数符集F( +、-、*、/、%、sin、cos、tan、max、min、与、或、非、等等)
  • 尾部:终结符集F (GEP输入、常量、变量 等等)

GEP的基本组织结构:

基因中的函数符号集:通常根据欲求解的问题来定义,可以直接取用标准函数也可以使用自定义的函数。如对于一个
简单代数问题可设 F={+,-,*,/},若是一个逻辑推理问题,可设 F={与, 或, 非};终点符号集则由数值常量、待求變量和无参函数构成详细的函数符号集和终点符号集选取问题。

通常根据问题的复杂度来定义尾部长度 t

其中 n 是 所有函数中最夶的目数。基因头和基因尾部长度保持这样的关系可以保证产生基因(编码)都是合法的。


有一个以上的基因组成基洇之间用连接符 “⊕” 连接,连接符具体取值视情况而定,一般取 “ +,-*,/ ”
一个由个基因组成的染色体解码为表达式树并转化为盯表达式囷数学表达式的过程:

基本中的遗传算子,主要包括选择、复制、变异、转座和重组,通常它们顺次执行,但变异、转座、重组之间操作的顺序,對最终结果并不十分重要。

基本的选择算子是轮盘赌选择法在轮盘赌选择中,每个个体的适应值在群体中所占的比例对应圆形賭盘的面积块轮盘按种群大小进行相应次数的旋转(使得群体的大小不变),每次旋转只选择一个个体个体的适应值越优,它被复制箌下一代的可能性越大


变异算子这里需要提的一点就是,为了让染色体的组织结构保持完整避免非法个体产生,对变异方式进行了一定嘚限制,如基因头部的基因元素值可以变异成任何基因元素而基因尾部的基因元素值,只能变异成终点符号集元素因此,GEP的变异操作產生的新生个体都是合法的个体这与遗传编程的变异操作会产生非法个体有明显的不同。

转座和重组就先不提及了我现在需要快点捋過一遍GEP,见谅

在 浙江大学博士学位论文《基因表达式编程理论及其监督机器学习模型研究》中写到关于 GEP的形式化表示:

  • 样本数据中有几个输入数据,终点符号集就包含几个变量

确定选择策略:优胜劣汰是进化算法选择策略的核心思想,GEP中用到的选择策略主要有轮盘赌锦标赛选择方法

轮盘赌选择方法轮盘赌选择又称比例选择算子,其基本思想是:各个个體被选中的概率与其适应度函数值大小成正比
轮盘赌选择法可用如下过程模拟来实现:
0 内产生一个均匀分布的随机数 r 的积累概率, 其计算公式如下图所示:

(看了好久终于理清楚了,应该没有理解错吧)
首先精英保留就是在使用遗传算子之前选出适应度值最大的个体,直接遗传到下一代不对其进行遗传操作。目的是保留最好的各面避免遗传算子破坏其优良特性。

}

我要回帖

更多关于 C语言表达式 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信