Features
User Friendly
Clean specification of probabilistic models and inference constraints.
Streaming Datasets
Reactive message passing-based inference for streaming datasets.
Hybrid Models
Support for hybrid models combining discrete and continuous latent variables.
Scalable
Scalability for large models with millions of parameters and observations.
Extensible
Designed to be extended with custom operations.
Differentiable
Supports automatic differentiation packages for parameter tuning.
Hello RxInfer!
RxInfer.jl is a Julia package that aims to automate inference in your probabilistic models. Specify your model, call the inference function, and the package takes care of the rest. Take a look how simple it is to specify a linear state space model and to run inference in it!
Get started now
@model function SSM(n, x0, A, B, Q, P)
# x is a sequence of hidden states
x = randomvar(n)
# y is a sequence of clamped observations
y = datavar(Vector{Float64}, n)
# `~` expression creates a probabilistic relationship
# between random variables
x_prior ~ MvNormal(μ = mean(x0), Σ = cov(x0))
x_prev = x_prior
# Build the state-space model
for i in 1:n
x[i] ~ MvNormal(μ = A * x_prev, Σ = Q)
y[i] ~ MvNormal(μ = B * x[i], Σ = P)
x_prev = x[i]
end
end
observations = load_dataset()
result = inference(
model = SSM(length(observations), x0, A, B, Q, P),
data = (y = observations,)
)
RxInfer is fast
RxInfer exploits the modularity of factor graphs to perform fast message passing-based probabilistic inference that scales linearly with the size of your model. We generally outperform state-of-the-art sampling-based packages by several orders of magnitude. RxInfer supports real-time processing of streaming data sources.
Check out some examplesSolve complex problems
RxInfer solves complex problems through hybrid inference algorithms composed of (loopy) belief propagation, (structured) variational message passing, expectation propagation, expectation maximization and conjugate-computation variational inference.
Research supporting RxInfer
Ecosystem
The RxInfer ecosystem stacks several Julia packages for running efficient Bayesian inference.