机器学习模型中超参数的调优方法、装置、设备及介质与流程

文档序号:16680389发布日期:2019-01-19 00:22阅读:409来源:国知局
机器学习模型中超参数的调优方法、装置、设备及介质与流程

本发明总体来说涉及机器学习领域,更具体地讲,涉及一种机器学习模型中超参数的调优方法和调优装置,以及一种计算设备及一种非暂时性机器可读存储介质。



背景技术:

在训练机器学习模型前,需要确定训练机器学习模型时使用的超参数。超参数可以视为机器学习模型的框架参数,是从更高的一个层次来对机器学习模型进行描述的参数。例如,超参数可以是描述机器学习模型的学习速率、节点的dropout(丢弃)率、batchsize(批尺寸)等的多种参数。

目前,在机器学习模型的训练过程中,主要是通过手动调参的方式确定合适的超参数,这种调参方式耗费巨大的精力与时间,且非常依赖个人经验。因此,需要一种能够有效减少人工消耗的超参数调优方案。



技术实现要素:

本发明的一个目的在于提供一种能够有效减少人工消耗的超参数调优方案。

根据本发明的第一个方面,提出了一种机器学习模型中超参数的调优方法,包括:获取用于训练机器学习模型的模板代码,其中,模板代码中标识出了一种或多种超参数中每种超参数各自的取值集合;对模板代码进行解析,以识别一种或多种超参数各自的取值集合;基于一种或多种超参数各自的取值集合,生成一种或多种超参数的至少部分取值组合;获取按照至少部分取值组合中的每种取值组合来训练机器学习模型所得到的关于模型效果的评测结果;以及基于评测结果,确定机器学习模型的一种或多种超参数的优化取值。

可选地,获取按照至少部分取值组合中的每种取值组合来训练机器学习模型所得到的关于模型效果的评测结果包括:基于对模板代码进行解析的结果,生成与至少部分取值组合中的每种取值组合分别对应的多份可执行代码;通过运行多份可执行代码来训练机器学习模型,并获得相应的评测结果。

可选地,模板代码中还定义了评测标准;通过运行多份可执行代码来训练机器学习模型,并获得相应的评测结果包括:根据评测标准,运行各份可执行代码,并获得相应的评测结果。

可选地,模板代码中还定义了数据获取方法;运行多份可执行代码包括:根据数据获取方法,获得运行多份可执行代码所需的训练数据和/或测试数据。

可选地,取值集合具体为取值范围或取值列表。

可选地,一种或多种超参数分为第一超参数集合和第二超参数集合,第一超参数集合中的超参数的取值集合以取值列表的形式标识,第二超参数集合中的超参数的取值集合以取值范围的形式标识;基于一种或多种超参数各自的取值集合,生成一种或多种超参数的至少部分取值组合的步骤包括:确定第一超参数集合中的超参数的所有取值组合;针对所有取值组合中的每种取值组合,确定第二超参数集合中每种超参数的取值,以得到一种或多种超参数的至少部分取值组合。

可选地,针对所有取值组合中的每种取值组合,确定第二超参数集合中每种超参数的取值的步骤包括:基于第二超参数集合中每种超参数的取值范围,利用随机搜索方式、网格搜索方式或模拟退火方式确定第二超参数集合中每种超参数的取值。

可选地,基于一种或多种超参数各自的取值集合,生成一种或多种超参数的至少部分取值组合,获取按照至少部分取值组合中的每种取值组合来训练机器学习模型所得到的关于模型效果的评测结果,基于评测结果,确定指定机器学习模型的一种或多种超参数的优化取值包括:初始化种群为空集合,以及初始化历史搜索空间为空集合;在每一次搜索迭代过程中:从两个以上预设方式中随机选择一种方式来确定一种或多种超参数的新取值组合x′;判断x′是否属于历史搜索空间,是则丢弃x′并进入下一次搜索迭代过程,否则将x′加入历史搜索空间中,获取x′的评测结果,并将x′作为新的个体加入种群中;其中,当种群中的个体个数达到预设上限值时,抛弃种群中的评测结果最差的预设数量的个体;进入下一次搜索迭代过程;当满足搜索迭代终止条件时,从种群中选取评测结果最优的个体作为一种或多种超参数的优化取值。

可选地,判断x′是否属于历史搜索空间包括:判断搜索空间中是否存在x′的各超参数均处于其相应超参数的搜索步长内的取值组合,是则确定x′属于历史搜索空间,否则确定x′不属于历史搜索空间。

