SparseGaussianProcesses.jl
A Julia implementation of sparse Gaussian processes via path-wise doubly stochastic variational inference.
Install / Use
/learn @aterenin/SparseGaussianProcesses.jlREADME
SparseGaussianProcesses.jl
┌───────────────────┐
│⢰⢦⣀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡆⠀⠀⢀⣴⣶⢄⠀⠀⠀⠀⠀⠀⠀⠀│
│⢨⣿⣷⣻⣵⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⣠⣾⣿⣿⣿⡆⠀⠀⠀⠀⠀⠀⠀│
│⠨⡿⣿⣿⣿⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⣼⣿⣿⠿⣿⣾⣿⡀⠀⠀⠀⠀⠀⠀│
│⠸⠋⠑⢿⣿⣿⡆⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⡟⠉⠺⣻⣿⣧⠀⠀⠀⠀⠀⠀│
│⠀⠀⠀⠀⠹⣿⣿⡀⠀⠀⠀⠀⠀⠀⣼⣿⣿⠝⠀⠀⠀⠈⢿⣿⡆⠀⠀⠀⠀⠀│
│⠉⠉⠉⠉⠉⢻⣿⣯⠉⠉⠉⠉⠉⣹⣿⣿⠏⠉⠉⠉⠉⠉⠉⣿⣿⣍⡉⠉⠉⠉│
│⠀⠀⠀⠀⠀⠀⢿⣿⡆⠀⠀⢀⣮⣿⣿⡏⠀⠀⠀⠀⠀⠀⠀⠸⣿⣏⢟⡄⡜⠀│
│⠀⠀⠀⠀⠀⠀⠈⢿⣿⣦⣶⣫⣿⣿⡏⡇⠀⠀⠀⠀⠀⠀⠀⠀⠹⣿⣯⣫⣦⠂│
│⠀⠀⠀⠀⠀⠀⠀⠘⢿⣿⣿⣿⡿⡟⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠹⣿⣿⣿⡄│
│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⠾⠿⠏⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠹⢿⠿⠀│
│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠱⠀│
└───────────────────┘
This package implements sparse Gaussian processes models using doubly stochastic variational inference.
Unlike essentially all other Gaussian process packages, SparseGaussianProcesses.jl does not work with means and covariances. Instead, it uses the path-wise sampling technique to implement entire function draws from Gaussian process posteriors, which can be evaluated deterministically at arbitrary locations once sampled.
It supports models of the form
(f | u)(.) = (Ag)(.) + K_{(.)z} (K_{zz} + \Lambda)^{-1} (u - (Bg)(z) - \epsilon)
where g ~ GP(0, k), u ~ N(\mu, \Sigma), \epsilon ~ N(0, \Lambda), and A, B are inter-domain operators such as the identity, gradient, or convolutional patch map.
This little-known formula defines a Gaussian process with precisely the correct mean and variance of a standard sparse Gaussian process.
Features
The following features are planned for this package.
- Evaluation of entire function draws at arbitrary locations.
- Posterior sample paths are fully differentiable, assuming a sufficiently smooth kernel.
- Strong inter-domain support, including gradient and convolutional Gaussian processes.
- Fully supports training on GPU.
- Strong support for vector-valued processes.
- Strong support for non-Euclidean domains.
Examples
A set of examples are available in the examples/ folder.
Contributing
This package is under development, and contributions are welcome! The best way to get in touch regarding development is on the Julia slack.
Citing
@article{wilson20,
Author = {James T. Wilson and Viacheslav Borovitskiy and Alexander Terenin and Peter Mostowski and Marc Peter Deisenroth},
Journal = {arXiv:2002.09309},
Title = {Efficiently sampling functions from Gaussian process posteriors},
Year = {2020}}
Related Skills
node-connect
347.0kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
107.8kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
347.0kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
347.0kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
