A somewhat deep dive
🎉
🎉
Big shoutout to everyone involved
and especially to Albert who pushed it through
RxInfer is a library for scalable
probabilistic programming
Uncertainty quantification
Planning problems
Active inference
Control problems
“Better” ML Bayesian inference
What is programming
Feed some d t
velocity = 1.1
position = 0.4
windspeed = 8.3
Get some result
a
a
What is probabilistic programming
Feed some d t ???
velocity =
position =
windspeed =
Get some result???
a
a
What is probabilistic programming
Wh t were the conditions?
velocity =
position =
windspeed =
Given the observ tions
a
a
What is probabilistic programming
Wh
velocity =
position =
windspeed =
Given the desired observ tions
actions =
Which next ction to t ke?
a
a
a
a
What is probabilistic programming
Simple model
velocity =
position =
windspeed =
Simple m th
a
What is probabilistic programming
Complex model
velocity position
windspeed actions
an le rotation
audio video
Complex simple m th 😳
g
a
What RxInfer helps you with
Add s m ny components s you w nt
compile
test
deploy
Robust system th t m kes
re son ble ctions under
uncert inty in unpredict ble
environments
a
a
a
a
a
a
a
a
a
a
a
How does RxInfer approach it
Stan Pyro / NumPyro Turing
[Link] [Link] [Link]
PyMC3 [Link] [Link]
[Link] [Link]
[Link]
JASP BUGS
[Link] [Link]
How do others approach it?
observations
MCMC
Ready to make an action
How does RxInfer approach it
Real-time Adaptivity Scalability
Low-power Parallel Robustness
How does RxInfer approach it
Scalability Low-power
Robustness Adaptivity
Parallel Real-time
*we are not there just yet
How does RxInfer approach it
F ctor V ri tion l
Gr phs Inference
Re ctive
Mess ge
P ssing
a
a
a
a
a
a
a
a
How does RxInfer approach it
F ctor gr phs
- Expl in ble ndF not bl ck-box
- Modul r nd loc l
a
a
a
a
a
a
a
a
a
a
How does RxInfer approach it
F ctor gr phs
- Expl in ble ndF not bl ck-box
- Modul r nd loc l
Reus ble sub models
a
a
a
a
a
a
a
a
a
a
a
How does RxInfer approach it
θ
How does RxInfer approach it
τ
How does RxInfer approach it
θ
s₁
τ
How does RxInfer approach it
θ
s₁
y₁
How does RxInfer approach it
F ctor gr phs
- Expl in ble ndF not bl ck-box
- Modul r nd loc l
Reus ble sub models
a
a
a
a
a
a
a
a
a
a
a
How does RxInfer approach it
F V ri tion l inference
- Expl F - Sc l ble nd e icient
- Modul - Complexity vs ccur cy tr de-o
Simpler distributions
from exponenti l f mily Sc l ble tr de-o between
complexity nd ccur cy
a
a
a
a
a
a
a
a
a
a
a
a
ff
a
a
a
a
ff
a
a
a
a
ff
How does RxInfer approach it
F V ri tion l inference
- Expl F - Sc l ble nd e icient
- Modul - Complexity vs ccur cy tr de-o
Simpler distributions
from exponenti l f mily Sc l ble tr de-o between
complexity nd ccur cy
a
a
a
a
a
a
a
a
a
a
a
a
ff
a
a
a
a
ff
a
a
a
a
ff
How does RxInfer approach it
F V Re ctive Mess ge P ssing
- Expl F - Sc - Ad ptive nd robust
- Modul - Complexity vs - P r llel nd l zy
25
a
a
a
a
a
a
a
a
a
ff
a
a
a
a
ff
How does RxInfer approach it
F V Re ctive Mess ge P ssing
- Expl F - Sc - Ad ptive nd robust
- Modul - Complexity vs - P r llel nd l zy
Robustness
V ri ble upd te r te 26
a
a
a
a
a
a
a
a
a
a
a
ff
a
a
a
a
a
a
ff
Generative model
How to specify?
Variational distribution
Compute posteriors
How to specify? How to minimise?
27
More than 40 public examples
Cool stuff from
How can you contribute
Issues Discussions Examples
Nice to have things
- Support for expressive black-box models (diffusion?)
- Automatic approximations of messages (for support bb models)
- Better debugging / visualization tools (graphical models)
- Multicore processing / GPU support (this is just hard)
- Native support for Gaussian Processes (current research)
- Running on edge devices is still hard (not impossible)