可选地,两个以上预设方式包括如下方式中的任意两种或三种:根据每个超参数的取值集合,随机确定相应超参数的取值,得到一个或多个超参数的新取值组合x′;从种群中的随机选取一个个体,对组成该个体的任一个超参数值进行突变,得到一个或多个超参数的新取值组合x′;从种群中随机选择两个个体进行交叉,得到一个或多个超参数的新取值组合x′。

可选地,对组成该个体的任一个超参数值进行突变包括:在该超参数的取值集合为取值列表的情况下,随机选择取值列表中另外一个取值,作为突变后的取值;以及/或者在该超参数的取值集合为取值范围的情况下,基于该超参数的取值范围,采用模拟退火方式确定该超参数突变后的取值。

可选地,取值集合是以不同于代码的形式标识的。

可选地,运行多份可执行代码包括:并行化地运行多份所述多份可执行代码。

根据本发明的第二个方面,还提供了一种机器学习模型中超参数的调优装置,包括:获取单元,用于获取用于训练机器学习模型的模板代码,其中,模板代码中标识出了一种或多种超参数中每种超参数各自的取值集合;解析单元,用于对模板代码进行解析,以识别一种或多种超参数各自的取值集合;取值组合生成单元,用于基于一种或多种超参数各自的取值集合,生成一种或多种超参数的至少部分取值组合;评测结果获取单元,用于获取按照至少部分取值组合中的每种取值组合来训练机器学习模型所得到的关于模型效果的评测结果;以及优化取值确定单元,用于基于评测结果,确定机器学习模型的一种或多种超参数的优化取值。

可选地,评测结果获取单元包括:生成单元,用于基于对模板代码进行解析的结果,生成与至少部分取值组合中的每种取值组合分别对应的多份可执行代码;运行单元,用于通过运行多份可执行代码来训练机器学习模型,并获得相应的评测结果。

可选地,模板代码中还定义了评测标准;运行单元用于根据评测标准,运行各份可执行代码,并获得相应的评测结果。

可选地,模板代码中还定义了数据获取方法;运行单元还用于根据数据获取方法,获得运行多份可执行代码所需的训练数据和/或测试数据。

可选地,取值集合具体为取值范围或取值列表。

可选地,一种或多种超参数分为第一超参数集合和第二超参数集合,第一超参数集合中的超参数的取值集合以取值列表的形式标识,第二超参数集合中的超参数的取值集合以取值范围的形式标识;取值组合生成单元包括:第一确定单元,用于确定第一超参数集合中的超参数的所有取值组合;和第二确定单元,用于针对所有取值组合中的每种取值组合,确定第二超参数集合中每种超参数的取值,以得到一种或多种超参数的至少部分取值组合。

可选地,第二确定单元用于基于第二超参数集合中每种超参数的取值范围,利用随机搜索方式、网格搜索方式或模拟退火方式确定第二超参数集合中每种超参数的取值。

可选地,取值组合生成单元用于初始化种群为空集合,以及初始化历史搜索空间为空集合;以及,取值组合生成单元用于在每一次搜索迭代过程中:从两个以上预设方式中随机选择一种方式来确定一种或多种超参数的新取值组合x′;判断x′是否属于历史搜索空间,是则丢弃x′并进入下一次搜索迭代过程,否则将x′加入历史搜索空间中,接收评测结果获取单元获取的x′的评测结果,将x′作为新的个体加入种群中;当种群中的个体个数达到预设上限值时,抛弃种群中的评测结果最差的预设数量的个体;进入下一次搜索迭代过程;优化取值确定单元用于当满足搜索迭代终止条件时,从种群中选取评测结果最优的个体作为一种或多种超参数的优化取值。

可选地,取值组合生成单元用于判断搜索空间中是否存在x′的各超参数均处于其相应超参数的搜索步长内的取值组合,是则确定x′属于历史搜索空间,否则确定x′不属于历史搜索空间。

可选地,取值组合生成单元用于在如下的任意两种或三种方式中随机选择一种方式来确定所述一种或多种超参数的新取值组合x′:根据每个超参数的取值集合,随机确定相应超参数的取值,得到一个或多个超参数的新取值组合x′;从种群中的随机选取一个个体,对组成该个体的任一个超参数值进行突变,得到一个或多个超参数的新取值组合x′;从种群中随机选择两个个体进行交叉,得到一个或多个超参数的新取值组合x′。

可选地,取值组合生成单元用于在超参数的取值集合为取值列表的情况下,随机选择取值列表中另外一个取值,作为突变后的取值;并且/或者,取值组合生成单元用于在超参数的取值集合为取值范围的情况下,基于该超参数的取值范围,采用模拟退火方式确定该超参数突变后的取值。

可选地,取值集合是以不同于可执行代码的形式标识的。

