软件包概览#
SMAC 帮助您确定算法的高性能超参数配置。作为一个强大而灵活的贝叶斯优化框架,SMAC 可以在几次函数评估内提升性能。它为典型用例提供了多个入口点和预设,例如优化超参数、解决低维连续(人工)全局优化问题,以及配置算法以在多个问题实例上表现良好。
特性#
SMAC 具有以下特性和能力
全局优化器#
贝叶斯优化用于样本高效的优化。
优化黑盒函数#
优化只关注输入和输出。它与函数内部实现无关。
灵活的超参数#
使用分类、连续、分层和/或条件超参数以及良好集成的 ConfigurationSpace。SMAC 可以高效地优化多达 100 个超参数。
任意目标#
可以针对任何目标进行优化(例如,准确率、运行时间、交叉验证等)。
多目标优化#
使用标量化多目标算法优化任意数量的目标。支持 ParEGO [Know06] 和平均聚合策略。
多保真度优化#
在多个预算下评估配置,以便尽早放弃不合适的配置。根据预算的不同,这将带来巨大的加速。
实例#
不仅能为一个算法的单个实例(例如数据集)找到高性能的超参数配置,还能为多个实例找到。
命令行界面#
SMAC 不仅可以在 Python 文件中执行,也可以从命令行执行。因此,不仅可以优化 Python 中的算法,还可以优化其他语言的实现。
注意
v2.0 版本中已暂时禁用命令行界面。如果需要使用,请回退到 v1.4。
对比#
下表概述了 SMAC 与其他优化工具的功能对比。
软件包 | 复杂超参数空间 | 多目标 | 多保真度 | 实例 | 命令行界面 | 并行化 |
---|---|---|---|---|---|---|
HyperMapper | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |
Optuna | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ |
Hyperopt | ✅ | ❌ | ❌ | ❌ | ✅ | ✅ |
BoTorch | ❌ | ✅ | ✅ | ❌ | ❌ | ✅ |
OpenBox | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ |
HpBandSter | ✅ | ❌ | ✅ | ❌ | ❌ | ✅ |
SMAC | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |