All Projects → AaltoML → kalman-jax

AaltoML / kalman-jax

Licence: Apache-2.0 license
Approximate inference for Markov Gaussian processes using iterated Kalman smoothing, in JAX

Programming Languages

Jupyter Notebook
11667 projects
python
139335 projects - #7 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to kalman-jax

approxposterior
A Python package for approximate Bayesian inference and optimization using Gaussian processes
Stars: ✭ 36 (-57.14%)
Mutual labels:  gaussian-processes
susa
High Performance Computing (HPC) and Signal Processing Framework
Stars: ✭ 55 (-34.52%)
Mutual labels:  signal-processing
gr-eventstream
gr-eventstream is a set of GNU Radio blocks for creating precisely timed events and either inserting them into, or extracting them from normal data-streams precisely. It allows for the definition of high speed time-synchronous c++ burst event handlers, as well as bridging to standard GNU Radio Async PDU messages with precise timing easily.
Stars: ✭ 38 (-54.76%)
Mutual labels:  signal-processing
FScape-next
Audio rendering software, based on UGen graphs. Issue tracker: https://codeberg.org/sciss/FScape-next/issues
Stars: ✭ 13 (-84.52%)
Mutual labels:  signal-processing
wv
⏰ This R package provides the tools to perform standard and robust wavelet variance analysis for time series (signal processing). Among others, aside from computing the wavelet variance and cross-covariance (classic and robust), the package provides inference tools (e.g. confidence intervals) and plotting tools allowing to perform some visual an…
Stars: ✭ 14 (-83.33%)
Mutual labels:  signal-processing
ewtpy
Empirical wavelet transform (EWT) in Python
Stars: ✭ 52 (-38.1%)
Mutual labels:  signal-processing
Apollo
Apollo is a Open-Source music player for playback and organization of audio files on Microsoft Windows, built using Python.
Stars: ✭ 13 (-84.52%)
Mutual labels:  signal-processing
Channel-Estimation
Simulates an FBMC and OFDM transmission over a doubly-selective channel. Allows to reproduce all figures from "Doubly-Selective Channel Estimation in FBMC-OQAM and OFDM Systems", IEEE VTC Fall, 2018
Stars: ✭ 64 (-23.81%)
Mutual labels:  signal-processing
pyRiemann
Python machine learning package based on sklearn API for multivariate data processing and statistical analysis of symmetric positive definite matrices via Riemannian geometry
Stars: ✭ 470 (+459.52%)
Mutual labels:  signal-processing
go-bayesopt
A library for doing Bayesian Optimization using Gaussian Processes (blackbox optimizer) in Go/Golang.
Stars: ✭ 47 (-44.05%)
Mutual labels:  gaussian-processes
bob
Bob is a free signal-processing and machine learning toolbox originally developed by the Biometrics group at Idiap Research Institute, in Switzerland. - Mirrored from https://gitlab.idiap.ch/bob/bob
Stars: ✭ 38 (-54.76%)
Mutual labels:  signal-processing
dspfun
Set of *nix utilities for experimentation and learning about spectral analysis of images
Stars: ✭ 21 (-75%)
Mutual labels:  signal-processing
icassp2019-latex-template
ICASSP 2019 official Latex template
Stars: ✭ 21 (-75%)
Mutual labels:  signal-processing
CNCC-2019
Computational Neuroscience Crash Course (CNCC 2019)
Stars: ✭ 26 (-69.05%)
Mutual labels:  signal-processing
eidos-audition
Collection of auditory models.
Stars: ✭ 25 (-70.24%)
Mutual labels:  signal-processing
boundary-gp
Know Your Boundaries: Constraining Gaussian Processes by Variational Harmonic Features
Stars: ✭ 21 (-75%)
Mutual labels:  gaussian-processes
torchsubband
Pytorch implementation of subband decomposition
Stars: ✭ 63 (-25%)
Mutual labels:  signal-processing
PyCBC-Tutorials
Learn how to use PyCBC to analyze gravitational-wave data and do parameter inference.
Stars: ✭ 91 (+8.33%)
Mutual labels:  signal-processing
gp
Differentiable Gaussian Process implementation for PyTorch
Stars: ✭ 18 (-78.57%)
Mutual labels:  gaussian-processes
SIVI
Using neural network to build expressive hierarchical distribution; A variational method to accurately estimate posterior uncertainty; A fast and general method for Bayesian inference. (ICML 2018)
Stars: ✭ 49 (-41.67%)
Mutual labels:  approximate-bayesian-inference

