0% found this document useful (0 votes)
2 views31 pages

Scalable Probabilistic Programming with RxInfer

RxInfer is a scalable library for probabilistic programming that focuses on uncertainty quantification, planning, and control problems. It aims to provide a robust system for making reasonable decisions under uncertainty in unpredictable environments, utilizing factor graphs and variational inference. The library supports various components and encourages contributions for enhancements such as better debugging tools and support for black-box models.

Uploaded by

Kirill Parinov
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views31 pages

Scalable Probabilistic Programming with RxInfer

RxInfer is a scalable library for probabilistic programming that focuses on uncertainty quantification, planning, and control problems. It aims to provide a robust system for making reasonable decisions under uncertainty in unpredictable environments, utilizing factor graphs and variational inference. The library supports various components and encourages contributions for enhancements such as better debugging tools and support for black-box models.

Uploaded by

Kirill Parinov
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

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)

You might also like