异步超参数优化 - 迭代之间的依赖关系

数据挖掘 交叉验证 模型选择 超参数 超参数调整
2022-02-24 06:20:48

当使用异步超参数优化包,如 scikit optimize 或 hyperopt 交叉验证(例如,cv = 2 或 4)并将迭代次数设置为 N(例如,N=100)时,我应该期望:

  1. 损失值顺序提高的顺序迭代之间的依赖性(例如,第 10 次迭代中的优化超参数优于第 9 次迭代中生成的优化超参数等)。在这种情况下,我应该始终使用上次迭代中生成的超参数进行选择。

或者

  1. 期望迭代之间的独立性,在完成所有 100 次迭代后,我应该选择具有最小损失值的迭代。

如果选项 a) 是正确答案,如果最佳超参数与迭代 50 相关联,这意味着什么,是否意味着数据不稳定,或者损失函数指定不正确,因此,超参数优化过程结果不应该被信任?

1个回答

hyperopt按顺序进行,除非您让它使用并行后端。N是max_evals参数吗?是的,您总是希望选择具有最佳验证损失的超参数。这就是它最终返回的结果。可能是它在最终试验之前就找到了最好的超参数。这并不意味着有任何问题。它在进行过程中学习基于超参数的损失分布,并有目的地探索空间中不太确定的部分,这些部分最有可能产生改进,但可能不会,尤其是在搜索结束时。这发生在完全定义良好的损失函数中。