跳到内容

HIPS/薄荷糖

 
 

文件夹和文件

姓名姓名
上次提交消息
上次提交日期

最新提交

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

存储库文件导航

speamint:贝叶斯优化代码库

Spearmint是一个执行贝叶斯优化的软件包。该软件旨在以迭代调整多个参数的方式自动运行实验(因此代码名为speamint),以便在尽可能少的运行中最小化某些目标。

重要事项:请阅读有关许可证的信息

青蒿在学术和非商业研究使用许可证.使用留兰香前,请注意许可证。如果您没有资格使用青蒿素,您可以要求获得许可证,详情请参阅许可证或者您可以在https://github.com/JasperSnoek/spearmint网址.

重要提示:您已离开主分支!

这是PESC分行。该分支包含带有约束的预测熵搜索(PESC)获取功能,如论文中所述,用于未知约束的贝叶斯优化的预测熵检索(http://arxiv.org/abs/1502.05312). 注:使用PESC没有约束产生的方法与预测熵搜索类似(但并不完全等价)(http://arxiv.org/abs/1406.2541). 此分支还附带了一个基本的二维打印例程。

更新:截至2016年8月23日,该分支还包括对解耦以及PESC-F的支持,如论文《使用基于信息的搜索进行约束贝叶斯优化的通用框架》所述。

相关出版物

Spearmint实现了以下出版物中详细介绍的算法组合:

机器学习算法的实用贝叶斯优化贾斯珀·斯诺克、雨果·拉罗谢尔和瑞安·普雷斯科特·亚当斯2012年神经信息处理系统进展多任务贝叶斯优化Kevin Swersky、Jasper Snoek和Ryan Prescott Adams2013年神经信息处理系统进展非静态函数贝叶斯优化的输入扭曲Jasper Snoek、Kevin Swersky、Richard Zemel和Ryan Prescott Adams2014年国际机器学习会议贝叶斯优化和半参数模型及其在辅助技术中的应用Jasper Snoek,博士论文,多伦多大学,2013年具有未知约束的贝叶斯优化迈克尔·盖尔巴特(Michael Gelbart)、贾斯珀·斯诺克(Jasper Snoek)和瑞恩·普雷斯科特·亚当斯(Ryan Prescott Adams)2014年人工智能的不确定性

此分支还包括

未知约束贝叶斯优化的预测熵搜索何塞·米盖尔·埃尔南德斯·洛巴托(JoséMiguel Hernández-Lobato)、迈克尔·盖尔巴特(Michael A.Gelbart)、马修·霍夫曼(Matthew W.Hoffman)、瑞安·亚当斯(Ryan P.Adams)、佐宾·加拉2015年国际机器学习会议。约束贝叶斯优化及其应用Michael A.Gelbart,哈佛大学博士论文,2015年基于信息搜索的约束贝叶斯优化通用框架何塞·米盖尔·埃尔南德斯·洛巴托(JoséMiguel Hernández-Lobato)、迈克尔·盖尔巴特(Michael A.Gelbart)、瑞安·亚当斯(Ryan P.Adams)、马修·霍夫曼(Matthew W.Hoffman)、佐宾·加拉《机器学习研究杂志》,2016年。

使用说明

第1步:安装

  1. 下载/克隆speamint代码
  2. 使用pip:“pip Install-e</path/to/speumint/root>”(-e表示将自动反映更改)安装speumint包
  3. 下载并安装MongoDB:https://www.mongodb.org/
  4. 使用例如pip或anaconda安装pymongo包
  5. (可选)下载并安装NLopt:http://ab-initio.mit.edu/wiki/index.php/NLopt(有关说明,请参见下文)

第二步:设置实验

  1. 创建一个可调用的目标函数。请参阅/例如examples/toy/toy.py。
  2. 创建一个配置文件。请参阅/例如examples/toy/config.json。在这里,您将看到我们指定了PESC采集功能,而不是默认值,即预期改进(EI)。

第三步:跑留兰香

  1. 启动MongoDB守护程序实例:mongod—fork—日志路径\<path/to/logfile \>—dbpath \<path/to/dbfolder \>
  2. 运行留兰香:python main.py \</path/to/experience/directory\>(尝试>>python main.py../examples/toy)

第4步:查看结果

Spearmint将结果输出到standard-out/standard-err,并在每个实验的实验目录中创建输出文件。此外,您可以通过以下方式查看结果:

  1. 要打印所有结果,请运行python print_all_results.py\</path/to/experimental/directory\>
  2. 要创建显示目标函数随时间减少的图,请转到可视化目录并运行python progress_curve.py \</path/to/experimental/directory\>。结果将显示在实验目录的“plots”子目录中。如果您查看进度曲线文件的底部,您将看到许多选项,例如以对数刻度绘制等。
  3. (仅限二维目标函数)要创建二维目标函数的绘图(例如提供的示例),请转到可视化目录并运行python绘图2d.py \</path/to/experience/directory\>。它们将出现在绘图实验目录中的子目录。

第5步:清理

如果要删除与实验相关的所有数据(输出文件、绘图、数据库条目),请运行python cleanup.py \</path/to/experimental/directory\>

(可选)一次运行多个实验

您可以使用一次启动多个实验python run_experiments.py \</path/to/experimental/directory\>N其中N是要运行的实验数。您可以使用“python cleanup_experiments.py</path/to/experimental/directory>N”立即清理它们。上面的一些helper函数,例如progress_curve.py,设计用于使用此范例,因此您可以这样做python progress_curve.py \</path/to/experimental/directory\>--repeat=10用误差线绘制10个实验的平均值。

(可选)NLopt安装说明,无需管理员权限

  1. wget公司http://ab-initio.mit.edu/nlopt/nlopt-2.4.2.tar.gz
  2. tar-zxvf nlopt-2.4.2.tar.gz
  3. cd nlopt-2.4.2光盘
  4. mkdir构建
  5. ./configure PYTHON=PATH/TO/YOUR/PYTHON/python2.7--enable-shared--prefix=PATH/TO/YUR/NLOPT/NLOPT-2.4.2/build/
  6. 制作
  7. 进行安装
  8. export PYTHONPATH=PATH/TO/YOUR/NLOPT/NLOPT-2.4.2/build/lib/python2.7/site-packages/:$PYTHONPATH
  9. (您可以将第8行添加到.bashrc或等效文件中)

关于

青蒿素贝叶斯优化代码库

资源

许可证

星星

观察者

叉子

发布

未发布版本

包装

未发布包