超参数优化支持的搜索算法说明
当前提供的超参数优化能力支持Random、ASHA、BOHB、BOSS、PBT等HPO算法,适用于常见的深度神经网络的超参数优化,包括单目标优化和随机帕累托的多目标超参选择,详细介绍请参考Vega官网。以下为搜索算法配置示例,请参考配置。
- RandomSearch
search_algorithm: type: RandomSearch objective_keys: 'accuracy' policy: num_sample: 10 #可选,超参采样的总组数,默认值为10
- AshaHpo
search_algorithm: type: AshaHpo objective_keys: 'accuracy' policy: total_epochs: 50 max_epochs: 81 min_epochs: 1 num_samples: 9 eta: 3
各配置项均为可选项,样例中的取值为默认值此处配置规则如下:
- Asha方法侧重于整体的计算资源分配(即epochs),先为各组采样到的超参分配较少的计算资源,从中选出较好的进行升轮,赋予更多的计算资源进行进一步网络训练,核心公式如下。
total_rungs = int(log(max_epochs)) / log(eta) + 1 # 总轮数,由max_epochs和eta决定 epoch = math.pow(eta, rung_id) # 第rung_id轮获得的计算资源,由eta和rung_id决定
- 若total_epochs配置为-1,则max_epochs和num_samples的用户配置生效;否则,这两项的用户配置无效,其具体数值由算法根据total_epochs进行计算。其中,max_epochs为最高一轮worker获得的计算资源,num_samples为采样总数,即第一轮的worker总数。
- Asha方法侧重于整体的计算资源分配(即epochs),先为各组采样到的超参分配较少的计算资源,从中选出较好的进行升轮,赋予更多的计算资源进行进一步网络训练,核心公式如下。
- BohbHpo
search_algorithm: type: BohbHpo policy: total_epochs: 81 min_epochs: 1 max_epochs: 81 repeat_times: 1 num_samples: 40 eta: 3 objective_keys: 'accuracy' random_samples: 32 prob_crossover: 0.6 prob_mutatation: 0.2 tuner: "RF" # TPE | GP | RF
- 单目标优化时,根据tuner字段初始化tuner;多目标优化时,根据random_samples、prob_crossover、prob_mutatation初始化GeneticAlgorithm作为tuner。
- 若total_epochs配置为-1,则max_epochs和num_samples的用户配置生效;否则,这两项的用户配置无效,其具体数值由算法根据total_epochs进行计算。
- min_epochs为初始的epoch数量,repeat_times为hpo过程的重复次数。
- BossHpo
search_algorithm: type: BossHpo policy: total_epochs: 81 max_epochs: 81 repeat_times: 2 num_samples: 40 objective_keys: 'accuracy' tuner: "RF" # TPE | GP | RF
BossHpo算法不支持多目标优化,配置方式和参数说明可参见•BohbHpo。
- PBTHpo
search_algorithm: type: PBTHpo policy: each_epochs: 3 #每个训练任务的总epoch数量 config_count: 16 #超参采样组数 total_rungs: 200 #超参搜索的总轮数
PBTHpo算法不支持多目标优化。
父主题: 参考信息