Questions tagged [neat]

For questions related to the neuroevolution technique called NeuroEvolution of Augmenting Topologies (NEAT), introduced in the paper "Evolving Neural Networks through Augmenting Topologies" (2002) by Kenneth O. Stanley and Risto Miikkulainen.

Filter by
Sorted by
Tagged with
0 votes
0 answers
9 views

How do encode selecting certain cards or combinations of cards into my output layer?

I'm currently trying to teach an AI to play the card/dice game DragonWood. I have generated a python library to handle the game rules and I have a simple deterministic algorithm to make decisions. I ...
Domronic's user avatar
0 votes
0 answers
13 views

Does the NEAT alogrithm disable genes randomly?

It is not mentioned in the original paper, if genes can be disabled randomly. They only mention that the connection gene is disabled, when a node is inserted in it's place. Is it the case, that genes ...
Servus's user avatar
  • 101
0 votes
0 answers
47 views

New input to NEAT not improving learning

I have a set of NEAT inputs for a jump game but the learning was getting stuck at one point. Consider the following screen where Z is the player and ...
paxdiablo's user avatar
  • 101
0 votes
1 answer
88 views

Neat Python - Population size explodes because of high mutation rate [closed]

Someone has already asked a question about this. But I implemented the suggestion made in the comments without success. So I was wondering if anybody had a better idea. I changed the mutation power ...
eeqesri's user avatar
  • 101
1 vote
1 answer
342 views

Can NEAT produce output which has no connection with any other node?

I recently developed a little tool called Neat Cars where you can drawa track, place a car and watch the NEAT algorithm in action (including the ANN). However, I saw something that caught my attention:...
Roux's user avatar
  • 13
1 vote
0 answers
34 views

How do I use the N correctly in NEATs speciation delta function?

When implementing NEAT I'm having some issues with the speciation distance/delta function, specifically the term N (number of genes in biggest genome). Won't term $N$ in $δ=c1*E/N+c2*D/N+c3*W$ just ...
egil87's user avatar
  • 11
4 votes
2 answers
1k views

Is there a way to easily simulate video games, without actually rendering the pixels on screen?

Youtube was recently suggesting to me videos of people training NEAT neural networks for video games. I've noticed that often the training process was quite slow (for example in this Trackmania ...
snatchysquid's user avatar
1 vote
0 answers
79 views

neat - what is the purpose of looped networks?

So im writing my own implementation of NEAT and i'm wondering how looped networks (like one shown in the image) can be useful. I'll probably implement them anyway because i want to fiddle around with ...
xfed's user avatar
  • 11
0 votes
1 answer
124 views

Order of operations on sparse recurrent network alters the output. How to deal with it?

I'm working on an implementation of NEAT, which evolves neural networks with small and sparse topologies. Evaluating a sparse and possibly recurrent network requires a different approach than the ...
Hugo Aboud's user avatar
1 vote
0 answers
120 views

NEAT: How to properly handle Node IDs and avoid Competing Conventions?

I'm working on yet another NEAT implementation for a personal project, and I feel like I'm missing something about the proposed solution to the Competing Conventions problem. Here's what I'm assuming: ...
Hugo Aboud's user avatar
1 vote
0 answers
95 views

NEAT Speciation distance: How does one treat disabled connections?

