facebook/Ax

[GENERAL SUPPORT]: Reference point for multi-objective bayesian optimization

renaissanceM4n opened this issue · 4 comments

Question

How is the reference point set in multi-objective Bayesian optimization with qNParEGO, qEHVI or qNEHVI if no reference point was specified by the user when defining the objectives?
I performed an optimization and was able to plot the progress of the hypervolume improvement per trial using the get_trace() method of the client.
I would be very happy to receive feedback.

Please provide any relevant code snippet if applicable.

image

Code of Conduct

  • I agree to follow this Ax's Code of Conduct

I believe this is actually mentioned in the MO tutorial:

The reference point should be set to be slightly worse (10% is reasonable) than the worst value of each objective that a decision maker would tolerate.

Yes you're right. I just wanted to know what happens if no reference point is defined at all. But this is probably not intended, even if it is optional in the configuration.

My uninformed guess would be that the optimizer would then be forced to search in a larger search space, which would probably impact some efficiency and processing cost metrics; but would love to hear from the devs, for sure!

Hi @renaissanceM4n and @Abrikosoff, this will end up going through infer_objective_thresholds here (https://github.com/facebook/Ax/blob/main/ax/modelbridge/torch.py#L153) which will eventually set the reference point to slightly worse than nadir point (worst observation for each outcome - 0.1 of that outcome's range). But, in practice, it is optimal for the user to provide the reference point if it is known :)

Please feel free to reopen the issue with any follow-ups.