nestauk / old_nesta_daps

[archived]
MIT License
18 stars 5 forks source link

Add optimisation brokers to autoML #108

Open jaklinger opened 5 years ago

jaklinger commented 5 years ago

The idea is to add a new layer of "optimiser"s between AutoMLTask and MLTask called MLOptTask. There will be three classes of optimiser: MLRandomOptTask, MLGridOptTask and MLGPOptTask. One of the first two will be required to call the third.

It will look something like:

MLTask** <-- MLGridOptTask <-- MLTask** <-- MLGPOptTask <-- AutoMLTask

Note that ** tasks are self-spawning sets of many tasks

jaklinger commented 5 years ago

or consider changing AutoBatchTask to AutoBatchTaskBase and abstracting away the finished() method. Then AutoBatchTask runs as normal, whilst AutoMLBatchTask orchestrates the MLTasks with a custom finished() method.

So:

MLTask** <-- AutoMLBatchTask <-- AutoMLTask(optimiser={'grid', 'random', a_function}, initialiser={'grid', 'random'}). See GPOpt for inspiration.

jaklinger commented 5 years ago

other alternative is for AutoMLTask to yield a new AutoMLTask on complete. This is probably simpler