3
$\begingroup$

I have a complex domain-specific process that accepts inputs:

  • 10-500 inputs, where each input is of type:
    • enum: choice between multiple string or numeric values
    • int: integers
    • float: floating point numbers
    • boolean: can be considered a enum(0,1)

It outputs several dozen outputs that I have clubbed together with weights to form an output singular composite loss function.

The process:

  • Is non-linear with an unknown polynomial degree
  • Is discontinuous
  • Can be evaluated quickly in parallel (<10 s per evaluation)

The third point above seems to make pure Bayesian Optimization a suboptimal choice for this problem, as per skopt:

If you do not have these constraints [f is expensive to evaluate], then there is certainly a better optimization algorithm than Bayesian optimization.

Should I be looking at constraint solvers, instead, since the inputs are well defined (if discontinuous)?

What is the difference between a constraint solver and a Bayesian optimizer in this case?


Details:

The real-world process is actually extremely time-consuming, but I have generated a decision-tree Regression model that evaluates predictions rather quickly.

$\endgroup$
  • 1
    $\begingroup$ Could you clarify: Are you saying that being able to evaluate quickly in parallel makes this a bad fit for blackbox optimization? It seems to me that it would still work, but that you'd want a batched optimizer to take advantage of the parallelism. $\endgroup$ – Richard Jun 13 at 20:01
  • $\begingroup$ I'm following the advice here: scikit-optimize.github.io/notebooks/bayesian-optimization.html Namely the disclaimer: "If you do not have these constraints [f is expensive to evaluate], then there is certainly a better optimization algorithm than Bayesian optimization." $\endgroup$ – Elle Fie Jun 13 at 21:55

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.