一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

结合进化多目标及进化多任务的检测模型优化方法及系统

2022-08-02 22:13:51 来源:中国专利 TAG:


1.本发明涉及目标检测技术领域,特别涉及一种结合进化多目标及进化多任务的检测模型优化方法及系统。


背景技术:

2.所谓目标检测,是在图像或视频中找到特定的事物并精准定位、识别的过程,一般而言分为位置确定和目标识别两个过程,主要有两大类任务:即回归和分类。
3.分类是对不同的目标赋予不同的标签,使得计算机可以将不同的物体按不同的特征进行区分。计算机通过损失函数来衡量模型输出与真实的之间的差距,并给模型的优化指明方向。常见的分类损失函数有:0-1损失、逻辑损失、hinge损失和指数损失等。
4.回归在目标检测中实现物体定位,通过对模型输出的结果与真实结果进行定量误差分析来逐步减小模型输出结果与真实结果之间的差别。常见的回归损失函数有:均方差损失函数、平均绝对误差损失函数、huber损失和交叉熵损失等。
5.当前通过将分类与回归加权求和的方式对目标检测进行建模,即:
6.f=f1 λf27.其中,f1代表分类损失,f2代表回归损失,λ代表分类损失和回归损失之间的权重。
8.此种建模方式将分类和损失两个问题通过加权求和的方式转化为一个问题。然而,分类与回归之间的权重的设置好坏与模型的表现息息相关。而且,权重在不同的问题中取值不同,在相同的问题不同的数据集中的取值也不同,且目前主流的作法为用户根据经验取值,权重取值并不准确。同时,多个任务之间通常存在制约和矛盾,也即是说,多任务转化为单任务后,在优化到一定程度时对一个目标的优化常常会导致另一个目标的恶化。
9.因此,通过加权求和的方式对目标检测建模的不足之处在于:(1)分类和回归之间的权重λ只能根据经验取值,难以寻找最优的权重λ;(2)分类和回归对应的两项目标函数也许存在关系,即当两项目标函数都优化到了某一个程度的时候,其中一项的进一步优化必然导致另外一项的负优化。通过指定权重λ加权求和设计总体目标函数得到的解,该解不一定能使分类和回归同时达到最优。
10.目标检测模型的训练优化方法一般包括梯度下降算法和进化算法,通过目标检测建模方法,得到了目标检测的损失函数f,由于损失函数f输出的值代表模型输出的结果与真实结果的误差值,那么可以认为训练目标检测模型的过程就是在寻找损失函数最小值的过程。
11.由于函数的在某点的梯度总是指向在该点函数上升最快的方向,基于梯度下降的优化方法根据此原理,通过不断地求解损失函数f的梯度,向梯度反方向更新当前模型的参数θ,不断迭代,找到f的最小值,公式表示如下:
[0012][0013]
其中,θ
(n 1)
表示迭代第n 1次时目标检测模型的参数,θn表示迭代第n次目标检测模型的参数,α为梯度更新参数过程中的学习率,表示损失函数f(θ)在θ上的梯
度。
[0014]
但随机梯度下降方法的不足之处在于:(1)梯度下降算法只能应用于连续可微的目标函数,无法解决目标函数不是连续可微的问题或无法给出函数的问题;(2)梯度算法容易陷入局部最优。
[0015]
进化算法(evolutionaryalgorithms,ea)是一种受生物种群进化的启发式搜索算法,将自然选择、适者生存和繁衍作为算法的基本组成模块,对生物进化过程进行建模。使用一个个体代表问题的一个解,由个体组成的一个种群代表问题的一组解,应用适者生存的法则来对种群进行操作,模拟种群进化,得到更好更有效的一组解。其基本思想为:模拟大自然的生物进化过程,通过编码来体现基因与性状,之后对待求解问题初始化出一组符合约束的随机的解作为初始种群,在该种群上进行优胜劣汰法则,通过进化的思想进行问题的求解,逐渐演化出越来越接近问题真实解的一组解。但进化算法存在的不足之处在于:(1)时间复杂度高;(2)维数诅咒。


技术实现要素:

