CPPN NEAT - GiorgosMethe/Soft-Robots-Novelty-Search GitHub Wiki

Home

CPPN-NEAT

Compositional pattern-producing networks, are a variation of artificial neural networks which differ in their set of activation functions and how they are applied.

While ANNs often contain only sigmoid functions (and sometimes Gaussian functions), CPPNs can include both types of functions and many others. The choice of functions for the canonical set can be biased toward specific types of patterns and regularities. For example, periodic functions such as sine produce segmented patterns with repetitions, while symmetric functions such as Gaussian produce symmetric patterns. Linear functions can be employed to produce linear or fractal-like patterns. Thus, the architect of a CPPN-based genetic art system can bias the types of patterns it generates by deciding the set of canonical functions to include.

Furthermore, unlike typical ANNs, CPPNs are applied across the entire space of possible inputs so that they can represent a complete image. Since they are compositions of functions, CPPNs in effect encode images at infinite resolution and can be sampled for a particular display at whatever resolution is optimal.

CPPNs can be evolved through neuroevolution techniques such as NeuroEvolution of Augmenting Topologies (called CPPN-NEAT). [1]

For this experiment we used CPPN-NEAT implementation in [2].

Novelty Search

On top of CPPN-NEAT, novelty search can be applied only by changing the fitness to represent behavior. The fitness measure is now how different is each individual from every novel individual was found in earlier generations. Through this ''random'' search without backtracking evolution is able to create very different softbots which have very different behaviors, without seeking performance. [3]

Instructions

CPPN-NEAT: How to compile

CPPN-NEAT: How to run

CPPN-NEAT: General Instructions

References

[1] http://en.wikipedia.org/wiki/Compositional_pattern-producing_network

[2] HyperNEAT v4.0 C++, By Jason Gauci, http://ucfpawn.homelinux.com/joomla/ email: [email protected]

[3] Lehman, Joel, and Kenneth O. Stanley. "Abandoning objectives: Evolution through the search for novelty alone." Evolutionary computation 19.2: 189-223. (2011)