Нейроэволюция увеличивающих топологий


NeuroEvolution of Augmenting Topologies ( NEAT ) — это генетический алгоритм (GA) для создания эволюционирующих искусственных нейронных сетей ( метод нейроэволюции ), разработанный Кеном Стэнли в 2002 году во время работы в Техасском университете в Остине . Он изменяет как весовые параметры, так и структуру сетей, пытаясь найти баланс между пригодностью разработанных решений и их разнообразием. Он основан на применении трех ключевых методов: отслеживание генов с историческими маркерами, позволяющее пересекаться между топологиями, применение видообразования (эволюция видов) для сохранения инноваций и постепенное развитие топологий из простых исходных структур («усложнение»).

В простых задачах управления алгоритм NEAT часто достигает эффективных сетей быстрее, чем другие современные нейроэволюционные методы и методы обучения с подкреплением . [1] [2]

Традиционно топология нейронной сети выбирается экспериментатором-человеком, а эффективные значения веса соединения изучаются в процессе обучения. Это приводит к ситуации, когда может потребоваться процесс проб и ошибок для определения подходящей топологии. NEAT является примером искусственной нейронной сети с изменением топологии и веса (TWEANN), которая пытается одновременно изучить значения веса и соответствующую топологию для нейронной сети.

Чтобы кодировать сеть в фенотип для ГА, NEAT использует схему прямого кодирования, которая означает, что каждое соединение и нейрон представлены явно. Это отличается от схем косвенного кодирования, которые определяют правила, позволяющие строить сеть без явного представления каждого соединения и нейрона, что обеспечивает более компактное представление.

Подход NEAT начинается с сети прямой связи, подобной персептрону , состоящей только из входных и выходных нейронов. По мере того, как эволюция проходит через дискретные этапы, сложность топологии сети может возрастать либо путем вставки нового нейрона в путь соединения, либо путем создания нового соединения между (ранее не связанными) нейронами.

Проблема конкурирующих соглашений возникает, когда существует более одного способа представления информации в фенотипе. Например, если геном содержит нейроны A , B и Cи представлен [ABC], если этот геном скрестить с идентичным геномом (с точки зрения функциональности), но упорядоченное скрещивание [CBA] даст детей, в которых отсутствует информация ([ABA] или [CBC]), фактически 1/ 3 информации были потеряны в этом примере. NEAT решает эту проблему, отслеживая историю генов с помощью глобального числа инноваций, которое увеличивается по мере добавления новых генов. При добавлении нового гена глобальный номер инновации увеличивается и присваивается этому гену. Таким образом, чем выше число, тем позже был добавлен ген. Для определенного поколения, если идентичная мутация происходит более чем в одном геноме, им обоим присваивается один и тот же номер, однако помимо этого номер мутации останется неизменным на неопределенный срок.