EpistasisLab / tpot

A Python Automated Machine Learning tool that optimizes machine learning pipelines using genetic programming.
http://epistasislab.github.io/tpot/
GNU Lesser General Public License v3.0
9.66k stars 1.56k forks source link

Regularizing Evolution: Lifetime #817

Open mrektor opened 5 years ago

mrektor commented 5 years ago

Since TPOT is a GP framework, an interesting feature would be have the possibility of reguralize its evolution with a lifetime of the pipeline. That would mean that a pipeline can only survive "n" generation and then 'die'.

Context of the issue

This technique was proposed in a recent google paper where they used evolutionary programming for automatically designing a deep neural network achitecture (that eventually became the actual state-of-the-art in various computer vision problems).

This technique end up in keeping not "good individuals" that have had a perhaps noisy good value on a particular dataset, but rather a good ancestral code that can last the test of time. This was a somewhat poetic description, but the paper is much more detailed about: https://arxiv.org/pdf/1802.01548.pdf

It should not be too difficult to implement.

What do you think about it?

weixuanfu commented 5 years ago

Hmm, thank you for posting this idea here. I should be easy to implement since TPOT can record those statistics during optimization. We will look into the paper for more details.

rhiever commented 5 years ago

Sounds like an interesting research project and relates to the 'age-layering' concepts that we briefly explored in the early days of TPOT. The feature would have to be thoroughly evaluated prior to implementation into the dev/master branch of TPOT, given its far-reaching consequence on the software.