Answers.Body: <blockquote>
    <p>When does the mutation occur and how does it take place? </p>
  </blockquote>
  
  <p>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).</p>
  
  <blockquote>
    <p>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)?</p>
  </blockquote>
  
  <p>Randomly: just draw. You can read more about evolutionary algorithms <a href="https://ai.stackexchange.com/questions/240/what-exactly-are-genetic-algorithms-and-what-sort-of-problems-are-they-good-for">here</a>.</p>
  
  <p>If it could somehow help, I include <a href="https://github.com/robrtj/NeuralNetworkImageCompression" rel="nofollow noreferrer">link</a> to my repository with the implementation of NEAT.</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-01-11T18:41:43.910Z
Answers.Text: 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.
Answers.UserDisplayName: Miemels
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2017-01-11T16:11:01.960Z
Answers.LastActivityDate: 2019-07-07T18:59:37.013Z
Answers.LastEditDate: 2019-07-07T18:59:37.013Z
Answers.UserDisplayName: Robert Jakubowski
Body: <p>I read through the <a href="http://nn.cs.utexas.edu/downloads/papers/stanley.ec02.pdf" rel="nofollow noreferrer">Evolving Neural Networks through Augmenting Topologies (NEAT)</a> paper. I understand the algorithm now, but one thing is still unclear to me. </p>
  
  <p>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)?</p>
  
Tags: <neural-networks><genetic-algorithms><evolutionary-algorithms><neat><neuroevolution>
Title: When do mutations in NEAT occur?
UserDisplayName: Miemels
ThreadText: # When do mutations in NEAT occur?
  
  (Asked by: username_0 on 2017-01-07)
  
  I read through the [Evolving Neural Networks through Augmenting Topologies (NEAT)](http://nn.cs.utexas.edu/downloads/papers/stanley.ec02.pdf) 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)?
  
  **Tags:** neural-networks, genetic-algorithms, evolutionary-algorithms, neat, neuroevolution
  
  
  ---
  
  ## 1 answers
  
  ### Answer by username_1 on 2017-01-11. Score: 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](https://ai.stackexchange.com/questions/240/what-exactly-are-genetic-algorithms-and-what-sort-of-problems-are-they-good-for).
  
  If it could somehow help, I include [link](https://github.com/robrtj/NeuralNetworkImageCompression) to my repository with the implementation of NEAT.
  
  > **Comments:**
  > **username_0**: 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.  
  
  ---
  
  