Introducing LogExpectedImprovement
#1565
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary:
This commit introduces
LogExpectedImprovement
, which computes the logarithm of the Expected Improvement acquisition function. By taking special care of numerics, it avoids numerical issues that affectExpectedImprovement
when evaluated at points that with high certainty do not yield improvement. In contrast,LogExpectedImprovement
computes both values and gradients in a numerically stable fashion for points that don't yield improvement down to at least 100 orders of magnitude lower posterior standard deviation than vanilla EI in double precision. This allows optimizers to escape the "valley of death" - regions that the surrogate is certain are bad but for which EI does not yield gradients.On the example test problem in N2901527, using
logEI
leads to better convergence compared to GPEI and similar performance as running homotopy on the target value without having to run homotopy iterations.{F822088495}
Reviewed By: Balandat
Differential Revision: D41890063