Library of neuro Architecture search Methods for Application dRiven Construction of networKs.
Domain specific machine learning tasks can usually be achieved with transfer learning. However these solutions often suffer from an overhead in computation and memory. Therefore, this python library provides a framework for neuro architecture search using neuroevolution to solve this problem by generating application specific neural networks.
Please have a look at the examples.
This project started as a preliminary investigation. A generational genetic algorithm has been parameterized and used to generate convolutional neural networks for the MNIST data set. The network architectures have been optimized to increase the accuracy and minimize the amount of trainable parameters. The results have been published in Advances in Computational Intelligence.
The goal is to build a modular and extendable framework to explore the possibilities of neuroevolution to generate task specific network architectures. Next steps:
- develop new representations for network architectures
- support multi gpu/cpu systems for network training
- non generational model
-
modular and extendable
-
multi-objective optimization
-
evolutionary/genetic algorithm
- mutation
- recombination
-
different selection strategies:
- tournament selection
- ranking selection
- proportional selection
- ...
-
different replacement schemes:
- elitism
- weak elitism
- ...
-
custom ranking methods for selection and replacement
-
random generation of initial network architectures
-
logging and visualization of development