
[0001]
本申请涉及机器学习领域,尤其涉及一种模型的获取方法及设备。
背景技术:[0002]
人工智能(artificial intelligence,ai)是利用计算机或者计算机控制的机器模拟、延伸和扩展人的智能。人工智能包括研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
[0003]
迁移学习是一种机器学习的方法,是指把为任务a(可称为第一数据集)开发得到的模型作为初始点,重新使用在为新的任务b(可称为第二数据集)开发模型的过程中,即将一个基于任务a得到的预训练过的模型重新用在另一任务b中。然而,对于一个新的任务来说,存在海量的基于某些已有任务训练得到的模型(即预训练过的模型),如何从海量的模型中高效地选择到一个适合该新任务的模型以及一组合适的超参数是一个亟待解决的问题。目前,针对一个新任务,利用在已有的相关任务(如,imagenet数据集分类任务)基础上训练好的模型进行迁移学习(如,fine-tune)是一种高效的技术,在计算机视觉领域被广泛使用。
[0004]
现有的一种解决方式是根据经验人工选择一个在开放数据集(如imagenet等原数据集)上预训练过的模型,并根据经验选择一组超参数(或手工微调超参数)进行迁移学习到新任务中,基于选出的这组超参数,根据该新任务对选出的这个模型进行再次训练,以期将该模型训练到目标精度,但是在原数据集上输出精度高的模型,在迁移学习任务(即第二数据集)上不一样好,如果训练结果没有达到目标精度,可能需要重新选择模型或重新选择超参数再次进行训练。如图1所示,整个流程可能涉及到多次模型选择和多次超参数选择(甚至可能需要人工设计新模型),而每次训练都需要花费大量的时间和算力成本。
技术实现要素:[0005]
本申请实施例提供了一种模型的获取方法及设备,该方法综合考虑了模型的选择和超参数的选择,用于通过构建的第一预测器快速预测基于约束条件构建的模型集中每个模型在不同超参数情况下针对新任务的性能表现,并从中选择满足预设条件(如,模型的输出精度取值最大)的模型和超参数作为最终处理新任务(即第二数据集)的目标模型和目标超参数。针对新任务,该方法基于用户给定的约束条件,可高效选择出合适的模型和超参数,从而节约了训练时间和算力成本。
[0006]
基于此,本申请实施例提供以下技术方案:
[0007]
第一方面,本申请实施例首先提供一种模型的获取方法,可用于人工智能领域中,该方法包括:首先,基于约束条件构建模型集(也可称为模型集合,以下统称为模型集),该模型集中包括至少两个已经在第一数据集上预训练过的模型,在基于约束条件构建好模型集之后,那么该模型集就包括至少两个在第一数据集上预训练过的模型,之后,在超参数空间进行随机采样,得到一组超参数,这组随机采样得到的超参数可称为第一超参数,之后通
过构建的第一预测器预测模型集中的任意一个模型对第二数据集的第一输出精度,其中,每个模型对应一个第一输出精度,例如,可以是预测模型集中的一个模型的输出精度,也可以是预测模型集中的多个模型各自对应的输出精度,还可以是预测模型集中的每个模型的输出精度,此处不做限定,且每个模型都对应会有一个超参数(即第一超参数),也就是说,在模型的超参数设置为该第一超参数的情况下,通过构建的另一预测器(可称为第一预测器)预测该模型集里的任意一个模型对第二数据集的输出精度(可称为第一输出精度),其中,该第二数据集即为新任务的数据集。当得到的所有第一输出精度中,存在一个满足预设条件(可称为第一预设条件)的输出精度,则该满足第一预设条件的输出精度就称为目标输出精度,与该目标输出精度对应的模型和超参数则称为目标模型及目标超参数,之后,就将该目标模型和该目标超参数作为最终处理该第二数据集的模型和超参数,也就是说,选择该目标模型和该目标超参数在新的第二数据集上进行迁移学习。通过上述步骤从模型集和超参数空间确定出目标模型和目标超参数后,就可基于该目标超参数,根据该第二数据集对该目标模型进行训练,从而得到训练后的目标模型。
[0008]
在本申请上述实施方式中,综合考虑了模型的选择和超参数的选择,用于通过构建的第一预测器快速预测基于约束条件构建的模型集中每个模型在不同超参数情况下针对新任务的性能表现,并从中选择满足预设条件(如,模型的输出精度取值最大)的模型和超参数作为最终处理新任务(即第二数据集)的目标模型和目标超参数。针对新任务,该方法基于用户给定的约束条件,可高效选择出合适的模型和超参数,从而节约了训练时间和算力成本。也就是说,本申请实施例所达到的技术效果是:在实际业务交付过程中,在有限的时间内对一个新任务(即第二数据集),找到合适的模型,并将其训练到达到交付要求的精度,也就是针对新任务要选择出一个最好的模型和一组最好的超参。
[0009]
在第一方面的一种可能的实现方式中,构建的第一预测器的输入数据是从超参数空间采样得到的一组超参数(即第一超参数)、该模型集中的任意一个模型和第二数据集,输出是该任意一个模型在该第一超参数情况下对第二数据集的输出精度的预测。具体地,对该第一超参数、该模型以及该第二数据集分别进行编码,从而分别得到该超参数编码、该模型编码以及第二数据集编码,之后,将该超参数编码、该模型编码及第二数据集编码输入第一预测器,输出该模型在第一超参数情况下对第二数据集的第一输出精度的预测结果。
[0010]
在本申请上述实施方式中,具体阐述了构建的第一检测器的输入数据和输出数据分别是什么,具备可实现性。
[0011]
在第一方面的一种可能的实现方式中,由于构建的第一预测器是未经过训练的,因此,在本申请实施例中,可通过已有的任务对该第一预测器进行初始化,当该第二数据集作为新任务完成预测后,也可将该新任务作为下一个已有的任务对该第一预测器的参数进行更新,从而提高第一预测器的检测精度。具体来说,可以根据第二输出精度、第二数据集、目标超参数及目标模型更新该第一预测器的参数,其中,该第二输出精度为该训练后的目标模型对第二数据集的输出精度。
[0012]
在本申请上述实施方式中,对于已处理完的第二数据集,可根据第二输出精度、第二数据集等更新该第一预测器,从而可提升该第一预测器的预测精度,第一输出精度是预测器粗略预测的,第二输出精度就是真实训练得到的,通过真实训练的输出精度去更新第一预测器的参数,那么第一预测器的检测精度相应就会提高。
[0013]
在第一方面的一种可能的实现方式中,目标输出精度满足第一预设条件包括:所述目标输出精度在所述第一输出精度中取值最大,这里还需要注意的是,评价一个模型的性能,除了可以是通过输出精度,还可以是其他的,比如,错误率越小,则性能越好;准确率越大,则性能越好等,在本申请实施例中,仅是以输出精度为例进行说明。
[0014]
在本申请上述实施方式中,从模型中确定出目标模型的方式可以是:在所有第一输出精度中选择取值最大的那个第一输出精度对应的模型作为本申请实施例所述的目标模型,一般来说,输出精度越大,说明该模型在对应超参数情况下的检测性能越好,据此可选择出配置最优的模型和超参数。
[0015]
在第一方面的一种可能的实现方式中,基于约束条件构建模型集可以有不同的实现方式,可以是基于约束条件先构建初始模型集,该初始模型集就包括至少两个训练后的初始模型,其中,每个初始模型是根据已有的开放的第一数据集训练得到的。基于约束条件构建好初始模型集之后,就可以根据演化算法(evolutionary algorithm,ea)得到每个初始模型各自对应的一组衍生模型,其中,每组衍生模型包括至少一个衍生模型,需要注意的是,每个初始模型衍生的一组衍生模型中具体包括几个衍生模型可根据演化算法自行设置,具体此处不做限定。得到初始模型的衍生模型之后,由于通过演化算法衍生出来的各个衍生模型是没有经过训练的模型,因此,本申请还需要构建一个预测器(可称为第二预测器),该第二预测器的作用是预测各个衍生模型对第一数据集的输出精度(可称为第三输出精度),该第三输出精度是一种粗略的预测结果,并不是衍生模型针对第一数据集真正的输出精度。这里还需要注意的是,构建的第二预测器也是未经过训练的,在本申请实施例中,该第二预测器的输入为初始模型集中各个训练过的初始模型,根据各个训练过的初始模型,可以得到训练后的第二预测器。之后,经过训练的第二预测器就可用于对每个衍生模型进行处理,预测每个衍生模型对第一数据集的第三输出精度。随后根据得到的各个衍生模型对应的第三输出精度从所有衍生模型中选取目标衍生模型(可以是一个或多个),并根据第一数据集对选出的目标衍生模型进行训练,从而得到训练后的目标衍生模型,那么上述训练后的初始模型和该训练后的衍生模型就构成本申请实施例所述的模型集。
[0016]
在本申请上述实施方式中,具体阐述了如何基于约束条件构建模型集,即先基于约束条件构建初始模型集,再以初始模型集中的初始模型作为种子,通过演化算法衍生出一系列衍生模型,并从中选择出目标衍生模型进行训练,从而训练后的目标衍生模型和开始得到的训练后的初始模型共同构成本申请实施例所述的模型集,这种构建方式可累积到满足约束条件的各种模型,并且第二预测器可快速筛选出合适的模型,节省了搜索时间。
[0017]
在第一方面的一种可能的实现方式中,基于约束条件构建初始模型集的方式具体可以是:首先,根据约束条件确定一个搜索空间,该搜索空间就包括多种网络结构单元(block)及所述多种网络结构单元之间的连接关系,其中,每个block内部包含一个或多个节点以及各个节点上的操作(operation,op),该操作指的是神经网络的一些基本操作单元,例如,卷积、池化等操作,这里的节点可以理解为神经网络模型的层,如,输入层、输出层、卷积层、池化层、全连接层等,各个block连接后形成的组合结构就为本申请实施例所述的初始模型。根据所述方式确定好符合约束条件的搜索空间后,就可从搜索空间随机采样,得到至少两个初始模型,每个初始模型是由多个block结构和各block结构之间的连接关系确定的,得到至少两个初始模型后,就可根据第一数据集对初始模型进行预先训练,从而得
到训练后的初始模型,各个训练后的初始模型就构成最开始的初始模型集。
[0018]
在本申请上述实施方式中,阐述了如何根据约束条件构建初始模型集,即先根据约束条件确定搜索空间,然后从搜索空间采样组合得到初始模型。这种构建方式一方面除了可以遍历到所有可能的架构之外,还可以组合得到目前没有或大家想不到的模型的架构组织方式,具备完备性。
[0019]
在第一方面的一种可能的实现方式中,由于构建的初始模型集中包括至少两个初始模型,因此根据第一数据集对初始模型进行训练,得到训练后的初始模型具体可以是:首先,将初始模型集中的所有初始模型融合成一个超网模型(可称为第一模型),之后根据第一数据集对该第一模型进行训练,从而得到训练后的第一模型,最后,将训练后的第一模型又重新拆解为训练后的初始模型。
[0020]
在本申请上述实施方式中,阐述了如何对多个初始模型进行联合训练,即将采样得到的至少两个初始模型融合成一个超网(即第一模型),这样可以采用参数共享的方式进行训练,训练完后再拆解开,从而通过对一个模型的训练就可得到所有初始模型的检测精度,加快了对所有初始模型训练进度,相比一个一个单独训练各个初始模型节约了训练时间。
[0021]
在第一方面的一种可能的实现方式中,如果得到的目标衍生模型有多个,那么根据第一数据集对目标衍生模型进行训练,得到训练后的目标衍生模型具体可以是:首先,将这多个目标衍生模型融合成一个超网模型(可称为第二模型),之后根据第一数据集对该第二模型进行训练,从而得到训练后的第二模型,最后,将训练后的第二模型又重新拆解为训练后的多个目标衍生模型。
[0022]
在本申请上述实施方式中,当目标衍生模型有多个时,阐述了如何对多个目标衍生模型进行联合训练,即将采样得到的多个目标衍生模型融合成一个超网(即第二模型),这样依然可以采用参数共享的方式进行训练,训练完后再拆解开,从而通过对一个模型的训练就可得到所有目标衍生模型的检测精度,加快了对所有目标衍生模型训练进度,相比一个一个单独训练各个目标衍生模型节约了训练时间。
[0023]
在第一方面的一种可能的实现方式中,第二预测器可以是“gcn+贝叶斯回归器”,具体地,根据训练后的初始模型对构建的第二预测器进行训练的过程可以是:首先,对训练后的初始模型的图结构(也可称为拓扑图)进行编码,得到每个训练后的初始模型的图编码,然后将每个图编码作为gcn的输入,之后gcn的输出作为贝叶斯回归器的输入,该贝叶斯回归器的作用主要是用来评估模型性能的均值和方差,具体为通过使用置信上界来评估模型的性能。
[0024]
在本申请上述实施方式中,阐述了第二预测器可以是“gcn+贝叶斯回归器”,当第二预测器是“gcn+贝叶斯回归器”,那么需要对训练后的初始模型的图结构进行编码,编码得到的各个初始模型对应的图编码才能作为gcn的输入数据,利用gcn提取每个图编码的特征,从而避免手工设计核函数来评估网络架构之间的距离。之后gcn的输出作为贝叶斯回归器的输入,该贝叶斯回归器的作用主要是用来评估模型性能的均值和方差,具备可实现性。
[0025]
在第一方面的一种可能的实现方式中,如何根据各个衍生模型对应的第三输出精度从所有衍生模型中选取目标衍生模型有多种实现方式,包括但不限于如下几种:从所有衍生模型中选取第三输出精度大于预设值的衍生模型作为该目标衍生模型;或,从所有衍
生模型中选取第三输出精度取值较大的前n个衍生模型作为该目标衍生模型,n≥1;或,根据第三输出精度的均值和方差得到每个衍生模型对应的置信上界(ucb),并从所有衍生模型中选取置信上界取值较大的前m个衍生模型作为该目标衍生模型,m≥1。
[0026]
在本申请上述实施方式中,阐述了根据各个衍生模型对应的第三输出精度从所有衍生模型中选取目标衍生模型有多种实现方式,具备可选择性和灵活性。
[0027]
在第一方面的一种可能的实现方式中,还可以将上述构建的模型集作为新的初始模型集、目标衍生模型作为新的初始模型,重新执行上述构建模型集的步骤直至达到一个预设条件(可称为第二预设条件)。
[0028]
在本申请上述实施方式中,阐述可将模型集内的各个模型重新作为新的初始模型继续构建新的衍生模型以及选择新的目标衍生模型,直至达到预设条件,可使得模型集累积到足够满足要求的模型。
[0029]
在第一方面的一种可能的实现方式中,该第二预设条件可根据用户需求自行设置,例如,该第二预设条件可以是模块库内的模型数量达到预设数量,假设预设数量为13,而当前轮次得到的模型集包括14个模型,那么说明达到了第二预设条件,因此该包括14个模型的模型集就为最终构建得到的模型集;又例如,该第二预设条件还可以是模型集内的模型满足的约束条件达到预设要求,例如,假设约束条件一共有3种类型,用户要求每种类型的约束条件都需要达到一定数量,这样做的目的是为了使得模型集累积到满足不同约束条件的模型。
[0030]
在本申请上述实施方式中,阐述了第二预设条件的几种具体表现形式,具备灵活性。
[0031]
在第一方面的一种可能的实现方式中,所述约束条件包括:模型大小、模型推理时延、模型训练时延、硬件部署条件、片上内存大小中的任意一个或多个。举例来说,有些新任务(如,自动驾驶车辆获取的图片、音频等数据集)对模型推理时延要求比较高,因为自动驾驶车辆对实时性要求高;而有些新任务(如,手机等终端设备)对占据片上内存大小有较高要求,这是因为手机等手持终端的存储空间有限。
[0032]
在本申请上述实施方式中,阐述了约束条件可以是哪些类型,这是因为不同的新任务对模型有不同的约束条件,在本申请实施例中,可基于新任务(可以是一个或多个)的不同应用场景得到不同的约束条件,从而基于约束条件构建满足各个新任务的模型集,具备完备性。
[0033]
在第一方面的一种可能的实现方式中,训练后的目标模型还可以部署在执行设备上,以使得执行设备通过该训练后的目标模型对输入的目标数据进行处理。例如,可以部署在手机、个人电脑、智能手表等智能终端上,也可以部署在自动驾驶车辆、网联汽车、智能汽车等可移动终端设备上,具体此处不做限定。
[0034]
在本申请上述实施方式中,阐述了基于第二数据集训练得到的目标模型可以部署在执行设备上进行实际应用。
[0035]
本申请实施例第二方面提供一种计算机设备,该计算机设备具有实现上述第一方面或第一方面任意一种可能实现方式的方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。
[0036]
本申请实施例第三方面提供一种计算机设备,可以包括存储器、处理器以及总线
系统,其中,存储器用于存储程序,处理器用于调用该存储器中存储的程序以执行本申请实施例第一方面或第一方面任意一种可能实现方式的方法。
[0037]
本申请第四方面提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机可以执行上述第一方面或第一方面任意一种可能实现方式的方法。
[0038]
本申请实施例第五方面提供了一种计算机程序,当其在计算机上运行时,使得计算机执行上述第一方面或第一方面任意一种可能实现方式的方法。
[0039]
本申请实施例第六方面提供了一种芯片,该芯片包括至少一个处理器和至少一个接口电路,该接口电路和该处理器耦合,至少一个接口电路用于执行收发功能,并将指令发送给至少一个处理器,至少一个处理器用于运行计算机程序或指令,其具有实现如上述第一方面或第一方面任意一种可能实现方式的方法的功能,该功能可以通过硬件实现,也可以通过软件实现,还可以通过硬件和软件组合实现,该硬件或软件包括一个或多个与上述功能相对应的模块。此外,该接口电路用于与该芯片之外的其它模块进行通信,例如,该接口电路可将芯片上处理器得到的目标模型发送给各种智能行驶(如,无人驾驶、辅助驾驶等)的智能体进行应用。
附图说明
[0040]
图1为一种为新任务选择合适模型和超参数的一个流程示意图;
[0041]
图2为gcn处理图结构数据的一个流程示意图;
[0042]
图3为本申请实施例提供的人工智能主体框架的一种结构示意图;
[0043]
图4为本申请实施例提供的模型的获取方法的一种流程示意图;
[0044]
图5为本申请实施例提供的block结构以及该block结构的内部操作关系的一个示意图;
[0045]
图6为本申请实施例提供的多个相同或不同的block之间的连接关系的一个示意图;
[0046]
图7为本申请实施例提供的基于搜索空间构建初始模型集的一个流程示意图;
[0047]
图8为本申请实施例提供的模型的图结构以及对应的图编码的一个示意图;
[0048]
图9为本申请实施例提供的将多个初始模型融合成第一模型进行训练且训练后重新拆解为多个初始模型的示意图;
[0049]
图10为本申请实施例提供的第一预测器得到各个模型对第二数据集的第一输出精度的预测的示意图;
[0050]
图11为本申请实施例提供的模型的获取方法的一个框架示意图;
[0051]
图12为本申请实施例提供的模型集et-nas与手工设计的模型在训练步长时间上的比较的一个示意图;
[0052]
图13为本申请实施例提供的对d芯片友好的网络模型和常用网络模型的性能比较的一个示意图;
[0053]
图14为本申请实施例提供的对gpu v100友好的网络模型和常用网络模型的性能比较的一个示意图;
[0054]
图15为本申请实施例提供的在神经网络架构搜索基准数据集上采样效率比较的
一个示意图;
[0055]
图16为本申请实施例提供的计算机设备的一种结构示意图;
[0056]
图17为本申请实施例提供的计算机设备的另一结构示意图;
[0057]
图18为本申请实施例提供的芯片的一种结构示意图。
具体实施方式
[0058]
本申请实施例提供了一种模型的获取方法及设备,该方法综合考虑了模型的选择和超参数的选择,用于通过构建的第一预测器快速预测基于约束条件构建的模型集中每个模型在不同超参数情况下针对新任务的性能表现,并从中选择满足预设条件(如,模型的输出精度取值最大)的模型和超参数作为最终处理新任务(即第二数据集)的目标模型和目标超参数。针对新任务,该方法基于用户给定的约束条件,可高效选择出合适的模型和超参数,从而节约了训练时间和算力成本。
[0059]
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本申请的实施例中对相同属性的对象在描述时所采用的区分方式。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。
[0060]
本申请实施例涉及了许多关于迁移学习的相关知识,为了更好地理解本申请实施例的方案,下面先对本申请实施例可能涉及的相关术语和概念进行介绍。应理解的是,相关的概念解释可能会因为本申请实施例的具体情况有所限制,但并不代表本申请仅能局限于该具体情况,在不同实施例的具体情况可能也会存在差异,具体此处不做限定。
[0061]
(1)迁移学习(transfer learning)
[0062]
迁移学习是一种机器学习方法,就是把为任务a开发的模型作为初始点,重新使用在为任务b开发模型的过程中。也就是说,把基于已有任务(如所述的任务a)训练好的模型学习到的知识迁移到新的任务(如所述的任务b)中来帮助该模型进行再训练,通过迁移学习将已经学到的知识(蕴含在模型参数中)通过某种方式来分享给新任务从而加快并优化模型的学习效率,这样模型不用从零开始学习。其中,fine-tune就是一种简单、高效的迁移学习方法,例如训练目标检测任务,使用在imagenet数据集上训练好的模型作为新任务的模型(backbone)可以明显的提升训练效率。
[0063]
(2)图卷积神经网络(graph convolutional network,gcn)
[0064]
gcn的本质目的是用来提取图(graph)结构的空间特征,这里的图结构是指数学(即图论)中的用顶点(vertex)和边(edge)建立相应关系的拓扑图,一个图结构的空间特征具有如下两个特征:a、节点特征,即每个节点有自己的特征,该特征体现在节点本身;b、结构特征,即图结构中节点与节点之间的联系,该特征体现在边上(节点与节点之间的连接线)。对于gcn来说,既要考虑节点信息又要考虑结构信息,如图2所示,图2为gcn处理图结构数据的一个流程示意图,gcn可以看作是卷积神经网络(convolutional neural network,cnn)在图结构上的自然推广,它能同时对节点特征与结构特征进行端到端的学习,是目前对图结构类型数据进行学习任务的最佳选择。并且,gcn适用性极广,适用于任意拓扑结构
的图。
[0065]
(3)贝叶斯回归器
[0066]
贝叶斯回归器也称为贝叶斯回归或贝叶斯线性回归,是使用统计学中贝叶斯推断方法求解的线性回归模型。贝叶斯线性回归将线性模型的参数视为随机变量,并通过模型参数(权重系数)的先验(prior)计算其后验(posterior)。贝叶斯线性回归可以使用数值方法求解,在一定条件下,也可得到解析型式的后验或其有关统计量。贝叶斯线性回归具有贝叶斯统计模型的基本性质,可以求解权重系数的概率密度函数,进行在线学习以及基于贝叶斯因子(bayes factor)的模型假设检验。
[0067]
(4)置信上界(upper confidence bound,ucb)
[0068]
置信界限是对单侧置信区间中的界限以及双侧置信区间的上、下限的统称,置信区间则是指包括在置信界限之间的区间,置信区间是用一种特定的可能性(置信程度或置信倒数)能说明的一个范围(区间),它有一个要求去测定的参数,这个参数可能是平均数、标准误差、一种比例数或任何其他测定点,目的是确定较高和较低的置信界限。其中,较高的置信界限就称为置信上界(也可称为置信上限),较低的置信界限就称为置信下界(也可称为置信下限)目的是确定较高和较低的置信界限。
[0069]
具体地,由一个总体进行随机抽样计算可得到某一参数估计值,在估计值周围由抽样值计算得到的一个区间内,一定程度上包括了真值在此区间出现的可能性,此区间即为置信区间。通常计算95%置信区间,可理解为真值在此区间内有95%出现的可能性,也可计算99%或99.9%的置信区间等。
[0070]
(5)演化算法(evolutionary algorithm,ea)
[0071]
也可称为进化算法,是模拟自然界中的生物的演化过程产生的一种群体导向的随机搜索技术和方法。是一个“算法簇”,尽管它有很多的变化,有不同的遗传基因表达方式,不同的交叉和变异算子,特殊算子的引用,以及不同的再生和选择方法,但它们产生的灵感都来自于大自然的生物进化。与传统的基于微积分的方法和穷举法等优化算法相比,进化计算是一种成熟的具有高鲁棒性和广泛适用性的全局优化方法,具有自组织、自适应、自学习的特性,能够不受问题性质的限制,有效地处理传统优化算法难以解决的复杂问题。
[0072]
(6)帕累托前沿(pareto front)
[0073]
最早是一个经济学的概念,在多目标优化问题里面广泛使用。多个目标进行优化的过程中,存在目标之间的冲突和无法比较的情况,一个解在某个目标上是最好的,在其他的目标上可能是最差的。给定两个解s1和s2,对所有的目标而言,如果s1均优于s2,那么有s1支配s2。如果s1没有被其他解所支配,则s1称为非支配解,也称pareto解。pareto解构成的集合,称之为帕累托前沿。
[0074]
下面结合附图,对本申请的实施例进行描述。本领域普通技术人员可知,随着技术的发展和新场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
[0075]
首先对人工智能系统总体工作流程进行描述,请参见图3,图3示出的为人工智能主体框架的一种结构示意图,下面从“智能信息链”(水平轴)和“it价值链”(垂直轴)两个维度对上述人工智能主题框架进行阐述。其中,“智能信息链”反映从数据的获取到处理的一列过程。举例来说,可以是智能信息感知、智能信息表示与形成、智能推理、智能决策、智能执行与输出的一般过程。在这个过程中,数据经历了“数据—信息—知识—智慧”的凝练过
程。“it价值链”从人智能的底层基础设施、信息(提供和处理技术实现)到系统的产业生态过程,反映人工智能为信息技术产业带来的价值。
[0076]
(1)基础设施
[0077]
基础设施为人工智能系统提供计算能力支持,实现与外部世界的沟通,并通过基础平台实现支撑。通过传感器与外部沟通;计算能力由智能芯片(cpu、npu、gpu、asic、fpga等硬件加速芯片)提供;基础平台包括分布式计算框架及网络等相关的平台保障和支持,可以包括云存储和计算、互联互通网络等。举例来说,传感器和外部沟通获取数据,这些数据提供给基础平台提供的分布式计算系统中的智能芯片进行计算。
[0078]
(2)数据
[0079]
基础设施的上一层的数据用于表示人工智能领域的数据来源。数据涉及到图形、图像、语音、文本,还涉及到传统设备的物联网数据,包括已有系统的业务数据以及力、位移、液位、温度、湿度等感知数据。
[0080]
(3)数据处理
[0081]
数据处理通常包括数据训练,机器学习,深度学习,搜索,推理,决策等方式。
[0082]
其中,机器学习和深度学习可以对数据进行符号化和形式化的智能信息建模、抽取、预处理、训练等。
[0083]
推理是指在计算机或智能系统中,模拟人类的智能推理方式,依据推理控制策略,利用形式化的信息进行机器思维和求解问题的过程,典型的功能是搜索与匹配。
[0084]
决策是指智能信息经过推理后进行决策的过程,通常提供分类、排序、预测等功能。
[0085]
(4)通用能力
[0086]
对数据经过上面提到的数据处理后,进一步基于数据处理的结果可以形成一些通用的能力,比如可以是算法或者一个通用系统,例如,翻译,文本的分析,计算机视觉的处理,语音识别,图像的识别等等。
[0087]
(5)智能产品及行业应用
[0088]
智能产品及行业应用指人工智能系统在各领域的产品和应用,是对人工智能整体解决方案的封装,将智能信息决策产品化、实现落地应用,其应用领域主要包括:智能终端、智能制造、智能交通、智能家居、智能医疗、智能安防、自动驾驶、平安城市等。
[0089]
本申请可应用于人工智能领域中的计算机视觉领域,具体的,结合图3来讲,本申请实施例中基础设施获取的数据是本申请实施例所述的新任务(即第二数据集),具体可以是图片、文本、语音等数据,之后,再基于本申请实施例提供的模型确定方法从构建的模型集中选出一个适合该新任务的目标模型和一组目标超参数对该新任务进行处理,从而得到基于该新任务训练后的目标模型,其中需要注意的是,该目标模型是已经过已有的任务(如,本申请实施例所述的第一数据集)预训练过的模型。
[0090]
接下来对本申请实施例提供的模型的获取方法进行介绍,具体请参阅图4,图4为本申请实施例提供的模型的获取方法的一种流程示意图,该方法可以包括如下步骤:
[0091]
401、基于约束条件构建模型集,该模型集包括至少两个在第一数据集上预训练过的模型。
[0092]
首先,基于约束条件构建模型集,该模型集中包括至少两个已经在第一数据集上,
如,开放的imagenet数据集,预训练过的模型。
[0093]
需要说明的是,在本申请的一些实施方式中,约束条件包括用户的一些具体业务需求,例如,约束条件可以是模型大小、模型推理时延、模型训练时延、特定的硬件部署条件、片上内存大小等中的一项或多项。举例来说,有些新任务(如,自动驾驶车辆获取的图片、音频等数据集)对模型推理时延要求比较高,因为自动驾驶车辆对实时性要求高;而有些新任务(如,手机等终端设备)对占据片上内存大小有较高要求,这是因为手机等手持终端的存储空间有限。因此,不同的新任务对模型有不同的约束条件,在本申请实施例中,可基于新任务(可以是一个或多个)的不同应用场景得到不同的约束条件,从而基于约束条件构建满足各个新任务的模型集。
[0094]
还需要说明的是,在本申请的一些实施方式中,基于约束条件构建模型集可以有不同的实现方式,可以是基于约束条件先构建初始模型集,该初始模型集就包括至少两个训练后的初始模型,其中,每个初始模型是根据已有的开放的第一数据集训练得到的。具体地,在本申请实施例中,可以是基于构建的搜索空间,通过神经网络架构搜索的方式构建该初始模型集,其中,构建的搜索空间不同,那么基于约束条件构建初始模型集的具体实现方式也会有所不同,下面分别进行介绍:
[0095]
一、构建的搜索空间包括多种网络结构单元(block)及所述多种网络结构单元之间的连接关系。
[0096]
首先,根据约束条件确定一个搜索空间,该搜索空间就包括多种网络结构单元(block)及所述多种网络结构单元之间的连接关系,其中,每个block内部包含一个或多个节点以及各个节点上的操作(operation,op),该操作指的是神经网络的一些基本操作单元,例如,卷积、池化等操作,这里的节点可以理解为神经网络模型的层,如,输入层、输出层、卷积层、池化层、全连接层等。为便于理解,下面对block与block之间的连接关系进行说明。图5示意的是一个block结构以及该block结构的内部操作关系,每个block结构内部可自行设置节点数量、各节点上的操作以及通道数变化,图5中示意的是5个节点,这5个节点包括输入节点和输出节点(也可称为输入层和输出层),c表示输入通道数大小,(0.25~4)
×
c表示的中间的这3个节点的通道数可以是按照c的0.25~4的比例变化,该变化比例区间可自行设置,且每个中间节点的通道数也可以不一样,图5仅为示意,这里需要注意的是,一般来说,输入节点和输出节点的通道数相同,两者之间默认包含一个跳连(即数据流的流向),如果输入层和输出层分辨率不一致时,中间可以插入一个1x1的卷积,不同节点的输出结果合并时,可以是直接相加(add)方式或通道合并(concat)方式这两种不同的操作,此处不做限定。
[0097]
在实际应用中,一般来说,一个block结构内部考虑1-5个节点,每个节点考虑7种不同的操作,通道数一般为5种变化,例如,可以是如表1中所示的7种操作和5种通道数的变化(以通道数变化的比例表征),其中表1中的c表示当前操作的输入通道数,需要注意的是,表1仅为对操作和通道数变化的一种示意,在具体应用中,节点上的操作和通道数变化还可以是其他形式,具体此处不做限定。
[0098]
表1:7种操作和5种通道数的变化
[0099][0100]
图6示意的则是多个相同或不同的block之间的连接关系(也可称为堆叠关系),各个block连接后形成的组合结构就为本申请实施例所述的初始模型。图6示意的是4432形式的堆叠结构,也就是说,在堆叠的初始模型中,第一阶段(即阶段1)包括4个通道数均为c的block,第二阶段(即阶段2)包括4个block,其中2个block的通道数为c,另外2个block的通道数为2c,第三阶段(即阶段3)包括3个通道数为2c的block,第四阶段(即阶段4)包括2个通道数为4c的block。这里需要注意的是,堆叠的初始模型可以包括多个阶段,如图6示意的是4个阶段,每个阶段可以包括相同或不同内部结构的block,如图6中的阶段1包括的就是4个内部结构均相同的block,图6中的阶段2的4个block就包括2种内部结构不同的block,在本申请实施例中,堆叠的初始模型包括多少个阶段以及每个阶段中包括的block结构的类型和通道数均可设置,此处不做限定。在图6中,示意的则是每个阶段可包括1~10个相同或不同的block。
[0101]
还需要注意的是,在本申请实施例中,根据约束条件确定搜索空间可以分解为两个层次的搜索过程,可以先基于约束条件搜索符合要求的block结构,再基于约束条件搜索block结构之间的连接关系。通过这两个层次的搜索,得到符合约束条件的搜索空间。
[0102]
根据上述所述的方式确定好符合约束条件的搜索空间后,就可从搜索空间随机采样,得到至少两个初始模型,每个初始模型是由多个block结构和各block结构之间的连接关系确定的,得到至少两个初始模型后,就可根据第一数据集对初始模型进行预先训练,从而得到训练后的初始模型,各个训练后的初始模型就构成最开始的初始模型集。具体地,在本申请的一些实施方式中,如图7所示,若新任务是分类任务,那么可以基于搜索空间中的各个模型(图7中每个圈圈表示的是一个基于block结构和连接关系得到的模型)在imagenet数据集上训练的精度以及训练单步的时长构建帕累托前沿,并根据帕累托前沿构建能够友好迁移到新任务的训练过的初始模型,各个训练过的初始模型就构成初始模型集。其中,表2示意的是imagenet数据集包括的图片类别数、训练集图片数量和测试集图片数量。
[0103]
表2:imagenet数据集
[0104]
数据集名称类别数训练集图片数量测试集图片数量imagenet100012.8m50k
[0105]
二、构建的搜索空间包括已有的成熟的初始模型。
[0106]
另一种构建初始模型集的方式是直接基于约束条件搜索是否存在符合该约束条件的已有的成熟的模型,若有,就直接将该成熟模型纳入初始模型集,并通过第一数据集对
该成熟模型进行训练,训练后的成熟模型就是训练后的初始模型。这种方式的好处在于:可直接得到已有的初始模型,相对第一种方式节省了一些搜索时间,而第一种方式的好处则在于:一方面可以遍历所有可能的block以及所有的连接关系,从而找到新能最优的架构;另一方面是可以打破人类思维的局限,找到现有中没有的架构组织方式。
[0107]
基于约束条件构建好初始模型集之后,就可以根据演化算法(ea)得到每个初始模型各自对应的一组衍生模型,其中,每组衍生模型包括至少一个衍生模型,需要注意的是,每个初始模型衍生的一组衍生模型中具体包括几个衍生模型可根据演化算法自行设置,具体此处不做限定。
[0108]
为便于理解,这里举例说明:假设初始模型集中有3个训练过的初始模型,那么根据演化算法,这3个初始模型均可各自衍生出一组衍生模型,那么一共可衍生3组衍生模型,这3组衍生模型中各自包括的衍生模型的数量可以相同,也可以不同,此处不做限定。例如,通过演化算法这3个初始模型均各自衍生出5个衍生模型,那么就一共可得到15个衍生模型。
[0109]
得到初始模型的衍生模型之后,由于通过演化算法衍生出来的各个衍生模型是没有经过训练的模型,因此,本申请还需要构建一个预测器(可称为第二预测器),该第二预测器的作用是预测各个衍生模型对第一数据集的输出精度(可称为第三输出精度),该第三输出精度是一种粗略的预测结果,并不是衍生模型针对第一数据集真正的输出精度。这里还需要注意的是,构建的第二预测器也是未经过训练的,在本申请实施例中,该第二预测器的输入为初始模型集中各个训练过的初始模型,根据各个训练过的初始模型,可以得到训练后的第二预测器。之后,经过训练的第二预测器就可用于对每个衍生模型进行处理,预测每个衍生模型对第一数据集的第三输出精度。随后根据得到的各个衍生模型对应的第三输出精度从所有衍生模型中选取目标衍生模型(可以是一个或多个),并根据第一数据集对选出的目标衍生模型进行训练,从而得到训练后的目标衍生模型,那么上述训练后的初始模型和该训练后的衍生模型就构成本申请实施例所述的模型集。
[0110]
为便于理解,依然以上述例子为例进行说明:初始模型集中有3个初始模型,并且每个初始模型衍生出5个衍生模型,共15个衍生模型,由于这15个衍生模型初始模型经过演化算法得到的,衍生模型的网络参数有些是未初始化和未训练过的,因此,本申请构建了一个第二预测器,该第二预测器用于粗略预测这15个衍生模型对第一数据集的输出精度(即第三输出精度)是怎样的,之后,再根据各个第三输出精度从这15个衍生模型中选择符合要求的目标衍生模型,假设从这15个衍生模型中选择出了5个目标衍生模型,就根据第一数据集对这5个目标衍生模型进行训练,得到训练后的目标衍生模型,那么训练后的这5个目标衍生模型和原来的那3个训练后的初始模型就共同构成本申请实施例所述的模型集。
[0111]
需要说明的是,在本申请的一些实施方式中,如何根据各个衍生模型对应的第三输出精度从所有衍生模型中选取目标衍生模型有多种实现方式,包括但不限于如下几种:
[0112]
a、从所有衍生模型中选取第三输出精度大于预设值的衍生模型作为该目标衍生模型。
[0113]
举例示意:假设一共有6个衍生模型,各个衍生模型对应的第三输出精度取值分别为85%(对应衍生模型a)、87%(对应衍生模型b)、89%(对应衍生模型c)、91%(对应衍生模型d)、93%(对应衍生模型e)、94%(对应衍生模型f),其中,假设预设值为90%,那么从这6
个衍生模型中选取衍生模型d、e、f这3个衍生模型作为目标衍生模型。
[0114]
b、从所有衍生模型中选取第三输出精度取值较大的前n个衍生模型作为该目标衍生模型,n≥1。
[0115]
举例示意:依然假设一共有6个衍生模型,各个衍生模型对应的第三输出精度取值分别为85%(对应衍生模型a)、87%(对应衍生模型b)、89%(对应衍生模型c)、91%(对应衍生模型d)、93%(对应衍生模型e)、94%(对应衍生模型f),其中,假设n=2,也就是选择所有第三输出精度由大到小排序的话取值排在前两位的2个衍生模型为目标衍生模型,也就是选择衍生模型e、f这2个衍生模型作为目标衍生模型。
[0116]
c、根据第三输出精度的均值和方差得到每个衍生模型对应的置信上界(ucb),并从所有衍生模型中选取置信上界取值较大的前m个衍生模型作为该目标衍生模型,m≥1。
[0117]
举例示意:依然假设一共有6个衍生模型,各个衍生模型对应的第三输出精度取值分别为85%(对应衍生模型a)、87%(对应衍生模型b)、89%(对应衍生模型c)、91%(对应衍生模型d)、93%(对应衍生模型e)、94%(对应衍生模型f),假设根据第三输出精度的均值和方差得到上述6个衍生模型对应的置信上界分别为87%(对应衍生模型a)、91%(对应衍生模型b)、90%(对应衍生模型c)、92%(对应衍生模型d)、95%(对应衍生模型e)、97%(对应衍生模型f),其中,假设m=4,也就是选择所有置信上界由大到小排序的话取值排在前四位的4个衍生模型为目标衍生模型,也就是选择衍生模型b、d、e、f这4个衍生模型作为目标衍生模型。
[0118]
还需要说明的是,在本申请的一些实施方式中,还可以将上述构建的模型集作为新的初始模型集,目标衍生模型作为新的初始模型,重新执行上述构建模型集的步骤直至达到一个预设条件(可称为第二预设条件)。为便于理解该重复执行的步骤,这里依然以上述例子为例进行说明:假设一开始的初始模型集(可称为第一轮初始模型集)中有3个初始模型,并且每个初始模型衍生出5个衍生模型,共15个衍生模型,并根据上述所述的方式从这15个衍生模型中选出了5个目标衍生模型,那么训练后的这5个目标衍生模型和原来的那3个训练后的初始模型就共同构成本申请实施例所述的模型集,之后有8个模型(3个初始模型+5个目标衍生模型)的模型集作为新的初始模型集,每个目标衍生模型作为初始模型,那么第二轮的初始模型集就有8个训练后的初始模型,之后,依然利用演化算法对这8个初始模型进行衍生,又可以得到每个初始模型各自对应的一组衍生模型,假设一共得到了40个衍生模型,那么再利用第二预测器继续预测这40个衍生模型对第一数据集的输出精度(即第三输出精度),之后再根据各个第三输出精度从这40个衍生模型中选择符合要求的目标衍生模型,假设从这40个衍生模型中又选择出了6个目标衍生模型,就根据第一数据集对这6个目标衍生模型进行训练,得到训练后的目标衍生模型,训练后的这6个目标衍生模型和第二轮的那8个训练后的初始模型就共同构成本申请实施例所述的模型集,该模型集中就一共包括14个模型(3个第一轮的初始模型+5个第一轮的目标衍生模型+6个当前轮次的目标衍生模型)。假设第二轮次得到的模型集满足上述第二预设条件,则不再循环,此时第二轮得到的模型集就作为最终构建的模型集(可称为目标模型集),假设第二轮次得到的模型集依然未满足上述第二预设条件,则继续循环,直至达到该第二预设条件。
[0119]
需要说明的是,在本申请的一些实施方式中,该第二预设条件可根据用户需求自行设置,例如,该第二预设条件可以是模块库内的模型数量达到预设数量,以上述例子为
例:假设预设数量为13,而第二轮次得到的模型集包括14个模型,那么说明达到了第二预设条件,因此该包括14个模型的模型集就为最终构建得到的模型集;又例如,该第二预设条件还可以是模型集内的模型满足的约束条件达到预设要求,例如,假设约束条件一共有3种类型,用户要求每种类型的约束条件都需要达到一定数量,这样做的目的是为了使得模型集累积到满足不同约束条件的模型。
[0120]
还需要说明的是,在本申请的一些实施方式中,每一轮得到的训练后的目标衍生模型都可以用来更新第二预测器,以提高第二预测器的预测精度。
[0121]
还需要说明的是,在本申请的一些实施方式中,第二预测器可以是“gcn+贝叶斯回归器”,具体地,根据训练后的初始模型对构建的第二预测器进行训练的过程可以是:首先,对训练后的初始模型的图结构(也可称为拓扑图)进行编码,得到每个训练后的初始模型的图编码,然后将每个图编码作为gcn的输入,利用gcn提取每个图编码的特征,从而避免手工设计核函数来评估网络架构之间的距离。之后gcn的输出作为贝叶斯回归器的输入,该贝叶斯回归器的作用主要是用来评估模型性能的均值和方差,具体为通过使用置信上界来评估模型的性能。
[0122]
为了便于理解什么是模型的图结构以及图编码,下面举例进行示意,如图8所示,图8为一个模型的图结构以及对应的图编码,模型实质是由众多节点以及节点与节点之间的连接关系构成的,因此,每个模型都可以看成是一个图结构,如图8示意的模型的图结构就包括3种操作、6种节点类型和7个节点(包括输入节点input node1和输出节点output node7),其中,3种操作分别为1
×
1的卷积操作(1
×
1conv)、3
×
3的卷积操作(3
×
3conv)以及最大池化操作(max pooling),6种节点类型分别为输入、1
×
1卷积、3
×
3卷积、最大池化、输出、全局,7个节点则分别为node1-node7,在本申请实施例中,为了编码整个图结构的特征,额外引入了一个全局节点global node8,该全局节点用于连接图结构的所有节点,这样才能编码整个图结构,最终构成这8个节点、6种节点类型的图结构。针对每个模型的图结构,都可以对其进行唯一编码,得到图编码,每个图编码由邻接矩阵和独热(one-hot)编码构成,具体如图8所示,由此,一个图编码就唯一确定了一个模型。
[0123]
还需要说明的是,在本申请的一些实施方式中,对于采样得到的模型,不管是初始模型还是基于初始模型衍生得到的目标衍生模型,为了更高效的进行训练,可以将多个模型融合成一个超网,通过使用参数共享的方式进行快速训练,这样可以大大减少模型训练的时长。需要注意的是,这里所述的共享的参数是指网络结构内部本身具有的参数,比如构成超网的子网的卷积操作、卷积核大小和卷积核取值等,下面分别介绍如何将模型融合成一个超网进行训练:
[0124]
a、初始模型的融合训练。
[0125]
本申请实施例中,由于构建的初始模型集中包括至少两个初始模型,因此根据第一数据集对初始模型进行训练,得到训练后的初始模型具体可以是:首先,将初始模型集中的所有初始模型融合成一个超网模型(可称为第一模型),之后根据第一数据集对该第一模型进行训练,从而得到训练后的第一模型,最后,将训练后的第一模型又重新拆解为训练后的初始模型。
[0126]
为便于理解,下面举例进行示意:请参阅图9,图9为本申请实施例提供的将多个初始模型融合成第一模型进行训练且训练后重新拆解为多个初始模型的示意图,假设初始模
型有3个,分别为a1、a2和a3,a1、a2和a3的网络结构如图9所示,其中,图9中的每个圈圈表示网络结构的一层(如,池化层、卷积层等),需要注意的是,图9示意的是每个初始模型均表示为4层,在实际应用中,每个初始模型的层数不一定相同,层的数量也不一定是4层,此处仅为示意,具体不做限定。对a1、a2和a3的融合就是将各个初始模型层与层之间的连接关系全部体现在一个模型中,即图9中的模型super-a中,之后根据第一数据集对该融合后的模型super-a进行训练,这样通过对一个模型的训练就可得到所有初始模型的模型精度,当训练完成后,再将该模型super-a按照原来的连接关系拆解开,这样就得到训练后的a1’
、a2’
和a3’
。
[0127]
b、目标衍生模型的融合训练。
[0128]
类似地,在本申请实施例中,如果得到的目标衍生模型有多个,那么根据第一数据集对目标衍生模型进行训练,得到训练后的目标衍生模型具体可以是:首先,将这多个目标衍生模型融合成一个超网模型(可称为第二模型),之后根据第一数据集对该第二模型进行训练,从而得到训练后的第二模型,最后,将训练后的第二模型又重新拆解为训练后的多个目标衍生模型。目标衍生模型具体的融合与拆解的过程与图9类似,此处不予赘述。
[0129]
402、通过构建的第一预测器预测该模型集中任意一个模型对第二数据集的第一输出精度,其中,每个模型对应一个第一输出精度,每个模型对应一组超参数,该超参数通过在超参数空间采样得到。
[0130]
在基于约束条件构建好模型集之后,那么该模型集就包括至少两个在第一数据集上预训练过的模型(即训练后的初始模型和训练后的目标衍生模型),之后,在超参数空间进行随机采样,得到一组超参数,这组随机采样得到的超参数可称为第一超参数,之后通过构建的第一预测器预测模型集中的任意一个模型对第二数据集的第一输出精度,其中,每个模型对应一个第一输出精度,例如,可以是预测模型集中的一个模型的输出精度,也可以是预测模型集中的多个模型各自对应的输出精度,还可以是预测模型集中的每个模型的输出精度,此处不做限定,且每个模型都对应会有一个超参数(即第一超参数),也就是说,在模型的超参数设置为该第一超参数的情况下,通过构建的另一预测器(可称为第一预测器)预测该模型集里的任意一个模型对第二数据集的输出精度(可称为第一输出精度),其中,该第二数据集即为新任务的数据集。
[0131]
为便于理解上述步骤,下面举例进行示意:假设超参数空间一共有30组超参数,构建的模型集里一共有10个训练过的模型,那么针对每个训练过的模型和每组超参数,该构建的第一预测器都可预测出对第二数据集的输出精度,这样针对该第二数据集,就可得到30
×
10=300个第一输出精度,每个第一输出精度对应模型集里的一个模型和超参数空间里的一组超参数。
[0132]
这里需要注意的是,在本申请实施例中,构建的第一预测器的输入数据是第一超参数、模型集中的任意一个模型和第二数据集,输出是该任意一个模型在该第一超参数情况下对第二数据集的输出精度的预测。具体地,在本申请的一些实施方式中,需要对该第一超参数、该模型以及该第二数据集分别进行编码,从而分别得到该超参数编码、该模型编码以及第二数据集编码,之后,将该超参数编码、该模型编码及第二数据集编码输入第一预测器,输出该模型在第一超参数情况下对第二数据集的第一输出精度的预测结果,该过程具体可参阅图10,图10表示的是构建的第一预测器得到各个模型对第二数据集的第一输出精
度的预测的示意图。
[0133]
这里需要注意的是,如图10所示,由于构建的第一预测器也是未经过训练的,因此,在本申请实施例中,可通过已有的任务对该第一预测器进行初始化,当该第二数据集作为新任务完成预测后,也可将该新任务作为下一个已有的任务对该第一预测器的参数进行更新,从而提高第一预测器的检测精度。具体来说,在本申请的一些实施方式中,可以根据第二输出精度、第二数据集、目标超参数及目标模型更新该第一预测器的参数,其中,该第二输出精度为该训练后的目标模型对第二数据集的输出精度。
[0134]
还需要说明的是,在本申请实施例中,对第一预测器的初始化过程具体可以是:在第一预测器的训练数据集上随机采样子集,并从构建的模型集以及超参空间随机采样预训练过的模型和一组超参数进行迁移学习,从而得到分类准确率(每个模型、每组超参数、一个采样子集对应一个分类准确率)。例如,可用此方法采集30k组数据,其中24k组作为训练集,6k组作验证集,记录分类准确率。其中,表3示意的是可以用于初始化该第一预测器的训练数据集,表4示意的是测试该第一预测器的测试数据集。表3和表4仅为示意,还可以是其他种类的数据集。此外,在本申请其他的一些实施方式中,训练数据集和测试数据集也可以是其他类型的数据集,例如,当模型集里的模型是用于处理文本数据的,那么训练数据集和测试数据集以及本申请实施例上述所述的第一数据集和第二数据集就可以是文本类的数据集;又例如,当模型集里的模型是用于处理语音数据的,那么训练集数据和测试集数据以及本申请实施例上述所述的第一数据集和第二数据集就可以是语音类的数据集,具体此处对模型集里模型可应用的场景以及数据库类型不做限定,只要模型集里的模型与数据集对应即可。
[0135]
表3:一些训练数据集的示意
[0136]
数据集(即用于训练的新任务)类别数训练集图片数量测试集图片数量flowers1021022.0k6.1kstanford-car1968.1k8.0kcaltech1011013.1k6.1kplaces3653651.8m36.5kcub-birds2006.0k5.8k
[0137]
表4:一些测试集数据的示意
[0138]
数据集(即模拟真实的新任务)类别数训练集图片数量测试集图片数量aircrafts1006.7k3.3kmit67675.4k1.3kstanford-car1968.1k8.0kstanford-dog25712k8.6k
[0139]
在本申请实施例中,第一预测器的网络结构可记为p,该网络结构包括多个全连接层,且该第一预测器的输入数据和输出数据可以记为如下所述的方式:
[0140][0141]
其中,公式左边的数据为输入数据,公式右边的数据为输出数据,regime
ft
表示表
征的模型特征,具体可以包括模型的独热编码、模型在第一数据集上的第一输出精度等;state(d)表示第二数据集(假设第二数据集的数据类型为图片)编码表征的数据类别数(如,图片类别数)、每类图片数量的平均值及方差、第二数据集与第一数据集(如,imagenet数据集)的相似度等;表示学习率、训练轮数、模型中固定参数的阶段数(即训练过程中某个阶段固定哪些参数不变)等;l则表示第一预测器中不同的层,a
l
表示每层特征的权重,f
l
表示的是每层的特征值。此外,还有:
[0142]
f
l
=h
l
w
l
,
[0143]
h
l
=relu(φ
l
h
l-1
),
[0144][0145]
其中,w
l
和φ
l
是每层的可学习参数,h是每层的输入和输出。
[0146]
403、确定所述模型中第一输出精度满足第一预设条件的模型为目标模型,该目标模型对应的超参数为目标超参数。
[0147]
当得到的所有第一输出精度中,存在一个满足预设条件(可称为第一预设条件)的输出精度,则该满足第一预设条件的输出精度就称为目标输出精度,与该目标输出精度对应的模型和第一超参数则称为目标模型及目标超参数,之后,就将该目标模型和该目标超参数作为最终处理该第二数据集的模型和超参数,也就是说,选择该目标模型和该目标超参数在新的第二数据集上进行迁移学习。
[0148]
需要说明的是,在本申请实施例中,判断目标输出精度满足第一预设条件的方式可以是:在所有第一输出精度中选择取值最大的那个作为目标输出精度,一般来说,输出精度越大,说明该模型在对应超参数情况下性能越好。这里还需要注意的是,评价一个模型的性能,除了可以是通过输出精度,还可以是其他的,比如,错误率越小,则性能越好等,在本申请实施例中,仅是以输出精度为例进行说明。
[0149]
此外,对于一个给定的新任务的数据集(即第二数据集),由于其数据集内的数据是固定的,先提取其数据集特征(即数据编码),在模型集中随机选择模型,另外从超参数空间随机选择超参数进行编码,最后利用该初始化后的第一预测器预测各种配置下对该第二数据集的检测精度(即第一输出精度),最后可从中选择第一输出精度最高的配置(即对应的模型和超参数)进行迁移学习,也就是将作为最终处理该第二数据集的目标模型和目标超参数。迁移学习结束后得到的元特征信息,就可以用来更新该第一预测器的相关参数。
[0150]
404、基于该目标超参数,根据该第二数据集对该目标模型进行训练,得到训练后的目标模型。
[0151]
通过上述步骤从模型集和超参数空间确定出目标模型和目标超参数后,就可基于该目标超参数,根据该第二数据集对该目标模型进行训练,从而得到训练后的目标模型。
[0152]
需要说明的是,在本申请的一些实施方式中,训练后的目标模型还可以部署在执行设备上,以使得执行设备通过该训练后的目标模型对输入的目标数据进行处理。例如,可以部署在手机、个人电脑、智能手表等智能终端上,也可以部署在自动驾驶车辆、网联汽车、智能汽车等可移动终端设备上,具体此处不做限定。
[0153]
在本申请上述实施方式中,综合考虑了模型的选择和超参数的选择,用于通过构建的第一预测器快速预测基于约束条件构建的模型集中每个模型在不同超参数情况下针对新任务的性能表现,并从中选择满足预设条件(如,模型的输出精度取值最大)的模型和
超参数作为最终处理新任务(即第二数据集)的目标模型和目标超参数。针对新任务,该方法基于用户给定的约束条件,可高效选择出合适的模型和超参数,从而节约了训练时间和算力成本。
[0154]
也就是说,本申请实施例所达到的技术效果是:在实际业务交付过程中,在有限的时间内对一个新任务(即第二数据集),找到合适的模型,并将其训练到达到交付要求的精度(也就是针对新任务要选择出一个最好的模型和一组最好的超参)。
[0155]
此外,由于不同业务的应用场景不同,对应的约束条件也不尽相同,选择合适的网络结构,是非常耗时。在实际业务中,往往是针对具体的问题,人工设计满足要求的网络结构,然后通过手工调参方式,使其达到业务交付的目标。整个周期非常长,需要大量人工介入,而且这些业务之间相互彼此独立,没有充分挖掘之间的相关信息。对于新的任务,利用现有的模型直接迁移学习(如,fine-tune)是一种非常高效的解决方案,但是无法适配不同的应用场景和约束条件。谷歌微软提供的automl服务平台能够提供一个解决方案,但是用户不能根据自己的需求,如交付时间、部署平台等进行选择。因此,在本申请实施例中,该构建的第一预测器并不仅用于处理一次新任务,针对每个新任务,均可通过上述方式进行处理,从而使得本申请实施例提供的模型的获取方法可应用于持续性、多任务的交付场景,达到跨任务进行迁移学习的目的。
[0156]
为便于理解上述图4对应的实施例所述的模型的获取方法,下面以一个实例分别从模型集构建阶段和迁移学习阶段对上述实施例的框架进行示意,请参阅图11,图11为本申请实施例提供的模型的获取方法的一个框架示意图,该框架示意图包括模型集构建阶段和迁移学习阶段,下面分别进行介绍:
[0157]
一、模型集构建阶段
[0158]
步骤1、基于约束条件定义搜索空间,该搜索空间包括多种网络结构单元(block)及所述多种网络结构单元之间的连接关系。
[0159]
步骤2、从搜索空间随机采样,得到若干个初始模型(比如,3个初始模型),构成初始的模型集合。
[0160]
步骤3、将多个初始模型进行融合,构建成一个超网(即上述所述的第一模型),通过参数共享的方式,根据第一数据集(即已有的如imagenet等数据集)对各个初始模型进行训练,这里所述的共享的参数是指网络结构内部的参数,比如构成该超网的子网的卷积操作、卷积核大小和取值等。这样一次训练过程就可同时得到多个初始模型的检测精度,从而节省了训练时间,需要注意的是,这里的检测精度一般是指初始模型输出的针对第一数据集的预测结果的准确率,也就是上述所述的第一输出精度。根据第一数据集训练好的初始模型,构成初始模型集。
[0161]
步骤4、提取初始模型集中各个训练好的初始模型的图编码,训练和初始化gcn和贝叶斯回归器。
[0162]
步骤5、基于已有的该初始模型集,在搜索空间内,采用ea采样的方式,构建多组新的模型(即衍生模型),其中,每个初始模型都可以通过ea采样方式得到若干个衍生模型,比如初始模型3个,ea采样后每个初始模型衍生出5个新的模型,那么就一共衍生出15个衍生模型(也可以每个初始模型演化的数量不一样),这里ea采样得到的衍生模型是没有经过训练的。
[0163]
步骤6、针对每个衍生模型的图结构进行编码,得到图编码,之后再利用上述步骤4训练过的gcn提取每个衍生模型对应的图编码的特征,将提取的特征输入到经过上述步骤4训练过的贝叶斯回归器中,得到每个衍生模型针对第一数据集的检测精度(即第一输出精度),例如,一共有15个衍生模型,那么就可对应得到15个第一输出精度。
[0164]
步骤7、根据预测的每个衍生模型的第一输出精度得到第一输出精度的均值和方差,并进一步计算得到每个衍生模型的置信上界(ucb),这样一共就可得到15个置信上界,该置信上界表示的是每个衍生模型检测精度能达到的上限。
[0165]
步骤8、对每个衍生模型的置信上界按从大到小的顺序进行排序,选取置信上界排在前m个(top-m)衍生模型作为目标衍生模型,假设m取值为5,那么就是从这15个衍生模型中选取置信上界取值较大的那5个衍生模型作为目标衍生模型。
[0166]
步骤9、对于选出的这m个目标衍生模型,同样地,将这m个目标衍生模型进行融合,构建成一个超网(即上述所述的第二模型),通过参数共享的方式,根据第一数据集(即已有的如imagenet等数据集)对各个目标衍生模型进行训练,训练好的目标衍生模型英语更新上述gcn和贝叶斯回归器,并且该训练好的目标衍生模型,同时更新到模型集中。以m取值为5为例,那么该构建的模型集就包括原来的3个根据第一数据集训练后的初始模型以及5个根据第一数据集训练后的目标衍生模型。
[0167]
步骤10、对步骤5-9循环执行直至得到一个预设条件(即上述所述的第二预设条件),如,直至模型集中累积到满足不同约束条件的模型,或者,直至模型集中累积到足够数量的模型。
[0168]
二、迁移学习阶段
[0169]
步骤1、基于已有的任务(如,第一数据集),对模型集里的模型、超参数空间里随机采样的超参数、以及该第一数据集进行编码以及得到的模型的检测精度等数据,对第一预测器进行初始化和训练。
[0170]
步骤2、对于一个新任务(即第二数据集),对该新任务的数据集进行编码,提取相应的特征,并从模型集中采样模型,以及从超参数采样空间采样超参数(即第一超参数),将第二数据集编码、模型编码、超参数编码输入到该第一预测器中,输出每个模型在第一超参数情况下对第二数据集的输出精度的预测结果,最后从多个预测结果中,选取最好的模型和训练超参数配置,在该新的任务上进行迁移学习。
[0171]
步骤3、若当前新任务已完成,那么可以进一步提取该新任务的数据集编码、目标模型编码、目标超参数编码以及该目标模型在目标超参数情况下对该新任务的输出精度(即上述所述的第二输出精度)等元信息,利用这些信息来更新该第一预测器,从而提升该第一预测器的预测精度。
[0172]
为了对本申请实施例所带来的有益效果有更为直观的认识,以下对本申请实施例所带来的技术效果作进一步的对比,在基于约束条件构建模型集的过程中,引入训练单步时长作为约束条件,构建高效训练的模型集(et-nas)。图12示意的是本申请实施例提供的模型集et-nas与手工设计的模型在训练步长时间上的比较,从图12中可以看到,在imagenet数据集相同输出精度下,et-nas-g比regnety-16gf的训练步长快6倍,et-nas-i比efficientnet-b3快1.5倍。
[0173]
此外,本申请实施例提供的模型的获取方法和现有方法的组合结果的对比结果如
表5所示。
[0174]
表5:本申请实施例提供的模型的获取方法和现有方法的组合结果对比
[0175][0176]
从表5前两行结果与其他结果对比,如果利用在imagenet数据集上性能表现好的模型,只搜索超参数,性能远远低于其他方法或组合。也就表明不同的训练任务之间有一些差异,直接进行迁移学习达不到最优性能。在不同的超参数搜索算法,随机搜索(random search)、bohb和本申请在线自适应(oa)下,使用et-nas模型作为模型集,结果均明显好于常用模型构成的模型集。相同的模型集(常用模型、et-nas模型),用oa预测的超参数得到的精度与随机搜索40组超参数得到的精度相当。基于本申请示例构建的模型集,oa预测的超参数得到的精度与bohb在常用模型上搜索40组训练参数得到的精度相当。
[0177]
需要说明的是,在本申请的一些实施方式中,修改约束条件也可以得到适配其他类型任务的模型集,例如,在搜索过程中,引入模型在华为的d芯片上的推理时间作为约束条件,使用对d芯片友好的算子进行搜索,最后可以得到d芯片友好的网络结构模型,具体可如图13所示,图13示意的是对d芯片友好的网络模型和常用网络模型的性能比较。又例如,在搜索过程中,引入模型在gpu v100上推理的时间作为约束条件,搜索对gpu v100友好的网络模型。更改搜索空间,在不同的benchmark上验证采样的高效性,具体可如图14所示,图14示意的是对gpu v100友好的网络模型和常用网络模型的性能比较。
[0178]
这里需要注意的是,由于搜索出的模型可以不能直接被搭载在芯片或设备上,以d芯片为例,在获取d芯片上推理的时间过程中,本申请首先构建一个模型转换工具,能够快速地将pytorch模型转化成caffe模型。该工具先将pytorch模型导出成onnx模型,然后通过解析onnx模型的图结构,转换化成caffe模型。进一步通过d芯片自带的工具,将caffe模型打包成d芯片上能够运行的om模型。通过上述步骤就构建了一个模型采样、模型训练、模型硬件评估的闭环,本申请能够在搜索的过程中快速获取在d芯片上的推理时间,有选择的构建模型集,最后得到d芯片友好的模型的网络结构。
[0179]
类似地,在获取gpu v100上推理的时间中,对每个模型,随机运行100次,对运行时间进行排序,选取中间段的数据,求平均值作为该模型的最后评估性能。最后筛选得到对于gpu v100友好的网络模型。
[0180]
为了对比其他的采样方法,本申请使用基准的搜索空间nas-bench-101和nas-bench-201代替本申请实施例自定义的搜索空间,其他条件和方法都不变,来验证本申请的采样算法的高效性,如图15所示,图15示意的是在神经网络架构搜索基准数据集上采样效率比较的示意图,从图15中可以看出,在神经网络架构搜索基准数据集nas-bench-101、
nas-bench-201上,使用本申请实施例的采样方法(采样次数相同的情况下),均能获得更高的精度。
[0181]
由于智能安防、平安城市、智能终端等领域中都可以用到本申请实施例提供的模型的获取方法将目标模型迁移到新任务(即第二数据集)上进行学习,例如,可应用于持续性、多任务交付场景(只有一个新任务的场景也是可以用的),如云训练平台、终端视觉、无人驾驶等项目,下面将对多个落地到产品的多个应用场景进行介绍。
[0182]
应用场景1:云训练平台
[0183]
平台上有大量训练好的任务及模型,可基于本申请实施例提供的模型的获取方法以充分利用这些信息,提供automl服务。另外还可基于本申请实施例提供的模型的获取方法充分挖掘这些任务之间的相关性,对新任务提供更多、性能更高以及部署硬件友好的模型选择,对于选择的模型,可以推荐合适的超参数,从而简化业务训练人员的工作。
[0184]
应用场景2:终端视觉及无人驾驶
[0185]
终端视觉和无人驾驶等领域,更多的是关注模型在特定硬件平台上的部署,人工设计的网络未必能够很好的满足硬件约束,因此使用本申请实施例提供的模型的获取方法可以快速构建出一些列满足要求的网络模型,以供业务训练人员选择。
[0186]
应理解,以上介绍的只是本申请实施例的模型的获取方法所应用的几个具体场景,本申请实施例提供的模型的获取方法在应用时并不限于上述场景,其能够应用到任何需要选择模型进行图像分类或者图像识别等的场景中,只要能使用模型的领域和设备,都可应用本申请实施例提供的模型的获取方法以及最终基于任务训练好的目标模型,此处不再举例示意。
[0187]
在上述所对应的实施例的基础上,为了更好的实施本申请实施例的上述方案,下面还提供用于实施上述方案的相关设备。具体参阅图16,图16为本申请实施例提供的计算机设备的一种结构示意图,计算机设备1600包括:构建模块1601、预测模块1602、选择模块1603、训练模块1604,其中,构建模块1601,用于基于约束条件构建模型集,所述模型集包括至少两个在第一数据集上预训练过的模型;预测模块1602,用于通过构建的第一预测器预测所述模型集中任意一个模型对第二数据集的第一输出精度,其中,每个模型对应一个第一输出精度,所述每个模型对应一组超参数,所述超参数通过在超参数空间采样得到,也就是说,在模型的超参数为第一超参数的情况下,通过构建的第一预测器预测模型集中的任意一个模型对第二数据集的第一输出精度,该第一超参数为在超参数空间采样得到的任意一组超参数,所述第二数据集包括采集到的任意一个数据集;选择模块1603,用于确定所述模型中第一输出精度满足第一预设条件的模型为目标模型,所述目标模型对应的超参数为目标超参数;训练模块1604,用于基于所述目标超参数,根据所述第二数据集对所述目标模型进行训练,得到训练后的目标模型。
[0188]
在本申请上述实施方式中,综合考虑了模型的选择和超参数的选择,用于通过构建的第一预测器快速预测基于约束条件构建的模型集中每个模型在不同超参数情况下针对新任务的性能表现,并从中选择满足预设条件(如,模型的输出精度取值最大)的模型和超参数作为最终处理新任务(即第二数据集)的目标模型和目标超参数。针对新任务,该方法基于用户给定的约束条件,可高效选择出合适的模型和超参数,从而节约了训练时间和算力成本。也就是说,本申请实施例所达到的技术效果是:在实际业务交付过程中,在有限
的时间内对一个新任务(即第二数据集),找到合适的模型,并将其训练到达到交付要求的精度,也就是针对新任务要选择出一个最好的模型和一组最好的超参。
[0189]
在一种可能的设计中,所述预测模块1602,具体用于:对所述超参数(即上述的第一超参数)、模型集里的任意一个模型及所述第二数据集分别进行编码,分别得到超参数编码、该模型编码及第二数据集编码;将所述超参数编码、该模型编码及所述第二数据集编码输入所述第一预测器,输出所述任意一个模型在所述第一超参数情况下对所述第二数据集的第一输出精度。
[0190]
在本申请上述实施方式中,具体阐述了构建的第一检测器的输入数据和输出数据分别是什么,具备可实现性。
[0191]
在一种可能的设计中,所述训练模块1604,还用于:在得到训练后的目标模型之后,根据第二输出精度、所述第二数据集、所述目标超参数及所述目标模型更新所述第一预测器的参数,所述第二输出精度为所述训练后的目标模型对所述第二数据集的输出精度。
[0192]
在本申请上述实施方式中,对于已处理完的第二数据集,可根据第二输出精度、第二数据集等更新该第一预测器,从而可提升该第一预测器的预测精度,第一输出精度是预测器粗略预测的,第二输出精度就是真实训练得到的,通过真实训练的输出精度去更新第一预测器的参数,那么第一预测器的检测精度相应就会提高。
[0193]
在一种可能的设计中,该选择模块1603,具体用于:从所述模型中选取第一输出精度取值最大的模型为所述目标模型。也就是说,目标输出精度在所述第一输出精度中取值最大,这里还需要注意的是,评价一个模型的性能,除了可以是通过输出精度,还可以是其他的,比如,错误率越小,则性能越好等,在本申请实施例中,仅是以输出精度为例进行说明。
[0194]
在本申请上述实施方式中,从模型中确定出目标模型的方式可以是:在所有第一输出精度中选择取值最大的那个第一输出精度对应的模型作为本申请实施例所述的目标模型,一般来说,输出精度越大,说明该模型在对应超参数情况下的检测性能越好,据此可选择出配置最优的模型和超参数。
[0195]
在一种可能的设计中,所述构建模块1601,具体用于:首先基于约束条件先构建初始模型集,该初始模型集就包括至少两个训练后的初始模型,其中,每个初始模型是根据已有的开放的第一数据集训练得到的;之后,根据所述训练后的初始模型对构建的第二预测器进行训练,得到训练后的第二预测器;通过演化算法(ea)得到每个初始模型各自对应的一组衍生模型,每组衍生模型包括至少一个衍生模型;通过所述训练后的第二预测器对每个衍生模型进行处理,得到每个衍生模型对所述第一数据集的第三输出精度;根据所述第三输出精度从所述衍生模型中选取目标衍生模型。所述训练模块1604,还用于根据所述第一数据集对所述目标衍生模型进行训练,得到训练后的目标衍生模型,所述训练后的初始模型及所述训练后的目标衍生模型构成所述模型集。
[0196]
在本申请上述实施方式中,具体阐述了如何基于约束条件构建模型集,即先基于约束条件构建初始模型集,再以初始模型集中的初始模型作为种子,通过演化算法衍生出一系列衍生模型,并从中选择出目标衍生模型进行训练,从而训练后的目标衍生模型和开始得到的训练后的初始模型共同构成本申请实施例所述的模型集,这种构建方式可累积到满足约束条件的各种模型,并且第二预测器可快速筛选出合适的模型,节省了搜索时间。
[0197]
在一种可能的设计中,所述构建模块1601,具体还用于:根据约束条件确定搜索空间,所述搜索空间包括多种网络结构单元(block)及所述多种网络结构单元之间的连接关系;之后,从所述搜索空间随机采样至少两个初始模型。所述训练模块1604,还用于根据所述第一数据集对所述初始模型进行训练,得到训练后的初始模型,所述初始模型集包括所述训练后的初始模型。
[0198]
在本申请上述实施方式中,阐述了如何根据约束条件构建初始模型集,即先根据约束条件确定搜索空间,然后从搜索空间采样组合得到初始模型。这种构建方式一方面除了可以遍历到所有可能的架构之外,还可以组合得到目前没有或大家想不到的模型的架构组织方式,具备完备性。
[0199]
在一种可能的设计中,所述训练模块1604,具体用于:将所述至少两个初始模型融合成一个第一模型;根据所述第一数据集对所述第一模型进行训练,得到训练后的第一模型,这样通过对一个模型的训练就可得到所有初始模型的模型精度;最后,将所述训练后的第一模型拆解为训练后的初始模型。
[0200]
在本申请上述实施方式中,阐述了如何对多个初始模型进行联合训练,即将采样得到的至少两个初始模型融合成一个超网(即第一模型),这样可以采用参数共享的方式进行训练,训练完后再拆解开,从而通过对一个模型的训练就可得到所有初始模型的检测精度,加快了对所有初始模型训练进度,相比一个一个单独训练各个初始模型节约了训练时间。
[0201]
在一种可能的设计中,所述目标衍生模型为多个,所述训练模块1604,具体还用于:将多个目标衍生模型融合成一个第二模型;根据所述第一数据集对所述第二模型进行训练,得到训练后的第二模型;将所述训练后的第二模型拆解为训练后的目标衍生模型。
[0202]
在本申请上述实施方式中,当目标衍生模型有多个时,阐述了如何对多个目标衍生模型进行联合训练,即将采样得到的多个目标衍生模型融合成一个超网(即第二模型),这样依然可以采用参数共享的方式进行训练,训练完后再拆解开,从而通过对一个模型的训练就可得到所有目标衍生模型的检测精度,加快了对所有目标衍生模型训练进度,相比一个一个单独训练各个目标衍生模型节约了训练时间。
[0203]
在一种可能的设计中,所述构建模块1601,具体还用于:对所述训练后的初始模型的图结构进行编码,得到图编码;之后,根据所述图编码训练图卷积神经网络(gcn)和贝叶斯回归器,得到训练后的gcn和训练后的贝叶斯回归器,所述gcn和所述贝叶斯回归器构成所述第二预测器,所述训练后的gcn和训练后的贝叶斯回归器构成所述训练后的第二预测器。
[0204]
在本申请上述实施方式中,阐述了第二预测器可以是“gcn+贝叶斯回归器”,当第二预测器是“gcn+贝叶斯回归器”,那么需要对训练后的初始模型的图结构进行编码,编码得到的各个初始模型对应的图编码才能作为gcn的输入数据,利用gcn提取每个图编码的特征,从而避免手工设计核函数来评估网络架构之间的距离。之后gcn的输出作为贝叶斯回归器的输入,该贝叶斯回归器的作用主要是用来评估模型性能的均值和方差,具备可实现性。
[0205]
在一种可能的设计中,所述构建模块1601,具体还用于:从所有衍生模型中选取第三输出精度大于预设值的衍生模型作为该目标衍生模型;或,从所有衍生模型中选取第三输出精度取值较大的前n个衍生模型作为该目标衍生模型,n≥1;或,根据第三输出精度的
均值和方差得到每个衍生模型对应的置信上界(ucb),并从所有衍生模型中选取置信上界取值较大的前m个衍生模型作为该目标衍生模型,m≥1。
[0206]
在本申请上述实施方式中,阐述了根据各个衍生模型对应的第三输出精度从所有衍生模型中选取目标衍生模型有多种实现方式,具备可选择性和灵活性。
[0207]
在一种可能的设计中,该计算机设备1600还可以包括:触发模块1605,该触发模块1605用于将所述模型集作为新的初始模型集,并将所述目标衍生模型作为新的初始模型,重复执行上述构建模块1601所执行的步骤直至达到第二预设条件。
[0208]
在本申请上述实施方式中,阐述可将模型集内的各个模型重新作为新的初始模型继续构建新的衍生模型以及选择新的目标衍生模型,直至达到预设条件,可使得模型集累积到足够满足要求的模型。
[0209]
在一种可能的设计中,该第二预设条件可根据用户需求自行设置,例如,该第二预设条件可以是模块库内的模型数量达到预设数量,假设预设数量为13,而当前轮次得到的模型集包括14个模型,那么说明达到了第二预设条件,因此该包括14个模型的模型集就为最终构建得到的模型集;又例如,该第二预设条件还可以是模型集内的模型满足的约束条件达到预设要求,例如,假设约束条件一共有3种类型,用户要求每种类型的约束条件都需要达到一定数量,这样做的目的是为了使得模型集累积到满足不同约束条件的模型。
[0210]
在本申请上述实施方式中,阐述了第二预设条件的几种具体表现形式,具备灵活性。
[0211]
在一种可能的设计中,所述约束条件包括:模型大小、模型推理时延、模型训练时延、硬件部署条件、片上内存大小中的任意一个或多个。举例来说,有些新任务(如,自动驾驶车辆获取的图片、音频等数据集)对模型推理时延要求比较高,因为自动驾驶车辆对实时性要求高;而有些新任务(如,手机等终端设备)对占据片上内存大小有较高要求,这是因为手机等手持终端的存储空间有限。
[0212]
在本申请上述实施方式中,阐述了约束条件可以是哪些类型,这是因为不同的新任务对模型有不同的约束条件,在本申请实施例中,可基于新任务(可以是一个或多个)的不同应用场景得到不同的约束条件,从而基于约束条件构建满足各个新任务的模型集,具备完备性。
[0213]
在一种可能的设计中,该计算机设备1600还可以包括:部署模块1606,该部署模块1606,用于将所述训练后的目标模型部署在执行设备上,以使得所述执行设备通过所述训练后的目标模型对输入的目标数据进行处理。例如,可以部署在手机、个人电脑、智能手表等智能终端上,也可以部署在自动驾驶车辆、网联汽车、智能汽车等可移动终端设备上,具体此处不做限定。
[0214]
在本申请上述实施方式中,阐述了基于第二数据集训练得到的目标模型可以部署在执行设备上进行实际应用。
[0215]
需要说明的是,图16对应实施例所述的计算机设备1600中各模块/单元之间的信息交互、执行过程等内容,与本申请中图4对应的实施例基于同一构思,具体内容可参见本申请前述所示实施例中的叙述,此处不再赘述。
[0216]
接下来介绍本申请实施例提供的另一种计算机设备,请参阅图17,图17为本申请实施例提供的计算机设备的一种结构示意图,计算机设备1700上可以部署有图16对应实施
例中所描述的计算机设备1600,用于实现图4对应实施例中各步骤的功能,具体的,计算机设备1700由一个或多个服务器实现,计算机设备1700可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,cpu)1722(例如,一个或一个以上中央处理器)和存储器1732,一个或一个以上存储应用程序1742或数据1744的存储介质1730(例如一个或一个以上海量存储设备)。其中,存储器1732和存储介质1730可以是短暂存储或持久存储。存储在存储介质1730的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对计算机设备1700中的一系列指令操作。更进一步地,中央处理器1722可以设置为与存储介质1730通信,在计算机设备1700上执行存储介质1730中的一系列指令操作。
[0217]
计算机设备1700还可以包括一个或一个以上电源1726,一个或一个以上有线或无线网络接口1750,一个或一个以上输入输出接口1758,和/或,一个或一个以上操作系统1741,例如windows servertm,mac os xtm,unixtm,linuxtm,freebsdtm等等。
[0218]
本申请实施例中,中央处理器1722,用于执行图4对应实施例中的目标模型的获取方法。具体地,中央处理器1722用于:首先,基于约束条件构建模型集,该模型集中包括至少两个已经在第一数据集上(如,开放的imagenet数据集)预训练过的模型,在基于约束条件构建好模型集之后,那么该模型集就包括至少两个在第一数据集上预训练过的模型(即训练后的初始模型和训练后的目标衍生模型),之后,在超参数空间进行随机采样,得到一组超参数,这组随机采样得到的超参数就称为第一超参数,之后通过构建的第一预测器预测模型集中的任意一个模型对第二数据集的第一输出精度,其中,每个模型对应一个第一输出精度,例如,可以是预测模型集中的一个模型的输出精度,也可以是预测模型集中的多个模型各自对应的输出精度,还可以是预测模型集中的每个模型的输出精度,此处不做限定,且每个模型都对应会有一个超参数(即第一超参数),也就是说,在模型的超参数设置为该第一超参数的情况下,通过构建的另一预测器(可称为第一预测器)预测该模型集里的任意一个模型对第二数据集的输出精度(可称为第一输出精度),其中,该第二数据集即为新任务的数据集。当得到的所有第一输出精度中,存在一个满足预设条件(可称为第一预设条件)的输出精度,则该满足第一预设条件的输出精度就称为目标输出精度,与该目标输出精度对应的模型和超参数则称为目标模型及目标超参数,之后,就将该目标模型和该目标超参数作为最终处理该第二数据集的模型和超参数,也就是说,选择该目标模型和该目标超参数在新的第二数据集上进行迁移学习。通过上述步骤从模型集和超参数空间确定出目标模型和目标超参数后,就可基于该目标超参数,根据该第二数据集对该目标模型进行训练,从而得到训练后的目标模型。
[0219]
需要说明的是,中央处理器1722执行上述各个步骤的具体方式,与本申请中图4对应的方法实施例基于同一构思,其带来的技术效果与本申请中图4对应的实施例相同,具体内容可参见本申请前述所示的方法实施例中的叙述,此处不再赘述。
[0220]
本申请实施例中还提供一种计算机可读存储介质,该计算机可读存储介质中存储有用于进行信号处理的程序,当其在计算机上运行时,使得计算机执行如前述所示实施例描述中执行设备所执行的步骤。
[0221]
本申请实施例提供的计算机设备具体可以为芯片,芯片包括:处理单元和通信单元,所述处理单元例如可以是处理器,所述通信单元例如可以是输入/输出接口、管脚或电
路等。该处理单元可执行存储单元存储的计算机执行指令,以使计算机设备内的芯片执行上述图4所示实施例描述的模型的获取方法。可选地,所述存储单元为所述芯片内的存储单元,如寄存器、缓存等,所述存储单元还可以是所述无线接入设备端内的位于所述芯片外部的存储单元,如只读存储器(read-only memory,rom)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,ram)等。
[0222]
具体的,请参阅图18,图18为本申请实施例提供的芯片的一种结构示意图,所述芯片可以表现为神经网络处理器npu 200,npu 200作为协处理器挂载到主cpu(host cpu)上,由host cpu分配任务。npu的核心部分为运算电路2003,通过控制器2004控制运算电路2003提取存储器中的矩阵数据并进行乘法运算。
[0223]
在一些实现中,运算电路2003内部包括多个处理单元(process engine,pe)。在一些实现中,运算电路2003是二维脉动阵列。运算电路2003还可以是一维脉动阵列或者能够执行例如乘法和加法这样的数学运算的其它电子线路。在一些实现中,运算电路2003是通用的矩阵处理器。
[0224]
举例来说,假设有输入矩阵a,权重矩阵b,输出矩阵c。运算电路从权重存储器2002中取矩阵b相应的数据,并缓存在运算电路中每一个pe上。运算电路从输入存储器2001中取矩阵a数据与矩阵b进行矩阵运算,得到的矩阵的部分结果或最终结果,保存在累加器(accumulator)2008中。
[0225]
统一存储器2006用于存放输入数据以及输出数据。权重数据直接通过存储单元访问控制器(direct memory access controller,dmac)2005,dmac被搬运到权重存储器2002中。输入数据也通过dmac被搬运到统一存储器2006中。
[0226]
biu为bus interface unit即,总线接口单元2010,用于axi总线与dmac和取指存储器(instruction fetch buffer,ifb)2009的交互。
[0227]
总线接口单元2010(bus interface unit,简称biu),用于取指存储器2009从外部存储器获取指令,还用于存储单元访问控制器2005从外部存储器获取输入矩阵a或者权重矩阵b的原数据。
[0228]
dmac主要用于将外部存储器ddr中的输入数据搬运到统一存储器2006或将权重数据搬运到权重存储器2002中或将输入数据数据搬运到输入存储器2001中。
[0229]
向量计算单元2007包括多个运算处理单元,在需要的情况下,对运算电路的输出做进一步处理,如向量乘,向量加,指数运算,对数运算,大小比较等等。主要用于神经网络中非卷积/全连接层网络计算,如batch normalization(批归一化),像素级求和,对特征平面进行上采样等。
[0230]
在一些实现中,向量计算单元2007能将经处理的输出的向量存储到统一存储器2006。例如,向量计算单元2007可以将线性函数和/或非线性函数应用到运算电路2003的输出,例如对卷积层提取的特征平面进行线性插值,再例如累加值的向量,用以生成激活值。在一些实现中,向量计算单元2007生成归一化的值、像素级求和的值,或二者均有。在一些实现中,处理过的输出的向量能够用作到运算电路2003的激活输入,例如用于在神经网络中的后续层中的使用。
[0231]
控制器2004连接的取指存储器(instruction fetch buffer)2009,用于存储控制器2004使用的指令;
[0232]
统一存储器2006,输入存储器2001,权重存储器2002以及取指存储器2009均为on-chip存储器。外部存储器私有于该npu硬件架构。
[0233]
其中,上述任一处提到的处理器,可以是一个通用中央处理器,微处理器,asic,或一个或多个用于控制上述第一方面方法的程序执行的集成电路。
[0234]
另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本申请提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。
[0235]
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用cpu、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本申请而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、u盘、移动硬盘、只读存储器(read only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,或者网络设备等)执行本申请各个实施例所述的方法。
[0236]
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
[0237]
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(digital video disc,dvd)、或者半导体介质(例如固态硬盘(solid state disk,ssd))等。