可选地,运行单元,用于并行化地运行多份所述多份可执行代码。

根据本发明的第三个方面,还提供了一种计算设备,包括:处理器;以及存储器,其上存储有可执行代码,当可执行代码被处理器执行时,使处理器执行如本发明第一个方面或第二个方面述及的方法。

根据本发明的第四个方面,还提供了一种非暂时性机器可读存储介质,其上存储有可执行代码,当可执行代码被电子设备的处理器执行时,使处理器执行如本发明第一个方面或第二个方面述及的方法。

本发明提出了一种机器学习(如深度学习)中的超参数的调优方法,通过采取模板的方式组织超参数,然后根据模板中设置的超参数的取值集合进行搜索生成多组代码自动训练运行,最终得到效果较好的超参数列表,从而有效地提高机器学习(如深度学习)的开发效率。

附图说明

通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。

图1示出了根据本发明示例性实施例的机器学习模型中超参数的调优方法的流程图;

图2示出了本发明示例性实施例的基于遗传算法确定优化取值的流程图;

图3示出了本发明示例性实施例的机器学习模型中超参数的调优装置的结构框图;

图4示出了图3中的取值组合生成单元可以具有的功能模块的结构框图;

图5示出了图3中的评测结果获取单元可以具有的功能模块的结构框图;

图6是示出了根据本发明示例性实施例的超参数调节系统的结构示意图;

图7示出了根据本发明示例性实施例的计算设备的结构示意图。

具体实施方式

下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。

图1示出了根据本发明示例性实施例的机器学习模型中超参数的调优方法的流程图。

参见图1,在步骤s110,获取用于训练机器学习模型的模板代码。

本发明述及的模板代码与机器学习(如深度学习)训练的代码类似,可以包括用于执行机器学习训练的代码。区别之一在于,本发明述及的模板代码中还标识出了待调优的超参数的取值集合。也就是说,模板代码除了包括用于训练机器学习模型的代码外,还定义了一种或多种待调优的超参数(如dropout率、batch大小、优化器的选取等等)中每种超参数的取值集合。取值集合可以视为超参数的搜索空间,包括了超参数的所有可能取值。而超参数的所有可能取值可以是多个离散的数值,也可以是一个连续的取值范围。因此,取值集合具体可以是取值列表,也可以是取值范围。

每个超参数的取值集合可以以不同于普通代码的形式标识,以便于识别,并且不会与其他代码混淆。如可以在模板代码中以约定好的特殊标记标识取值集合,对于取值集合的具体标记形式,本发明不做限定,例如可以用两个(或更多个)花括号“{{}}”标记取值集合,即取值集合可以记在两个花括号内。举例来说,假设超参数a可以取32或64,那么超参数a的取值集合可以标记为取值列表的形式,如可以记为{{choice([32,64])}},另外假设超参数a的取值范围是1-10,那么超参数a的取值集合可以标记为取值范围的形式,如可以记为{{range(1,10)}}。这里是对超参数的取值范围的标识形式的举例说明,在本发明的其他实施例中还可以采用其他的便于识别的方式对超参数的取值范围进行标识。

在步骤s120,对模板代码进行解析,以识别一种或多种超参数各自的取值集合。

模板代码中标识出了一种或多种超参数中每种超参数各自的取值集合。因此,可以对模板代码进行解析,以识别模板代码中定义的每种超参数的取值集合。如上文所述,取值集合可以是以不同于代码的形式标识的,因此可以通过查找模板代码中不同于普通代码的部分来识别取值集合,如可以通过查找特定标识(如双花括号)的方式,来定位取值集合,并识别取值集合。

在步骤s130,基于一种或多种超参数各自的取值集合,生成一种或多种超参数的至少部分取值组合。

可以遍历模板代码中的所有超参数的取值集合,得到所有可能的取值组合。另外,也可以从所有可能的取值组合中选取部分取值组合。

如上文所述,超参数的取值集合可以是取值范围,也可以是取值列表。因此,作为本发明的一个示例,可以将识别出的超参数分为第一超参数集合和第二超参数集合,第一超参数集合是以取值列表的形式标识的超参数的集合,第二超参数集合是以取值范围的形式标识的超参数的集合。可以首先针对第一超参数集合,确定第一超参数集合中的超参数的所有取值组合,然后针对所有取值组合中的每种取值组合,进一步确定第二超参数集合中每种超参数的取值。由此,可以得到针对模板代码中所有超参数的取值组合。举例来说,假设模板代码中有a、b、c、d四个超参数,a、b的取值集合是取值列表,c、d的取值集合是取值范围,首先可以得到a和b的所有取值组合(为了便于区分,这里称为“子组合”),然后针对每个子组合,可以分别将c视为一个维度,d视为另一个维度,得到该子组合下c、d的取值,如可以通过随机搜索、网格搜索、模拟退火、遗传算法、基于模拟退火的遗传算法等方式得到每个子组合下c和d的取值。由此,可以得到针对a、b、c、d的多个取值组合。