Note: kalman-jax is now obselete. A significantly improved version of this code is now available at https://github.com/AaltoML/BayesNewton/

kalman-jax

Approximate inference for Markov (i.e., temporal) Gaussian processes using iterated Kalman filtering and smoothing. Developed and maintained by William Wilkinson. The Bernoulli likelihood was implemented by Paul Chang. We are based in Arno Solin's machine learning group at Aalto University, Finland.

This project aims to implement an XLA JIT compilable framework for inference in (non-conjugate) Markov Gaussian processes, with autodiff using JAX.

The methodology is outlined in the following paper:

  • W. Wilkinson, P. Chang, M. Riis Andersen, A. Solin. State Space Expectation Propagation: Efficient Inference Schemes for Temporal Gaussian Processes. International Conference on Machine Learning (ICML), 2020 [arXiv]

More details about the variational inference method are given in the following paper:

  • P. Chang, W. Wilkinson, M. E. Khan, A. Solin. Fast Variational Learning in State-Space Gaussian Process Models. International Workshop on Machine Learning for Signal Processing (MLSP), 2020 [arXiv]

If you use this code in your research, please cite the paper as follows:

@inproceedings{wilkinson2020,
  title={State Space Expectation Propagation: Efficient Inference Schemes for Temporal {G}aussian Processes},
  author={Wilkinson, William J. and Chang, Paul E. and Andersen, Michael Riis and Solin, Arno},
  booktitle={International Conference on Machine Learning},
  year={2020}
}

Spatio temporal GP classification

Getting started

  • Install the latest version of jax and jaxlib (see requirements.txt for full dependencies)
  • We have lots of demo notebooks which cover many different tasks and modelling scenarios.

Info

We combine two recent advances in the field of probabilistic machine learning:

  • Development of state space methods for linear-time approximate inference in Gaussian processes
  • The ability to JIT compile and autodiff through loops efficiently with JAX

Code structure

Each approximate inference algorithm will call the same underlying Kalman filter and smoother methods, and will be distinguished by the way in which the approximate likelihood terms are computed.

Approximate inference algorithms

  • PEP - power expectation propagation
  • EKF - extended Kalman filtering
  • UKF - unscented Kalman filtering
  • GHKF - Gauss-Hermite Kalman filtering
  • SLF - statistical linearisation filter
  • EKS - extended Kalman smoothing
  • UKS - Unscented Kalman smoothing
  • GHKS - Gauss-Hermite Kalman smoothing
  • EEP - Extended EP
  • SLEP - statistically linearised EP
  • UEP - Unscented EP
  • GHEP - Gauss-Hermite EP
  • PL - posterior linearisation
  • VI - variational inference (with natural gradients)
  • STVI - spatio-temporal variational inference
  • STEP - spatio-temporal expectation propagation
  • STKS - spatio-temporal iterated smoothers (E, U, GH)

Likelihoods

  • Gaussian
  • Poisson (log-Gaussian Cox process)
  • Logit (Bernoulli classification)
  • Probit (Bernoulli classification)
  • Heteroscedastic Noise
  • Product (audio amplitude demodulation)

Priors

  • Matern class
  • RBF
  • Cosine
  • Periodic
  • Quasi-periodic
  • Subband
  • Sum
  • Product
  • Independent (multiple stacked components)
  • Latent force models (linear)

License

This software is provided under the Apache License 2.0. See the accompanying LICENSE file for details.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].