Hyperopt:一个用于优化机器学习算法超参数的Python库

SciPy2013摘要提交

作者

James Bergstra, Dan Yamins, 和 David D. Cox

个人简介

James Bergstra是滑铁卢大学理论神经科学中心的一名NSERC Banting研究员。他的研究兴趣包括视觉系统模型和学习算法、深度学习、贝叶斯优化、高性能计算以及音乐信息检索。此前,他是哈佛大学Rowland科学研究所David Cox教授的计算机与生物视觉实验室的成员。他于2011年7月在蒙特利尔大学完成了博士学位,导师是Yoshua Bengio教授,论文内容是如何将复杂细胞纳入深度学习模型。作为博士研究的一部分,他与他人共同开发了Theano,这是一个流行的Python元编程系统,能够针对GPU进行高性能计算。

Dan Yamins是麻省理工学院脑与认知科学系的博士后研究员。他的研究兴趣包括腹侧视觉流的计算模型,以及用于神经科学和计算机视觉应用的高性能计算。此前,他开发了用于大规模数据分析和流程管理的Python语言软件工具。他在哈佛大学完成了博士学位,导师是Radhika Nagpal,论文内容是关于空间分布的多智能体系统的计算模型。

David Cox是哈佛大学分子与细胞生物学和计算机科学系的助理教授,也是哈佛大学脑科学中心的成员。他在麻省理工学院脑与认知科学系完成了博士学位,专攻计算神经科学。在加入MCB/CBS之前,他是哈佛大学Rowland研究所的初级研究员,该研究所是一个多学科机构,专注于传统领域边界上的高风险、高回报科学研究。

演讲摘要

大多数机器学习算法都有对端到端系统性能有重大影响的超参数,调整这些超参数以优化端到端性能可能是一项艰巨的任务。超参数有多种形式——有界和无界的连续值参数、有序或无序的离散参数,以及甚至不一定总是适用的条件参数(例如,可选预处理阶段的参数)——因此,传统的连续和组合优化算法要么不直接适用,要么在不利用搜索空间结构的情况下运行。通常,超参数的优化由领域专家在无关问题上预先进行,或者在网格搜索的帮助下手动进行。然而,当处理超过几个超参数(例如5个)时,手动搜索与网格细化的标准做法效率极低,以至于随机搜索已被证明与领域专家的性能相当[1]。

由于以下两个原因,迫切需要更好的超参数优化算法(HOA):

  1. HOA将模型评估实践形式化,使得基准实验可以在日后由不同的人重复进行。

  2. 学习算法设计者可以向非专家(例如深度学习系统)提供灵活的完全可配置实现,只要他们也提供相应的HOA。

Hyperopt通过Python库提供了串行和可并行的HOA[2, 3]。其设计的核心是一个协议,用于在以下三者之间进行通信: (a) 超参数搜索空间的描述, (b) 超参数评估函数(机器学习系统),以及 (c) 超参数搜索算法。 该协议使得通用的HOA(如捆绑的“TPE”算法)能够适用于一系列特定的搜索问题。特定的机器学习算法(或算法家族)在相关项目中作为hyperopt的_搜索空间_实现:深度信念网络[4]、卷积视觉架构[5]和scikit-learn分类器[6]。我的演讲将解释hyperopt解决的问题、如何使用它,以及它如何在没有操作员干预的情况下仅从数据中提供准确的模型。

提交参考文献

[1] J. Bergstra 和 Y. Bengio (2012). 随机搜索用于超参数优化。机器学习研究杂志 13:281–305. http://www.jmlr.org/papers/volume13/bergstra12a/bergstra12a.pdf

[2] J. Bergstra, D. Yamins 和 D. D. Cox (2013). 模型搜索的科学:在数百个维度上进行视觉架构的超参数优化。第30届国际机器学习会议(ICML-13)论文集。http://jmlr.csail.mit.edu/proceedings/papers/v28/bergstra13.pdf [3] Hyperopt: http://hyperopt.github.com/hyperopt

[4] ... 用于深度信念网络: https://github.com/hyperopt/hyperopt-nnet

[5] ... 用于卷积视觉架构: https://github.com/hyperopt/hyperopt-convnet

[6] ... 用于scikit-learn分类器: https://github.com/hyperopt/hyperopt-sklearn

更多关于演讲作者的信息可以在他的学术网站上找到: http://www.eng.uwaterloo.ca/~jbergstr/