1、网格搜索

网格搜索是指针对第一超参数集合中的每种取值组合x1,对第二超参数集合中的取值组合x2进行暴力穷举搜索,并计算评估每个取值组合x2对模型性能的影响,以得到最优的取值组合x2,最优的取值组合x2和取值组合x1就构成了一个完整的取值组合x,进而可以得到多个取值组合。

2、随机搜索

随机搜索是指针对第一超参数集合中的每种取值组合x1,对第二超参数集合中的取值组合x2进行随机搜索,并计算评估每个随机选取的取值组合x2对模型性能的影响,从随机选取的多个取值组合x2中选取最优的取值组合x2,选取的取值组合x2和取值组合x1就构成了一个完整的取值组合x,进而可以得到多个取值组合。

3、模拟退火

模拟退火是一种通用概率演算法,用来在一个大的搜寻空间内找寻命题的最优解。与网格搜索和随机搜索不同,模拟退火的下一次选取会依赖于上一次的选取结果。

在本发明中,针对第一超参数集合中的每种取值组合x1,可以从第二超参数集合中随机选取一个取值组合x2,然后按照取值组合x1和取值组合x2进行模型训练,并得到关于模型效果的评测结果。基于评测结果,再从第二超参数集合中选取新的取值组合x2,然后再按照取值组合x1和新的取值组合x2进行模型训练,并得到新的关于模型效果的评测结果。以此类推,最终可以得到评测结果最佳的取值组合x2。最终得到的取值组合x2和取值组合x1就构成了一个完整的取值组合,进而可以得到多个取值组合。关于模拟退火的具体实现机制,可以参见现有的模拟退火理论,此处不再赘述。

在步骤s140,获取按照至少部分取值组合中的每种取值组合来训练机器学习模型所得到的关于模型效果的评测结果。

对于通过步骤s130得到的多种取值组合,可以按照每种取值组合来训练机器学习模型,并可以基于预定的评测标准(如准确率)得到关于模型效果的评测结果,如可以得到能够表征模型效果的得分值。

如上文所述,模板代码中包括用于训练机器学习模型的代码,因此可以基于对模板代码进行解析得到的结果,生成与通过步骤s130得到的多种取值组合中的每种取值组合分别对应的多份可执行代码,通过运行(如并行化运行)这多份可执行代码来训练机器学习模型,并获得相应的评测结果。

作为本发明的一个示例,模板代码中每种超参数的取值集合可以位于用于读取该超参数的取值的位置。由此,对于通过步骤s130得到的多种取值组合,可以直接将每种取值组合中各个超参数的取值分别替换模板代码中对应位置处的取值集合,如此就可以得到能够按照该取值组合训练模型的代码。即在将模板代码中各个取值集合用取值组合中相应的超参数的取值替换后,可以直接对得到的模板代码进行编译,生成可执行代码。

可选地,模板代码中还可以定义评测标准,如可以定义一个评测方法,可以通过调用该方法来获得模型的评测结果。例如,可以按照预定的函数名称明确定义出评测方法,例如可以auc(准确率)评测方法、基于auc的进一步处理(如加根号)的评测方法等等。由此,在对模板代码进行解析后,可以得到用于训练机器学习模型的代码、超参数的取值集合以及评测方法。基于用于训练机器学习模型的代码,以及用于对模型效果进行评价的评测方法,可以生成与每种取值组合分别对应的多份可执行代码,通过运行各份可执行代码,就可以获得相应的评测结果。

另外,模板代码中还可以定义训练数据和/或测试数据的获取方法,根据该方法可以获取训练数据和/或测试数据。由此,可以防止重复获取数据导致的资源浪费。

在步骤s150,基于评测结果,确定机器学习模型的一种或多种超参数的优化取值。

在得到多种取值组合的评测结果后,可以选取评测结果最好的取值组合,如可以选取得分最高的取值组合,所选取的取值组合中各个超参数的取值即为其优化取值。由此,在后续训练机器学习模型时,就可以按照确定的各个超参数的优化取值进行模型训练。

