Skip to content

nlorant-s/NeuroPush

Repository files navigation

NeuroPush

A PushGP Neuroevolution Framework

Motivation

What is NeuroPush?

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.

Why NeuroPush?

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.

Goals of NeuroPush

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.

PyshGP

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.

Releases

No releases published

Packages

No packages published

Languages