[0016]
本发明的目的在于克服上述背景技术中的不足,降低目标检测模型优化过程的时间复杂度,并且可求求解出一组相互权衡的解。
[0017]
为实现以上目的,本发明提出了一种结合进化多目标及进化多任务的检测模型优化方法,所述方法包括:
[0018]
构建辅助任务,所述辅助任务为基于爬山搜索算法对目标检测模型中的权重进行优化;
[0019]
构建主任务,所述主任务为基于进化多目标方法对第一目标函数和第二目标函数进行优化求解,所述第一目标函数为分类损失函数,所述第二目标函数为回归损失函数;
[0020]
对所述辅助任务和所述主任务进行求解,并将所述辅助任务搜索过程中得到的解作为个体迁移到所述主任务的种群中,完成模型优化。
[0021]
进一步地,所述方法还包括设置模型优化参数,所述参数包括:
[0022]
所述爬山搜索算法的目标函数权重集合s和学习率lr;所述进化多目标方法的种群的规模为n和最大迭代次数maxepoch;所述目标检测模型的神经网络拓扑结构mod,数据量dataset及每次从datasett抽取的batchsample的规模大小batchsize;从所述爬山搜索算法的种群迁移到所述进化多目标算法中种群的最大个体数量m。
[0023]
进一步地,所述对所述辅助任务和所述主任务进行求解,并将所述辅助任务搜索过程中得到的解作为个体迁移到所述主任务的种群中,完成模型优化,包括:
[0024]
分别对所述神经网络拓扑结构mod和所述权重集合s进行初始化,得到第一种群pop和第二种群gpop;
[0025]
初始化字典,得到historyelites字典;
[0026]
从数据集中抽取规模为batchsize的数据样本batchsample,并将所述数据样本batchsample对应的编号放到sample_id;
[0027]
基于所述第一种群pop进行评估,从子代中选择最好的λ个个体作为所述第一种群pop的下一代个体;
[0028]
将所述第二种群gpop中的个体迁移到所述第一种群pop中,得到迁移种群;
[0029]
将所述迁移种群中最好的个体和当前代的sample_id组成一个字典添加到所述historyelites字典中;
[0030]
令种群迭代次数epochindex=epochindex 1,并判断当前种群迭代次数是否满足epochindex《maxepoch,maxepoch为最大迭代次数;
[0031]
若是,则重新执行所述初始化字典步骤;
[0032]
若否,则运用nsga-ii算法对所述第一种群pop进行排序,得到帕累托前沿,获取最终解集。
[0033]
进一步地,所述分别对所述神经网络拓扑结构mod和所述权重集合s进行初始化,得到第一种群pop和第二种群gpop,包括:
[0034]
根据所述目标检测模型的神经网络拓扑结构mod采用(0,1)正态分布初始化所述种群的n个个体,得到第一种群pop;
[0035]
对于所述权重集合s中的每个元素,根据所述目标检测模型的神经网络拓扑结构mod采用(0,1)正态分布初始化1个个体,得到1个用所述爬山搜索算法解且由|s|个个体组成的第二种群gpop。
[0036]
进一步地,所述基于所述第一种群pop进行评估,从子代中选择最好的λ个个体作为所述第一种群pop的下一代个体,包括:
[0037]
将所述sample_id与所述historyelites字典中的评估数据编号datas进行比较,找出重叠程度最大的评估数据编号datas对应的精英个体;
[0038]
对所述精英个体施加一个扰动,得到扰动个体,并将所述精英个体和所述扰动个体添加到所述第一种群pop中;
[0039]
在所述数据样本batchsample上评估所述第一种群pop,所述第一种群pop进行子代变异操作,得到新的种群tempnewpop;
[0040]
基于所述第一种群pop和所述种群tempnewpop,从子代中选择最好的λ个个体作为所述第一种群pop的下一代个体。
[0041]
进一步地,所述将所述第二种群gpop中的个体迁移到所述第一种群pop中,得到迁移种群,包括:
[0042]
在所述数据样本batchsample上对所述第二种群gpop进行适应度评估,并初始化集合addedset;
[0043]
对于所述第二种群gpop中的个体,若存在个体在所述第二种群pop中的排名差于|pop|/2,则使用所述爬山搜索算法以所述学习率lr更新该个体,并将该个体加入到所述集合addedset中;
[0044]
将所述集合addedset中的所有个体迁移到所述第一种群pop中,得到迁移种群。
[0045]
进一步地,在所述数据样本batchsample上评估所述第一种群pop,所述第一种群pop进行子代变异操作,得到新的种群tempnewpop,包括:
[0046]
在所述数据样本batchsample上对所述第一种群pop进行适应度评估排序;
[0047]
从所述第一种群pop中抽取两个parents,并使用粗粒度交叉算法进行交叉,并重复若干次,得到一个新的种群crosspop;
[0048]
对所述种群crosspop执行变异操作,得到所述种群tempnewpop。
[0049]
进一步地,所述基于所述第一种群pop和所述种群tempnewpop,从子代中选择最好
的λ个个体作为所述第一种群pop的下一代个体,包括:
[0050]
在所述数据样本batchsample上对所述种群tempnewpop进行适应度评估排序;
[0051]
在所述第一种群pop和所述种群tempnewpop上执行选择操作,并根据所述种群tempnewpop的评估结果和所述tempnewpop的评估结果,从子代中选择最好的λ个个体作为所述第一种群pop的下一代个体。
[0052]
进一步地,从所述第一种群pop中抽取两个parents,并使用粗粒度交叉算法进行交叉,包括:
[0053]
在所述第一种群pop的所有个体中随机选择几个交叉互换起始位点,所述起始位点位点之间相距大于或等于最大交换长度max_length;
[0054]
对于每个起始位点,每次都取一个[0,max_length]的随机数len,从起始点出发往后len长度的区域作为交叉互换的区域;
[0055]
若所述随机数大于交换概率cr,则采用uniform crossover将两个所述parents在所述交叉互换的区域进行交叉互换,产生两个子代,并随机选择一个作为输出。
[0056]
此外,为实现上述目的,本发明还提出了一种结合进化多目标及进化多任务的检测模型优化系统,所述系统包括:
[0057]
第一构建模块,用于构建辅助任务,所述辅助任务为基于爬山搜索算法对目标检测模型中的权重进行优化;
[0058]
第二构建模块,用于构建主任务,所述主任务为基于进化多目标方法对第一目标函数和第二目标函数进行优化求解,所述第一目标函数为分类损失函数,所述第二目标函数为回归损失函数;
[0059]
模型优化模块,用于对所述辅助任务和所述主任务进行求解,并将所述辅助任务搜索过程中得到的解作为个体迁移到所述主任务的种群中,完成模型优化。
[0060]
与现有技术相比,本发明存在以下技术效果:本发明针对目标检测模型需要手动指定权重的问题,引入了进化多目标算法,无需指定权重,将分类损失和回归损失作为两项需要同时优化的目标函数,使用进化多目标优化方法(evolutionary multi-objective optimization,emo)算法进行多目标优化,最终得到一组非支配解求出一组相互权衡的解;但将emo算法引入了种群搜索,将导致算法的收敛速度非常缓慢,本发明引入了进化多任务,通过构造能够快速收敛的辅助任务,将辅助任务的搜索过程中得到的解迁移到主任务种群中以加速主任务的收敛。
附图说明
[0061]
下面结合附图,对本发明的具体实施方式进行详细描述:
[0062]
图1是本发明第一实施例中结合进化多目标及进化多任务的检测模型优化方法的流程图;
[0063]
图2是本发明第一实施例中二维情况下的种群pop初始化分布图;
[0064]
图3是本发明第一实施例中historyelites字典示意图;
[0065]
图4是本发明第一实施例中粗粒度交叉互换示意图;
[0066]
图5是本发明第一实施例中细粒度交叉互换示意图;
[0067]
图6是本发明中结合进化多目标及进化多任务的检测模型优化方法的整体流程
图;
[0068]
图7是本发明第二实施例中结合进化多目标及进化多任务的检测模型优化系统的结构图。
具体实施方式
[0069]
为了更进一步说明本发明的特征,请参阅以下有关本发明的详细说明与附图。所附图仅供参考与说明之用,并非用来对本发明的保护范围加以限制。
[0070]
如图1所示,本实施例公开了一种结合进化多目标及进化多任务的检测模型优化方法,所述方法包括以下步骤:
[0071]
s10、构建辅助任务,所述辅助任务为基于爬山搜索算法对目标检测模型中的权重进行优化。
[0072]
s20、构建主任务,所述主任务为基于进化多目标方法对第一目标函数和第二目标函数进行优化求解,所述第一目标函数为分类损失函数,所述第二目标函数为回归损失函数。
[0073]
s30、对所述辅助任务和所述主任务进行求解,并将所述辅助任务搜索过程中得到的解作为个体迁移到所述主任务的种群中,完成模型优化。
[0074]
需要说明的是,目标检测模型的目标函数存在难以搜索到同时使得分类损失和回归损失两项目标同时最优的问题,而使用梯度方法来对该目标函数进行优化又往往会陷入局部最优。本实施例提出了基于进化多目标emo的方法来优化目标检测模型,将分类损失和回归损失作为两项需要同时优化的目标函数,最终得到一组非支配解。
[0075]
但由于emo引入了种群搜索,这将导致算法的收敛速度非常缓慢,因此本实施例引入了进化多任务,通过构造能够快速收敛的辅助任务以加速主任务的收敛;其中辅助任务是利用传统的爬山搜索法对目标检测模型进行优化,通过初始化一组随机的λ权重来优化目标检测模型的目标函数,通过将辅助任务的搜索过程中得到的解迁移到主任务种群中以加速主任务的收敛。
[0076]
应当理解的是,本实施例可使用包括但不限于nsga
‑ⅱ
的emo算法进行多目标优化,本实施例不作具体限定。
[0077]
在一实施例中,所述步骤s10和步骤s20中,设置模型优化参数,所述参数包括:
[0078]
所述爬山搜索算法的目标函数权重集合s和学习率lr;所述进化多目标方法的种群的规模为n和最大迭代次数maxepoch;所述目标检测模型的神经网络拓扑结构mod,数据量dataset及每次从datasett抽取的batchsample的规模大小batchsize;从所述爬山搜索算法的种群迁移到所述进化多目标算法中种群的最大个体数量m;以及预先设置粗粒度交叉算法中的最大交换长度max_length及交换概率gr。
[0079]
需要说明的是,本实施例中人为指定的爬山法目标函数权重集合s,比如有三个objective,|s|=3,那么s可以是{(0.2,0.5,0.3),(0.3,0.5,0.2),(0.4,0.4,0.2)}。
[0080]
在一实施例中,所述步骤s30,具体包括以下步骤:
[0081]
s31、分别对所述神经网络拓扑结构mod和所述权重集合s进行初始化,得到第一种群pop和第二种群gpop。
[0082]
s32、初始化字典,得到historyelites字典。
[0083]
需要说明的是,初始化为空,该字典的键为迭代次数编号,每个值为一个字典,有elite,datas两个键值,elite对应的值为1个精英个体的染色体向量,datas(batch sample中数据的编号)对应的值为该精英个体所对应的评估数据的编号。如图3所示,historyelites={1:{elite:(0.002,0.69,1.81,0.57),datas=(1,16,99,33,55,1045)}}代表里面有一个精英个体,其染色体为(0.002,0.69,1.81,0.57),对应的batchsample中的数据的编号是(1,16,99,33,55,1045)。
[0084]
s33、从数据集中抽取规模为batchsize的数据样本batchsample,并将所述数据样本batchsample对应的编号放到sample_id。
[0085]
s34、基于所述第一种群pop进行评估,从子代中选择最好的λ个个体作为所述第一种群pop的下一代个体。
[0086]
s35、将所述第二种群gpop中的个体迁移到所述第一种群pop中,得到迁移种群。
[0087]
s36、将所述迁移种群中最好的个体和当前代的sample_id组成一个字典添加到所述historyelites字典中。
[0088]
s37、令种群迭代次数epochindex=epochindex 1,并判断当前种群迭代次数是否满足epochindex《maxepoch,maxepoch为最大迭代次数,若是则执行步骤s32,若否则执行步骤s38。
[0089]
s38、运用nsga-ii算法对所述第一种群pop进行排序,得到帕累托前沿,获取最终解集。
[0090]
在一实施例中,所述步骤s31,具体包括以下步骤:
[0091]
s311、根据所述目标检测模型的神经网络拓扑结构mod采用(0,1)正态分布初始化所述种群的n个个体,得到第一种群pop。
[0092]
需要说明的是,本实施例根据神经网络拓扑结构mod采用(0,1)正态分布初始化n个个体,即每个个体的染色体的一个位点对应模型中的一个参数,每个位点初始化的值服从n(0,1),这n个个体组成基于emo初始种群pop,比如搜索空间为二维时,各个个体的分布可以如图2所示。
[0093]
s312、对于所述权重集合s中的每个元素,根据所述目标检测模型的神经网络拓扑结构mod采用(0,1)正态分布初始化1个个体,得到1个用所述爬山搜索算法解且由|s|个个体组成的第二种群gpop。
[0094]
需要说明的是,对于权重集合s中的每个元素s,根据mod算法采用(0,1)正态分布初始化1个个体,在进行随机梯度下降法更新参数时loss是对由s乘以对应objective loss计算得来的,最终得到1个用爬山算法搜索解且由|s|个个体组成的种群gpop。
[0095]
在一实施例中,所述步骤s34,具体包括以下步骤:
[0096]
s341、将所述sample_id与所述historyelites字典中的评估数据编号datas进行比较,找出重叠程度最大的评估数据编号datas对应的精英个体。
[0097]
s342、对所述精英个体施加一个扰动,得到扰动个体,并将所述精英个体和所述扰动个体添加到所述第一种群pop中。
[0098]
需要说明的是,本实施例将sample_id与historyelites字典中的datas进行比较,找出重叠程度最大的那个datas对应的精英个体,并在给精英个体上施加一个扰动,比如加上一个服从n(0,1)的噪声得到在搜索空间上分布在该精英个体周围的一些个体,将该精英
个体和这些产生的个体添加到第一种群pop中。
[0099]
s343、在所述数据样本batchsample上评估所述第一种群pop,所述第一种群pop进行子代变异操作,得到新的种群tempnewpop。
[0100]
s344、基于所述第一种群pop和所述种群tempnewpop,从子代中选择最好的λ个个体作为所述第一种群pop的下一代个体。
[0101]
在一实施例中,所述步骤s35,具体包括以下步骤:
[0102]
s351、在所述数据样本batchsample上对所述第二种群gpop进行适应度评估,并初始化集合addedset。
[0103]
s352、对于所述第二种群gpop中的个体,若存在个体在所述第二种群pop中的排名差于|pop|/2,则使用所述爬山搜索算法以所述学习率lr更新该个体,并将该个体加入到所述集合addedset中。
[0104]
s353、将所述集合addedset中的所有个体迁移到所述第一种群pop中,得到迁移种群。
[0105]
需要说明的是,对于第二种群gpop中个体g,若g在pop中的排名差于|pop|/2,则使用爬山法以学习率lr更新个体g,并将个体g加入到集合addedset中,如果选中的个体数大于m就取最好的m个,否则全部取;否则不对该g个体进行操作。
[0106]
需要说明的是,对于种群pop,其中的个体数量表示为|pop|,对种群pop中的个体进行评估,按优到劣的顺序为个体进行编号,编号为1至|pop|,例如,编号为1的个体优于编号为2的个体,以此类推。对于gpop中的个体g,将个体g与pop中的个体进行比较,若个体g比排名为|pop|/2的个体差,则使用爬山法以学习率lr更新个体g,并将个体g加入到集合addedset中。若满足条件的个体数量大于m,此时选择最好的m个个体加入到addedset中,若满足条件的个体数量小于m,则将满足条件的个体全部加入到addedset中。
[0107]
在一实施例中,所述步骤s343,具体包括以下步骤:
[0108]
(1)在所述数据样本batchsample上对所述第一种群pop进行适应度评估排序。
[0109]
(2)从所述第一种群pop中抽取两个parents,并使用粗粒度交叉算法进行交叉,并重复若干次,得到一个新的种群crosspop。
[0110]
需要说明的是,通过不断从种群pop中抽取两个parents,使用本粗粒度交叉算法进行交叉,重复若干次,得到一个新的crosspop。比如:可以采用(μ,λ)-selection方法,每代的种群个数为μ个,每次随机抽取两个parents按照粗粒度交叉算法产生两个offspring,一共产生λ个子代,然后从子代中选出μ个作为下一代,再比如(μ λ)-selection方法,过程类似,只是把从子代选择μ个改为从当代和子代中选择μ个。
[0111]
(3)对所述种群crosspop执行变异操作,得到所述种群tempnewpop。
[0112]
需要说明的是,本实施例对crosspop执行变异操作,得到tempnewpop,比如可以在每个位点上加上一个小的随机值。
[0113]
在一实施例中,所述步骤(2)中,从所述第一种群pop中抽取两个parents,并使用粗粒度交叉算法进行交叉,包括:
[0114]
在所述第一种群pop的所有个体中随机选择几个交叉互换起始位点,所述起始位点位点之间相距大于或等于最大交换长度max_length。
[0115]
对于每个起始位点,每次都取一个[0,max_length]的随机数len,从起始点出发往
后len长度的区域作为交叉互换的区域。
[0116]
若所述随机数大于交换概率cr,则采用uniform crossover将两个所述parents在所述交叉互换的区域进行交叉互换,产生两个子代,并随机选择一个作为输出。
[0117]
需要说明的是,如图4所示,粗粒度交叉互换是指将两个parents在对应区域进行互换这里互换,产生两个子代,随机选择一个作为输出。
[0118]
如图5所示,细粒度交叉互换是指利用uniform crossover对两个parents进行交叉互换,产生两个子代并随机取一个作为输出,每个位点的突变概率采用预先设定的概率cr,即产生一个[0,1]之间的随机数,然后如果这个随机数大于cr就交换该位点,否则就不交换。
[0119]
需要说明的是,为了能够进一步提提高算法的收敛速度,以及增强算法在高维度搜索空间中的变异、交叉效率,提高算法的搜索能力,本实施例提出了一种粗粒度的交叉算子来实现。粗粒度交叉受生物中的染色体片段交换启发,增加了探索性能,通过结合细粒度交叉,可以更好地进行全局搜索。
[0120]
在一实施例中,所述步骤s344,包括以下步骤:
[0121]
(1)在所述数据样本batchsample上对所述种群tempnewpop进行适应度评估排序。
[0122]
需要说明的是,在数据样本batchsample上对tempnewpop进行适应度评估排序。比如,可以采用nsga-ii里提到的<n偏序关系就是说前一个非支配解集的个体优于后面的,每个非支配解集中的元素稀疏的比拥挤的好,这个i<nj中i比j好,后面设计的排序操作都可以采用这种方式。
[0123]
(2)在所述第一种群pop和所述种群tempnewpop上执行选择操作,并根据所述种群tempnewpop的评估结果和所述tempnewpop的评估结果,从子代中选择最好的λ个个体作为所述第一种群pop的下一代个体。
[0124]
需要说明的是,在种群pop和tempnewpop上执行选择操作,选出n个个体组成下一代pop,比如采用(μ,λ)-selection加精英主义原则使根据之前评估得到的结果,从子代中选择最好的λ个个体作为下一代。
[0125]
如图6所示,本实施例提出的结合进化多目标及进化多任务的检测模型优化的整体实现步骤如下:
[0126]
(1)输入参数:输入基于emo的种群规模n;最大迭代次数maxepoch;从基于爬山法的种群迁移到应用进化算法种群最大个体数量m;人为指定的爬山法目标函数权重集合s,比如我们有三个objective,|s|=3,那么s可以是{(0.2,0.5,0.3),(0.3,0.5,0.2),(0.4,0.4,0.2)};爬山法学习率lr,目标检测模型的神经网络拓扑结构mod,数据dataset,每次从dataset抽取的batchsample的规模大小batchsize;粗粒度交叉算法中的最大交换长度max_length及交换概率。
[0127]
(2)初始化种群pop:根据mod采用(0,1)正态分布初始化n个个体,即每个个体的染色体的一个位点对应模型中的一个参数,每个位点初始化的值服从n(0,1),这n个个体组成基于emo初始种群pop。
[0128]
(3)初始化种群gpop:对于s中的每个元素s,根据mod采用(0,1)正态分布初始化1个个体,在进行随机梯度下降法更新参数时loss是对由s乘以对应objective loss计算得来的,最终得到1个用爬山算法搜索解且由|s|个个体组成的种群gpop。
[0129]
(4)初始化historyelites字典:初始化为空,该字典的键为迭代次数编号,每个值为一个字典,有elite,datas两个键值,elite对应的值为1个精英个体的染色体向量,datas(batch sample中数据的编号)对应的值为该精英个体所对应的评估数据的编号。
[0130]
(5)抽取评估用的数据batchsample:从数据集中抽取规模为batchsize的数据样本batchsample,并将其对应的编号放到sample_id。
[0131]
(6)添加历史个体到pop:将sample_id与historyelites字典中的的datas进行比较,找出重叠程度最大的那个datas对应的精英个体,并在给精英个体上施加一个扰动,比如加上一个服从n(0,1)的噪声得到在搜索空间上分布在该精英个体周围的一些个体,将该精英个体和这些产生的个体添加到pop中。
[0132]
(7)评估pop:在batchsample上对pop进行适应度评估排序;
[0133]
(8)pop产生子代:不断从pop中抽取两个parents使用本文提出的粗粒度交叉算法进行交叉,得到一个新的crosspop,重复若干次;比如可以采用(μ,λ)-selection方法,没每代的种群个数为μ个,每次随机抽取两个parents按照粗粒度交叉算法产生两个offspring,一共产生λ个子代,然后从子代中选出μ个作为下一代,再比如(μ λ)-selection方法,过程类似,只是把从子代选择μ个改为从当代和子代中选择μ个。
[0134]
pop子代变异操作:对crosspop执行变异操作,得到tempnewpop;比如可以在每个位点上加上一个小的随机值
[0135]
(9)评估tempnewpop:在batchsample上对tempnewpop进行适应度评估排序。
[0136]
(10)选出pop下一代个体:在pop和tempnewpop上执行选择操作,选出n个个体组成下一代pop,比如采用(μ,λ)-selection加精英主义原则使根据之前评估得到的结果,从子代中选择最好的λ个个体作为下一代。
[0137]
(11)评估gpop:在batchsample上对gpop进行适应度评估.
[0138]
(12)初始化集合addedset:初始化集合addedset,将其置为空。
[0139]
(13)从gpop中迁移个体到addedset中:对于每个gpop中个体g,若g在pop中的排名差于|pop|/2,则使用爬山法以学习率lr更新一步g,并将g加入到集合addedset中,否则不对该g个体进行操作。
[0140]
(14)将addedset中的所有个体加入到pop中。
[0141]
(15)保存当前历史最优解:选出pop中最好的个体并将染色体和当前代的sample_id组成一个字典添加到historyelites字典中.
[0142]
(16)判断结束条件:epochindex=epochindex 1,若epochindex《maxepoch,跳转到步骤(4)。
[0143]
(17)获取最终解集:运用nsga-ii算法对pop种群进行排序,得到帕累托前沿。
[0144]
需要说明的是,进化多任务算法利用进化算法的隐式并行性同时处理多个任务,这些任务可以是相关的或者是不相关的。在进化多任务算法的思想中,解决一个任务所用到的知识在一定程度上与解决另一个相似任务所需要的知识之间存在关联。因此,在本发明中设计第一个任务,该任务通过手动指定爬山搜索算法的权重优化目标函数,得到一些个体(解),第二个任务为进化算法搜索的方式寻找目标函数的解,由于第一个任务和第二个任务共用一个搜索空间,且可以认为优化第一个任务的知识与优化第二个任务的知识存在相关性,则将第一个任务中的个体迁移到第二个任务中,这样可以做到知识迁移进而加
快任务二的收敛。
[0145]
本实施例应用动态优化以促进在大规模数据集上的收敛,动态优化问题是一类条件随时间改变而改变的问题,条件的改变可能会影响模型的目标函数、搜索空间或约束条件等。在本发明研究的目标检测领域中,由于训练模型时将整个数据集分成一个个批次的小数据,并依次在不同批次的小数据中训练模型。训练集中共有n个样本,数据样本i对优化提出了约束si,因此,全局优化问题即为对n个约束的优化问题。任意一个批次j的n个样本都重新抽取了一批不同的全局约束的子集{sj1,sj2,sj3,...,sjn},因此构造了一个全局问题的子问题。不同批次之间的数据存在着相关性,其构造的约束子集之间存在交集。因此,利用这种相关性来从历史批次的解中获取信息,加速当前批次搜索的收敛。在训练的过程中保留每一批次的历史最优解,通过对对当前问题与历史问题的相关性匹配,选择最相关的历史问题的最优解,形成部分迁移解加入到当前问题中以促进当前问题的收敛。
[0146]
此外,如图7所示,本发明第二实施例还提出了一种结合进化多目标及进化多任务的检测模型优化系统,所述系统包括:
[0147]
第一构建模块10,用于构建辅助任务,所述辅助任务为基于爬山搜索算法对目标检测模型中的权重进行优化;
[0148]
第二构建模块20,用于构建主任务,所述主任务为基于进化多目标方法对第一目标函数和第二目标函数进行优化求解,所述第一目标函数为分类损失函数,所述第二目标函数为回归损失函数;
[0149]
模型优化模块30,用于对所述辅助任务和所述主任务进行求解,并将所述辅助任务搜索过程中得到的解作为个体迁移到所述主任务的种群中,完成模型优化。
[0150]
需要说明的是,目标检测模型的目标函数存在难以搜索到同时使得分类损失和回归损失两项目标同时最优的问题,而使用梯度方法来对该目标函数进行优化又往往会陷入局部最优。本实施例提出了基于进化多目标emo的方法来优化目标检测模型,将分类损失和回归损失作为两项需要同时优化的目标函数,最终得到一组非支配解。
[0151]
但由于emo引入了种群搜索,这将导致算法的收敛速度非常缓慢,因此本实施例引入了进化多任务,通过构造能够快速收敛的辅助任务以加速主任务的收敛;其中辅助任务是利用传统的爬山搜索法对目标检测模型进行优化,通过初始化一组随机的λ权重来优化目标检测模型的目标函数,通过将辅助任务的搜索过程中得到的解迁移到主任务种群中以加速主任务的收敛。
[0152]
在一实施例中,所述系统还参数设置模块,用于设置参数包括:所述爬山搜索算法的目标函数权重集合s和学习率lr;所述进化多目标方法的种群的规模为n和最大迭代次数maxepoch;所述目标检测模型的神经网络拓扑结构mod,数据量dataset及每次从datasett抽取的batchsample的规模大小batchsize;从所述爬山搜索算法的种群迁移到所述进化多目标算法中种群的最大个体数量m;以及预先设置粗粒度交叉算法中的最大交换长度max_length及交换概率gr。
[0153]
在一实施例中,所述模型优化模块30,包括:
[0154]
初始化单元,分别对所述神经网络拓扑结构mod和所述权重集合s进行初始化,得到第一种群pop和第二种群gpop。
[0155]
字典初始化单元,用于初始化字典,得到historyelites字典。
[0156]
抽取单元,用于从数据集中抽取规模为batchsize的数据样本batchsample,并将所述数据样本batchsample对应的编号放到sample_id。
[0157]
评估单元,用于基于所述第一种群pop进行评估,从子代中选择最好的λ个个体作为所述第一种群pop的下一代个体。
[0158]
迁移单元,用于将所述第二种群gpop中的个体迁移到所述第一种群pop中,得到迁移种群。
[0159]
添加单元,用于将所述迁移种群中最好的个体和当前代的sample_id组成一个字典添加到所述historyelites字典中。
[0160]
判断单元,用于令种群迭代次数epochindex=epochindex 1,并判断当前种群迭代次数是否满足epochindex《maxepoch,maxepoch为最大迭代次数。
[0161]
确定单元,用于在判断单元输出结果为是控制字典初始化单元动作,用于在判断单元输出结果为否时,运用nsga-ii算法对所述第一种群pop进行排序,得到帕累托前沿,获取最终解集。
[0162]
需要说明的是,本发明所述结合进化多目标及进化多任务的检测模型优化系统的其他实施例或具有实现方法可参照上述各方法实施例,此处不再赘余。
[0163]
需要说明的是,在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(rom),可擦除可编辑只读存储器(eprom或闪速存储器),光纤装置,以及便携式光盘只读存储器(cdrom)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
[0164]
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。
[0165]
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
[0166]
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
[0167]
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献