机器学习模型的性能质量在很大程度上取决于其超参数设置。给定数据集和任务,机器学习(ML)模型及其超参数的选择通常是手动进行的。超参数优化(HPO)算法旨在尽可能地减轻人类专家的这项任务。
HPO算法的设计取决于任务的性质及其上下文,例如优化预算和可用信息。以下是执行HPO的一些不同方式。
黑盒优化
贝叶斯优化因其样本效率、灵活性和收敛保证而被广泛认为是HPO最流行的方法之一。其核心概念是将ML管道中所有所需的调优决策视为一个函数(即性能度量函数)的搜索空间或域,该函数代表在固定计算预算下对ML管道的评估,并产生通常被最小化的性能度量。通过迭代建议有前景的配置,HPO算法努力收敛到全局最优。
组合算法选择和超参数优化(CASH)
一个AutoML系统不仅需要选择给定模型的最佳超参数配置,还需要选择使用哪个模型。这个问题可以看作是一个具有层次配置空间的单一HPO问题,其中顶层超参数决定选择哪个算法,所有其他超参数都依赖于这个算法。为了处理这种复杂且结构化的配置空间,我们在贝叶斯优化中应用例如随机森林作为代理模型。
我们的软件包
- Auto-sklearn 通过将搜索空间建模为CASH问题来提供开箱即用的监督机器学习。
- Auto-Pytorch 是一个自动搜索神经网络架构及其超参数的框架,也利用了结构化的配置空间。
- SMAC 实现了随机森林作为代理模型,可以有效地处理结构化搜索空间。
使用多保真度进行早期停止HPO
贝叶斯优化所采用的黑盒视图可以通过灰盒视图进行放宽,该视图允许访问目标机器学习模型的中间状态。也就是说,要优化的函数沿着一个或多个变量(保真度)具有一个代理状态,该状态可以以更低的成本获得,并且可能指示目标状态的性能。可以利用在保真度上进行搜索的HPO算法可以提供更好的即时性能。
利用学习曲线外推技术加速HPO
各种迭代训练的机器学习算法会产生学习曲线。在不同的超参数设置下,可以获得不同的学习曲线。利用部分训练的机器学习模型学习曲线的平滑趋势来预测未来性能是一个活跃的研究领域,并取得了有希望的结果。
带有专家先验输入的HPO
尽管HPO可以被视为将人类从循环中移除,但人类专家的直觉和经验为HPO算法提供了宝贵的信息作为指导。挑战在于找到合适的接口和有原则的方法来实现实用的算法。
可复现研究的基准
AutoML,尤其是HPO的评估面临许多挑战。例如,多次重复运行HPO可能计算成本高昂,基准可能相当嘈杂,并且通常不清楚哪些基准代表典型的HPO应用。因此,我们开发了HPO基准集合,以提高可复现性并减少研究人员的计算负担。
其他资源
- “AutoML:方法、系统、挑战者”一书提供了关于HPO的简洁概述。
- 有关针对DL的更专注的HPO,请参阅此处。
- 用于多目标优化(MOO)的HPO可以在此处找到。
- 作为开源可用的各种HPO工具的概述。
博客文章
也请查看我们关于HPO(包括BO)工作的博客文章
