Skip to content

Conversation

TobyBoyne
Copy link
Contributor

Motivation

See #3009.

Have you read the Contributing Guidelines on pull requests?

Yes

Test Plan

After feedback on the initial draft of the PR, I will implement tests similar to the problem structure in #3009, confirming that the behaviour of the modified code behaves as desired.

Related PRs

None

@meta-cla meta-cla bot added the CLA Signed Do not delete this pull request or issue due to inactivity. label Sep 13, 2025
@TobyBoyne TobyBoyne marked this pull request as ready for review September 13, 2025 18:58
@TobyBoyne
Copy link
Contributor Author

If reviewers are happy with these changes, I will also implement them for the non-log version, as well as investigating the multi objective acqfs to see if similar changes are needed. I will also write tests in this PR, once the ideas in this PR have been approved.

tau_relu: float = TAU_RELU,
marginalize_dim: int | None = None,
incremental: bool = True,
infeasible_obj: Tensor | float | None = None,
Copy link

@renzph renzph Sep 15, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should this also be added to qNoisyExpectedImprovement?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes - if the changes look good to whoever reviews, then I will also apply them to qNEI, as well as investigating q(Log)NEHVI too. Just wanted to get confirmation that the changes were good before making them elsewhere :)

Copy link
Contributor

@Balandat Balandat left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks. At a high level I second @esantorella's point about using qLogProbabilityOfFeasibility When nothing is feasible.

But it also makes sense to improve the behavior for (q)(Log)(N)EI if the user doesn't do an pre-processing. For this, the changes here overall seem quite reasonable to me. Do you have some results that show the effect of this?

cc @SebastianAment re LogEI and @dme65 who has been thinking about similar issues in the case of largely infeasible data.

dim=0,
)

if lb.ndim - 1 < posterior.mean.ndim:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why this change?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We add an extra dimension in the line above, by stacking the mean - 6*std and mean + 6*std. This then changes the check below. Maybe it would be better for me to be explicit above, taking the minimum of mean +- 6*std instead of stacking, and then leaving this line unchanged?

TobyBoyne and others added 2 commits September 18, 2025 02:14
Co-authored-by: Max Balandat <[email protected]>
@TobyBoyne
Copy link
Contributor Author

Hi @Balandat, thanks for the review! I don't have any results showing the effect yet. Would you be interested in seeing the effect of these changes on _estimate_objective_lower_bound, or results from downstream BO tasks? I will be able to continue working on this PR in the coming week :)

@Balandat
Copy link
Contributor

@TobyBoyne ideally both - it seems that the behavior in this setting is degenerate enough that I'd expect to see pretty clear effects on the downstream BO tasks even without having to run many replications.

And thanks a lot for your effort on improving this!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CLA Signed Do not delete this pull request or issue due to inactivity.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants