-
Notifications
You must be signed in to change notification settings - Fork 140
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
(Expected improvement not finite. Variance matrix may be singular) when num_to_sample > 1 #453
Comments
I believe if you don't specify hyperparameters (starting to think we really should not have allowed users to do that), they all default to 1.0. Your domain length is 1.0, so that means the GP predictor will look roughly like a straight line connecting the end points. When you try to find the best expected improvement for 2 simultaneous points, they'll both be out of bounds (and snapped back in bounds), which can cause the exact-EI computation to fail (when multiple points_to_sample are identical). They go out of bounds b/c the GP expects essentially 0 improvement from sampling inside the domain. Setting the hyperparam length scale to say 0.1 should not have this issue. But unless I'm missing something, that error comes from:
and should be handled here: MOE/moe/views/gp_next_points_pretty_view.py Line 145 in 97949e5
So I'm confused as to why it would be failing outright... |
What does this hyperparameter mean here? By scale, do you mean theta in the prior covariance function? I thought that was fit from the data a la empirical bayes.. Does this mean that proper operating procedure is to first call gp_hyper_opt, retrieve the fitted hyperparameters, and then pass them to gp_next_points? |
like
the hyperparameters are Answer to your last question is Yes :) That said, keep a few things in mind:
|
@suntzu86 's explanation makes sense, but I'm still getting the same error with the original example after adding the following to the request:
What else is required to perform multiple samples? |
I'm posting the following JSON to gp/next_points/epi:
{"domain_info": {"dim": 1, "domain_bounds": [{"max": 1.0, "min": 0.0}]}, "gp_historical_info": {"points_sampled": [{"value_var": 0.01, "value": 0.1, "point": [0.0]}, {"value_var": 0.01, "value": 0.2, "point": [1.0]}]}, "num_to_sample": 2}
and it returns an error of
Is this expected behavior?
The text was updated successfully, but these errors were encountered: