Using optimize_acqf #1877
-
Hi everyone, I have 2 questions in my implementation of qNEHVI for optimization.
This appears to give me very unclear performance, as it strongly outperforms optimize_acqf for MW7 (dim=2) but poorly for MW7 (dim=8). Additionally, I am getting significantly shorter run times compared to optimize_acqf. Hope this discussion is relevant to the BoTorch community! |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 3 replies
-
The default optimization procedure isn't exactly straightforward, let me try to explain.
I am not sure what "how many possible solutions there are" means. We do gradient-based optimization and optimize over the continuous domain (assuming your domain is continuous), so there are potentially infinitely many solutions (well not in floating point precision but you get the idea). In particular we don't evaluate the acquisition function on a discrete set. Here is the basic idea:
This looks like you're just evaluating the acquisition function on a discrete set. This will not scale to higher dimensions (as you observed yourself).
For dim=2 you are probably splattering enough points across the domain to get very good coverage. This isn't necessarily the worst thing to do in 1 or two dimensions, but you'd want to not loop through each candidate individually but instead batch-evaluate the acquisition function by passing in the candidates tensor as a
Hmm this is interesting, I wouldn't have expected this to outperform gradient-based optimization. My hunch is that your |
Beta Was this translation helpful? Give feedback.
The default optimization procedure isn't exactly straightforward, let me try to explain.
I am not sure what "how many possible solutions there are" means. We do gradient-based optimization and optimize over the continuous domain (assuming your domain is continuous), so there are potentially infinitely many solutions (well not in floating point precision but you get the idea). In particular we don't evaluate the acquisition function on a discrete set. Here is the basic idea:
raw_samples
Sob…