作为 Optunity 的首席开发人员,我将加两分钱。
我们已经完成了广泛的基准测试,将 Optunity 与最流行的贝叶斯求解器(例如,hyperopt、SMAC、bayesopt)在实际问题上进行了比较,结果表明 PSO 实际上在许多实际情况下的效率并不低。在我们的基准测试中,包括在各种数据集上调整 SVM 分类器,Optunity 实际上比 hyperopt 和 SMAC 更有效,但比 BayesOpt 效率略低。我很想在这里分享结果,但我要等到 Optunity最终在 JMLR 中发布(现在已经审查了一年多,所以不要屏住呼吸......)。
正如您所指出的,提高效率是贝叶斯优化的常用卖点,但在实践中,只有当基础代理模型的假设成立时,它才成立,这远非微不足道。在我们的实验中,Optunity 非常简单的 PSO 求解器在函数评估数量方面通常与复杂的贝叶斯方法具有竞争力。当提供良好的先验时,贝叶斯求解器工作得非常好,但是在没有信息量的先验的情况下,就效率而言,与 PSO 等元启发式方法相比,几乎没有结构优势。
PSO 的一大卖点是它的并行性令人尴尬。贝叶斯优化通常很难并行化,因为它固有的顺序性(hyperopt 的实现是唯一真正的例外)。有了分发机会(这已成为常态),Optunity 迅速在挂钟时间内率先获得良好的解决方案。
Optunity 与大多数其他专用超参数优化库之间的另一个关键区别是目标受众:Optunity 具有最简单的界面,并且针对非机器学习专家,而大多数其他库需要对贝叶斯优化有所了解才能有效使用(即,它们是针对专家)。
我们制作这个库的原因是,尽管存在专用的超参数优化方法,但它们在实践中缺乏采用。大多数人要么根本不调整,要么手动调整,要么通过网格或随机搜索等幼稚的方法进行调整。在我们看来,造成这种情况的一个关键原因是,在开发 Optunity 之前,现有的库在安装、文档、API 方面太难使用,而且通常仅限于单一环境。