# _Kernel Interpolation for Scalable Online Gaussian Processes_
This repository contains a gpytorch implementation of WISKI (Woodbury Inversion with SKI) from the paper
[Kernel Interpolation for Scalable Online Gaussian Processes](https://arxiv.org/abs/2103.01454)
by Samuel Stanton, Wesley J. Maddox, Ian Delbridge, Andrew Gordon Wilson
:tumbler_glass:
## Introduction
While Gaussian processes are the gold standard for calibration and predictive performance in many settings,
they scale at least $\mathcal{O}(n),$ where $n$ is the number of data points. We show how to use [structured
kernel interpolation](https://arxiv.org/abs/1503.01057) (SKI) to efficiently reuse computations to produce constant
time (in $n$) updates to
the posterior distribution, while retaining the exact inference formulation (no variational objectives) of
Gaussian processes.
## Installation
To replicate our experiments, you'll need to simply install the package:
```
git clone https://github.com/wjmaddox/online_gp.git
cd online_gp
pip install -r requirements.txt
pip install -e .
```
## Exploration of Different Types of Online Approximations
We've included an exploration and tutorial of different types of online approximate Gaussian processes (WISKI,
[Online SVGPs](https://arxiv.org/abs/1705.07131), and [Online SGPR](https://arxiv.org/abs/1705.07131)) in [this notebook](notebooks/regression_viz_1D.ipynb).
We'd highly encourage the reader to start there to understand the differences between types of data observed
in the streaming setting (whether iid data or time series formatted data).
## Streaming Regression and Classification Experiments
The UCI regression and classification experiments require an additional data storage package for logging:
```
git clone https://github.com/samuelstanton/upcycle.git
pip install -e upcycle/
```
These experiments use [Hydra](https://hydra.cc/docs/intro/) to manage configuration.
Every field in the `config/*.yaml` files can be
overridden from the command line.
### Regression
```
python experiments/regression.py
```
Important options
- model=(exact_gp_regression, svgp_regression, sgpr_regression, wiski_gp_regression)
- dataset=(skillcraft, powerplant, elevators, protein, 3droad)
- stem=(eye, linear, mlp)
### Classification
```
python experiments/classification.py
```
Important options
- model=(exact_gpd, svgp_bin, wiski_gpd)
- dataset=(banana, svm_guide_1)
- stem=(eye, linear, mlp)
### Logging
By default your experimental results will be saved
as csv files in `data/experiments/<exp_name>`.
If you have an Amazon AWS command line interface (CLI) configured you can modify
`config/logger/s3.yaml` and use the option
`logger=s3` to log results in a specified S3 bucket.
## Bayesian Optimization and Active Learning
Our bayesian optimization and active learning experiments are built off of [Botorch](https://botorch.org)
and use standard bayesian optimization loops as in their tutorials.
### Bayesion Optimization
```
cd experiments/bayesopt/
python bayesopt.py --model=wiski --cuda --cholesky_size=1001 \
--dim=3 --acqf=ucb --function=Ackley \
--noise=4.0 --num_steps=1500 --batch_size=3 --seed=0 \
--output=results.pt
```
### Active Learning
The malaria dataset can be downloaded from [here](https://wjmaddox.github.io/assets/data/malaria_df.hdf5).
Use the `--data_loc` to load the file in from where you downloaded it.
```
cd experiments/active_learning/
#### wiski and exact experiments with qnIPV
python qnIPV_experiment.py --cuda --batch_size=6 --num_steps=500 --model=exact
python qnIPV_experiment.py --cuda --batch_size=6 --num_steps=500 --model=wiski
##### osvgp experiments with osvgp's minimum posterior variance
# random
python mpv_osvgp.py --cuda --batch_size=6 --num_steps=500 --seed=0 --acqf=random --lr_init=1e-4 --output=svgp_random.pt
# maximum posterior variance
python mpv_osvgp.py --cuda --batch_size=6 --num_steps=500 --seed=0 --acqf=max_post_var --lr_init=1e-4 --output=svgp_mpv.pt
```
没有合适的资源?快使用搜索试试~ 我知道了~
online_gp:“可伸缩的在线高斯过程的内核插值”的代码存储库
共218个文件
yaml:133个
py:75个
ipynb:3个
需积分: 10 1 下载量 89 浏览量
2021-03-06
16:49:20
上传
评论
收藏 1.13MB ZIP 举报
温馨提示
可扩展的在线高斯过程的核插值 该存储库包含本文中WISKI(带有SKI的Woodbury反转)的gpytorch实现 塞缪尔·斯坦顿(Samuel Stanton),韦斯利·马多克斯(Wesley J.Maddox),伊恩·德尔布里奇(Ian Delbridge),安德鲁·戈登·威尔逊(Andrew Gordon Wilson) :tumbler_glass: 介绍 尽管高斯过程在许多环境中是校准和预测性能的黄金标准,但它们至少可缩放$ \ mathcal {O}(n),$,其中$ n $是数据点的数量。 我们展示了如何使用(SKI)有效地重用计算以产生后验分布的恒定时间(以$ n $为单位)更新,同时保留高斯过程的精确推论公式(无变化目标)。 安装 要复制我们的实验,您只需安装该软件包: git clone https://github.com/wjmaddox/online_gp.git cd online
资源详情
资源评论
资源推荐
收起资源包目录
online_gp:“可伸缩的在线高斯过程的内核插值”的代码存储库 (218个子文件)
.DS_Store 8KB
.gitattributes 45B
.gitignore 207B
classification_streaming_example.ipynb 632KB
regression_viz_1D.ipynb 400KB
malaria_plotting_notebook.ipynb 122KB
LICENSE 11KB
README.md 4KB
test_woodbury_gp_model.py 27KB
batched_fixed_noise_online_gp.py 17KB
streaming_sgpr.py 10KB
variational_gp_model.py 9KB
bayesopt.py 9KB
qnIPV_experiment.py 9KB
qnIPV_experiment.py 9KB
test_sherman_morrison_prediction_strategy.py 9KB
mpv_osvgp.py 9KB
mpv_osvgp.py 9KB
online_localgp_regression.py 9KB
online_ski_regression.py 8KB
test_woodbury_prediction_strategy.py 7KB
online_sgpr_regression.py 7KB
online_svgp_regression.py 7KB
regression.py 6KB
botorch_regression.py 6KB
online_ski_classifier.py 6KB
wiski_regression.py 6KB
utils.py 6KB
updated_root_lazy_tensor.py 6KB
online_exact_regression.py 5KB
test_batched_online_ski_gp_model.py 5KB
online_svgp_classifier.py 5KB
classification.py 5KB
test_ski_classifier.py 5KB
online_exact_classifier.py 4KB
data.py 4KB
test_batched_woodbury_marginal_log_likelihood.py 3KB
test_exact_regression.py 3KB
data.py 3KB
data.py 3KB
test_osvgp_classification.py 3KB
online_ski_botorch_model.py 2KB
criteo.py 2KB
banana.py 2KB
streaming_partial_mll.py 2KB
svm_guide_1.py 2KB
test_exact_classifier.py 2KB
batched_woodbury_marginal_log_likelihood.py 2KB
dkl.py 2KB
powerplant.py 2KB
road_3d.py 2KB
skillcraft.py 2KB
elevators.py 2KB
protein.py 2KB
stems.py 2KB
gp_dirichlet_classification.py 2KB
walker2d.py 1KB
hopper.py 1KB
fnmg_likelihood.py 1KB
streaming_added_loss_term.py 1KB
setup.py 779B
regression.py 735B
plotting.py 694B
__init__.py 689B
cuda.py 518B
random.py 247B
__init__.py 222B
settings.py 183B
__init__.py 152B
__init__.py 149B
__init__.py 60B
__init__.py 56B
__init__.py 43B
__init__.py 23B
__init__.py 1B
__init__.py 0B
__init__.py 0B
__init__.py 0B
__init__.py 0B
__init__.py 0B
__init__.py 0B
__init__.py 0B
__init__.py 0B
launch_jobs.sh 470B
requirements.txt 181B
config.yaml 1KB
config.yaml 1KB
config.yaml 1KB
config.yaml 1KB
config.yaml 1KB
config.yaml 1KB
config.yaml 1KB
config.yaml 1KB
config.yaml 1KB
config.yaml 1KB
config.yaml 1KB
config.yaml 1KB
config.yaml 1KB
config.yaml 1KB
config.yaml 1KB
共 218 条
- 1
- 2
- 3
PLEASEJUM爬
- 粉丝: 15
- 资源: 4576
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Unity XR 手势射击控制脚本(适用于任何可手势识别的设备)
- 机械设计全自动电表(NB和IC卡表)控制和上壳装配线sw16可编辑非常好的设计图纸100%好用.zip
- 基于matlab的EAN-13条形码识别系统GUI界面.zip代码53
- matlab基于bp神经网络交通信号标志识别GUI界面13个标志.zip代码54
- 电子万年历答辩实物展示视频mp4格式
- 基于python实现的程序,包括哈希感知算法cvHash,图像切割cvsplit,固定目标检测cvRec(附文档ppt)等
- 计算0-10000之间所有偶数的和
- multiled.zip
- 基于php实现的哈希算法的人脸检索
- 单片机 电子钟 设计报告/课程设计
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0