facebookresearch / nevergrad

A Python toolbox for performing gradient-free optimization
https://facebookresearch.github.io/nevergrad/
MIT License
3.92k stars 352 forks source link

dynamically choosing the instrumentation ? #798

Open teytaud opened 4 years ago

teytaud commented 4 years ago

This one looks technically complicated. We choose the instrumentation as part of the objective function. Maybe the optimization algorithm might decide to change the instrumentation ? For example, depending on the arity of a discrete domain, we might prefer Softmax or UnorderedChoice.

jrapin commented 4 years ago

I agree, still thinking about it and no solution yet. The thing is that you may also want to enforce the instrumentation as a user (typically for running expriments) so we would need to support both.

513

teytaud commented 4 years ago

Agree... maybe we do not change anything in the structure of the codebase, and simply the optimizer can detect the instrumentation, creates another instrumentation, and converts data in order to adapt...

jrapin commented 4 years ago

Agree... maybe we do not change anything in the structure of the codebase, and simply the optimizer can detect the instrumentation, creates another instrumentation, and converts data in order to adapt...

This would be hard to manage and can be confusing for a user :s but that's probably what will happen eventually