资讯 社区 文档
技术能力
语音技术
文字识别
人脸与人体
图像技术
语言与知识
视频技术

自动搜索作业简介

自动搜索作业简介

超参搜索是机器学习/深度学习技术中的关键一环,无论是机器学习的树模型参数、特征选择、还是深度学习的学习率/权重衰减等等,甚至于网络结构的选择,都会涉及到搜索最优参数的需求。传统的人工超参搜索需要有经验的工程师耗费大量的时间和精力进行手动调优,而自动超参搜索能够在节省人力的情况下,自动地进行超参调优,更有效率地寻找最优解。

本模块提供的自动搜索作业,旨在帮助用户实现在各种AI框架以及各种应用场景下的超参搜索需求。用户只需上传数据及代码,指定训练框架、搜索算法以及需要搜索的超参数,即可完成超参搜索任务。

自动搜索作业目前支持以下5种超参搜索算法:

1.随机搜索
2.贝叶斯搜索
3.进化算法
4.进化-CMAES
5.粒子群算法

随机搜索

随机搜索作为最为常见的搜索算法之一,在搜索空间较大的场景中,拥有不错的表现。在每次试验中,算法会对每个参数进行随机取值并组合,作为新的一组建议超参用于训练。

算法参数 说明 取值参考
最大搜索次数/max_trial_num 算法给出的超参组合个数 int,默认值为10,越大,搜索时间越长,效果越好

贝叶斯搜索

贝叶斯搜索算法充分利用了之前试验的信息,假设超参数与最后的结果存在一个函数关系。通过历史试验的【超参数,对应的结果值】拟合一个目标函数,使目标函数最优的超参数组合作为新的一组建议超参用于训练。

算法参数 说明 取值参考
最大搜索次数/max_trial_num 算法给出的超参组合个数 int,默认值为10,越大,搜索时间越长,效果越好
初始点数量/n_startup_points 算法初始阶段采用随机搜索获取超参组合的个数 int,取值范围[1,20],默认值为5,一般不建议用户修改
最大并发量/max_concurrent 搜索任务中同时运行的最大任务数 int,取值范围[1,20],默认值为5,一般不建议用户修改

进化算法

进化算法采用的是PBT(Population based training)搜索算法,开始进行搜索时,会并行训练一批随机初始化超参数的模型。每隔一定的epoch,都会用表现较好的模型替换表现不好的模型,并且对超参数进行随机扰动,而表现较好的模型则继续训练。

算法参数 说明 取值参考
种群个体数量/population_num 算法每个轮次并行训练的模型数量 int,取值范围[1,10],默认值为8,一般不建议用户修改
最大轮次/round 每个轮次的间隔会发生模型间的继承与超参数的扰动 int,取值范围[5,50],默认值为10,一般不建议用户修改
扰动比例/quantile_frac 需要继承较好模型权重的较差模型比例 float,取值范围(0,0.5],默认值为0.5,一般不建议用户修改,即较差的一半模型会继承较好一半模型的权重
扰动间隔/perturb_interval 一个轮次中训练的epoch数量,扰动间隔与最大轮次的乘积等于一个模型最终训练的epoch数量 float,取值范围[1,20],默认值为10,越大,训练时间越长
随机初始化概率/explore_prob 较差模型在继承较优模型的权重和超参后,会以一定的概率随机初始化超参数,否则,仅对超参数进行轻微扰动 float,取值范围(0,0.5],默认值为0.25,一般不建议用户修改

进化-CMAES

CMAES(Covariance Matrix Adaptation Evolutionary Strategies)是协方差矩阵自适应进化算法,是最先进的优化算法之一,在进化算法中避免了对种群规模的依赖,小种群可快速收敛,大种群可更好地全局搜索。

算法参数 说明 取值参考
种群个体数量/population_num 算法每个轮次并行训练的模型数量 int,取值范围[1,10],默认值为8,一般不建议用户修改
最大轮次/round 进化轮次总数 int,取值范围[5,50],默认值为10,一般不建议用户修改
学习步长/step_size 种群每次迭代更新时的学习率 float,取值范围(0,10],默认值为1.0,一般不建议用户修改

粒子群算法

粒子群算法是一种源于对鸟群捕食行为的研究而发明的进化计算技术,算法初始化一组随机解,通过迭代搜寻最优解,不但具有全局寻优能力 ,而且具有较强的局部寻优能力。粒子群由 n个粒子组成,每个粒子代表一组超参数组合,在搜索空间中粒子以一定的速度飞行 , 这个速度根据它本身的飞行经验和同伴的飞行经验来动态调整,从而决定下一步的飞行方向和距离。

算法参数 说明 取值参考
种群个体数量/population_num 算法每个轮次并行训练的模型数量 int,取值范围[1,10],默认值为8,一般不建议用户修改
最大轮次/round 进化轮次总数 int,取值范围[5,50],默认值为10,一般不建议用户修改
惯性权重/inertia_weight 上一个批次的粒子速度占本批次的比例 float,取值范围(0,1],默认值为0.5,其值越大,全局寻优能力越强,局部寻优能力越弱
全局加速度/global_acceleration 反应种群最佳值对个体速度影响的程度,也被称为群体认知项,是一个从当前点指向种群最好点的矢量,反映了粒子间的协同合作和知识共享 int,取值范围(0,4],默认值为1.5,一般不建议用户修改
个体加速度/local_acceleration 反应个体最佳值对自身速度影响的程度,也被称为自身认知项,是从当前点指向粒子自身最好点的一个矢量,表示粒子的动作来源于自己经验的部分 int,取值范围(0,4],默认值为1.5,一般不建议用户修改
上一篇
训练作业
下一篇
创建自动搜索作业