Happy-Algorithms-League / hal-cgp

Cartesian genetic programming (CGP) in pure Python.
GNU General Public License v3.0
28 stars 10 forks source link

Provide sensible defaults for all(most?) hyperparameters #307

Closed jakobj closed 2 years ago

jakobj commented 3 years ago

To streamline the (common) user experience, I think we should provide defaults for most hyperparameters of the library. The defaults should be taken from the CGP literature, possibly with some exceptions, e.g., ~10 columns, rather than thousands.

I believe this would significantly improve the user experience by not having to worry about many hyperparameter settings, but rather starting from a reasonable default, figuring out which should be changed.

Thoughts @mschmidt87 @HenrikMettler ?

HenrikMettler commented 3 years ago

I agree we should provide meaningful initial values for hyperparameters, this can significantly improve the user experience imo. However I start to have some doubts about these "old-fashioned" values from the cgp litterature, which were found for older computer architectures. Ie in Evolving Reinforcement Learning Algorithms they use pop_size = 300 and tournament_size = 25. I think it would be worth investing some resources in finding good hyperparameters. What do you think? @jakobj @mschmidt87

jakobj commented 3 years ago

I would strongly suggest to use the "old fashioned" parameters for now.

In general it's of course worth investigating whether particular parameters should be adapted, for example, to the crazy parallel machines we have nowadays. One thing to keep in mind though is that if other authors are not using CGP, likely their (optimal) parameter settings for the EA will be different from ours.