搜索方法、装置、设备和计算机可读存储介质与流程

未命名 08-25 阅读:85 评论:0


1.本技术涉及计算机技术领域,尤其涉及一种搜索方法、装置、设备和计算机可读存储介质。


背景技术:

2.神经网络架构搜索技术(neural network architecture search,nas)是指对于神经网络模型,通过算法自动化完成最优架构的设计,以替代算法工程师的手工设计。硬件感知的神经架构搜索技术(hardware-aware neural network architecture search,hw nas)是指在nas的基础上,加入了硬件感知的功能。在实际应用中,神经网络(neural network,nn)通常需要部署在特定的目标硬件上。例如,芯片需要在部署特定场景nn时,同时达到精确度、延时、功耗、存储等最优的状态。因此,在目标硬件上部署nn网络时,不仅需要考虑模型的性能表现,同时也要权衡模型在硬件上的延时、功耗等硬件指标,从而使产品达到最佳效果。
3.相关技术中,通过人工设置固定的硬件指标约束,利用进化算法(evolution algorithm,ea)在架构搜索中求取帕累托最优解(pareto optimal solution)。
4.然而,在给定硬件指标约束c(例如,延迟)的架构搜索中,有可能出现某个搜索出来的模型x的性能px,与另外一个模型y的性能py一致:px=py,或者px仅略大于py,但是,硬件约束明显有c》cx》cy,使得搜索出来的模型x并非用户最需要的。如果存在性能一致或差不多,而更低延迟的模型,用户往往更愿意选择更低延迟的模型,也就是选择模型y。因此,相关技术中的搜索方法,降低了搜索结果的准确性。


技术实现要素:

