dflemin3 / approxposterior

A Python package for approximate Bayesian inference and optimization using Gaussian processes
https://dflemin3.github.io/approxposterior/
MIT License
41 stars 9 forks source link

Explore approxposterior parallelization paradigm #42

Closed jlustigy closed 4 years ago

jlustigy commented 5 years ago

Currently, I am getting varied training sets in approxposterior runs with the exact same initial conditions. I suspect that this has to do with the GP optimization (see #41 ) with random seeding, and how the findNextPoint method depends on the GP, and therefore so too does the training set that approxposterior generates.

However, this presents something of an opportunity to use approxposterior in parallel. Suppose we initialize N identical approxposterior objects and run them all in parallel. Simultaneously, we train a GP surrogate on the ensemble training set and run MCMC. The approxposterior "walkers" (if you will) never waste time deriving the approximate posterior using MCMC, and will constantly be helping to generate a master training set.

I'm really just spitballing here. In general, it would be great to take advantage of multiple cores to build an optimal training set for the surrogate model.

dflemin3 commented 4 years ago

I like this idea and we'll continue to discuss it offline, but for now, I'm going to more closely look at #61 to expand, or rather implement, multiprocessing for approxposterior. Feel free to reopen if you want to take a stab at this @jlustigy!