Calculate hypervolume in HSSP using sum of contributions#6130
Calculate hypervolume in HSSP using sum of contributions#6130nabenabe0928 merged 3 commits intooptuna:masterfrom
Conversation
There was a problem hiding this comment.
Could you change here to np.maximum(0.0, contribs) so that any contribs will not be lower than max_contrib and add an inline note about this?
Such a situation can happen due to numerical instability.
optuna/optuna/_hypervolume/hssp.py
Line 75 in 5b6348d
|
@sawa3030 Could you check this PR? |
It's OK, but does that situation cause any errors? |
I am not sure how likely it is, but it may trigger some unwanted behavior. |
|
In such cases, all contributions become almost zero, so doesn't it matter which one we choose? |
|
@not522
It depends on the scale of each objective, but the exact reason why we use the logarithm in the single-objective optimization is to capture such a nuanced difference. The detailed discussion is available in this paper. |
|
@sawa3030 |
sawa3030
left a comment
There was a problem hiding this comment.
I'm sorry to keep you waiting long. LGTM
nabenabe0928
left a comment
There was a problem hiding this comment.
Thank you for the PR, LGTM!
Motivation
The hypervolume determined by the selected points can be calculated as the sum of their contributions. This allows skipping the initial hypervolume calculation for each iteration in HSSP.
Description of the changes
Benchmark