SciML / SciMLBenchmarks.jl

Scientific machine learning (SciML) benchmarks, AI for science, and (differential) equation solvers. Covers Julia, Python (PyTorch, Jax), MATLAB, R
https://docs.sciml.ai/SciMLBenchmarksOutput/stable/
MIT License
319 stars 84 forks source link

Benchmark Tim Holy's global algorithms on parameter estimation problems #34

Open ChrisRackauckas opened 6 years ago

ChrisRackauckas commented 6 years ago

@timholy made

https://github.com/timholy/QuadDIRECT.jl

and

https://github.com/timholy/MultilevelCoordinateSearch.jl

We should give these a try in the Lorenz parameter estimation notebook.

@Vaibhavdixit02

Vaibhavdixit02 commented 6 years ago

This seems quite interesting, I'll get started on this, do you want only the Lorenz case to be covered?

ChrisRackauckas commented 6 years ago

We should add more benchmarks anyways. Lotka-Volterra for sure. This is another set of simple problems:

https://github.com/JuliaDiffEq/DiffEqParamEstim.jl/issues/31

and these are much more complex:

https://github.com/JuliaDiffEq/DiffEqParamEstim.jl/issues/30

timholy commented 6 years ago

Not had time for my mail in several days (it's pure luck this was on top of the heap), and I'm leaving town momentarily for a couple days. A couple of tips to hold you over:

ChrisRackauckas commented 6 years ago

MCS isn't really finished and may never be, try QuadDIRECT

With global optimization, what I've learned is that good stopping criteria are hard to come by. If at all possible, benchmark using fvalue (and set rtol=0).

Thanks for the guidance.

The problem is that n grows, needing O(n^2) function evaluations just to get started means that early iterations often don't make progress very quickly.

Well, sounds like this is the perfect case then. Parameter estimation of DiffEq's is already hard on global optimizers when n=3, so our main test is to find out what can actually get the right parameters even for small equations. That has remained elusive except for a few methods from NLopt and BlackBoxOptim. I have high hopes!

I'm sure you can guess from the name how it will work.

Hehe.

timholy commented 6 years ago

n=3 probably doesn't critically depend on the QuasiNewton, "explore" (rather than "exploit") will eventually cover the search space. But you'll see some benefit even there in terms of how quickly it settles on good minima.

Realized some of this stuff is on an unpushed branch. I'll see if I can merge before I leave, but watch for PRs on QuadDIRECT.