5

I read through the Evolving Neural Networks through Augmenting Topologies (NEAT) paper. I understand the algorithm now, but one thing is still unclear to me.

When does the mutation occur and how does it take place? How is it chosen whether to add a node or to add a connection mutation? Furthermore, how is it chosen where the mutation is taking place in the network (between which connections)?

nbro
  • 39,006
  • 12
  • 98
  • 176
Miemels
  • 389
  • 2
  • 10

1 Answers1

3

When does the mutation occur and how does it take place?

Finding a solution in NEAT algorithm is based on evolution strategy. It means that you have Neural Networks which are yours individuals, so mutations and crossing occurs in loop after phase of "fitnessing" (calculation fitness for every individual and removing bad ones).

How is it chosen whether to add a node or to add a connection mutation? Furthermore, how is it chosen where the mutation is taking place in the network (between which connections)?

Randomly: just draw. You can read more about evolutionary algorithms here.

If it could somehow help, I include link to my repository with the implementation of NEAT.

nbro
  • 39,006
  • 12
  • 98
  • 176
  • i read through your code and I have some question considering the Crossover. Why are you at first adding the connection to child as described in the Paper, but after that you add all connections from both parents. Why? And if your networks are disjoint and later on they have the same mutation you just ignore it. Because you don't have blank objects or something in your list of connections. – Miemels Jan 11 '17 at 18:41