pytorch中的贝叶斯优化
botorch的Python项目详细描述
Botorch是一个基于Pythorch的贝叶斯优化库。
botorch目前处于测试阶段,正在积极开发中!
为什么是波托奇?波托奇
- 提供一个模块化且易于扩展的接口,用于编写贝叶斯 优化原语,包括概率模型,捕获函数, 以及优化器。
- 利用pytorch的强大功能,包括自动差异化、本地支持 对于使用与设备无关的代码的高度并行化的现代硬件(如GPU)。 以及动态计算图。
- 通过 reparameterization trick,所以 直截了当地实施新想法而不必施加限制 关于基础模型的假设。
- 支持与pytorch中的深层和/或复杂体系结构无缝集成。
- 对最先进的概率模型有一流的支持 GPyTorch,包括支持多任务高斯 过程(GPS)深核学习,深GPS和近似推理。
目标受众
研究人员和 在贝叶斯优化和人工智能方面经验丰富的实践者。 我们建议使用botorch作为实现新算法的低级api 为了Ax。ax被设计成一个易于使用的平台 对于最终用户来说,同时对贝叶斯具有足够的灵活性。 用于处理特征转换的优化研究人员, (元)数据管理、存储等。 我们建议不积极研究贝叶斯的最终用户 优化只需使用ax。
安装
安装要求
- Python=3.6
- Pythorch=1.2
- gpytorch>;=0.3.5
- scipy
安装最新版本
最新版本的Botorch可以通过 Anaconda(推荐):
conda install botorch -c pytorch
或通过pip
:
pip install botorch
MacOS用户的重要注意事项:
- 你需要确保你的pytorch版本与mkl( 非优化版本的波托奇在 一些设置)。在MacOS上手动设置此项可能很棘手-以确保 工作正常,请按照 PyTorch installation instructions
- 如果你在macos上需要cuda,你需要从源代码构建pytorch。拜托 请参阅上面的pytorch安装说明。
从最新主机安装
如果你想试试我们的最新功能(不要介意潜在的 偶尔会遇到一些bug),您可以安装最新的 直接从github获取主控文件(这还需要安装当前的gpytorch主控文件):
pip install git+https://github.com/cornellius-gp/gpytorch.git pip install git+https://github.com/pytorch/botorch.git
手动/dev安装
或者,也可以手动安装。对于基本安装,请运行:
git clone https://github.com/pytorch/botorch.git
cd botorch
pip install -e .
要自定义安装,还可以运行 上图:
pip install -e .[dev]
:还安装开发所需的所有工具 (测试、过梁、文档构建;请参见下面的Contributing)。pip install -e .[tutorials]
:还安装运行教程笔记本所需的所有软件包。
开始
下面是贝叶斯优化循环的主要组成部分的简要介绍。 有关更多详细信息,请参见我们的Documentation和 Tutorials。
- 将高斯过程模型拟合到数据
importtorchfrombotorch.modelsimportSingleTaskGPfrombotorch.fitimportfit_gpytorch_modelfromgpytorch.mllsimportExactMarginalLogLikelihoodtrain_X=torch.rand(10,2)Y=1-torch.norm(train_X-0.5,dim=-1)+0.1*torch.rand(10)train_Y=(Y-Y.mean())/Y.std()gp=SingleTaskGP(train_X,train_Y)mll=ExactMarginalLogLikelihood(gp.likelihood,gp)fit_gpytorch_model(mll)
- 构造一个获取函数
frombotorch.acquisitionimportUpperConfidenceBoundUCB=UpperConfidenceBound(gp,beta=0.1)
- 优化采集功能
frombotorch.optimimportjoint_optimizebounds=torch.stack([torch.zeros(2),torch.ones(2)])candidate=joint_optimize(UCB,bounds=bounds,q=1,num_restarts=5,raw_samples=20,)
贡献
请参阅CONTRIBUTING文件以获取帮助。
许可证
botorch是mit授权的,可以在LICENSE文件中找到。