[RFC] Support for non-MC acquisition objectives for MC acquisition functions #860
Locked
saitcakmak
started this conversation in
Ideas
Replies: 1 comment 4 replies
-
|
This makes sense to me. Curious to hear @Balandat's thoughts. No strong preference between 1) and 2). Perhaps 2) is a bit cleaner since the posterior_objective behavior/code is unified across analytic and MC acquisition functions. |
Beta Was this translation helpful? Give feedback.
4 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
What
I want to add support for non-MC
AcquisitionObjectives toMCAcquisitionFunctions, i.e., add support for aposterior_objectivethat transforms theposteriorbefore sampling. The existingobjectives forMCAcquisitionFunctions operate on the samples of the posterior rather than the posterior itself.Why
The posterior sampling from q-points jointly has an O(q^3) cost (using Cholesky). Using risk measures, i.e.,
InputPerturbationorAppendFeatures, multiplies the size of the q-batch withn_w, leading to a joint posterior overq * n_wpoints and a sampling cost ofO(q^3 n_w^3). If using Expectation as the risk measure, we have an option of transforming theq * n_wposteriorinto a posterior overqexpectations before sampling (I think at a cost of O(q^2 n_w^2)), reducing the cost of sampling to O(q^3) (This transform is similar toScalarizedObjectivebut operates over the q-batch dimension). This is currently not supported byMCAcquisitionFunctions.Proposal
I can think of two ways of implementing this. In both versions, we need to introduce new attribute
posterior_objective(possibly with a better name).i) add
posterior = self.posterior_objective(posterior) if self.posterior_objective is not None else posteriorline after the posterior call inMCAcquisitionFunctions.ii) Move the
_get_posteriormethod ofAnalyticAcquisitionFunctiontoAcquisitionFunctionand use theposterior_objectivein here, essentially unifying the objectives operating on the posterior across both analytic and MC acquisition functions. This would also require replacing themodel.posterior(...)calls inMCAcquisitionFunctions with a_get_posteriorcall.cc @sdaulton, @Balandat
Beta Was this translation helpful? Give feedback.
All reactions