Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Can neuroevolution of augmenting topologies (NEAT) neural networks be built in TensorFlow?

I am making a machine learning program for time series data analysis and using NEAT could help the work. I started to learn TensorFlow not long ago but it seems that the computational graphs in TensorFlow are usually fixed. Is there tools in TensorFlow to help build a dynamically evolving neural network? Or something like Pytorch would be a better alternative? Thanks.

like image 893
frt132 Avatar asked Sep 12 '18 03:09

frt132


People also ask

What is neat neural network?

NeuroEvolution of Augmenting Topologies (NEAT) is a genetic algorithm (GA) for the generation of evolving artificial neural networks (a neuroevolution technique) developed by Kenneth Stanley in 2002 while at The University of Texas at Austin.

What is neat algorithm used for?

NEAT stands for NeuroEvolution of Augmenting Topologies. It is a method for evolving artificial neural networks with a genetic algorithm. NEAT implements the idea that it is most effective to start evolution with small, simple networks and allow them to become increasingly complex over generations.

Is neat a machine learning algorithm?

As far as I know, NEAT (NeuroEvolution of Augmenting Topologies) is an algorithm that uses the concept of evolution to train a neural network. On the other hand, reinforcement learning is a type of machine learning with the concept of "rewarding" more successful nodes.


1 Answers

One way to make an evolving tensorflow network would be to use either hyperneat or the es-hyperneat algorithms instead of running the evolution on the individual networks in the species this instead evolves a "genome" that is actually cppn that encodes the phenotype neural nets. For the cppn you can use a feed forward tensorflow network with the caveat of having different activation functions that can be used at each node, this lets the cppn evolve to be able to be queried for the structure and weights of the "phenotype" neural network for which you can use a generic tensorflow net(or whatever net you so choose)

I would look into the neat-python and peas libraries and look at the networks they use and replicate those classes with tensorflow nets.

like image 150
nickw Avatar answered Oct 02 '22 03:10

nickw