aimclub / GOLEM

Graph Optimiser for Learning and Evolution of Models
https://thegolem.readthedocs.io
BSD 3-Clause "New" or "Revised" License
60 stars 7 forks source link

New optimization handles for outer scope users #201

Open kasyanovse opened 1 year ago

kasyanovse commented 1 year ago

Problem description

FEDOT case. Sometimes optimization cannot return appropriate results. For that case there are some parameters in FEDOT like num_of_generations, keep_n_best (it may be usefull for different structure of best graphs, but there is no way to check it), pop_size (it does not work as expected due to auto change of pop_size under GOLEM hood). As result only one with half parameters can adjust optimization process. It is very weak instruments for complex problem that cannot be solved by default GOLEM parameters.

More concise. I need to run some experiments:

  1. Optimization with high pop_size (1000-10000) and high amount of mutations (double, triple, etc). The only way for do it - clone GOLEM repo and hardcode what I need.
  2. Extend the initial population with the one mutation type and then run with all mutation types. Also clone repo and hardcode.
  3. Any another ideas.

Are there something that can help with it in current GOLEM release?

Problem definition

There is need for some simple instruments for tuning optimization.

Suggestion

The simplest and dumb idea is to create optimization pipelines.

  1. Pipeline for population optimization. It gets existing population and returns new population. Also there may be structure with any complexity.
  2. Pipeline for mutation. It gets the existing individual and return some new individuals.

Pros

  1. Optimization process may depend on task or on graph type, or any known parameter
  2. Optimization process may be changed by outer libraries like FEDOT for current domain
  3. Optimization may be optimized or created by metalearning algorithm (also by the outer libraries)
  4. Optimization may be very complicated and have a lot of conditional statements. Also different optimization approach may be combined (some parameters may be found by euristic algortihms as a substage of evolutional process - optimization will be faster)
  5. Optimization will become more clear for users and very handy for tuning

Cons

  1. It may be hard
  2. It may perturb the development plan of GOLEM