-
-
Notifications
You must be signed in to change notification settings - Fork 223
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
PiBO #813
PiBO #813
Conversation
Distributions for GPs. Added: - Method get_configspace in base_epm (needed in PriorAcquisitionFunction) - Allow for NormalInteger- and NormalFloatHyperparameter in util_funcs check - Added support for enabling user priors in optimization in facade - Added PriorAcquisitionFunction class in acquisition.py
hyperparameters
incorporated it into Local Search with priors
still haven't discretized the prior, though
with random forests and continous parameters
prior_optimization_kwargs
example and removed finished TODOs
PriorAcquisitionFunction
in ConfigSpace (Hyperparameter.get_max_density())
search space based on the prior (not only the uniform one).
retrieved form the uniform configspace
We need to wait for the new ConfigSpace release and then see if the tests are running through. After that, we can merge. 🌞 |
I'll release a new ConfigSpace later today :) |
Great, thanks! |
You can check progress here, I bumped the version notes and now the wheels are building for Windows/Linux/Mac ... Once those are done I can publish a release :) |
One more point: Considering it's a fairly major change to ConfigSpace, I bumped from |
@hvarfner, @benjamc It's live, https://pypi.org/project/ConfigSpace/#files :) Just going to reiterate the requirements file needs to be changed here. |
Sorry more notes, the dependency cycle continues. Autosklearn can't use new ConfigSpace until there's a new SMAC release. It's not urgent but just that I will be nudging this along while possible. |
Hi, If I'm not mistaking, we waited for configspace to be in place before, right? Is there more that needs to be done? If so, please let me know what I can do! |
Hi @hvarfner, As previously mentioned, the requirements file needs to be updated so that the right version of ConfigSpace gets pulled in. If you look at the test errors, you can see that Best, |
We have another PR going on right now, which updates the files based on updated tools (black, flake8, ...). We would love to have PiBO in this "cleaned" state, although it takes a bit more time. I can't promise it but most likely we can merge it Thursday. Sorry for the late responses - a lot going on recently. |
Hi Rene and Eddie, |
smac/facade/smac_ac_facade.py
Outdated
model_instance, RFRImputator | ||
) | ||
acquisition_function_instance = PriorAcquisitionFunction( | ||
acquisition_function=acquisition_function_instance, **user_prior_kwargs, **acq_def_kwargs |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Both decay_beta and discretize are not used. Should they be part of "user_prior_kwargs"?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
After this issue is fixed, we can merge it. :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great to hear! I'll check it right away.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Addressed the issue now, thanks for spotting.
- PiBO: Augment the acquisition function by multiplying by a pdf given by the user. The prior then decays over time, allowing for the optimization to carry on as per default. - The `RunHistory` can now act as a `Mapping` in that you can use the usual methods you can use on dicts, i.e. `len(rh)`, `rh.items()`, `rh[key]`. Previously this was usually done by accessing `rh.data` which is still possible. - Updated the signature of the `ROAR` facade to match with it's parent class `SMAC4AC`. Anyone relying on the output directory without specifying an explicit `run_id` to a `ROAR` facade should now expect to see the output directory at `run_0` instead of `run_1`. See #827. - Updated and integrated flake8, mypy, black, and isort. - SMAC uses `automl_sphinx_theme` now and therefore the API is displayed nicer. Co-authored-by: Carl Hvarfner <58733990+hvarfner@users.noreply.github.com> Co-authored-by: Difan Deng <deng@dengster.tnt.uni-hannover.de> Co-authored-by: Carolin Benjamins <benjamins@tnt.uni-hannover.de> Co-authored-by: Tim Ruhkopf <timruhkopf@gmail.com> Co-authored-by: eddiebergman <eddiebergmanhs@gmail.com>
PiBO - BO with user Priors over the Optimum
New attempt on PiBO - here are the changes from last time:
New Added unit tests for PriorAcquisitionFunction (and required supporting classes)
Added unit test for LocalAndSortedPriorRandomSearch
Removed the need to sample the prior to get the co-domain of the prior
Changed input kwargs in facade
Confirmed issue combining inactive with Normal / Beta hyperparameters
Added beauitified example usage
And of course, right branch this time