综上,本发明中的模板代码中除了可以包括训练机器学习模型的代码外,还可以包括超参数的取值集合,并且可选地还可以包括数据获取方法以及评测方法。由此,用户只需要将待调优的超参数的取值集合填入模板代码中,根据模板代码获取超参数的取值组合,生成多份超参数不同的代码,在这多份代码运行完毕后,可以返回评测结果最佳的超参数组合,从而可以有效减少人工调参的消耗。并且,生成的多份代码可以使用多进程的方式并行运行,以提高超参数的调优效率。

进一步地,本发明还提出了一种基于遗传算法确定机器学习模型的一种或多种超参数的优化取值的方案。

图2示出了本发明示例性实施例的基于遗传算法确定优化取值的流程图。

在本实施例中,可以定义遗传算法中的种群为各超参数的取值组合x与对应的搜索步长r的集合,令超参数取值空间为是一组超参数的取值组合,n是超参数的个数,r={r1,r2,…,rn}是每个超参数对应的搜索步长。对于取值集合是取值列表类型的超参数,可以认为其搜索步长恒定为1;对于取值集合是取值范围类型的超参数,其搜索步长可以逐步变化,如采用模拟退火方式时搜索步长可以随着模拟退火的进行步长逐步缩减。

在本实施例中,对于取值集合是取值范围类型的超参数,定义遗传算法的突变为在搜索步长为ri的条件下对该维度进行模拟退火,以寻找一个最优参数取值。其中,模拟退火操作完成后搜索步长可以缩减为ri(t+1)=α·ri(t),0<α<1。

对于取值集合是取值列表类型的超参数,定义遗传算法的突变为随机选择取值列表中另外一个取值。定义遗传算法的交叉为随机利用种群中的两个个体xi和xj的参数产生新的个体x′,即:

其中,random(0,1)用于均匀生成0到1之间的随机数;μc是交叉概率,取0到1之间的数值。

参见图2,包括如下步骤:

步骤s210,首先初始化种群为空集合,以及初始化历史搜索空间为空集合。

步骤s220,从步骤s230、步骤s240、步骤s250中随机选择一个分支执行。

在每一次搜索迭代过程中,可以从两个以上预设方式中随机选择一种方式来确定新取值组合x′。作为示例,两个以上预设方式可以包括步骤s230、步骤s240和步骤s250中所述方式中的任意两种或三种,在本实施例中是三种。

步骤s230,随机生成新个体x′,执行步骤s260。

在本步骤中,根据每个超参数的取值集合,随机确定相应超参数的取值,得到新取值组合x′。

步骤s240,随机选择种群中的一个个体进行突变得到x′,执行步骤s260。

在本步骤中,从种群中随机选取一个个体,对组成该个体的任一个超参数值进行突变,得到新取值组合x′。作为本发明的一个示例,在该超参数的取值集合为取值列表的情况下,随机选择所述取值列表中另外一个取值,作为突变后的取值。在该超参数的取值集合为取值范围的情况下,可以采用模拟退火方式确定该超参数突变后的取值。

步骤s250,随机选择种群中的两个个体进行交叉得到x′,执行步骤s260。

在本步骤中,从种群中随机选择两个个体进行交叉,得到新取值组合x′。例如,假设第一个个体是【a1,b1,c1,d1】,第二个个体是【a2,b2,c2,d2】,则可以从a1和a2中进行随机选择,从b1和b2中进行随机选择,以此类推。例如,得到的新取值组合x′可以是【a1,b2,c2,d1】。

如图2所示,可以随机选择步骤s230、步骤s240和步骤s250三种方式中的任一种得到新取值组合x′。

步骤s260,在得到新取值组合x′后,判断x′是否属于历史搜索空间,是则丢弃x′并进入下一次搜索迭代过程,即返回步骤s220,否则执行步骤s270。

步骤s270,将x′加入历史搜索空间中,并获取x′的评测结果,并将x′作为新的个体加入种群中。

作为本发明的一个示例,可以判断x′是否属于历史搜索空间中某个取值组合的搜索范围内,即判断搜索空间中是否存在x’的各超参数均处于其相应超参数的搜索步长内的取值组合,也即

步骤s280,淘汰种群中的末尾个体,返回步骤s220。

当种群中的个体个数达到预设上限值时,可以抛弃种群中的评测结果最差的预设数量的个体,例如当加入新个体使种群中个体数量超过n时,可以抛弃评估函数得分最少的n/2个体。然后可以进入下一次搜索迭代过程,以此类推,可以当满足搜索迭代终止条件时,从种群中选取评测结果最优的个体作为模板代码中一种或多种超参数的优化取值。其中,迭代终止条件可以是多次迭代的最优评估函数都没有改进,或达到迭代次数上限。

另外,上文结合图2描述的方法还可以用于确定上文述及的第二超参数集合中每种超参数的取值。即针对第一超参数集合中的每种取值组合,基于第二超参数集合中每种超参数的取值范围,可以利用上文结合图2所示的方法来确定第二超参数集合中每种超参数的取值。

简要来说,可以定义遗传算法中的种群为第二超参数集合的取值组合x与对应的搜索步长r的集合,令第二超参数集合的取值空间为是一组超参数的取值,n是第二超参数集合中的超参数的个数,r={r1,r2,…,rn}是第二超参数集合中每个超参数对应的搜索步长,其搜索步长可以逐步变化,如可以随着模拟退火的进行步长逐步缩减。其中,关于算法的具体实现可以参见上文相关说明,此处不再赘述。

模拟退火在实际使用中存在两点问题。其一是假设了将超参数作为变量时,对应评估函数的空间是平滑,而实际中超参数的变动对应的评估结果可能存在不规则抖动,导致迭代过程无法准确地找到稳定的迭代方向。其二是现实中评估函数往往不存在单一的极值点,而模拟退火不断衰减的步长会让评估函数陷入一个局部的极值点,忽略了其它的搜索空间,极度依赖于初始点的选择。

对于评估函数空间不平滑的问题,本发明的如图2所示的结合遗传算法的模拟退火搜索方法通过突变和交叉减少了对于平滑假设的依赖,因为选择类型的超参数和交叉不依赖于评估函数的方向,即便存在不规则的抖动,种群的存在也保证较优的参数选择保存了下来,有足够的启发式搜索的空间。而对于局部极值点的问题,多个个体的存在保证了可以对多个极值点进行比较,交叉的操作也可以跳出局部位置,搜索新的空间。同时通过记录历史搜索空间,保证了不对重复区域进行搜索,减少了计算量。

图3是示出了根据本发明示例性实施例的机器学习模型中超参数的调优装置的结构框图。其中,机器学习模型中超参数的调优装置的功能模块可以由实现本公开原理的硬件、软件或硬件和软件的结合来实现。本领域技术人员可以理解的是,图3所描述的功能模块可以组合起来或者划分成子模块,从而实现上述发明的原理。因此,本文的描述可以支持对本文描述的功能模块的任何可能的组合、或者划分、或者更进一步的限定。

下面就机器学习模型中超参数的调优装置可以具有的功能模块以及各功能模块可以执行的操作做简要说明,对于其中涉及的细节部分可以参见上文相关的描述,这里不再赘述。

参见图3,机器学习模型中超参数的调优装置300包括获取单元310、解析单元320、取值组合生成单元330、评测结果获取单元340以及优化取值确定单元350。

获取单元310用于获取用于训练机器学习模型的模板代码,其中,模板代码中标识出了一种或多种超参数中每种超参数各自的取值集合。取值集合具体可以是取值列表,也可以是取值范围。取值集合可以以不同与代码的形式标识在模板代码中。其中,关于模板代码、取值集合以及取值集合在模板代码中的标识方式,均可以参见前文对图1中步骤s110的描述,这里不再赘述。

解析单元320用于对所述模板代码进行解析,以识别所述一种或多种超参数各自的取值集合。

模板代码中标识出了一种或多种超参数中每种超参数各自的取值集合。因此,解析单元320可以对模板代码进行解析,以识别模板代码中定义的每种超参数的取值集合。如上文所述,取值集合可以是以不同于代码的形式标识的,因此解析单元320可以通过查找模板代码中不同于普通代码的部分来识别取值集合,如可以通过查找特定标识(如双花括号)的方式,来定位取值集合,并识别取值集合。

取值组合生成单元330用于基于所述一种或多种超参数各自的取值集合,生成所述一种或多种超参数的至少部分取值组合。

如图4所示,取值组合生成单元330可以包括第一确定单元3310和第二确定单元3320。

在本实施中,模板代码中的超参数可以分为第一超参数集合和第二超参数集合,第一超参数集合中的超参数的取值集合以取值列表的形式标识,第二超参数集合中的超参数的取值集合以取值范围的形式标识。

第一确定单元3310用于确定第一超参数集合中的超参数的所有取值组合。第二确定单元3320用于针对第一超参数集合中的超参数的所有取值组合中的每种取值组合,确定所述第二超参数集合中每种超参数的取值,以得到模板代码中的超参数的至少部分取值组合。其中,基于所述第二超参数集合中每种超参数的取值范围,第二确定单元3320可以利用随机搜索方式、网格搜索方式或模拟退火方式确定所述第二超参数集合中每种超参数的取值。其中,关于随机搜索、网格搜索方式以及模拟退火,可以参见前文对图1中步骤s130的描述,这里不再赘述。另外,第二确定单元3320也可以利用图2所示的方法来确定第二超参数集合中每种超参数的取值,具体确定过程可以参见图2相关描述,此处不再赘述。

