Pyro and parameter identification of generative models


I try to use Pyro to address a general class of problems using Bayesian inference and I cannot find examples in Pyro documentation that covers this type of application very well. This application is as follows:

1 - We can observe the output of a given system. This output takes the form of time-series (e.g., an electrocardiogram recording would be such output for the heart).
2 - We have a forward model which can simulate such time-series for a set of given parameters. This generative model takes the form of a state-space model (i.e., a system of differential equations linking the observed signals to a set of parameters and latent states).

Given the recording in 1, we want to fit the parameters of the model in 2 such that the output of this model reproduces as closely as possible the recordings in 1. This kind of problem can be solved by a typical least-square fitting optimization, but I would like to solve it in a Bayesian framework where I can obtain posterior distributions for my set of parameters given a set of prior distributions on my parameters and given some observations (not observations of the parameters, but of the output of the system).

I looked at Pyro examples related e.g., to forecasting but they did not seem to fit quite well to this class of problem. FYI, for those who know what Dynamic Causal Modeling is in neuroimaging, this is a good example of this class of problem where the state-space model is a neural mass model and the observed output are EEG or fMRI recordings.

Any idea how to tackle this problem with Pyro? Any example you can suggest?

there’s an ode example here, although it’s probably worth pointing out that being fully bayesian about odes may be pretty challenging depending on details

Yes, I expect this to be challenging (also computationally demanding). Thanks for the pointer, I’ll have a look!

Hello, have you implemented this process in Pyro? Because I have a similar topic recently, and I want to use this method to realize parameter inference. May I learn some experience from you?

Hi @nana. Sorry for the very late answer. Yes, we did some progress. I think the example cited by @martinjankowiak is quite good. You can use it as a starting point.