Github项目推荐 | Dragonfly:可扩展贝叶斯优化库(Python)

2019 年 3 月 22 日 AI研习社


An open source python library for scalable Bayesian optimisation.

Dragonfly是一个用于可扩展贝叶斯优化的开源python库。


项目地址:(点击本链接可直接访问)

https://github.com/dragonfly/dragonfly/

致谢:感谢读者@朱小鹏 提供的工具 GitHub Trending Hub,现在可以直接在微信打开Github链接啦)


贝叶斯优化是用来优化黑盒函数,其计算通常是非常昂贵的。除了普通的优化技术,Dragonfly还提供了一系列工具来将贝叶斯优化扩展到昂贵的大规模问题。这些特性/功能特别适合于高维优化(针对大量变量进行优化)、同步或异步设置中的并行计算(并行执行多个计算)、多保真度优化(使用廉价的近似来加速优化过程)和多目标优化(同时优化多个函数)。

Dragonfly与Python 2(>= 2.7)和Python 3(>= 3.5)兼容,并已在Linux,macOS和Windows平台上进行测试。

如想查看文档、安装和使用教程,请查看readthedocs页面。查看论文可获取更多详细内容。


安装

有关安装Dragonfly及其依赖项的详细说明,请点击此处查看。

快速安装:如果曾经使用过Dragonfly,你可以通过 pip 进行安装

$ sudo apt-get install python-dev python3-dev gfortran # On Ubuntu/Debian$ pip install numpy$ pip install dragonfly-opt -v

测试安装:你可以在python中导入Dragonfly以测试它是否已经正确安装。如果已经通过源代码进行安装,请确保已将其移动到其他目录以避免命名冲突。

$ python>>> from dragonfly import minimise_function>>> # The first argument below is the function, the second is the domain, and the third is the budget.>>> min_val, min_pt, history = minimise_function(lambda x: x ** 4 - x**2 + 0.1 * x, [[-10, 10]], 10);  ...>>> min_val, min_pt(-0.32122746026750953, array([-0.7129672]))

由于算法的随机性,上述 min_val、min_pt 的值可能会有所不同。如果你运行它的时间更长(例如:min_val, min_pt, history = minimise_function(lambda x: x ** 4 - x**2 + 0.1 * x, [[-10, 10]], 100) ),你应该能得到更一致的最小值。

如果安装失败或有警告消息,请点击此处查看详细说明。


快速开始

Dragonfly可以通过调用 dragonfly-script.py 直接在命令行中使用,或者通过主库中的 maximise_function 函数以python代码导入。为了帮助你快速入门,我们在示例目录中提供了一些示例。有关示例和用例,请查看我们的readthedocs入门页面(命令行,Python)。


命令行:以下是在命令行中的示例用法

$ cd examples$ dragonfly-script.py --config synthetic/branin/config.json --options options_files/options_example.txt

Python模式:Dragonfly的主要API在 dragonfly/apis 中定义。有关它们的定义和参数,请查看 dragonfly/apis/opt.py 和 dragonfly/apis/moo.py 。你可以通过python代码导入主API,如下:

from dragonfly import minimise_function, maximise_functionfunc = lambda x: x ** 4 - x**2 + 0.1 * xdomain = [[-10, 10]]max_capital = 100min_val, min_pt, history = minimise_function(func, domain, max_capital)print(min_val, min_pt)max_val, max_pt, history = maximise_function(lambda x: -func(x), domain, max_capital)print(max_val, max_pt)

上述代码中,func是要最大化的函数,domain是要优化func的域,max_capital是可用于优化的资本。有关更多详细示例,请查看  examples/synthetic/branin/in_code_demo.py 和 examples/supernova/in_code_demo.py 。

有关用例的综合列表,包括多目标优化,多保真优化,神经架构搜索和其他优化方法(除了贝叶斯优化),请查看我们的readthe文档页面(命令行,Python)。


贡献者

Kirthevasan Kandasamy: github, webpage

Karun Raju Vysyaraju: github, linkedin

Willie Neiswanger: github, webpage

Biswajit Paria: github, webpage

Chris Collins: github, webpage


引用

如果在你的研究中使用了本项目的代码,请引用这份手稿

@article{kandasamy2019tuning,    title={Tuning Hyperparameters without Grad Students: Scalable and Robust BayesianOptimisation with Dragonfly},    author={Kandasamy, Kirthevasan and Vysyaraju, Karun Raju and Neiswanger,    Willie and Paria, Biswajit and Collins, Christopher R. and Schneider, Jeff and    Poczos, Barnabas and Xing, Eric P},    journal={arXiv preprint arXiv:1903.06694},    year={2019}  }


License

该软件根据MIT许可证发布。 有关详细信息,请查看 LICENSE.txt

如有疑问,请发送电子邮件至kandasamy@cs.cmu.edu进行咨询。

“版权所有2018-2019 Kirthevasan Kandasamy”

AI求职百题斩 · 每日一题


每天进步一点点,长按扫码参与每日一题!




点击阅读原文,查看划线部分链接内容

登录查看更多
11

相关内容

【2020新书】实战R语言4,323页pdf
专知会员服务
97+阅读 · 2020年7月1日
【实用书】学习用Python编写代码进行数据分析,103页pdf
专知会员服务
188+阅读 · 2020年6月29日
还在修改博士论文?这份《博士论文写作技巧》为你指南
【书籍推荐】简洁的Python编程(Clean Python),附274页pdf
专知会员服务
171+阅读 · 2020年1月1日
Python 3.8.0来了!
数据派THU
5+阅读 · 2019年10月22日
用 Python 开发 Excel 宏脚本的神器
私募工场
26+阅读 · 2019年9月8日
Github项目推荐 | Pytorch TVM 扩展
AI研习社
11+阅读 · 2019年5月5日
Github项目推荐 | pikepdf - Python的PDF读写库
AI研习社
9+阅读 · 2019年3月29日
Github项目推荐 | gensim - Python中的主题建模
AI研习社
15+阅读 · 2019年3月16日
Github项目推荐 | RecQ - Python推荐系统框架
AI研习社
8+阅读 · 2019年1月23日
推荐|Python库中Top10 的AI项目(星级3k+),赶紧收藏!
全球人工智能
10+阅读 · 2018年1月16日
教你用Python来玩跳一跳
七月在线实验室
6+阅读 · 2018年1月2日
Meta-Learning with Implicit Gradients
Arxiv
13+阅读 · 2019年9月10日
Arxiv
7+阅读 · 2018年6月8日
VIP会员
相关资讯
Python 3.8.0来了!
数据派THU
5+阅读 · 2019年10月22日
用 Python 开发 Excel 宏脚本的神器
私募工场
26+阅读 · 2019年9月8日
Github项目推荐 | Pytorch TVM 扩展
AI研习社
11+阅读 · 2019年5月5日
Github项目推荐 | pikepdf - Python的PDF读写库
AI研习社
9+阅读 · 2019年3月29日
Github项目推荐 | gensim - Python中的主题建模
AI研习社
15+阅读 · 2019年3月16日
Github项目推荐 | RecQ - Python推荐系统框架
AI研习社
8+阅读 · 2019年1月23日
推荐|Python库中Top10 的AI项目(星级3k+),赶紧收藏!
全球人工智能
10+阅读 · 2018年1月16日
教你用Python来玩跳一跳
七月在线实验室
6+阅读 · 2018年1月2日
Top
微信扫码咨询专知VIP会员