When calculating the distance between two genomes, how does one treat disabled connections? For example, consider the following genome: [1, 0.2, E] [2, 0.1, D] [3, 0.2, E] [4, 0.15, E] [5, 0.3, D] [...
Brent Parker's user avatar
1 vote
1 answer
98 views

Different ways to produce the same network in NEAT

I have an interesting example for the NEAT and want to clarify what behavior is correct from NEAT's perspective and why (why the opposite is wrong, what are the consequences of choosing the different ...
gerichhome's user avatar
1 vote
1 answer
246 views

In the NEAT algorithm, what is the purpose of treating disjoint and excess genes differently?

In the NEAT algorithm, what is the purpose of treating disjoint and excess genes differently? They are treated so (or may be treated potentially) at least when calculating the distance between 2 ...
gerichhome's user avatar
2 votes
1 answer
1k views

In what situation would you want to use NEAT over reinforcement learning?

NEAT is an evolutionary algorithm. When would you want to use NEAT over more traditional/common RL algorithms like PPO or SAC etc. What advantage does it give you?
Dylan Kerler's user avatar
2 votes
0 answers
136 views

In NEAT, how do node numbers work?

I have read a lot of debates about node ids and such. I'm not 100% sure how it works, but I am assuming the next node added to a network would be the next number in that specific networks list? For ...
Steve Forbes's user avatar
3 votes
0 answers
67 views

How does the paper implement NEAT without a global set tracking Innovations?

I have been reading this paper on NEAT and trying to implement the algorithm in C#. For the most part, I understand everything in the paper however, there are 2 things I don't understand that confuse ...
Steve Forbes's user avatar
0 votes
2 answers
183 views

How to ensure that the ES-HyperNEAT algorithm generates an ANN in the substrate?

I'm trying to implement the ES-HyperNEAT algorithm using the original paper, as well as the pseudocode provided in the official user page. Occasionally, the algorithm would be unable to generate a ...
SirBob's user avatar
  • 1
2 votes
0 answers
51 views

Is there an optimal number of species for NEAT?

Is there an optimal number of species for NEAT? Since too low and too high is bad, I am thinking about adjusting the threshold of the distance function at runtime in order to have the number of ...
IAmUser's user avatar
  • 51
1 vote
0 answers
233 views

How can I perform the forward pass in a neural network evolved with NEAT, given that some connections may not exist or there may be loopy connections?

I have a problem that arose as part of a NEAT (Neuro Evolution Through Augmenting Topologies) implementation that I am writing. I am wanting it to produce topologies or graphs that describe neural ...
Rohan Asokan's user avatar
2 votes
1 answer
204 views

Evolved networks fail to solve XOR

My implementation of NEAT consistently fails to solve XOR completely. The species converge on different sub-optimal networks which map all input examples but one correctly (most commonly (1,1,0)). Do ...
Sebastian Allard's user avatar
4 votes
1 answer
329 views

NEAT can't solve XOR completely

I'm currently implementing the NEAT algorithm. But problems occur when testing it with problems which don't have a linear solution(for example xor). My xor only produces 3 correct outputs once at a ...
Creepsy's user avatar
  • 141
3 votes
2 answers
164 views

How do I determine the genomes to use for crossover in NEAT?

If I have the fitness of each genome, how do I determine which genome will crossover with which, and so on, so that I get a new population? Unfortunately, I can't find anything about it in the ...
GastUser's user avatar
2 votes
0 answers
664 views

How to select good inputs and fitness function to achive good results with NEAT for Icy Tower bot

I'm trying to make a bot to the famous "Icy Tower" game. I rebuilt the game using pygame and I'm trying to build the bot using Python-NEAT. Every generation a population of 70 characters ...
Lidor shimoni's user avatar
0 votes
1 answer
73 views

What does "In each generation, 25% of offspring resulted from mutation without crossover" mean in the context of NEAT?

I am reading through the NEAT paper. In parameter settings, page 15, there is: In each generation, 25% of offspring resulted from mutation without crossover. What does it mean?
galaxy001's user avatar
  • 103
4 votes
0 answers
761 views

How to perform classification with NEAT-Python?

I am trying to do classification using NEAT-python for the first time, and I am having difficulty getting the accuracy rate. I tried the same problem with an ANN and was able to get a good accuracy ...
Linkuz's user avatar
  • 41
6 votes
1 answer
182 views

In NEAT, is it a good idea to give the same ID to node genes created from the same connection gene?

Do I have to prevent nodes created from the same connection gene to have different IDs/innovation number? In this example, the node 6 is created from the connection going from node 3 to node 4: In ...
Dara Kong's user avatar
  • 115
2 votes
1 answer
629 views

Do I have to crossover my node genes in NEAT, and how?

I'm currently trying to code the NEAT algorithm by myself, but I got stuck with two questions. Here they are: What happens if during crossover a node is removed (or disabled) and there's a connection ...
Dara Kong's user avatar
  • 115
2 votes
1 answer
754 views

I created a snake game and fitted the NEAT algorithm and there's issues

Below are my Inputs Outputs and fitness function. The snake is learning at a slow rate, and seems to be stagnant, additionally when the snake collides with the food, it gets deleted from the genome, ...
Vnix7's user avatar
  • 31
2 votes
1 answer
873 views

How to choose the activation function in neuroevolution?

I am developing a NEAT flappy bird game, and it doesn't work, the system stays stupid for 300 generations. I chose tanh() for activation, just because it's included in JS. I can't find a good ...
nraynaud's user avatar
  • 131
2 votes
2 answers
184 views

Are connections genes in a genome ever deleted or just disabled?

When a new node is added, the previous connection is disabled and not removed. Is there any situation in which a connection gene is removed? For example, in the above diagram connection gene with ...
Akash Karnatak's user avatar
1 vote
1 answer
530 views

How are weights updated in a genetic algorithm with neural network?

Suppose an AI is to play the game flappy bird. And the fitness function is how long the bird has traveled before the game ends. Would we have multiple neural networks initialized at the beginning ...
Mark's user avatar
  • 21
1 vote
1 answer
243 views

Unable to achieve expected outputs using NEAT for the snake game

I am trying to implement NEAT for the snake game. My game logic is ready, which is working properly and NEAT configured. But even after 100 generations with 200 genomes per generation, the snakes ...
Ayan Chowdhury's user avatar
1 vote
1 answer
2k views

Library for rendering neural network NEAT [closed]

I just finished my implementation of NEAT and I want to see the phenotype of each genome. Is there a library for displaying a neural network like this? Example of my genome syntax: ...
Terry T.'s user avatar
  • 339
6 votes
2 answers
1k views

Can neuroevolution be combined with gradient descent?

Is there any precedent for using a neuroevolution algorithm, like NEAT, as a way of getting to an initialization of weights for a network that can then be fine-tuned with gradient descent and back-...
benbyford's user avatar
  • 348
2 votes
1 answer
196 views

How can non-functional neural networks be avoided when the crossover produces a child with a disabled gene?

I am implementing NEAT (neuroevolution of augmenting topologies) by Stanley. I am facing a problem during the crossover of genomes. Suppose two networks with connections ...
SamuelMyself's user avatar
2 votes
0 answers
700 views

Exploding population size in neat-python

I am trying to make my AI win the board game "Catan" against my friends. Therefore i am using the python implementation of NEAT. As I changed the values of ...
wuerfelfreak's user avatar
1 vote
1 answer
316 views

How does NEAT find the most successful generation without gradients?

I'm new to NEAT, so, please, don't be too harsh. How does NEAT find the most successful generation without gradient descent or gradients?
Sebastian Dixon's user avatar
2 votes
2 answers
396 views

How to reduce amount of species in NEAT?

I am using the following library: https://github.com/vishnugh/evo-NEAT which seems to be a pretty simple NEAT-implementation. Therefore I am using the following Config: ...
TVSuchty's user avatar
  • 273
1 vote
0 answers
44 views

What are some examples of tasks in which, currently, neuroevolution outperforms gradient-based approaches?

Note: I am NOT asking for general advantages of neuroevolution over standard approaches (e.g.: architecture search, parallelization), I am asking for examples of tasks in which, currently, ...
olinarr's user avatar
  • 755
2 votes
3 answers
172 views

What does the formula $1-\sum_i(e_i-a_i)^2$ mean in this NEAT Python API?

I have looked at the documentation for the NEAT Python API found here, where it's written The error for each genome is $1-\sum_i(e_i-a_i)^2$ I have not yet learned calculus, so I can't understand ...
A Twizzler's user avatar
0 votes
0 answers
58 views

How do I choose an appropriate fitness function and hyper-parameters to train a 7-DOF arm?

I am trying to train an ANN to control a 7 Degrees-Of-Freedom arm. It should reach a target avoiding a single obstacle. Given my modeling of the situation, my input layer is composed of 12 nodes: 5 ...
olinarr's user avatar
  • 755
1 vote
2 answers
266 views

Running 2 NEAT nets on the same observations

So i have been playing around with neat-python. I made a program, applying neat, to play pinball on the Atari 2600. The code for that can be found in the file ...
niallmandal's user avatar
3 votes
1 answer
75 views

How accurate are neuroevolution algorithms in modelling organism evolution?

How accurate are neuro-evolution algorithms (such as NEAT) in modelling real organism evolution?
Sebastian Dixon's user avatar
5 votes
1 answer
286 views

Is there a neural network with a varying number of neurons?

Is there some type of neural network that changes the number of neurons while training? Using this idea, the network can increase or decrease the number of neurons when the complexity of the inputs ...
Aura Lee's user avatar
  • 239
5 votes
1 answer
5k views

Why would someone use NEAT over other machine learning algorithms?

Why would someone use a neuroevolution algorithm, such as NEAT, over other machine learning algorithms? What situation would only apply to an algorithm such as NEAT, but no other machine learning ...
Sebastian Dixon's user avatar
4 votes
3 answers
1k views

How do you implement NEAT by taking into account the loops?

I'm working on my own implementation of NEAT algorithm based on the original 2002 paper called "Efficient Reinforcement Learning through Evolving Neural Network Topologies" (by Kenneth O. Stanley and ...
Emad's user avatar
  • 183
2 votes
1 answer
367 views

Are innovation weights shared in the NEAT algorithm?

I am trying to implement NEAT algorithm in Python from scratch. However, I am stuck. When a new innovation number is created it has two nodes which represents the connection. Also this innovation ...
Meric Ozcan's user avatar
2 votes
1 answer
503 views

Can NEAT produce neural networks where inputs are directly connected to outputs?

Can NEAT produce neural networks where inputs are directly (without intermediate hidden neurons) connected to outputs?
Meric Ozcan's user avatar
4 votes
1 answer
194 views

Using NEAT, will the child of two parent genomes always have the same structure as the more fit parent?

I'm trying to implement the NEAT Algorithm using c#, based off of Kenneth O. Stanley's paper. On page 109 (12 in the pdf) it states "Matching genes are inherited randomly, whereas disjoint genes (...
Alex Charters's user avatar
5 votes
2 answers
2k views

How does the NEAT speciation algorithm work?

I've been reading up on how NEAT (Neuro Evolution of Augmenting Topologies) works and I've got the main idea of it, but one thing that's been bothering me is how you split the different networks into ...
Aguy's user avatar
  • 65