Я читаю через NEAT бумага и теперь я понимаю алгоритм.
Но одна вещь все еще неясна для меня. Когда происходит мутация и как она происходит? Как выбирается, является ли это добавлением узла или добавлением мутации соединения? Кроме того, как выбирается, где происходит мутация в сети (между какими соединениями)?
Прежде всего: бумага NEAT очень широкая. Это не дает много конкретных реализаций. Но в большинстве реализаций GA происходит мутация после новые геномы были созданы из родительских геномов.
Прежде чем вы перейдете в NEAT, обязательно изучите, как генетические алгоритмы работают в первую очередь.
В большинстве случаев вероятность возникновения определенной мутации равномерно распределяется между методами мутации. Например, если у вас есть 3 метода мутации (add_node, add_conn и mod_weight) и mutationRate = 0.3
то каждый из этих методов 0.1
шанс быть выполненным на геноме.
Иногда добавление соединения невозможно, поэтому добавление узла может иметь больше шансов на выполнение.
Расположение мутации в сети также случайное. Мутация в целом случайна.
Но вы задаете очень широкие вопросы. В статье, на которую вы ссылаетесь, только говорится, как вы могли бы реализовать эффективную нейроэволюцию сетевой топологии. Это основа для вашего собственного проекта. Как вы реализуете это, зависит только от вас (и что лучше всего работает для сети!)
Других решений пока нет …