评测结果获取单元340用于获取按照所述至少部分取值组合中的每种取值组合来训练机器学习模型所得到的关于模型效果的评测结果。

如图5所示,评测结果获取单元340可以包括生成单元3410和运行单元3420。

模板代码中包括用于训练机器学习模型的代码,因此生成单元3410可以基于对模板代码进行解析的结果,生成与所述至少部分取值组合中的每种取值组合分别对应的多份可执行代码。运行单元3420用于通过运行(如并行化运行)所述多份可执行代码来训练机器学习模型,并获得相应的评测结果。

作为本发明的一个示例,模板代码中每种超参数的取值集合可以位于用于读取该超参数的取值的位置。由此,对于,取值组合生成单元330得到的多种取值组合,评测结果获取单元340可以直接将每种取值组合中各个超参数的取值分别替换模板代码中对应位置处的取值集合,如此就可以得到能够按照该取值组合训练模型的代码。即评测结果获取单元340在将模板代码中各个取值集合用取值组合中相应的超参数的取值替换后,可以直接对得到的模板代码进行编译,生成可执行代码。

在本发明的一个实施例中,模板代码中还定义了评测标准(也即评测函数)。运行单元3420还用于根据评测标准,运行各份可执行代码,并获得相应的评测结果。

在本发明的另一个实施例中,模板代码中还定义了数据获取方法(也即数据获取函数),运行单元3420还用于根据数据获取方法,获得运行所述多份可执行代码所需的训练数据和/或测试数据。

优化取值确定单元350用于基于评测结果,确定所述机器学习模型的所述一种或多种超参数的优化取值。

在得到多种取值组合的评测结果后,优化取值确定单元350可以选取评测结果最好的取值组合,如可以选取得分最高的取值组合,所选取的取值组合中各个超参数的取值即为其优化取值。由此,在后续训练机器学习模型时,就可以按照确定的各个超参数的优化取值进行模型训练。

作为本发明的一个示例,可以定义遗传算法中的种群为各超参数的取值组合x与对应的搜索步长r的集合,令超参数取值空间为是一组超参数的取值组合,n是超参数的个数,r={r1,r2,…,rn}是每个超参数对应的搜索步长。对于取值集合是取值列表类型的超参数,可以认为其搜索步长恒定为1;对于取值集合是取值范围类型的超参数,其搜索步长可以逐步变化,如采用模拟退火方式时搜索步长可以随着模拟退火的进行步长逐步缩减。

取值组合生成单元330可以用于初始化种群为空集合,以及初始化历史搜索空间为空集合。并且,取值组合生成单元330可以用于在每一次搜索迭代过程中:从两个以上预设方式中随机选择一种方式来确定一种或多种超参数的新取值组合x′;判断x′是否属于历史搜索空间,是则丢弃x′并进入下一次搜索迭代过程,否则将x′加入历史搜索空间中,接收评测结果获取单元340获取的x′的评测结果,将x′作为新的个体加入种群中;当种群中的个体个数达到预设上限值时,抛弃种群中的评测结果最差的预设数量的个体;进入下一次搜索迭代过程;优化取值确定单元350可以用于当满足搜索迭代终止条件时,从种群中选取评测结果最优的个体作为一种或多种超参数的优化取值。

在本发明的一个实施例中,取值组合生成单元330用于判断搜索空间中是否存在x′的各超参数均处于其相应超参数的搜索步长内的取值组合,是则确定x′属于历史搜索空间,否则确定x′不属于历史搜索空间。

在本发明的一个实施例中,取值组合生成单元330可以用于在如下的任意两种或三种方式中随机选择一种方式来确定所述一种或多种超参数的新取值组合x′:根据每个超参数的取值集合,随机确定相应超参数的取值,得到一个或多个超参数的新取值组合x′;从种群中的随机选取一个个体,对组成该个体的任一个超参数值进行突变,得到一个或多个超参数的新取值组合x′;从种群中随机选择两个个体进行交叉,得到一个或多个超参数的新取值组合x′。其中,在对组成该个体的任一个超参数值进行突变时,取值组合生成单元330可以用于在超参数的取值集合为取值列表的情况下,随机选择取值列表中另外一个取值,作为突变后的取值,并且/或者取值组合生成单元330还可以用于在超参数的取值集合为取值范围的情况下,采用模拟退火方式确定该超参数突变后的取值。

图6是示出了根据本发明示例性实施例的超参数调节系统的结构示意图。