5.本技术实施例提供一种搜索方法、装置、设备和计算机可读存储介质,提高了搜索结果的准确性。
6.本技术实施例的技术方案是这样实现的:
7.第一方面,本技术实施例提供一种搜索方法,所述方法包括:在架构搜索空间对应的超网络中,选择满足固定约束的染色体,确定初始种群;所述超网络包括至少两个子网络,每个染色体对应一个子网络;基于所述初始种群和初始目标进化方向,确定父代种群,并对所述父代种群所包括的染色体进行变异和交叉,以确定目标种群;继续基于所述目标种群和下一目标进化方向,确定下一父代种群,并对所述下一父代种群所包括的下一染色体进行变异和交叉,以确定下一目标种群,直至达到迭代次数,实现多目标进化,得到最后一个目标种群;从所述最后一个目标种群中确定目标染色体,以实现多目标的架构搜索,得到所述目标染色体对应的目标子网络。
8.第二方面,本技术实施例提供一种搜索装置,所述装置包括:种群确定模块,用于在架构搜索空间对应的超网络中,选择满足固定约束的染色体,确定初始种群;所述超网络包括至少两个子网络,每个染色体对应一个子网络;基于所述初始种群和初始目标进化方
向,确定父代种群;进化模块,用于对所述父代种群所包括的染色体进行变异和交叉,以确定目标种群;所述种群确定模块,还用于继续基于所述目标种群和下一目标进化方向,确定下一父代种群;所述进化模块,还用于对所述下一父代种群所包括的下一染色体进行变异和交叉,以确定下一目标种群,直至达到迭代次数,实现多目标进化,得到最后一个目标种群;目标子网络确定模块,用于从所述最后一个目标种群中确定目标染色体,以实现多目标的架构搜索,得到所述目标染色体对应的目标子网络。
9.第三方面,本技术实施例提供一种搜索设备,所述设备包括:存储器,用于存储可执行计算机程序;处理器,用于执行所述存储器中存储的可执行计算机程序时,实现上述第一方面所述的搜索方法。
10.第四方面,本技术实施例提供一种计算机可读存储介质,存储有计算机程序,用于被处理器执行时,实现上述第一方面所述的搜索方法。
11.本技术实施例提供了一种搜索方法、装置、设备和计算机可读存储介质。根据本技术实施例提供的方案,该方法包括:在架构搜索空间对应的超网络中,选择满足固定约束的染色体,确定初始种群;超网络包括至少两个子网络,每个染色体对应一个子网络;基于初始种群和初始目标进化方向,确定父代种群,初始种群中的初始染色体均满足固定约束,从初始种群中选择在初始目标进化方向上较优的染色体,构建父代种群。并对父代种群所包括的染色体进行变异和交叉,以确定目标种群,完成本轮中对于初始目标进化方向的进化过程。继续基于目标种群和下一目标进化方向,确定下一父代种群,并对下一父代种群所包括的下一染色体进行变异和交叉,以确定下一目标种群,完成下一轮关于下一目标进化方向的进化过程。直至达到迭代次数,通过多轮关于不同目标进化方向的进化过程,实现了多目标进化,得到最后一个目标种群,从最后一个目标种群中确定目标染色体,以实现多目标的架构搜索,得到目标染色体对应的目标子网络。通过本方案中多轮目标进化方向,搜索到的目标子网络能够在满足硬件需求的同时达到模型性能更优。在满足搜索效率的同时,实现了模型精确度、延时、功耗等多硬件目标的协同优化,从而在实际场景中满足多维度需求,提高了搜索结果的准确性。
附图说明
12.图1为本技术实施例提供的一种帕累托最优解的示例性的示意图;
13.图2为本技术实施例提供的一种单目标帕累托最优解的示例性的示意图;
14.图3为本技术实施例提供的一种搜索方法的可选的步骤流程图;
15.图4为本技术实施例提供的另一种搜索方法的可选的步骤流程图;
16.图5为本技术实施例提供的再一种搜索方法的可选的步骤流程图;
17.图6为本技术实施例提供的又一种搜索方法的可选的步骤流程图;
18.图7为本技术实施例提供的一种交叉变异比例自适应调整策略的示例性的示意图;
19.图8为本技术实施例提供的一种基于贪心策略的多目标进化算法的可选的步骤流程图;
20.图9为本技术实施例提供的一种搜索装置的可选的结构示意图;
21.图10为本技术实施例提供的一种搜索设备组成结构示意图。
具体实施方式
22.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述。应当理解的是,此处所描述的一些实施例仅用以解释本技术的技术方案,并不用于限定本技术的技术范围。
23.为了更好地理解本技术实施例中提供的搜索方法,在对本技术实施例的技术方案进行介绍之前,先对应用背景和相关技术进行说明。
24.nas的优势主要体现在以下几方面:一是能够大幅减少人工设计网络成本,这在场景复杂、任务数量巨大时尤为明显;二是nas能够最大可能地通过自动化手段挖掘潜在最优模型;三是能够在很大程度上避免手工设计网络带来的弊端,例如,降低人类固有的知识体系和认知对模型设计带来的偏差。因此,nas受到了越来越广泛地应用,nas主要包含三个内容:搜索空间设计、搜索策略设计、以及模型评估策略。
25.基于nas的hw-nas,为了同时考虑模型的性能表现、模型在硬件上的延时、功耗等硬件指标,hw-nas通过特定目标硬件的性能反馈,自动化调整搜索策略,从而搜索出精确度、延时、功耗等综合指标最佳的模型。在嵌入式设备、边缘计算等需求日渐增长的情况下,对nn模型的推理延时、功耗等提出了更高的要求,hw-nas和多目标搜索技术应运而生。
26.进化算法(ea)是数学上一种常见的启发式算法,来源于生物的演进机制,模拟自然界中生物的繁衍、突变、遗传重组、自然选择等过程,从而从候选种群中找到最适应环境的个体。它的一个突出优势是能够在人们可接受的时间内,找到待解决优化问题的一个相对最优解。进化算法包括遗传算法(genetic algorithm,ga)、进化规划(evolutionary programming,ep、遗传规划(genetic programming,gp)和进化策略(evolution strategy,es)。遗传算法(ga)在hw-nas中也应用非常广泛。
27.相关技术中提出的once-for-all(ofa)就是通过遗传算法(ga)找到实际硬件感知的最佳模型。它能够在较短时间内实现一次训练多次硬件部署。示例性的,ofa首先训练一个包含大量子网络的超网络,然后根据待部署的硬件要求(例如,延时),采用进化算法从超网络中获得满足需求的最佳子模型进行实际部署。
28.在ofa等基于遗传算法的网络架构搜索中,通常是将超网络训练和搜索过程解耦来进行的。即,在搜索之前,先进行超网络训练。超网络可以被看做是一个包含大量子网络的网络池。在ofa的进化算法中,需要给定目标硬件约束c,在满足目标硬件约束c下进行优化性能的搜索,得到最优子网络的模型架构,也就是数学意义上的帕累托最优解。其中,帕累托最优解(pareto最优解)的定义如下:如果一个解x被称之为pareto最优解,当且仅当x不被其他的解支配。其中,支配的定义如下:x支配y,记为x<y,当且仅当fi(x)≤fi(y),且s.t.fj(x)《fj(y),s.t.表示约束条件。
29.基于上述pareto最优解的定义,在架构搜索中求得的最优模型(即,pareto最优解),需要满足的条件是:不存在所有目标上都有更好效果的模型。在不牺牲其他目标的情况下无法使当前目标更好。也就是说,要想进一步优化当前目标,就必须对其他某个目标造成损失。ofa的搜索算法如图1所示,图1为本技术实施例提供的一种帕累托最优解的示例性的示意图,图1的横坐标表示硬件指标c,纵坐标表示性能p,曲线表示pareto前沿,通过给定一个硬件目标约束(图1中的硬件约束c),进行一个性能方向上的搜索(图1中ofa优化方
向),将单一硬件目标作为固定约束,从而得到最优模型。
30.基于上述图1,ofa是将单一硬件目标作为固定强约束,这在多目标寻优的应用场景中,是很难达到帕累托最优解的。如图2所示,图2为本技术实施例提供的一种单目标帕累托最优解的示例性的示意图,图2的横坐标表示硬件指标c,纵坐标表示性能p,曲线表示pareto前沿,性能p不会随着硬件指标c的放宽一直提升,后期会越来越缓慢。从图2中可以看出,在给定硬件约束c的架构搜索中,搜索出来的最优模型x(图2中ofa得到的最优模型x)的性能px与另外一个模型y的性能py差不多(px略大于py),但是模型x的硬件要求更高一些,相较于模型x,用户可能更倾向于选择模型y(图2中用户可能更需要的模型y)。也就是说,如果多个模型在硬件指标上比较接近时,ofa极易搜索出非用户需要的最佳模型。
31.但是,在实际应用中,架构搜索过程会存在一些非理想情况。一种情况是硬件指标的放宽不一定会带来搜索效果体验的提升。这是受到超网络的训练、评估算法、模型训练随机性等的影响而导致的。另一种情况是模型性能的提升幅度会随着硬件指标的放宽越来越慢。在这种情况下,用户通常不希望通过牺牲过多的硬件指标换取微弱的精度提升,目标之间的优化比例取决于实际场景需求。图2就给出了这样一个案例的说明,在硬件指标高于某个特定值之后,性能增长其实非常缓慢。在性能要求不是非常严苛的场景下,用户通常是希望牺牲小幅度的性能来换取较大的硬件指标优化空间的。
32.相关技术中基于ofa的架构搜索方法,存在以下技术缺陷:(1)基于ofa系列的架构搜索并未能对硬件指标做足够的优化。ofa对硬件指标的处理是把其当作固定约束,可以看作是在某一个硬件目标可行域下对性能的单目标优化。ofa算法需要人工设置一个固定的硬件指标约束,如延迟约束c。在进化算法过程中,随机生成、交叉、变异产生所有的候选模型的硬性指标约束只要满足小于c的条件即可。这种逻辑导致搜索的模型不一定为帕累托最优解。在架构搜索中求取帕累托最优解的意义是在不牺牲其他目标的情况下无法使当前目标更好。也就是说,要想进一步优化当前目标,就必须对其他某个目标造成损失。例如,在给定硬件约束c的架构搜索中,有可能出现某个搜索出来的模型x的性能px与另外一个模型y的性能py一致:px=py,或者px仅略大于py,但是硬件约束明显有c》cx》cy,使得搜索出来的模型x并非用户最需要的。
33.(2)缺少多目标优化的方案。在ofa的架构搜索过程中,仅针对单个特定硬件约束(即,单目标)搜索最佳模型。但是,在实际应用场景中,需要搜索出的模型,能够在精度、延时、功耗等多种指标下(即,多目标)同时达到最佳,从而满足多元需求。因此,hw-nas需要满足多目标优化的需求。
34.综上,ofa采用的进化算法进行的架构搜索存在的技术问题包括:(1)搜索结果可能不是帕累托最优解;(2)ofa不支持多目标(例如,性能、延迟、功耗)同时进行的架构搜索任务。
35.本技术实施例提供一种搜索方法,如图3所示,图3为本技术实施例提供的一种搜索方法的步骤流程图,搜索方法包括以下步骤:
36.s101、在架构搜索空间对应的超网络中,选择满足固定约束的染色体,确定初始种群;超网络包括至少两个子网络,每个染色体对应一个子网络。
37.在本技术实施例中,训练完成的超网络包括至少两个子网络,将每个子网络看作是一个染色体,从这些染色体中筛选出满足固定约束的染色体。固定约束可以是由本领域
技术人员根据实际需求自定义设置的、关于模型指标的参数,模型的指标包括但不限于模型性能、延迟、功耗、计算量、存储空间等,其中,模型性能可以理解为模型预测结果的精确度,例如,对于分类功能的网络,分类结果准确性越高,说明模型性能越好。固定约束可以是关于某一指标或至少两个及以上的指标的预设值,对超网络中的各个子网络的指标信息进行预测,当子网络的指标信息满足该固定约束时,将其加入初始种群,直至满足初始种群大小,从而生成初始种群。
38.在本技术实施例中,对超网络中的各个子网络的指标信息进行预测,可以通过硬件测试对子网络的硬件需求进行测试,通过测试样本集对子网络的模型性能进行测。也可以将各个子网络输入到目标预测器中进行预测,输出子网络的硬件需求参数和模型性能参数。
39.在本技术实施例中,本领域技术人员不仅自定义设置固定约束,还对进化算法相关参数进行定义,进化算法相关参数包括但不限于:初始种群大小(例如,设置初始种群包括n条初始染色体)、迭代轮次(例如,迭代次数e)、交叉比例系数、变异比例系数(例如,变异比例系数是m/n,交叉比例系数是(n-m)/n,执行m次变异,(n-m)次交叉,从而保证种群中染色体的数量是n个)、变异概率等。
40.在本技术实施例中,架构搜索空间中的超网络包括至少两个子网络,随机在架构搜索空间中进行采样,不断生成若干条染色体(即子网络的架构配置),并计算其在各个指标下的指标信息(也可以理解成计算其在各个目标下的目标值),将满足固定约束的染色体加入到初始种群中,直至满足初始种群大小,从而生成初始种群。其中,若某个指标下有固定约束,则选择满足约束的染色体。
41.s102、基于初始种群和初始目标进化方向,确定父代种群,并对父代种群所包括的染色体进行变异和交叉,以确定目标种群。
42.在本技术实施例中,初始种群中包括n个初始染色体,预测各个染色体针对各个指标下的指标信息,初始目标进化方向为任意一个指标,或者,为至少两个具有相关性或冲突性的指标。将n个初始染色体在初始目标进化方向上的指标信息进行排序,选择前k个染色体,作为父代种群。并按照前述定义的交叉比例系数对父代种群所包括的染色体进行交叉,按照前述定义的变异比例系数对父代种群所包括的染色体进行变异,将交叉和变异后的染色体加入目标种群,从而得到目标种群,使得目标种群中包括n个进化染色体。其中,目标种群也可以称为精英种群,进化染色体也可以称为精英染色体。
43.在本技术实施例中,该轮进化过程通过选择最优的染色体进行变异和交叉,生成目标种群,完成了基于贪心策略的进化方向选择。基于贪心策略的进化方向选择包括:在每轮进化过程中,对进化方向进行采样,其采样的目标进化方向是任意指标,针对不同的染色体,将目标进化方向对应的指标信息(即选择的进化方向对应的目标值),作为该染色体的适应度分数,将适应度得分最高的染色体保存并添加到父代种群中。并根据交叉-变异比例自适应调整策略对父代种群中的染色体进行变异和交叉以获得新的种群(即目标种群)。交叉-变异比例自适应调整策略包括:第一轮的变异比例系数和交叉比例次数是默认的(本领域技术人员根据实际需求自定义设置的),第二轮及以后是根据父代种群中染色体的分布规律(例如,均值和方差)进行实时调整的。
44.s103、继续基于目标种群和下一目标进化方向,确定下一父代种群,并对下一父代
种群所包括的下一染色体进行变异和交叉,以确定下一目标种群,直至达到迭代次数,实现多目标进化,得到最后一个目标种群。
45.在本技术实施例中,重复执行上述s102中基于目标进化方向生成父代种群,进行交叉和变异确定目标种群的步骤,以确定下一目标种群,完成下一轮关于下一目标进化方向的进化过程。依次循环,直至达到迭代次数e,输出最后一个目标种群(最后一个目标种群也可以称为精英集合)。
46.本方案提出了基于贪心策略的进化方向选择,基于贪心策略的多目标进化算法中,需要在每一轮中选择目标进化方向。贪心策略是指在每一轮迭代中,选取单一目标作为本轮的优化方向,通过不断寻找单一目标下的局部最优来实现多目标的优化效果。
47.在本技术实施例中,每轮进化过程可以随机选择一个目标进化方向,或者依次选择目标进化方向,每轮进化过程中包括交叉和变异,选择-变异-交叉的过程重复进行,直到达到设置的迭代轮次(即迭代次数)。若某个目标进化方向对应的指标下有固定约束,则变异过程和交叉过程均选择满足固定约束的染色体。经过多轮进化过程之后,完成基于贪心策略的多目标进化方向选择,得到最后一个目标种群。
48.在本技术实施例中,通过加入多个目标硬件约束实现多目标优化,实现了更好的模型性能和效率的平衡(trade-off)。在保证模型性能的同时,提高了工作效率,例如,延迟低、功耗小、计算量小等。
49.s104、从最后一个目标种群中确定目标染色体,以实现多目标的架构搜索,得到目标染色体对应的目标子网络。
50.在本技术实施例中,最后一个目标种群包括多条候选染色体,预测该多条候选染色体对应的子网络的指标信息,指标信息包括模型性能参数和硬件需求参数(例如,延迟、功耗、计算量、存储空间等)。在得到最后一个目标种群之后,可以在最后一个目标种群中选择模型性能参数最优(例如,精确度最高)的候选染色体,作为目标染色体。也可以在最后一个目标种群中选择硬件需求参数(延迟、功耗、计算量、存储空间任意一个)最优的候选染色体,作为目标染色体。也可以在最后一个目标种群中选择满足固定约束的子网络,作为目标染色体,目标染色体的数量是至少一个。本技术实施例对于目标染色体的选择方式和数量不做限制,只要是通过多目标优化,确定最后一个目标种群,进而得到目标染色体的方案均在本技术的保护范围之内。
51.示例性的,以固定约束是延迟小于c为例对在最后一个目标种群中选择满足固定约束的子网络进行说明,将最后一个目标种群中指标信息中延迟小于c的染色体,作为目标染色体。以固定约束是模型性能对应的准确度大于d为例,将最后一个目标种群中指标信息中准确度大于d的染色体,作为目标染色体。从而实现多目标的架构搜索。
52.在本技术实施例中,从最后一个目标种群中确定目标染色体,返回搜索结果,即,返回模型性能或硬件需求最优的染色体,染色体对应子网络的候选模型架构及其对应的权重参数,从而得到目标子网络。
53.本技术实施例中的架构搜索方法,是通过基于贪心策略的多目标进化算法,替换原来的ofa采用的进化算法,输出搜索得到目标模型(对应于目标子网络)。通过基于贪心策略的多目标进化算法,实现了多目标的共同优化。对ofa的单目标进化算法进行改进,提出基于贪心策略的硬件感知多目标神经网络架构搜索方法,使其实现了多目标的架构搜索。
相比于ofa采用的进化算法,本方案能够实现更高效的硬件约束的压缩,在超网络中找到较低功耗(或较低延迟、较小计算量)的子网络,提高了搜索结果的准确性。
54.根据本技术实施例提供的方案,该方法包括:在架构搜索空间对应的超网络中,选择满足固定约束的染色体,确定初始种群;超网络包括至少两个子网络,每个染色体对应一个子网络;基于初始种群和初始目标进化方向,确定父代种群,初始种群中的初始染色体均满足固定约束,从初始种群中选择在初始目标进化方向上较优的染色体,构建父代种群。并对父代种群所包括的染色体进行变异和交叉,以确定目标种群,完成本轮中对于初始目标进化方向的进化过程。继续基于目标种群和下一目标进化方向,确定下一父代种群,并对下一父代种群所包括的下一染色体进行变异和交叉,以确定下一目标种群,完成下一轮关于下一目标进化方向的进化过程。直至达到迭代次数,通过多轮关于不同目标进化方向的进化过程,实现了多目标进化,得到最后一个目标种群,从最后一个目标种群中确定目标染色体,以实现多目标的架构搜索,得到目标染色体对应的目标子网络。通过本方案中多轮目标进化方向,搜索到的目标子网络能够在满足硬件需求的同时达到模型性能更优。在满足搜索效率的同时,实现了模型精确度、延时、功耗等多硬件目标的协同优化,从而在实际场景中满足多维度需求,提高了搜索结果的准确性。
55.在一些实施例中,上述图3的s104中从最后一个目标种群中确定目标染色体,还可以通过以下方式实现。对最后一个目标种群中各个候选染色体的模型性能进行预测,得到各个候选染色体的模型性能;根据各个候选染色体的模型性能,确定目标染色体。
56.在本技术实施例中,对最后一个目标种群中各个候选染色体对应的子网络的指标信息进行预测,可以通过测试样本集对子网络的模型性能进行测试;也可以将各个子网络输入到目标预测器中进行预测,输出子网络的模型性能参数。然后,将最后一个目标种群中模型性能最优(例如,准确度最高)的染色体,确定为目标染色体。
57.在本技术实施例中,通过多轮关于不同目标进化方向的进化过程,实现了多目标进化,减少子网络仅在某一指标上最优、而无限牺牲其他指标的情况,进而在最终的最后一个目标种群中选择模型性能最优的染色体,提高了搜索结果的准确性。
58.在一些实施例中,上述图3的s102中确定父代种群的步骤还可以包括s1021-s1023。如图4所示,图4为本技术实施例提供的另一种搜索方法的可选的步骤流程图。
59.s1021、对初始种群中各个初始染色体的各个指标进行预测,得到各个初始染色体的至少两个指标信息;指标包括子网络的模型性能和硬件需求。
60.在本技术实施例中,每个初始染色体对应一个子网络,可以通过硬件测试对子网络的硬件需求进行测试,将子网络在硬件设备上工作,测试其硬件需求(例如,延迟、功耗、计算量、存储空间等),例如,在目标硬件上测试获得硬件指标,加速架构搜索的效率。通过测试样本集对子网络的模型性能进行测试,将测试样本集输入到子网络中,通过对测试样本集的标签值与子网络输出的预测结果进行对比,确定测试准确度。也可以将各个子网络输入到目标预测器中进行预测,输出子网络的硬件需求参数和模型性能参数。
61.在一些实施例中,上述图4中s1021还可以通过以下方式实现。基于指标预测模型,对初始种群中各个初始染色体的各个指标进行预测,得到各个初始染色体的至少两个指标信息;其中,指标预测模型用于对子网络的模型架构的各个指标进行预测,指标预测模型包括性能指标预测模型和硬件指标预测模型。
62.在本技术实施例中,将任意指标作为目标进行优化,指标预测模型也可以理解为目标预测器,目标预测器是预先训练完成的,目标预测器用于对子网络的模型架构的模型性能和硬件需求进行预测。目标预测器包括性能指标预测器、硬件指标预测器,预测器可由神经网络等机器学习方法进行回归,实现输入一个候选模型架构,可以输出候选模型相关指标的预测值,替代实际的评估策略。
63.s1022、根据各个初始染色体的至少两个指标信息中与初始目标进化方向对应的指标信息,对初始种群所包括的初始染色体进行排序,确定排序结果;初始目标进化方向为任意一个指标,或者,为至少两个具有相关性或冲突性的指标。
64.在本技术实施例中,初始目标进化方向为任意一个指标,按照初始染色体在该指标下的指标信息,对初始种群中的初始染色体按照大到小(或从小到大、或从高到低、或从低到高、或从优到劣、或从劣到优)进行排序,确定排序结果。
65.在本技术实施例中,对于多目标优化的技术问题,可以分析不同目标之间的相关性或者冲突性,进一步对本算法进行优化。也可以采取其他的多目标优化算法方案。例如,粒子群算法、基于相互关系的多目标优化方法等。
66.在本技术实施例中,初始目标进化方向为至少两个具有相关性或冲突性的指标,计算各个初始染色体在至少两个具有相关性或冲突性的指标下的相关值或冲突值,按照相关值或冲突值的大小,对初始种群中的初始染色体进行排序,确定排序结果。
67.s1023、根据排序结果,按照预设顺序选择第一预设数量的染色体,构建父代种群。
68.在本技术实施例中,以第一预设数量是k为例,当排序结果是从大到小(或从高到低、或从优到劣)的顺序时,选择靠前的k的染色体,构建父代种群;当排序结果是从小到大(或从低到高、或从劣到优)的顺序时,选择靠后的k的染色体,构建父代种群。父代种群中是局部指标最优的染色体,父代种群中的染色体的个数小于初始种群中染色体的个数。
69.示例性的,每个染色体对应至少两个指标,多轮进化过程对应多个目标进化方向(即多个指标),硬件感知架构搜索中存在多个目标f1、f2、f3……
,x代表种群中的任意子网络,fi(x)代表x在目标i上的值(对应于指标信息)。在每一轮迭代中,选取任一目标作为本轮的优化方向,例如,选择f
t
为第t轮时的目标进化方向,通过所有候选模型(对应于父代种群中所包括的染色体)在f
t
的目标值作为排序的适应度。基于该多目标适应度排序方法的进化算法,可形成基于贪心策略的硬件感知多目标神经网络架构搜索方法。
70.需要说明的是,在进化方向选择上,可以对贪心策略进行改进,提升算法的收敛性。除贪心策略外,可以尝试其他方法来进行进化方向的选择,例如,.递归算法(recursion algorithm)、分治法(divide and conquer method)、回溯法(back track method)、分支限界法(branch and bound method)等。
71.在一些实施例中,父代种群包括第一预设数量的染色体;上述图3中s102中确定目标种群的步骤还可以包括s1024-s1026。如图5所示,图5为本技术实施例提供的再一种搜索方法的可选的步骤流程图。
72.s1024、基于第一预设数量的染色体,按照初始变异比例系数进行变异,确定第一数量的变异染色体;第一数量为初始变异比例系数与第二预设数量之积。
73.在本技术实施例中,在第一预设数量的染色体中随机采样一个染色体,对其进行一次变异,得到一个变异染色体,依次循环,随机采样m次(第一数量是m),得到第一数量的
变异染色体。
74.在本技术实施例中,本领域技术人员还需要根据实际需求自定义设置初始变异比例系数和初始交叉比例系数,初始变异比例系数与初始交叉比例系数之和为1,初始变异比例系数和初始交叉比例系数也可以是默认系数,可以由本领域技术人员根据实际需求,通过大量的实验数据进行设置,默认系数可以在后续进化过程中自适应调整。
75.示例性的,以第一预设数量是k、第二预设数量是n、初始变异比例系数是m/n、初始交叉比例系数是(n-m)/n为例,第一数量为m/n
×
n=m,在第一轮进化过程中,按照默认比例系数对k个染色体进行随机采样,每采样一个染色体,执行一次变异,依次循环,直至执行m次变异,得到m个变异染色体(对应于第一数量的变异染色体)。
76.需要说明的是,变异是指对单个父代候选模型的染色体进行基因突变,生成新的染色体,此时新的染色体具有单个父代模型的基因的基础上,部分基因替换成生成算法生成的(如随机生成)的新基因,相比交叉,保留的信息较少。在随机采样时,会存在采样到同一个染色体的情况,但是变异方向不一致,因此,得到的变异染色体不一样。
77.s1025、基于第一预设数量的染色体,按照初始交叉比例系数进行交叉,确定第二数量的交叉染色体;初始交叉比例系数为1与初始变异比例系数之差。
78.在本技术实施例中,在第一预设数量的染色体中随机采样两个染色体,对其进行一次交叉,得到一个交叉染色体,依次循环,随机采样(n-m)次(即,第二数量是n-m),得到第二数量的交叉染色体。
79.示例性的,以第一预设数量是k、第二预设数量是n、初始交叉比例系数是(n-m)/n为例,第二数量为(n-m)/n
×
n=n-m,在第一轮进化过程中,按照默认比例系数对k个染色体进行随机采样,每采样一个染色体,执行一次交叉,依次循环,直至执行(n-m)/次交叉,得到(n-m)个交叉染色体(对应于第二数量的交叉染色体)。
80.需要说明的是,交叉是指对两个父代候选模型的染色体进行交叉,生成新的染色体,此时新的染色体保留了两个父代模型的基因的更多信息。在随机采样时,会存在采样到两个相同染色体的情况,但是交叉所采样的基因不一致,因此,得到的交叉染色体不一样。
81.s1026、根据第一数量的变异染色体和第二数量的交叉染色体,确定目标种群;目标种群包括第二预设数量的进化染色体。
82.在本技术实施例中,将第一数量的变异染色体加入目标种群,将第二数量的交叉染色体加入目标种群,在变异和交叉过程之后,生成目标种群,目标种群中包括第二预设数量的进化染色体,保证种群中染色体的数量一致(例如,n个)。其中,目标种群也可以称为精英种群,进化染色体也可以称为精英染色体。
83.在本技术实施例中,根据初始变异比例系数和初始交叉比例系数,基于第一预设数量的染色体进行变异和交叉,从而生成目标种群,完成一轮进化过程。目标种群中的进化染色体可以用于下一轮进化过程(选择最优的k个作为父代,进行下一轮的变异和交叉),依次循环,直至达到迭代次数,得到最后一个目标种群,实现多目标进化。
84.在一些实施例中,针对每轮中所采用的变异比例系数和交叉比例系数,该搜索方法还包括交叉-变异比例系数自适应调整策略,包括s201-s205。如图6所示,图6为本技术实施例提供的又一种搜索方法的可选的步骤流程图。
85.s201、根据当前父代种群中各个当前染色体在当前目标进化方向上的指标信息,
确定均值和方差。
86.在本技术实施例中,对于每一轮进化过程中的父代种群(对应于当前父代种群),其包括多个染色体(对应于当前染色体),每个染色体对应至少两个指标信息,根据各个染色体在该轮进化过程的目标进化方向(任一指标)上的指标信息,计算均值和方差。也就是对父代种群的目标值进行统计,包括均值和方差。
87.在本技术实施例中,根据统计得到的均值和方差,采取不同的交叉变异比例,如图7所示,图7为本技术实施例提供的一种交叉变异比例自适应调整策略的示例性的示意图;对于均值的优、劣,可以相对于上一轮的父代统计参数中的均值进行比较,也可以与超网络中最大网络或最小网络的相关目标值进行比较,以判断统计参数的优劣。在策略部分,交叉和变异比例可以给预先定一个默认值(即初始变异比例系数和初始交叉比例系数),其中,图7中的高、低是指相对默认值以进行调整。
88.s202、在均值小于预设均值、且方差小于预设方差的情况下,将初始变异比例系数调整为第一系数;第一系数大于初始变异比例系数。
89.在本技术实施例中,如图7所示,当均值劣、方差低时,说明父代模型的目标值劣(即当前父代种群所包括的当前染色体在当前目标进化方向上的指标信息较差),且具有一定普遍性,可适当提高变异的比例(即将初始变异比例系数调整为第一系数),尽可能产生更多新的优秀染色体。由于变异比例系数与交叉比例系数之和为1,提高变异的比例,也就是降低交叉的比例。
90.s203、在均值大于预设均值、且方差小于预设方差的情况下,将初始交叉比例系数调整为第二系数;第二系数大于初始交叉比例系数。
91.在本技术实施例中,如图7所示,当均值优、方差低时,说明父代模型的目标值优(即当前父代种群所包括的当前染色体在当前目标进化方向上的指标信息较优),且具有一定普遍性,可适当提高交叉的比例(即将初始交叉比例系数调整为第二系数),使更多优秀父代基因保留下来。由于变异比例系数与交叉比例系数之和为1,提高变交叉的比例,也就是降低变异的比例。
92.s204、在均值小于预设均值、且方差大于预设方差的情况下,保留初始交叉比例系数和初始变异比例系数。
93.在本技术实施例中,如图7所示,当均值劣、方差高时,说明父代模型的目标值劣,且普遍性弱,可能具有一定的优良染色体,可以保留交叉变异的默认比例。
94.s205、在均值大于预设均值、且方差大于预设方差的情况下,保留初始交叉比例系数和初始变异比例系数。
95.在本技术实施例中,如图7所示,当均值优、方差高时,说明父代模型的目标值优,且普遍性弱,可以保留交叉变异的默认比例。
96.需要说明的是,上述图6中s202-s205为四个并列的方案,没有先后执行顺序,在一轮进化过程中,可以择其一对比例系数(变异比例系数和交叉比例系数)进行调整。
97.本技术实施例提出的交叉-变异比例自适应调整策略能够对进化算法进一步优化,以提升进化算法的收敛性。在对父代进行交叉变异过程中,相比设置固定的交叉-变异比例,本方案提出一种交叉-变异比例自适应的交叉-变异调整策略实现进化算法的优化,以更好的实现种群的优化。
98.在一些实施例中,上述图6中s202-s205中的预设均值和预设方差可以通过以下方式实现,根据上一父代种群中各个上一染色体在当前目标进化方向上的指标信息,确定预设均值和预设方差。
99.在本技术实施例中,由于当前父代种群是在上一父代种群进行交叉和变异得到的目标种群中选择较优的染色体之后得到的,对于本轮进化过程,上一父代种群中染色体在本轮所采用的当前目标进化方向上的分布规律(例如,均值和方差)具有参考性。对于上一轮进化过程中的父代种群(对应于上一父代种群),其包括多个染色体(对应于上一染色体),每个染色体对应至少两个指标信息,根据各个染色体在当前目标进化方向(由于是本轮进行统计对比,因此,需要计算上一轮中各个染色体在当前目标进化方向上的分布规律)上的指标信息,计算均值和方差,将其作为预设均值和预设方差。
100.在一些实施例中,上述图6中s202-s205中的预设均值和预设方差可以通过以下方式实现,根据超网络中最大网络或最小网络在当前目标进化方向上的指标信息,确定预设均值。
101.在本技术实施例中,超网络中包括多个子网络,每个子网络的大小可以根据以下至少一个参数进行确定:分辨率、维度、每个块(block)重复次数、卷积核尺寸等。最大网络的参数量较大,其模型性能较好,但是其硬件需求参数较差,例如,延迟较大、功耗较多、计算量较大等。最小网络的参数量较小,其硬件需求参数较好,但是其模型性能较差,例如,准确度较低等。
102.在本技术实施例中,对于均值的优、劣,可以通过与上一轮的父代统计参数中的均值进行比较,也可以与超网络中最大网络或最小网络的相关目标值进行比较,以判断统计参数的优劣,提高了自适应调整所依据条件的多样性。
103.在一些实施例中,上述图3中s103中确定下一父代种群的步骤还可以通过以下方式实现。继续对目标种群中各个进化染色体的各个指标进行预测,得到各个进化染色体的至少两个指标信息;根据各个进化染色体的至少两个指标信息中与下一目标进化方向对应的指标信息,对目标种群所包括的进化染色体进行排序,确定下一排序结果;下一目标进化方向为任意一个指标,或者,为至少两个具有相关性或冲突性的指标;根据下一排序结果,按照预设顺序选择第一预设数量的下一染色体,构建下一父代种群。
104.在本技术实施例中,上述预测进化染色体的至少两个指标信息,可以通过以下方式实现。基于指标预测模型,对目标种群中各个进化染色体的各个指标进行预测,得到各个进化染色体的至少两个指标信息。
105.在本技术实施例中,可以通过随机采样、逐目标循环遍历等方式来进行进化方向的选择。也就是,对于每轮进化过程中的目标进化方向,可以随机选择一个指标作为当前目标进化方向,或者,依次选择目标进化方向。对目标种群中的进化染色体进行指标预测、排序和选择,以构建下一父代种群的步骤,与上述图4中s1021-s1023原理相似,其实现方法和达到的技术效果,可参考上述对初始种群中的初始染色体进行指标预测、排序和选择,以构建父代种群的描述过程。
106.在本技术实施例中,每个进化染色体对应一个子网络,可以通过硬件测试对子网络的硬件需求进行测试,将子网络在硬件设备上工作,测试其硬件需求(例如,延迟、功耗、计算量、存储空间等)。通过测试样本集对子网络的模型性能进行测试,将测试样本集输入
到子网络中,通过对测试样本集的标签值与子网络输出的预测结果进行对比,确定测试准确度。也可以将各个子网络输入到目标预测器中进行预测,输出子网络的硬件需求参数和模型性能参数。
107.在本技术实施例中,当下一目标进化方向为任意一个指标时,按照进化染色体在该指标下的指标信息,对目标种群中的进化染色体按照大到小(或从小到大、或从高到低、或从低到高、或从优到劣、或从劣到优)进行排序,确定排序结果。当下一目标进化方向为至少两个具有相关性或冲突性的指标时,计算各个进化染色体在至少两个具有相关性或冲突性的指标下的相关值或冲突值,按照相关值或冲突值的大小,对目标种群中的进化染色体进行排序,确定排序结果。选择排序结果中较优的k(对应于第一预设数量)个染色体,构建下一父代种群。下一父代种群中是局部指标最优的染色体,下一父代种群中的染色体的个数小于目标种群中染色体的个数。
108.在一些实施例中,下一父代种群包括第一预设数量的下一染色体;上述图3中s103中确定下一目标种群的步骤还可以通过以下方式实现。基于第一预设数量的下一染色体,按照下一变异比例系数进行变异,确定第三数量的变异染色体;第三数量为下一变异比例系数与第二预设数量之积;基于第一预设数量的下一染色体,按照下一交叉比例系数进行交叉,确定第四数量的交叉染色体;下一交叉比例系数为1与下一变异比例系数之差;根据第三数量的变异染色体和第四数量的交叉染色体,确定下一目标种群;下一目标种群包括第二预设数量的下一进化染色体。
109.在本技术实施例中,对下一父代种群中的下一染色体进行交叉和变异,生成下一目标种群的步骤,与上述图5中s1024-s1026原理相似,其实现方法和达到的技术效果,可参考上述对父代种群中的染色体进行交叉和变异,生成目标种群的描述过程。在第一预设数量的下一染色体中随机采样一个染色体,对其进行一次变异,得到一个变异染色体,依次循环,随机采样p次(第三数量是p),得到第三数量的变异染色体。第三数量可以与上述第一数量一致,也可以不一致,当交叉比例系数相同时,第三数量与第一数量相同。
110.示例性的,以第一预设数量是k、第二预设数量是n、下一变异比例系数是p/n、下一交叉比例系数是(n-p)/n为例,第三数量为p/n
×
n=p,第四数量为(n-p)/n
×
n=n-p,在本轮进化过程中,按照本轮比例系数对k个染色体进行随机采样,每采样一个染色体,执行一次变异,依次循环,直至执行p次变异,得到p个变异染色体(对应于第三数量的变异染色体)。对k个染色体进行随机采样,每采样一个染色体,执行一次交叉,依次循环,直至执行(n-p)/次交叉,得到(n-p)个交叉染色体(对应于第四数量的交叉染色体)。
111.在本技术实施例中,将第三数量的变异染色体加入下一目标种群,将第四数量的交叉染色体加入下一目标种群,在变异和交叉过程之后,生成下一目标种群,下一目标种群中依旧包括第二预设数量的进化染色体,保证种群中染色体的数量一致(例如,n个),实现多目标进化。其中,下一目标种群也可以称为下一精英种群,下一进化染色体也可以称为下一精英染色体。
112.在一些实施例中,该搜索方法还包括超网络的训练过程,基于架构搜索空间的预设参数,生成初始超网络;初始超网络包括至少两个初始子网络;对至少两个初始子网络进行训练,确定超网络。
113.在本技术实施例中,本领域技术人员还需要定义超网络的架构搜索空间,也就是
设置超网络的架构搜索空间的预设参数,依此根据预设参数生成初始超网络。定义的架构搜索空间包括但不限于:分辨率搜索空间、每层的卷积核搜索空间、宽度(卷积核通道数)搜索空间、深度(层堆叠次数)搜索空间。根据预设参数,生成不同层级(也可以理解为层堆叠次数)、不同卷积核、不同通道数、不同图像分辨率的多个子网络,从而得到初始超网络。初始超网络包括至少两个初始子网络;并对这些初始子网络进行训练,得到训练完成的子网络。
114.在本技术实施例中,超网络训练:可采用三明治法则、渐进式收缩对超网络进行训练。其中,三明治法则的训练方法如下:在每个训练阶段,采样1个最大的子网络,1个最小的子网络再随机采样,在每次训练迭代中,分别对通道(channel)宽度最大的最大子网络、channel宽度最小的最小子网络和两个随机子网络进行采样,累积梯度。渐进式收缩的训练方法如下:先训练最大的卷积核尺寸(kernel size)、深度(depth)、宽度(width)的网络,微调网络来支持子网,即,将小型的子网加入采样空间中,采用知识蒸馏的方法,让最大的超网来指导子网的学习。本技术实施例对于超网络训练的方法不做具体限制。
115.在一些实施例中,该搜索方法还包括搜索到的目标子网络的应用过程,利用目标子网络,对待处理数据进行以下任意一项处理:生成、分类、聚类、预测和识别,得到数据处理结果。
116.在本技术实施例中,超网络是根据用户的实际需求进行生成和训练的,因此,在利用本方案提供的基于贪心策略的硬件感知多目标神经网络架构搜索方法,搜索到目标子网络之后,在应用阶段,还可以利用目标子网络对待处理数据进行数据处理,数据处理包括但不限于:生成、分类、聚类、预测和识别。例如,若用户在构建超网络时的需求是数据分类,则可以利用目标子网络对待处理数据进行分类,得到分类结果。由于目标子网络不仅满足硬件需求,而且模型性能更优,因此,在利用目标子网络进行数据处理时,提高了数据处理效率,并提高了数据处理结果的准确性。
117.下面,将说明本技术实施例在一个实际的应用场景中的示例性应用。
118.在本技术实施例中,如图8所示,图8为本技术实施例提供的一种基于贪心策略的多目标进化算法的可选的步骤流程图,包括s301-s309。
119.s301、生成初始种群。
120.在本技术实施例中,随机在架构搜索空间中采样,不断生成若干条染色体(即子网络的架构配置)并计算其各个目标下的目标值,将满足固定约束的染色体加入到初始种群中,直至满足初始种群大小。若某个目标下有固定约束,则选择满足约束的染色体。
121.s302、将种群所包括的子网络输入到目标指标预测器中得到各项目标指标。
122.s303、判断循环次数是否达到迭代次数e。
123.若是,则执行s309,若否,则执行s304。
124.s304、在基于贪心策略的进化方向上选择得到当前优化目标t。
125.在本技术实施例中,当前目标进化方向是t指标,基于贪心策略的进化方向选择:对进化方向进行采样,针对不同的染色体,利用本方案提出的基于贪心策略的进化方向选择,将选择的进化方向,即选择的目标值,作为该染色体的适应度分数。将适应度得分最高的染色体保存并添加到精英种群(对应于目标种群)中。
126.基于贪心策略的进化方向选择如下:基于贪心策略的多目标进化算法中,需要在
每一轮中进行进化方向选择。贪心策略是指在每一轮迭代中,选取单一目标作为本轮的优化方向,通过不断寻找单一目标下的局部最优来实现多目标的优化效果。假设对于硬件感知架构搜索中存在多个目标f1、f2、f3……
,x代表种群中的任意模型,fi(x)代表x在目标i上的值。在每一轮迭代中,选取单一目标作为本轮的优化方向,例如,f
t
为第t轮时的进化方向,通过所有候选模型在f
t
的值作为排序的适应度。可以通过随机采样、逐目标循环遍历等方式来进行进化方向的选择。
127.s305、建立新种群。
128.建立的新种群是空集,用于存储交叉后的染色体和变异后的染色体。
129.s306、根据t指标对种群进行排序,并取前k个作为父代种群。
130.父代种群也可以称为父代集合。
131.s307、在父代种群中随机采样并执行m次变异,并添加到新种群中。
132.s308、在父代种群中随机采样,进行n-m次交叉,并添加到新种群中。
133.在本技术实施例中,执行s308之后,执行s302,循环执行s302-s308,直至循环次数达到迭代次数e,执行s309。
134.根据本方案提出的交叉-变异比例自适应调整策略(对应于图6和图7),选择精英进行变异和交叉以获得新的种群。选择-变异-交叉的过程重复进行,直到设置的迭代轮次。若某个目标下有固定约束,则变异过程和交叉过程皆选择满足约束的染色体。
135.s309、返回种群中最佳候选网络。
136.在本技术实施例中,返回最优的染色体(最佳候选模型架构)以及其对应的权重参数。
137.综上,本方案的技术方案如下:基于贪心策略的进化方向选择,结合交叉-变异比例自适应调整策略,从而得到基于贪心策略的多目标进化算法,然后得到基于贪心策略的硬件感知多目标神经网络架构搜索方法。
138.本方案提出了一种基于贪心策略的硬件感知多目标神经网络架构搜索方法,能够在搜索更优性能模型的同时,考虑更多硬件目标约束进行优化。本方案对ofa中的进化算法做出改进,提出了基于贪心策略的多目标架构搜索方法,在满足搜索效率的同时,实现模型精确度、延时、功耗等多目标的协同优化,从而在实际场景中达到最佳的用户体验。
139.在本技术实施例中,若搜索到存在基于贪心策略的硬件感知多目标神经网络架构搜索方法,需要用户设置目标值优劣的判断逻辑;或者,产品的使用手册和/或产品说明(product document,pr)中说明“贪心策略架构搜索”、“贪婪多对象nas(greedy multi-object nas)”、“爬山法多目标架构搜索”等信息,则说明此方案应用了本技术实施例提供的搜索方法。
140.为实现本技术实施例的搜索方法,本技术实施例还提供一种搜索装置,如图9所示,图9为本技术实施例提供的一种搜索装置的可选的结构示意图,该搜索装置90包括:种群确定模块901,用于在架构搜索空间对应的超网络中,选择满足固定约束的染色体,确定初始种群;所述超网络包括至少两个子网络,每个染色体对应一个子网络;基于所述初始种群和初始目标进化方向,确定父代种群;进化模块902,用于对所述父代种群所包括的染色体进行变异和交叉,以确定目标种群;所述种群确定模块901,还用于继续基于所述目标种群和下一目标进化方向,确定下一父代种群;所述进化模块902,还用于对所述下一父代种
群所包括的下一染色体进行变异和交叉,以确定下一目标种群,直至达到迭代次数,实现多目标进化,得到最后一个目标种群;目标子网络确定模块903,用于从所述最后一个目标种群中确定目标染色体,以实现多目标的架构搜索,得到所述目标染色体对应的目标子网络。
141.在一些实施例中,种群确定模块901,还用于对所述初始种群中各个初始染色体的各个指标进行预测,得到所述各个初始染色体的至少两个指标信息;指标包括子网络的模型性能和硬件需求;根据所述各个初始染色体的至少两个指标信息中与所述初始目标进化方向对应的指标信息,对所述初始种群所包括的初始染色体进行排序,确定排序结果;所述初始目标进化方向为任意一个指标,或者,为至少两个具有相关性或冲突性的指标;根据所述排序结果,按照预设顺序选择第一预设数量的染色体,构建所述父代种群。
142.在一些实施例中,所述父代种群包括第一预设数量的染色体;
143.进化模块902,还用于基于所述第一预设数量的染色体,按照初始变异比例系数进行变异,确定第一数量的变异染色体;所述第一数量为所述初始变异比例系数与第二预设数量之积;基于所述第一预设数量的染色体,按照初始交叉比例系数进行交叉,确定第二数量的交叉染色体;所述初始交叉比例系数为1与所述初始变异比例系数之差;根据所述第一数量的变异染色体和所述第二数量的交叉染色体,确定所述目标种群;所述目标种群包括所述第二预设数量的进化染色体。
144.在一些实施例中,搜索装置90还包括调整模块904;
145.调整模块904,用于根据当前父代种群中各个当前染色体在当前目标进化方向上的指标信息,确定均值和方差;在所述均值小于预设均值、且所述方差小于预设方差的情况下,将初始变异比例系数调整为第一系数;所述第一系数大于所述初始变异比例系数;在所述均值大于所述预设均值、且所述方差小于所述预设方差的情况下,将初始交叉比例系数调整为第二系数;所述第二系数大于所述初始交叉比例系数;在所述均值小于所述预设均值、且所述方差大于所述预设方差的情况下,保留所述初始交叉比例系数和所述初始变异比例系数;在所述均值大于所述预设均值、且所述方差大于所述预设方差的情况下,保留所述初始交叉比例系数和所述初始变异比例系数。
146.在一些实施例中,调整模块904,还用于根据上一父代种群中各个上一染色体在所述当前目标进化方向上的指标信息,确定所述预设均值和所述预设方差。
147.在一些实施例中,调整模块904,还用于根据所述超网络中最大网络或最小网络在所述当前目标进化方向上的指标信息,确定所述预设均值。
148.在一些实施例中,种群确定模块901,还用于继续对所述目标种群中各个进化染色体的各个指标进行预测,得到所述各个进化染色体的至少两个指标信息;根据所述各个进化染色体的至少两个指标信息中与下一目标进化方向对应的指标信息,对所述目标种群所包括的进化染色体进行排序,确定下一排序结果;所述下一目标进化方向为任意一个指标,或者,为至少两个具有相关性或冲突性的指标;根据所述下一排序结果,按照预设顺序选择第一预设数量的下一染色体,构建所述下一父代种群。
149.在一些实施例中,所述下一父代种群包括第一预设数量的下一染色体;
150.进化模块902,还用于基于所述第一预设数量的下一染色体,按照下一变异比例系数进行变异,确定第三数量的变异染色体;所述第三数量为所述下一变异比例系数与第二预设数量之积;基于所述第一预设数量的下一染色体,按照下一交叉比例系数进行交叉,确
定第四数量的交叉染色体;所述下一交叉比例系数为1与所述下一变异比例系数之差;根据所述第三数量的变异染色体和所述第四数量的交叉染色体,确定所述下一目标种群;所述下一目标种群包括所述第二预设数量的下一进化染色体。
151.在一些实施例中,种群确定模块901,还用于基于指标预测模型,对所述初始种群中各个初始染色体的各个指标进行预测,得到所述各个初始染色体的至少两个指标信息;其中,所述指标预测模型用于对子网络的模型架构的各个指标进行预测,所述指标预测模型包括性能指标预测模型和硬件指标预测模型。
152.在一些实施例中,搜索装置90还包括训练模块905;
153.训练模块905,用于基于所述架构搜索空间的预设参数,生成初始超网络;所述初始超网络包括至少两个初始子网络;对所述至少两个初始子网络进行训练,确定所述超网络。
154.在一些实施例中,目标子网络确定模块903,还用于对所述最后一个目标种群中各个候选染色体的模型性能进行预测,得到所述各个候选染色体的模型性能;根据所述各个候选染色体的模型性能,确定所述目标染色体。
155.在一些实施例中,搜索装置90还包括处理模块906;
156.处理模块906,用于利用目标子网络,对待处理数据进行以下任意一项处理:生成、分类、聚类、预测和识别,得到数据处理结果。
157.需要说明的是,上述实施例提供的搜索装置在进行搜索时,仅以上述各程序模块的划分进行举例说明,实际应用中,可以根据需要而将上述处理分配由不同的程序模块完成,即将装置的内部结构划分成不同的程序模块,以完成以上描述的全部或者部分处理。另外,上述实施例提供的搜索装置与搜索方法实施例属于同一构思,其具体实现过程及有益效果详见方法实施例,这里不再赘述。对于本装置实施例中未披露的技术细节,请参照本技术方法实施例的描述而理解。
158.在本技术实施例中,图10为本技术实施例提出的搜索设备组成结构示意图,如图10所示,本技术实施例提出的搜索设备100包括处理器1001、存储可执行计算机程序的存储器1002,处理器1001,用于执行存储器1002中存储的可执行计算机程序时,实现本技术实施例提供的搜索方法。
159.在一些实施例中,搜索设备100还可以包括通信接口1003,以及用于连接处理器1001、存储器1002和通信接口1003的总线1004。
160.在本技术实施例中,上述处理器1001可以为特定用途集成电路(application specific integrated circuit,asic)、数字信号处理器(digital signal processor,dsp)、数字信号处理装置(digital signal processing device,dspd)、可编程逻辑装置(programmable logic device,pld)、现场可编程门阵列(field programmable gate array,fpga)、中央处理器(central processing unit,cpu)、控制器、微控制器、微处理器中的至少一种。可以理解地,对于不同的设备,用于实现上述处理器功能的电子器件还可以为其它,本技术实施例不作具体限定。
161.在本技术实施例中,总线1004用于连接通信接口1003、处理器1001以及存储器1002,实现这些器件之间的相互通信。
162.存储器1002用于存储可执行计算机程序和数据,该可执行计算机程序包括计算机
操作指令,存储器1002可能包含高速ram存储器,也可能还包括非易失性存储器,例如,至少两个磁盘存储器。在实际应用中,上述存储器1002可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,ram);或者非易失性存储器(non-volatile memory),例如只读存储器(read-only memory,rom),快闪存储器(flash memory),硬盘(hard disk drive,hdd)或固态硬盘(solid-state drive,ssd);或者上述种类的存储器的组合,并向处理器1001提供可执行计算机程序和数据。
163.另外,在本实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
164.集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中,基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或processor(处理器)执行本实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
165.本技术实施例提供一种计算机可读存储介质,存储有计算机程序,用于被处理器执行时实现如上任一实施例所述的搜索方法。
166.示例性的,本实施例中的一种搜索方法对应的程序指令可以被存储在光盘,硬盘,u盘等存储介质上,当存储介质中的与一种搜索方法对应的程序指令被一电子设备读取或被执行时,可以实现如上述任一实施例所述的搜索方法。
167.本领域内的技术人员应明白,本技术实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
168.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的实现流程示意图和/或方框图来描述的。应理解可由计算机程序指令实现流程示意图和/或方框图中的每一流程和/或方框、以及实现流程示意图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在实现流程示意图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
169.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在实现流程示意图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
170.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或
其他可编程设备上执行的指令提供用于实现在实现流程示意图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
171.以上所述,仅为本技术的较佳实施例而已,并非用于限定本技术的保护范围。

