Это был также вопрос, с которым я столкнулся при реализации своей собственной версии алгоритма.
Вы можете найти ответ на странице пользователей NEAT: https://www.cs.ucf.edu/~kstanley/neat.html, где автор говорит:
Как активируются сети с произвольной топологией?
Функция активации, bool Network :: activ (), дает подробности.Реализация, конечно, значительно отличается от простой многоуровневой сети с прямой связью.Каждый узел добавляет активацию от всех входящих узлов из предыдущего временного шага.(Функция также обрабатывает специальное «задержанное по времени» соединение, но оно не используется текущей версией NEAT в каких-либо опубликованных нами экспериментах.) Другой способ понять это - понять, что активация не проходит весь путь отот входного слоя до выходного слоя за один шаг.За один шаг активация перемещается только от одного нейрона к другому.Поэтому для активации требуется несколько временных шагов, чтобы добраться от входов к выходам.Если вы думаете об этом, то именно так он работает в реальном мозге, где требуется время, чтобы сигнал, попавший в ваши глаза, попал в кору, потому что он проходит через несколько нейронных связей.
Таким образом, если одна из развитых сетей не имеет прямой связи, выходные данные сети будут меняться в разные временные интервалы, и это особенно полезно в задачах непрерывного управления, где среда не является статичной, но такжепроблематично в задачах классификации.Автор также отвечает:
Как я могу убедиться, что сеть стабилизируется, прежде чем принимать свои выходные данные для задачи классификации?
Дешевый и грязный способ сделать это - просто активировать n раз подряд, где n> 1, и надеяться, что не будет слишком много петель или длинных путей скрытых узлов.
Правильный (и довольно хороший) способ сделать это - проверить каждый скрытый узел и выходной узел с одного временного шага на следующий, и посмотреть, не изменилось ли ничего, или, по крайней мере, не изменилось в некоторой дельте.Как только этот критерий удовлетворен, выходной сигнал должен быть стабильным.
Обратите внимание, что в некоторых случаях выходной сигнал не всегда стабилизируется.Кроме того, при проблемах с постоянным управлением не проверяйте стабилизацию, поскольку сеть никогда не «успокаивается», а постоянно реагирует на изменение среды.Обычно стабилизация используется в задачах классификации или в настольных играх.