automl / DEHB

https://automl.github.io/DEHB/
Apache License 2.0
71 stars 16 forks source link

[Question] Understanding how the parent pool is generated #25

Closed Game4Move78 closed 1 year ago

Game4Move78 commented 1 year ago

In the part of mutation when the parent pool is filled with candidates generated using the global population, it appears to me this is carried out in the following steps:

  1. Promote the top K individuals from the lower budget
  2. Set M equal to the number of additional candidates that need to be generated for the chosen mutation strategy (e.g. 3 - K in the case of rand1)
  3. Construct the "global population" by taking the union of all budget subpopulations
  4. Distil the global population to a smaller size M by performing DE mutation M times using the global population, and then append each mutant vector to the parent pool
  5. Perform mutation once using the parent pool

4.2 of the paper gave me the impression that "sampled from the global population pool" meant chosen at random, but the code seems to perform a prior round of mutation to generate parents, particularly at the highest budgets where very few configurations are promoted.

Neeratyoy commented 1 year ago

Hi,

Thanks for your question.

Yes, if the number of configs required for mutation is less than that specified by the default mutation strategy, the difference in the number of configs is generated from the global population. As it appears in the code, it is generated through a round of mutation. This should prevent the resampling of configs that are already existing in the parent pool selected at this stage. Also, the global population simply concatenates the different subpopulations, that were evaluated at different fidelities and have different population sizes.

Hope that answers the questions!

Neeratyoy commented 1 year ago

I shall close this issue as it appears the question was clarified. Please feel free to reopen or post a new issue for anything required. Cheers!