技术特征:
1.一种搜索方法,其特征在于,所述方法包括:在架构搜索空间对应的超网络中,选择满足固定约束的染色体,确定初始种群;所述超网络包括至少两个子网络,每个染色体对应一个子网络;基于所述初始种群和初始目标进化方向,确定父代种群,并对所述父代种群所包括的染色体进行变异和交叉,以确定目标种群;继续基于所述目标种群和下一目标进化方向,确定下一父代种群,并对所述下一父代种群所包括的下一染色体进行变异和交叉,以确定下一目标种群,直至达到迭代次数,实现多目标进化,得到最后一个目标种群;从所述最后一个目标种群中确定目标染色体,以实现多目标的架构搜索,得到所述目标染色体对应的目标子网络。2.根据权利要求1所述的方法,其特征在于,所述基于所述初始种群和初始目标进化方向,确定父代种群,包括:对所述初始种群中各个初始染色体的各个指标进行预测,得到所述各个初始染色体的至少两个指标信息;指标包括子网络的模型性能和硬件需求;根据所述各个初始染色体的至少两个指标信息中与所述初始目标进化方向对应的指标信息,对所述初始种群所包括的初始染色体进行排序,确定排序结果;所述初始目标进化方向为任意一个指标,或者,为至少两个具有相关性或冲突性的指标;根据所述排序结果,按照预设顺序选择第一预设数量的染色体,构建所述父代种群。3.根据权利要求1所述的方法,其特征在于,所述父代种群包括第一预设数量的染色体;所述对所述父代种群所包括的染色体进行变异和交叉,以确定目标种群,包括:基于所述第一预设数量的染色体,按照初始变异比例系数进行变异,确定第一数量的变异染色体;所述第一数量为所述初始变异比例系数与第二预设数量之积;基于所述第一预设数量的染色体,按照初始交叉比例系数进行交叉,确定第二数量的交叉染色体;所述初始交叉比例系数为1与所述初始变异比例系数之差;根据所述第一数量的变异染色体和所述第二数量的交叉染色体,确定所述目标种群;所述目标种群包括所述第二预设数量的进化染色体。4.根据权利要求1-3任一项所述的方法,其特征在于,所述方法还包括:根据当前父代种群中各个当前染色体在当前目标进化方向上的指标信息,确定均值和方差;在所述均值小于预设均值、且所述方差小于预设方差的情况下,将初始变异比例系数调整为第一系数;所述第一系数大于所述初始变异比例系数;在所述均值大于所述预设均值、且所述方差小于所述预设方差的情况下,将初始交叉比例系数调整为第二系数;所述第二系数大于所述初始交叉比例系数;在所述均值小于所述预设均值、且所述方差大于所述预设方差的情况下,保留所述初始交叉比例系数和所述初始变异比例系数;在所述均值大于所述预设均值、且所述方差大于所述预设方差的情况下,保留所述初始交叉比例系数和所述初始变异比例系数。5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
根据上一父代种群中各个上一染色体在所述当前目标进化方向上的指标信息,确定所述预设均值和所述预设方差。6.根据权利要求4所述的方法,其特征在于,所述方法还包括:根据所述超网络中最大网络或最小网络在所述当前目标进化方向上的指标信息,确定所述预设均值。7.根据权利要求1-3任一项所述的方法,其特征在于,所述继续基于所述目标种群和下一目标进化方向,确定下一父代种群,包括:继续对所述目标种群中各个进化染色体的各个指标进行预测,得到所述各个进化染色体的至少两个指标信息;根据所述各个进化染色体的至少两个指标信息中与下一目标进化方向对应的指标信息,对所述目标种群所包括的进化染色体进行排序,确定下一排序结果;所述下一目标进化方向为任意一个指标,或者,为至少两个具有相关性或冲突性的指标;根据所述下一排序结果,按照预设顺序选择第一预设数量的下一染色体,构建所述下一父代种群。8.根据权利要求1-3任一项所述的方法,其特征在于,所述下一父代种群包括第一预设数量的下一染色体;所述对所述下一父代种群所包括的下一染色体进行变异和交叉,以确定下一目标种群,包括:基于所述第一预设数量的下一染色体,按照下一变异比例系数进行变异,确定第三数量的变异染色体;所述第三数量为所述下一变异比例系数与第二预设数量之积;基于所述第一预设数量的下一染色体,按照下一交叉比例系数进行交叉,确定第四数量的交叉染色体;所述下一交叉比例系数为1与所述下一变异比例系数之差;根据所述第三数量的变异染色体和所述第四数量的交叉染色体,确定所述下一目标种群;所述下一目标种群包括所述第二预设数量的下一进化染色体。9.根据权利要求2所述的方法,其特征在于,所述对所述初始种群中各个初始染色体的各个指标进行预测,得到所述各个初始染色体的至少两个指标信息,包括:基于指标预测模型,对所述初始种群中各个初始染色体的各个指标进行预测,得到所述各个初始染色体的至少两个指标信息;其中,所述指标预测模型用于对子网络的模型架构的各个指标进行预测,所述指标预测模型包括性能指标预测模型和硬件指标预测模型。10.根据权利要求1-3任一项所述的方法,其特征在于,所述方法还包括:基于所述架构搜索空间的预设参数,生成初始超网络;所述初始超网络包括至少两个初始子网络;对所述至少两个初始子网络进行训练,确定所述超网络。11.根据权利要求1-3任一项所述的方法,其特征在于,所述从所述最后一个目标种群中确定目标染色体,包括:对所述最后一个目标种群中各个候选染色体的模型性能进行预测,得到所述各个候选染色体的模型性能;根据所述各个候选染色体的模型性能,确定所述目标染色体。12.根据权利要求1-3任一项所述的方法,其特征在于,所述方法还包括:
利用所述目标子网络,对待处理数据进行以下任意一项处理:生成、分类、聚类、预测和识别,得到数据处理结果。13.一种搜索装置,其特征在于,所述装置包括:种群确定模块,用于在架构搜索空间对应的超网络中,选择满足固定约束的染色体,确定初始种群;所述超网络包括至少两个子网络,每个染色体对应一个子网络;基于所述初始种群和初始目标进化方向,确定父代种群;进化模块,用于对所述父代种群所包括的染色体进行变异和交叉,以确定目标种群;所述种群确定模块,还用于继续基于所述目标种群和下一目标进化方向,确定下一父代种群;所述进化模块,还用于对所述下一父代种群所包括的下一染色体进行变异和交叉,以确定下一目标种群,直至达到迭代次数,实现多目标进化,得到最后一个目标种群;目标子网络确定模块,用于从所述最后一个目标种群中确定目标染色体,以实现多目标的架构搜索,得到所述目标染色体对应的目标子网络。14.一种搜索设备,其特征在于,所述设备包括:存储器,用于存储可执行计算机程序;处理器,用于执行所述存储器中存储的可执行计算机程序时,实现权利要求1-12任一项所述的方法。15.一种计算机可读存储介质,其特征在于,存储有计算机程序,用于被处理器执行时,实现权利要求1-12任一项所述的方法。

技术总结
本申请实施例公开了一种搜索方法、装置、设备和计算机可读存储介质。该方法包括:在架构搜索空间对应的超网络中,选择满足固定约束的染色体,确定初始种群;超网络包括至少两个子网络,每个染色体对应一个子网络;基于初始种群和初始目标进化方向,确定父代种群,并对父代种群所包括的染色体进行变异和交叉,以确定目标种群;继续基于目标种群和下一目标进化方向,确定下一父代种群,并对下一父代种群所包括的下一染色体进行变异和交叉,以确定下一目标种群,直至达到迭代次数,实现多目标进化,得到最后一个目标种群;从最后一个目标种群中确定目标染色体,以实现多目标的架构搜索,得到目标染色体对应的目标子网络。到目标染色体对应的目标子网络。到目标染色体对应的目标子网络。


技术研发人员:冯乾泰 赵娟萍
受保护的技术使用者:哲库科技(上海)有限公司
技术研发日:2023.03.01
技术公布日:2023/8/24
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