如图6所示,超参数调节系统可以包括解析模块610、调参模块620以及评测模块630。

解析模块610的输入可以是用户提供的模板代码。在本实施例中,模板代码中是指与正常机器学习(如深度学习)训练类似的代码,区别之处在于:1、对于机器学习模型定义中候选的超参数(如dropout率,batch大小、优化器的选取等),使用特殊的标记(如双花括号)标识出取值集合(取值范围或者取值列表);2、根据约定的函数名称明确定义出训练数据和/或测试数据的获取方法(防止重复获取数据导致的资源浪费);3、按照约定的函数名称明确定义出评测方法(例如,auc、基于auc的进一步处理等评测方法)。

解析模块610可以对模板代码进行解析,以识别出其中需要调整的超参数的取值集合、评测方法、数据获取方法连同剩余的代码(训练机器学习模型的代码)。解析模块610解析得到的信息可以传递给调参模块620和评测模块630使用。

调参模块620可以根据解析模块610的解析结果,负责组织调参逻辑。简要来说,调参模块620可以根据需要调整的超参数的取值集合,生成多种取值组合,所得到的取值组合可以传递给评测模块630。评测模块630可以根据调参模块620给定的取值组合,以及解析模块610解析得到的代码(数据获取方法、模型训练代码、评测方法)来生成可执行代码,然后运行可执行代码得到分数(即,auc分数等评测标准下的得分),最终返回这个结果给调参模块。如此,调参模块可以最终选取评测结果最好的取值组合,确定为机器学习模型中超参数的优化取值。

在本实施例中,基于需要调整的超参数的取值集合,调参模块620可以和评测模块630配合,使用随机搜索、网格搜索、模拟退火、遗传算法等多种方式来确定取值组合及其评测结果。关于随机搜索、网格搜索、模拟退火、遗传算法等方式的实现原理,可以参见上文相关描述,此处不再赘述。

图7示出了根据本发明示例性实施例的计算设备的结构示意图。

参见图7,计算设备700包括存储器710和处理器720。

处理器720可以是一个多核的处理器,也可以包含多个处理器。在一些实施例中,处理器720可以包含一个通用的主处理器以及一个或多个特殊的协处理器,例如图形处理器(gpu)、数字信号处理器(dsp)等等。在一些实施例中,处理器720可以使用定制的电路实现,例如特定用途集成电路(asic,applicationspecificintegratedcircuit)或者现场可编程逻辑门阵列(fpga,fieldprogrammablegatearrays)。

存储器710可以包括各种类型的存储单元,例如系统内存、只读存储器(rom),和永久存储装置。其中,rom可以存储处理器720或者计算机的其他模块需要的静态数据或者指令。永久存储装置可以是可读写的存储装置。永久存储装置可以是即使计算机断电后也不会失去存储的指令和数据的非易失性存储设备。在一些实施方式中,永久性存储装置采用大容量存储装置(例如磁或光盘、闪存)作为永久存储装置。另外一些实施方式中,永久性存储装置可以是可移除的存储设备(例如软盘、光驱)。系统内存可以是可读写存储设备或者易失性可读写存储设备,例如动态随机访问内存。系统内存可以存储一些或者所有处理器在运行时需要的指令和数据。此外,存储器710可以包括任意计算机可读存储媒介的组合,包括各种类型的半导体存储芯片(dram,sram,sdram,闪存,可编程只读存储器),磁盘和/或光盘也可以采用。在一些实施方式中,存储器710可以包括可读和/或写的可移除的存储设备,例如激光唱片(cd)、只读数字多功能光盘(例如dvd-rom,双层dvd-rom)、只读蓝光光盘、超密度光盘、闪存卡(例如sd卡、minsd卡、micro-sd卡等等)、磁性软盘等等。计算机可读存储媒介不包含载波和通过无线或有线传输的瞬间电子信号。

存储器710上存储有可执行代码,当可执行代码被处理器720执行时,可以使处理器720执行上文述及的机器学习模型中超参数的调优方法。

上文中已经参考附图详细描述了根据本发明的机器学习模型中超参数的调优方法、装置及计算设备。

此外,根据本发明的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本发明的上述方法中限定的上述各步骤的计算机程序代码指令。

或者,本发明还可以实施为一种非暂时性机器可读存储介质(或计算机可读存储介质、或机器可读存储介质),其上存储有可执行代码(或计算机程序、或计算机指令代码),当所述可执行代码(或计算机程序、或计算机指令代码)被电子设备(或计算设备、服务器等)的处理器执行时,使所述处理器执行根据本发明的上述方法的各个步骤。

本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。

附图中的流程图和框图显示了根据本发明的多个实施例的系统和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1