一种混合蝙蝠算法的优化方法以及多层感知器的优化方法与流程

文档序号:19788164发布日期:2020-01-24 13:53阅读:308来源:国知局
一种混合蝙蝠算法的优化方法以及多层感知器的优化方法与流程
本发明涉及智能计算
技术领域
,具体涉及一种混合蝙蝠算法的优化方法以及多层感知器的优化方法。
背景技术
:蝙蝠算法(batalgorithm,ba)是由yang(杨新社教授)在2010年提出来的,它是近年来比较受欢迎的元启发式算法之一。该算法具有设置参数少,结构简单,收敛速度快等优点。由于元启发式算法搜索最优解时,具有一定的随机性。蝙蝠算法作为一种新的启发式算法,它主要模拟自然界中蝙蝠利用超声波在全局目标空间中随机搜索食物和绕开障碍物的行为。因此,初始化种群的质量和搜索策略直接影响到蝙蝠算法搜索全局最优解的效率。目前,对于蝙蝠算法的改进主要分为两类:一类是基于算法自身机制的改进;另一类是混合其它算法的改进。本申请发明人在实施本发明的过程中,发现现有技术的方法,至少存在如下技术问题:现有的优化方法中随机初始化种群多样性不足,且在搜索过程容易陷入局部最优,蝙蝠算法的局部和全局搜索能力仍有提升的空间,也就是说现有的优化方法精度和稳定性仍有待提升。技术实现要素:有鉴于此,本发明提供了一种混合蝙蝠算法的优化方法以及多层感知器的优化方法,用以解决或者至少部分解决现有技术中的方法存在的精度和稳定性不佳的技术问题。为了解决上述技术问题,本发明第一方面提供了一种混合蝙蝠算法的优化方法,包括:步骤s1:设置初始化参数,初始化参数包括种群大小n、适应度目标函数、响度ai∈[1,2]、脉冲发射率ri∈[0,1]、最大迭代次数n_gen、频率fi∈[fmin,fmax]、脉冲频度增强系数γ、响度衰减系数α,其中γ和α都为常数;步骤s2:初始化蝙蝠种群和速度,其中,种群根据公式(1)进行初始化,速度vi可以初始化为0;xij=xjmin+(xjmax-xjmin)×rand(1)式(1)中,i∈[1,...,n],xij表示种群的第i行第j列元素,j∈[1,...,d],d表示种群的维度,xjmax和xjmin分别表示预设搜索区间第j维向量的最大值和最小值,rand为均匀分布在(0,1)的随机数;步骤s3:根据适应度目标函数计算蝙蝠个体的适应度,并根据个体适应度值对种群进行排序,得到相应原始种群的第一最优解和第一最差解;步骤s4:当前迭代次数t小于或等于最大迭代次数n_gen时,采用带扰动多策略反向学习对原始种群进行学习,得到第一多样性种群;步骤s5:根据个体适应度值,对第一多样性种群进行排序,对原始种群的第一最优解和第一最差解进行更新,获得第一多样性种群的第二最优解和第二最差解;步骤s6:采用自适应约束步长鲸鱼优化算法,对第一多样性种群进行全局搜索,并根据全局搜索结果,更新第一多样性种群以及对应的适应度值,获得第二多样性种群;步骤s7:根据个体适应度值,对第二多样性种群进行排序,获得第三最优解和第三最差解;步骤s8:采用基于柯西变异和动态纠正的蝙蝠算法,对第二多样性种群进行局部搜索,并根据局部搜索结果,更新多样性种群以及对应的适应度值,更新第三最优解和第三最差解,并获得对应当前代最优解和最优适应度值。在一种实施方式中,步骤s3具体包括:步骤s3.1:根据适应度目标函数计算蝙蝠个体的适应度;步骤s3.2:将初始种群中适应度值最小对应的个体为第一最优解,将初始种群中适应度值最大对应的个体为第一最差解。在一种实施方式中,步骤s4具体包括:步骤s4.1:对于种群中的任何个体,若当前迭代次数t与最大迭代次数n_gen的比值小于0.5,则利用一般反向学习重写的等式(2)生成种群中所有个体的一般反向解;否则,利用精英反向学习重写的等式(3)生成种群中所有个体的精英反向解,再利用公式(4)对所有精英反向解进行扰动;其中,常数k∈(0,1),max(x*)表示当前最优个体x*所有维度中的最大元素,min(x*)表示当前最优个体x*所有维度中的最小元素,表示当前最差解中第j维元素;表示当前最优解中第j维元素;步骤s4.2:步骤s4.1中产生的种群中,若存在反向解越出预先设置的解空间上下边界[lb,ub],则通过公式(5)重置越出边界的反向解计算并保存重置后的种群中所有个体的适应度值,式(5)中,lb表示预先定义解空间的下边界,ub表示预先定义解空间的上边界,表示由步骤4.1产生的反向解;步骤s4.3:将步骤s4.2处理后的种群与原种群合并,并根据个体的适应度值对合并后的种群进行排序,然后选择最佳的n个个体作为新种群,即多样性种群,其中多样性种群将参与到下一步进化过程。在一种实施方式中,步骤s5具体包括:步骤s5.1:根据适应度目标函数计算蝙蝠个体的适应度;步骤s5.2:将第一多样性种群中适应度值最小对应的个体为第二最优解,将第一多样性种群中适应度值最大对应的个体为第二最差解。在一种实施方式中,步骤s6具体包括:步骤s6.1:利用原始鲸鱼优化算法的公式(6)、(7)、(8)和(10)分别对向量和l进行初始化;其中,t为当前迭代代数,rand,为[0,1]之间均匀分布的随机数,向量大小随着迭代次数变化,用于调节系数向量大小,向量大小用于控制搜索策略的选择,系数向量用于调节步骤s6.2中公式(11),用于调节l的大小,随机数l∈[-1,1]用于调节步骤s6.3中螺旋搜索公式(14);步骤s6.2:当随机数p∈[0,1]满足第一设定条件时,如果则根据公式(12)更新当前最优鲸鱼个体的位置;否则如果则根据公式(13)更新当前鲸鱼个体的位置,其中一个鲸鱼个体对应一个蝙蝠个体;其中,rand(1,d)表示生成1行d列随机数矩阵,且随机数在(0,1)区间;公式(11)中用于辅助调节公式(12)中当前最优解的移动步长大小;步骤s6.3:当p满足第二设定条件时,则根据公式(14)更新当前鲸鱼个体的位置,具体更新如下:其中,b为常数,用于定义对数螺旋形状,表示第i个鲸鱼个体与猎物的距离,猎物为当前为止获得的最优解,符号“·”表示元素之间相乘,随机数l∈[-1,1];步骤s6.4:确定是否有任何个体位置xi,j超出预先定义的边界,若有则利用公式(15)对越出边界个体位置xi,j进行重置调节,并计算每个鲸鱼个体的适应值,根据鲸鱼个体的适应度值,更新当前种群和对应的适应度值;式中,ub和lb分别表示预先定义上下边界,xi,j表示第i个体中第j列元素。在一种实施方式中,步骤s7具体包括:步骤s7.1:根据适应度目标函数计算蝙蝠个体的适应度;步骤s7.2:将第二多样性种群中适应度值最小对应的个体为第三最优解,将第二多样性种群中适应度值最大对应的个体为第三最差解。在一种实施方式中,步骤s8具体包括:步骤s8.1:分别利用原有蝙蝠算法中的公式(16)、(17)和(18)更新频率fi,速度vi和新种群中蝙蝠位置xi,从而得到新解,具体更新公式如下:fi=fmin+(fmax-fmin)×rand(16)其中,rand表示在区间[0,1]均匀分布的随机数,且最小频率fmin和最大频率fmax依赖于问题的区域大小,和分别表示蝙蝠个体i在t+1和t时刻的速度,表示蝙蝠个体i在t时刻的位置,而x*表示整个种群在当前代的最优位置,和分别表示蝙蝠个体i在t+1和t时刻的位置;步骤s8.2:判断更新后的新个体是否越出预先设定搜索边界,若越出边界则利用步骤s6.4中公式(15)进行重置调节,评估新个体和对应原有个体的适应度值,如果条件成立,则判定个体为弱个体,并利用公式(19)更新弱个体,生成一个新解;式中,常数u∈(0,1),ri表示脉冲发射率,max(x*)表示当前最优个体x*所有维度中的最大元素,min(x*)表示当前最优个体x*所有维度中的最小元素,rand(1,d)表示生成1行d列的随机数矩阵;步骤s8.3:获取预设柯西逆累积分布函数公式(20),并对公式(20)进行重写为公式(21);由公式(19)生成的解将继续通过公式(21)进行变异,得到新解,并判断新解是否越出边界,若是,则利用公式(22)对其进行重置调节;其中,x*表示当前最优解,xi,j表示第i个体中第j列元素;步骤s8.4:计算新解的适应度值,若同时满足条件:则接受新解更新对应的适应度值,并利用公式(23)和(24)更新ri和ai;其中,表示初始脉冲发射率,表示蝙蝠在t+1时刻的蝙蝠脉冲发射率,γ∈(0,∞)是脉冲发射率增强系数,表示蝙蝠在t时刻的响度,表示蝙蝠在t+1时刻的响度,α∈[0,1]表示响度衰减系数;步骤s8.5:判断由步骤s8.4计算新解得到的适应度值,若其适应度值小于原有种群中个体的最小适应度值,则用新解更新最优解;若其适应度值大于原有种群中个体的最大适应度值,则用新解更新最差解,并保存对应当前代最优解和最优适应度值。基于同样的发明构思,本发明第二方面提供了一种基于第一方面所述优化方法得到的混合蝙蝠优化算法的多层感知器的优化方法,该方法包括:步骤s1:将多层感知器mlp(multi-layerperceptron)的权值和偏置值表示为公式(25)的向量形式:式中,表示用于保存多层感知器中所有连接权值的向量,表示用来保存多层感知器中所有的偏置值的向量;步骤s2:设置评估向量的适应度函数,具体包括:步骤s2.1:利用公式(26)计算mlp的输入加权和,并利用公式(27)计算隐藏层每个节点的输出,具体计算公式如下:其中,wij表示输入层第i个节点到隐藏层第j个节点的连接权重,θj表示隐藏层第j个节点的偏置,xi表示第i个输入;步骤s2.2:利用公式(29)计算最终输出,其中最终输出ok根据隐藏层节点计算的输出ok定义得到,而ok则由公式(28)计算得到:wjk表示隐藏层中第j个节点到输出层中第k个输出节点的连接权重,θ′k表示第k个输出节点的偏置值,h表示隐藏层节点的数目,m表示输出节点的数目;步骤s2.3:利用公式(30)计算均方误差mse,并利用计算公式(31)中的平均均方误差最后将公式(32)作为衡量向量的适应度评估函数,具体计算公式如下:其中,评估向量对应被优化个体,表示当第k个训练样本出现在输入时,第i个输入单元的实际输出;表示当第k个训练样本被使用时,第i个输入单元的期望输出;mse表示均方误差(meansquareerror),表示均方误差的平均值;步骤s3:输入预设分类数据集,获取数据集中属性和分类个数、训练样本、测试样本以及样本对应的期望输出值;步骤s4:利用步骤s3的训练样本,调用基于权利要求1至7任一项权利要求所述优化方法得到的混合蝙蝠优化算法训练多层感知器,输出最优解,其中,该最优解代表mlp的一组最优连接权值和偏置值步骤s5:将最优解、mlp各层节点数目和输入测试样本作为步骤s2公式(26)(27)(28)(29)的输入,从而计算每个测试样本对应的真实输出值;步骤s6:根据测试样本的真实输出值与对应的期望输出值之间的关系,计算出正确分类率。在一种实施方式中,步骤s6具体包括:将每个测试样本的真实输出值与对应的期望输出值进行比较,统计所有测试样本对应的真实输出与期望输出相同或近似的个数,再除以测试样本总数,计算正确分类率:其中,rn表示测试样本对应的真实输出与期望输出相同或近似的个数,total表示测试样本总数,final_rate表示正确分类率。在一种实施方式中,所述方法还包括:输出正确分类率。本申请实施例中的上述一个或多个技术方案,至少具有如下一种或多种技术效果:本发明第一方面提供的一种混合蝙蝠算法的优化方法,首先,在种群重构方面,通过改进原有反向学习策略,提出了一种带扰动多策略反向学习,以便重构一个有效的多样性搜索空间;其次,在全局勘探搜索方面,通过引入鲸鱼优化算法并对其进行改进,提出了一种自适应约束步长鲸鱼优化算法,从而可以弥补原有蝙蝠算法在全局勘探能力方面的不足;第三,在局部开采搜索方面,通过引入柯西变异和设计动态纠正策略,提出了一种基于柯西变异和动态纠正的蝙蝠算法,从而提高原有蝙蝠算法的局部搜索能力;总体来说,在三个策略的协同作用下,有效提高了优化结果的精度和稳定性。本发明第二方面提供的采用优化后的混合蝙蝠算法的多层感知器的优化方法,将优化后的算法应用到多层感知器训练问题,可以取得较高的分类精度。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。图1为本发明提供的一种混合蝙蝠算法的优化方法的流程示意图;图2为本发明提供的优化方法的整体实施流程图;图3为本发明优化后的混合蝙蝠算法适应度目标函数rosenbrock在统计30次独立运行的收敛结果;图4为本发明提供的采用优化后的混合蝙蝠算法对多层感知器进行优化的流程示意图。具体实施方式本发明的目的在于针对现有技术中的方法存在的精度和稳定性不佳的技术问题,提出一种混合蝙蝠算法的优化方法及其对多层感知器的优化方法。为达到上述目的,本发明的主要构思如下:第一方面提供了一种混合蝙蝠算法的优化方法,首先,基于基本的反向学习策略,结合其现有变体包括精英反向学习和一般反向学习,提出带扰动多策略学习提高蝙蝠种群的多样性;其次,基于鲸鱼优化算法,提出自适应约束步长鲸鱼优化算法提高蝙蝠的全局勘探能力;第三,引入柯西变异并设计动态纠正策略,提出基于动态纠正和柯西变异的蝙蝠算法,从而提高蝙蝠的局部搜索能力;在三个策略的协同作用下,有效提高了优化结果的精度和稳定性。第二方面提供了多层感知器的优化方法,将优化得到的混合蝙蝠算法应用到多层感知器优化问题,以实现精确的分类精度。为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。实施例一本实施例提供了一种混合蝙蝠算法的优化方法,请参见图1,该方法包括:步骤s1:设置初始化参数,初始化参数包括种群大小n、适应度目标函数、响度ai∈[1,2]、脉冲发射率ri∈[0,1]、最大迭代次数n_gen、频率fi∈[fmin,fmax]、脉冲频度增强系数γ、响度衰减系数α,其中γ和α都为常数。具体来说,初始化参数可以根据实际情况进行设置。在一种实施例中,n=40,响度ai取[1,2]之间的随机数、脉冲发射率ri取[0,1]之间的随机数,最大迭代次数n_gen=200,fmin=0,fmax=100,γ=α=0.9。步骤s2:初始化蝙蝠种群和速度,其中,种群根据公式(1)进行初始化,速度vi可以初始化为0;xij=xjmin+(xjmax-xjmin)×rand(1)式(1)中,i∈[1,...,n],xij表示种群的第i行第j列元素,j∈[1,...,d],d表示种群的维度,xjmax和xjmin分别表示预设搜索区间第j维向量的最大值和最小值,rand为均匀分布在(0,1)的随机数。在本实施例中,种群构成一个矩阵,种群的第i行第j列元素也就是指由种群构成的矩阵的第i行第j列元素,种群维度d=16,每个维度向量取值范围一致,且最大值xjmax=10,最小值xjmin=-5,rand为均匀分布在(0,1)的随机数,速度vi初始化为0。步骤s3:根据适应度目标函数计算蝙蝠个体的适应度,并根据个体适应度值对种群进行排序,得到相应原始种群的第一最优解和第一最差解。在一种实施方式中,步骤s3具体包括:步骤s3.1:根据适应度目标函数计算蝙蝠个体的适应度;步骤s3.2:将初始种群中适应度值最小对应的个体为第一最优解,将初始种群中适应度值最大对应的个体为第一最差解。具体来说,根据适应度目标函数可以计算出每个蝙蝠个体的适应度值,然后根据计算出的适应度值对初始种群进行排序,并得到第一最优解和第一最差解。步骤s4:当前迭代次数t小于或等于最大迭代次数n_gen时,采用带扰动多策略反向学习对原始种群进行学习,得到第一多样性种群。具体来说,通过当前迭代次数与最大迭代次数的关系,来对初始种群进行学习。反向学习(obl)作为一种新的智能计算技术,基本的反向学习是由tizhoosh在2005年提出来的,反向学习策略的核心思想是先利用当前解生成对应的反向解,然后通过适应度评估函数来衡量当前解和反向解的质量,其中较好的解将被选择参与到下一代进化过程。因此,反向学习可以利用来改善随机初始化蝙蝠种群的质量。现有技术中,比较流行的反向学习变体主要有王晖等人提出的一般反向学习(gobl)和周新宇等人提出的精英反向学习,它们都是基于反向学习的改进。但是,目前的一般反向学习和精英反向学习仍存在效果不佳的问题。因而,本发明提出的是一种带扰动多策略反向学习方法,根据不同进化阶段分别调用重写的精英反向学习和一般反向学习,通过带扰动多策略反向学习方法对原始种群进行学习,可以重构一个有效的多样性搜索空间,即得到第一多样性种群。在一种实施方式中,步骤s4具体包括:步骤s4.1:对于种群中的任何个体,若当前迭代次数t与最大迭代次数n_gen的比值小于0.5,则利用一般反向学习重写的等式(2)生成种群中所有个体的一般反向解;否则,利用精英反向学习重写的等式(3)生成种群中所有个体的精英反向解,再利用公式(4)对所有精英反向解进行扰动;其中,常数k∈(0,1),max(x*)表示当前最优个体x*所有维度中的最大元素,min(x*)表示当前最优个体x*所有维度中的最小元素,表示当前最差解中第j维元素;表示当前最优解中第j维元素;步骤s4.2:步骤s4.1中产生的种群中,若存在反向解越出预先设置的解空间上下边界[lb,ub],则通过公式(5)重置越出边界的反向解计算并保存重置后的种群中所有个体的适应度值,式(5)中,lb表示预先定义解空间的下边界,ub表示预先定义解空间的上边界,表示由步骤4.1产生的反向解;步骤s4.3:将步骤s4.2处理后的种群与原种群合并,并根据个体的适应度值对合并后的种群进行排序,然后选择最佳的n个个体作为新种群,即多样性种群,其中多样性种群将参与到下一步进化过程。在本实施方式中,步骤s4.1中,k=0.5,max(x*)表示当前最优个体x*所有维度中的最大元素,min(x*)表示当前最优个体x*所有维度中的最小元素,n_gen=200,表示当前最差解中第j维元素;表示当前最优解中第j维元素。步骤s5:根据个体适应度值,对第一多样性种群进行排序,对原始种群的第一最优解和第一最差解进行更新,获得第一多样性种群的第二最优解和第二最差解。具体来说,在得到第一多样性种群后,同样根据适应度目标函数计算个体的适应度值,并根据计算出的适应度值对原始种群的最优解和最差解(即第一最优解和第一最差解)进行更新。在一种实施方式中,步骤s5具体包括:步骤s5.1:根据适应度目标函数计算蝙蝠个体的适应度;步骤s5.2:将第一多样性种群中适应度值最小对应的个体为第二最优解,将第一多样性种群中适应度值最大对应的个体为第二最差解。步骤s6:采用自适应约束步长鲸鱼优化算法,对第一多样性种群进行全局搜索,并根据全局搜索结果,则更新第一多样性种群以及对应的适应度值,获得第二多样性种群。具体来说,鲸鱼优化算法是近年来提出的一种元启发式算法,它由mirialili等人在2016年提出。该算法主要模拟海洋中的座头鲸利用不同的捕食策略随机搜索目标解的行为。作为一种新的元启发式优化算法,其具有多样化搜索方法,包括包围猎物、泡沫网攻击和搜索猎物。本发明采用的是改进后的鲸鱼优化算法:自适应约束步长鲸鱼优化算法,使其具有较强的全局搜索能力,从而可以弥补蝙蝠算法在全局搜索能力方面的不足。采用自适应约束步长鲸鱼优化算法,对第一多样性种群进行全局搜索得到全局搜索结果,如果全局搜索结构中存在更好的解(即适应度值比之前的第二最优解更小),则更新第一多样性种群以及对应的适应度值,获得第二多样性种群。如果不存在更好的解,则不进行更新。在一种实施方式中,步骤s6具体包括:步骤s6.1:利用原始鲸鱼优化算法的公式(6)、(7)、(8)和(10)分别对向量和l进行初始化;其中,t为当前迭代代数,rand,为[0,1]之间均匀分布的随机数,向量大小随着迭代次数变化,用于调节系数向量大小,向量大小用于控制搜索策略的选择,系数向量用于调节步骤6.2中公式(11),同于调节l的大小,随机数l∈[-1,1]用于调节步骤s6.3中螺旋搜索公式(14);步骤s6.2:当随机数p∈[0,1]满足第一设定条件时,如果则根据公式(12)更新当前最优鲸鱼个体的位置;如果则根据公式(13)更新当前鲸鱼个体的位置,其中一个鲸鱼个体对应一个蝙蝠个体;其中,rand(1,d)表示生成1行d列随机数矩阵,且随机数在(0,1)区间;公式(11)中用于辅助调节公式(12)中当前最优解的移动步长大小;步骤s6.3:当p满足第二设定条件时,则根据公式(14)更新当前鲸鱼个体的位置,具体更新如下:其中,b为常数,用于定义对数螺旋形状,表示第i个鲸鱼个体与猎物的距离,猎物为当前为止获得的最优解,符号“·”表示元素之间相乘,随机数l∈[-1,1];步骤s6.4:确定是否有任何个体位置xi,j超出预先定义的边界,若有则利用公式(15)对越出边界个体位置xi,j进行重置调节,并计算每个鲸鱼个体的适应值,根据鲸鱼个体的适应度值,更新当前种群和对应的适应度值;式中,ub和lb分别表示预先定义上下边界,xi,j表示第i个体中第j列元素。在本实例中,t为当前迭代代数,总迭代次数n_gen=200,rand,为[0,1]之间均匀分布的随机数。第一设定条件是:p<0.5,d=16,rand(1,d)表示生成1行d列随机数矩阵,且在随机数在(0,1)区间;公式(11)中主要用于辅助调节公式(12)中当前最优解的移动步长大小。第二设定条件:p≥0.5。步骤s7:根据个体适应度值,对第二多样性种群进行排序,获得第三最优解和第三最差解。具体地,步骤s7具体包括:步骤s7.1:根据适应度目标函数计算蝙蝠个体的适应度;步骤s7.2:将第二多样性种群中适应度值最小对应的个体为第三最优解,将第二多样性种群中适应度值最大对应的个体为第三最差解。步骤s8:采用基于柯西变异和动态纠正的蝙蝠算法,对第二多样性种群进行局部搜索,并根据局部搜索结果,更新多样性种群以及对应的适应度值,更新第三最优解和第三最差解,并获得对应当前代最优解和最优适应度值。具体来说,柯西变异可以有效地防止启发式算法陷入局部最优。目前,它已被广泛应用于提高现有元启发式算法的搜索能力,yao(姚新教授)等人利用柯西变异(cauchymutation)来提高进化算法逃离局部最优的概率,guo(郭振洲)等人利用柯西变异来提升鲸鱼优化算法的性能。采用基于柯西变异和动态纠正的蝙蝠算法对第二多样性种群进行局部搜索,得到局部搜索结果,如果局部搜索结果中存在更好的解(即存在适应度值比第三最优解更小的),则更新多样性种群以及对应的适应度值,否则不进行更新。由于本发明提供的是改进后的方法,基于柯西变异和动态纠正的蝙蝠算法,可以尽可能避免蝙蝠在局部搜索过程陷入局部最优,使得蝙蝠算法的局部搜索能力得以改善。在一种实施方式中,步骤s8具体包括:步骤s8.1:分别利用原有蝙蝠算法中的公式(16)、(17)和(18)更新频率fi,速度vi和新种群中蝙蝠位置xi,从而得到新解,具体更新公式如下:fi=fmin+(fmax-fmin)×rand(16)其中,rand表示在区间[0,1]均匀分布的随机数,且最小频率fmin和最大频率fmax依赖于问题的区域大小,和分别表示蝙蝠个体i在t+1和t时刻的速度,表示蝙蝠个体i在t时刻的位置,而x*表示整个种群在当前代的最优位置,和分别表示蝙蝠个体i在t+1和t时刻的位置;步骤s8.2:判断更新后的新个体是否越出预先设定搜索边界,若越出边界则利用步骤s6.4中公式(15)进行重置调节,评估新个体和对应原有个体的适应度值,如果条件成立,则判定个体为弱个体,并利用公式(19)更新弱个体,生成一个新解;式中,常数u∈(0,1),ri表示脉冲发射率,max(x*)表示当前最优个体x*所有维度中的最大元素,min(x*)表示当前最优个体x*所有维度中的最小元素,rand(1,d)表示生成1行d列的随机数矩阵;步骤s8.3:获取预设柯西逆累积分布函数公式(20),并对公式(20)进行重写为公式(21);由公式(19)生成的解将继续通过公式(21)进行变异,得到新解,并判断新解是否越出边界,若是,则利用公式(22)对其进行重置调节;其中,x*表示当前最优解,xi,j表示第i个体中第j列元素;步骤s8.4:计算新解的适应度值,若同时满足条件:则接受新解更新对应的适应度值,并利用公式(23)和(24)更新ri和ai;其中,表示初始脉冲发射率,表示蝙蝠在t+1时刻的蝙蝠脉冲发射率,γ∈(0,∞)是脉冲发射率增强系数,表示蝙蝠在t时刻的响度,表示蝙蝠在t+1时刻的响度,α∈[0,1]表示响度衰减系数;步骤s8.5:判断由步骤s8.4计算新解得到的适应度值,若其适应度值小于原有种群中个体的最小适应度值,则用新解更新最优解;若其适应度值大于原有种群中个体的最大适应度值,则用新解更新最差解,并保存对应当前代最优解和最优适应度值。具体来说,步骤s8.2中,u∈(0,1),本实例中设置u=0.002;另外上述本步骤条件中ri表示脉冲发射率,其大小通过步骤8.4中公式(23)调节。步骤s8.3中,x*表示当前最优解,例如x*=[1,2,4],则max(x*)=4,min(x*)=1,xi,j表示第i个体中第j列元素。在执行完步骤s8后,如果当前迭代次数小于或等于最大迭代次数n_gen或者其它停止条件没达到,则返回步骤4;否则,输出并返回全局最优解。请参见图2,为本发明提供的优化方法的整体实施流程图,在进行蝙蝠种群及其相关参数初始化后,计算种群适应度值,并进行排序,得到初始最优解和最差解,接着判断当前迭代次数是否小于或等于最大迭代次数,如果是,则采用带扰动多策略学习重构多样化种群,再采用自适应约束步长鲸鱼优化算法搜索,用以提升全局勘探搜索能力,最后采用柯西变异和动态纠正的蝙蝠算法进行搜索,提升局部搜索能力,每次完成后,迭代次数递增,如果前迭代次数大于最大迭代次数,则返回全局最优解。请参见图3,为采用本发明的优化方法得到的混合蝙蝠算法erfba在rosenbrock函数统计30次独立运行的收敛结果,从图3可以看出,采用本发明优化后的算法可以得到快速得到收敛的最优结果。本发明提出的一种混合蝙蝠算法的优化方法。首先,利用提出的带扰动多策略学习克服了原始随机初始化种群多样性不足的问题,提高了全局勘探种群的多样性;其次,利用提出的自适应约束步长鲸鱼优化算法提高了蝙蝠算法全局勘探能力;最后,利用提出的基于柯西变异和动态纠正的蝙蝠算法提高了局部勘探能力。相比原始的蝙蝠算法,得到的优化后的混合蝙蝠算法具有更好的灵活性和适用性,能较好提高函数和多层感知器优化结果的精度和鲁棒性。实施例二基于同样的发明构思,本实施例提供了一种实施例一所述优化方法得到的混合蝙蝠优化算法的多层感知器的优化方法,请参见图4,该方法包括:步骤s1:将多层感知器mlp(multi-layerperceptron)的权值和偏置值表示为公式(25)的向量形式:式中,表示用于保存多层感知器中所有连接权值的向量,表示用来保存多层感知器中所有的偏置值的向量。具体来说,多层感知器(mlp)优化可以参见mirjalili在文献(mirjalili,s.(2015).howeffectiveisthegreywolfoptimizerintrainingmulti-layerperceptrons.appliedintelligence,43(1),150-161.)中提出的方法。本发明将实施例一中得到的优化后的混合蝙蝠算法(erfba)应用于多层感知器(multi-layerperceptron,mlp)优化问题,简称为erfba-mlp。将训练多层感知器(mlp)问题转化为erfba可以优化的形式。步骤s2:设置评估向量的适应度函数,具体包括:步骤s2.1:利用公式(26)计算mlp的输入加权和,并利用公式(27)计算隐藏层每个节点的输出,具体计算公式如下:其中,wij表示输入层第i个节点到隐藏层第j个节点的连接权重,θj表示隐藏层第j个节点的偏置,xi表示第i个输入;步骤s2.2:利用公式(29)计算最终输出,其中最终输出ok根据隐藏层节点计算的输出ok定义得到,而ok则由公式(28)计算得到:wjk表示隐藏层中第j个节点到输出层中第k个输出节点的连接权重,θ′k表示第k个输出节点的偏置值,h表示隐藏层节点的数目,m表示输出节点的数目;步骤s2.3:利用公式(30)计算均方误差mse,并利用计算公式(31)中的平均均方误差最后将公式(32)作为衡量向量的适应度评估函数,具体计算公式如下:其中,评估向量对应被优化个体,表示当第k个训练样本出现在输入时,第i个输入单元的实际输出;表示当第k个训练样本被使用时,第i个输入单元的期望输出;mse表示均方误差(meansquareerror),表示均方误差的平均值。本实例中,步骤s2.1中,输入节点数目n=9,wij表示输入层第i个节点到隐藏层第j个节点的连接权重,θj表示隐藏层第j个节点的偏置,xi表示第i个输入。步骤s2.2中,wjk表示隐藏层中第j个节点到输出层中第k个输出节点的连接权重,θ′k表示第k个输出节点的偏置值,隐藏层节点的数目h=19,输出节点的数目m=1。步骤s2.3中,输出节点数目m=1,表示当第k个训练样本出现在输入时,第i个输入单元的实际输出;表示当第k个训练样本被使用时,第i个输入单元的期望输出;训练样本数目s=599;mse表示均方误差(meansquareerror),表示均方误差的平均值。步骤s3:输入预设分类数据集,获取数据集中属性和分类个数、训练样本、测试样本以及样本对应的期望输出值;具体来说,预设分类数据集可以根据需要选取,例如可以输入公开的来自uci(universityofcaliforniairvine)分类数据集。采用uci中的breastcancer数据集,该数据集的具体信息可参见文献(mirjalili,s.(2015).howeffectiveisthegreywolfoptimizerintrainingmulti-layerperceptrons.appliedintelligence,43(1),150-161.),其中属性个数为9,训练样本个数为599,测试样本个数为100,分类数目为2,样本期望输出值为经过归一化处理后的breastcancer数据集最后一列。步骤s4:利用步骤s3的训练样本,调用基于权利要求1至7任一项权利要求所述优化方法得到的混合蝙蝠优化算法训练多层感知器,输出最优解,其中,该最优解代表mlp的一组最优连接权值和偏置值本实例中,解空间的下边界lb=-10,上边界ub=10,种群维度dim=209,种群大小n=200,最大迭代次数n_gen=200,除了本实例中具体设置参数数值外,其它参数设置保持与实施例一致。步骤s5:将最优解、mlp各层节点数目和输入测试样本作为步骤s2公式(26)(27)(28)(29)的输入,从而计算每个测试样本对应的真实输出值;步骤s6:根据测试样本的真实输出值与对应的期望输出值之间的关系,计算出正确分类率。在一种实施方式中,步骤s6具体包括:将每个测试样本的真实输出值与对应的期望输出值进行比较,统计所有测试样本对应的真实输出与期望输出相同或近似的个数,再除以测试样本总数,计算正确分类率:其中,rn表示测试样本对应的真实输出与期望输出相同或近似的个数,total表示测试样本总数,final_rate表示正确分类率。本实例中,输入层节点数为9,隐藏层节点数19,输出节点数1,输入步骤s3的测试样本。在一种实施方式中,所述方法还包括:输出正确分类率。为了进一步验证本发明提出的一种混合蝙蝠算法的优化方法(erfba)的有效性,将其应用到多层感知器(multi-layerperceptrons,mlp)训练问题,以uci(universityofcaliforniairvine)中经过归一化处理的文本数据breastcancer数据集为例。erfba算法和原有蝙蝠算法各独立10次,迭代200次,种群大小为200,通过统计10次运行分类结果的最大分类率,最小分类率和平均分类率三个指标,并与原有蝙蝠算法ba(batalgorithm)进行比较,以验证本发明提出的一种混合蝙蝠算法的优化方法(erfba)有效性。具体分类统计结果如表1所示。表1为erfba应用于多层感知器(multi-layerperceptron,mlp)优化问题,在经过10次独立运行后,基于erfba的mlp对uci中的breastcancer文本数据集分类率的统计结果。表1erfba算法与原有蝙蝠算法ba在breastcancer数据集上正确分类率的统计结果算法最大值分类率最小值分类率平均值分类率erfba98%99%98.6%ba23%98%79.7%本发明首先引入并改进反向学习,提出带扰动多策略反向学习,克服种群随机初始化多样性不足问题,得到一个有效多样性种群;其次,通过引入并改进鲸鱼优化算法的方法,提出自适应约束步长鲸鱼优化算法,在进行蝙蝠局部搜索之前,将其作为新混合蝙蝠算法的全局勘探阶段,以便减少寻优盲点,并弥补原有蝙蝠算法全局勘探能力的不足;第三,通过引入柯西变异并设计动态纠正策略,提出基于柯西变异和动态纠正的蝙蝠算法,以克服原有蝙蝠算法的局部勘探能力不足;第四,通过三者包括带扰动多策略学习、自适应约束步长鲸鱼优化算法、基于柯西变异和动态纠正的蝙蝠算法的协同作用下,从而提高了新算法函数优化结果的精度和鲁棒性;最后,将本发明应用到多层感知器训练问题,并取得较好的分类精度。应当理解的是,本说明书未详细阐述的部分均属于现有技术(如:蝙蝠算法ba,鲸鱼优化算法woa,反向学习obl,精英反向学习eobl,一般反向学习gobl,柯西变异,柯西逆累积分布函数,利用元启发式算法训练mlp的方法等),详细阐述的部分为本发明独创的技术方案(如:带扰动多策略反向学习,自适应约束步长鲸鱼优化算法,基于柯西变异和动态纠正的蝙蝠算法等)。尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1