超参数配置参考
更新时间:2023-01-18
超参来源
目前BML脚本调参任务类型支持三种方法配置任务中网络的超参数,你可以沿用「脚本编辑」中设定的超参数,为获取更高的模型精度,也可以选择「自动超参搜索」对网络的超参数进行搜索。选择「已有超参搜索结果」时,可以在预训练模型和预训练网络相同的任务中,复用自动超参搜索结果,高效地训练出高精度模型。
自动超参搜索
在超参搜索的过程中,由于模型复杂、计算成本很高,且每个超参数都有较大的取值范围,导致搜索空间十分庞大,因此需要利用自动超参搜索。自动超参搜索使用超参搜索策略,消耗相对较长的时间对网络模型进行自动调参。目前BML共支持三种超参搜索策略,详细配置方式请参考技术文档
超参搜索策略
策略名称 | 说明 |
---|---|
随机搜索 | 在参数变量的变化区间中随机采样参数组合成候选集,应用候选集进行训练和效果对比。 |
贝叶斯搜索 | 贝叶斯搜索在搜索空间中随机选取初始超参数点,然后根据已有超参对应的指标结果拟合概率模型,通过概率模型推测最佳超参点,然后再试验得到这些超参点的结果。如此反复优化,在有限试验次数中搜索出合适的超参数。基于模型的序贯优化方法(SMBO, Sequential Model-Based Optimization)是贝叶斯搜索的一种范式,包括两个部分: 代理模型(surrogate model) 和 采集函数(acquisition function)。根据代理模型和采集函数的不同,贝叶斯搜索方法也有许多实现形式,其中TPE(Tree-structured Parzen Estimator)是一种全局探索能力较佳的方法,采用核密度估计方法(KDE, Kernel Density Estimation)生成代理模型,采用EI(Expected Improvement)作为其采集函数生成新采样点。 |
进化算法 | 进化算法是基于种群概念的超参搜索策略,把超参配置视为一个种群,并行优化多个种群并在种群内部进行优胜劣汰的筛选,最终输出最佳模型。这个过程是从遗传算法获得的灵感,种群的初始化采用随机的方式生成,个体的优胜劣汰具体指利用(exploit)和探索(explore)两个步骤,不仅可能会从表现较好的个体中复制参数,它还能通过随机扰动修正当前的值而探索新的超参数组合。百度创新提出了随机微分方程无梯度优化算法PSHE2,采用哈密尔顿动力系统搜索参数空间中“势能”最低的点以替代随机扰动,加速迭代收敛。 |
搜索策略比较
搜索策略 | 优点 | 缺点 |
---|---|---|
随机搜索 | 多参数联合搜索时,增大了每个参数的搜索范围,提高搜索效率。 | 效果不稳定 |
贝叶斯搜索 | 搜索迭代次数少,效率高,借助已有采样点通过贝叶斯估计最佳超参。 | 可能陷入局部最优 |
进化算法 | 降低每轮迭代训练时间,将计算资源集中于参数搜索上,通过复用历史表现好的个体的预训练参数来加快收敛 | 如果超参导致模型结构变化等因素导致不能加载预训练参数时则不适用 |
如何选择超参搜索策略:
随机搜索:普适的效率较高的搜索方法,通常作为基线标准。适用于对效率要求较高的情况
贝叶斯搜索:利用已有参数信息推测最优点,是一种效率较高的黑盒优化算法。效果优于随机搜索,适用于一般情况。
进化算法:效果较好的算法,适合直接在自动超参搜索中过程中输出最佳模型,它的搜索结果应用到新的训练时可能导致效果下降