probml/dynamax

A Python package for probabilistic state space modeling with JAX

What it solves

Dynamax provides a high-performance library for working with probabilistic state space models (SSMs). It simplifies the process of performing state estimation (inference) and parameter estimation (learning) for systems where a hidden state evolves over time and generates observed data.

How it works

Built on JAX, the library implements a variety of SSMs, including Hidden Markov Models (HMMs), Linear Gaussian SSMs, and Nonlinear/Generalized Gaussian SSMs. It offers two layers of API: a set of functionally pure, low-level inference algorithms and a user-friendly, object-oriented interface for model classes. It integrates with the JAX ecosystem, using Optax for stochastic gradient descent and Blackjax for Hamiltonian or sequential Monte Carlo methods.

Who it’s for

It is designed for researchers and developers working with time-series data and probabilistic modeling who need efficient, vectorized operations for state and parameter estimation.

Highlights

  • JAX-powered: Leverages JAX for high-performance computing and the ability to vectorize operations via vmap.
  • Diverse Model Support: Includes HMMs, Linear Gaussian, Nonlinear Gaussian, and Generalized Gaussian state space models.
  • Comprehensive Tooling: Supports online filtering, offline smoothing, and prediction of future states and observations.
  • Ecosystem Integration: Compatible with Optax and Blackjax for advanced parameter estimation and Bayesian inference.

Related

  • Project
  • Project
  • Project
  • Project
  • Project