Sometimes you only want to get a quick guess of what sort of values are roughly close to the optimum of the posterior, rather than sampling the posterior properly. This is particularly useful at the exploration stage. For this, simpler optimisers may be good enough, and the solutions they find can be used effectively as the starting points for samplers.
This PR implements wrappers to a range of potentially-useful optimisers, following the same interface as our sampler wrappers use. Initially, I have implemented interfaces to all of the global optimisers from scipy.optimize (except brute, since brute-force optimisation doesn't seem super useful to us) and the local minimiser minimize.
To do before this PR can be considered complete:
Implement Ax/BOtorch Bayesian Optimisation routines, since these are better when models are very slow
These changes are required for the WISCI meeting next week, so if someone could start taking a look at them it would be great. I need to merge the changes we have so far in time for people to use them!
Sometimes you only want to get a quick guess of what sort of values are roughly close to the optimum of the posterior, rather than sampling the posterior properly. This is particularly useful at the exploration stage. For this, simpler optimisers may be good enough, and the solutions they find can be used effectively as the starting points for samplers.
This PR implements wrappers to a range of potentially-useful optimisers, following the same interface as our sampler wrappers use. Initially, I have implemented interfaces to all of the global optimisers from
scipy.optimize
(exceptbrute
, since brute-force optimisation doesn't seem super useful to us) and the local minimiserminimize
.To do before this PR can be considered complete: