top | item 38401212

Rxinfer: Automatic Bayesian Inference Through Reactive Message Passing

89 points| anewhnaccount2 | 2 years ago |biaslab.github.io | reply

20 comments

order
[+] usgroup|2 years ago|reply
The reason Stan, Nimble, PyMC fit via simulation is because joint distributions generally don’t have an analytical form and require global fitting methods to identify.

I’d hazard to guess that if this package fits incrementally without simulation that either it doesn’t aim for a global optimum or that it places substantial limits on the form models can take.

[+] mjhay|2 years ago|reply
Belief propagagation (i.e. message passing) has a long history and has been pretty successful. It's not always applicable, but it can have a lot of advantages when it is.
[+] bvdmitri|2 years ago|reply
There inevitable drawbacks of both approaches. Nothing particularly wrong with the simulation, but it is really really slow and is not applicable in real-time or close to real-time applications, where situation may change rapidly. Also it usually requires high-end CPUs, which are not available on edge devices like drones.

RxInfer tries to be as efficient as possible in running inference, but it does indeed places limits on the form of the models it can run inference for. The team has long-term plans and solutions under research, which should expand the set of available models substantially. Message passing has a long history, it is not only belief propagation on simple models, but also nowadays the variational inference is possible with message passing on sophisticated hierarchical models.

[+] ckrapu|2 years ago|reply
I would use one of those for scenarios when I need proper measures of uncertainty like credible regions.

The methods listed in this project (EM algorithm, VI) tend not to provide this as well but usually produce something that looks like a good posterior mean (global optimum under mean square loss) in my experience.

[+] fulafel|2 years ago|reply
Tangential but anyone have links for open source projects that use inference for real world use cases?
[+] ckrapu|2 years ago|reply
I’m a diehard MCMC advocate but love that the is system is built for real-time applications. Hope I get a chance to try this out sometime!
[+] maizeq|2 years ago|reply
What’s your favourite MCMC method/technique atm? I know this can be quite domain dependent, but curious. From my experience, it can seem more of an art than a science at times.
[+] estebarb|2 years ago|reply
This can be used for building thousands of models that depends on each other? For example, traffic or weather prediction
[+] pdsnk1|2 years ago|reply
In principle, yes. The team is working on nested models definition that will allow seamless fusion of many models into one.
[+] philprx|2 years ago|reply
Great, congrats!

What's the equivalent in python?

[+] nextos|2 years ago|reply
A closer library is Infer.NET: https://dotnet.github.io/infer.

It includes a really mature compiler that generates very efficient message passing and variational inference, with support for online inference, which is the main focus on Rxinfer.

You can call Infer.NET from Python in a number of ways, despite it is not a CPython library.

[+] jruohonen|2 years ago|reply
> What's the equivalent in python?

You might start with Stan for which Python bindings are available if I recall correctly.