A PushGP Neuroevolution Framework
NeuroPush is a neuroevolution framework that utilizes Push Genetic Programming (PushGP) to discover optimal neural network architectures. With NeuroPush, neural networks are represented by Push integer and float stacks, offering a versatile and extensive search space.
The Push Language provides state-of-the-art genetic programming capabilities. It utilizes stochastic (typically evolutionary) search methods to intelligently search the space of programs. The fundamental output is a program written in the Turing complete Push language, which is then initialized and evaluated as a neural network. Utilizing Push, one of the most powerful "general program synthesis" frameworks, may prove to be advantageous for neuroevolution.
NeuroPush aims to optimize neural networks in complex search spaces, with a specific interest in metacognition and general intelligence. Development of NeuroPush is still in progress, and research on NeuroPush may be conducted in the future.
Neuropush utilizes PyshGP, a Python package for PushGP. Documentation for the pyshgp
API can be found here. More information about PushGP can be found on the Push Redux the Push Homepage and the Push Language Discourse.