Нейроэволюция дополняющих топологий - Neuroevolution of augmenting topologies

Нейроэволюция дополнительных топологий (АККУРАТНЫЙ) это генетический алгоритм (GA) для генерации развивающихся искусственные нейронные сетинейроэволюция техника), разработанная Кеном Стэнли в 2002 г. Техасский университет в Остине. Он изменяет как весовые параметры, так и структуру сетей, пытаясь найти баланс между пригодностью разработанных решений и их разнообразием. Он основан на применении трех ключевых методов: отслеживание генов с помощью маркеров истории, позволяющих пересечение топологий, применение видообразования (эволюция видов) для сохранения инноваций и постепенная разработка топологий из простых исходных структур («комплексирование»).

Спектакль

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

Алгоритм

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

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

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

Конкурирующие соглашения

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

Эти цифры инноваций позволяют NEAT сопоставлять гены, которые можно скрещивать друг с другом.[1]

Выполнение

Оригинальная реализация Кена Стэнли опубликована под GPL. Он интегрируется с Хитрость, GNU схема устный переводчик. Эта реализация NEAT считается обычной базовой отправной точкой для реализации алгоритма NEAT.

Расширения

rtNEAT

В 2003 году Стэнли разработал расширение NEAT, которое позволяет эволюции происходить в реальном времени, а не через итерацию поколений, как это используется в большинстве генетических алгоритмов. Основная идея состоит в том, чтобы постоянно оценивать популяцию с помощью таймера «жизни» для каждого человека в популяции. Когда таймер сети истекает, его текущая мера пригодности проверяется, чтобы увидеть, находится ли она в нижней части популяции, и если да, она отбрасывается и заменяется новой сетью, полученной от двух родителей с высокой пригодностью. Для новой сети устанавливается таймер, и он помещается в совокупность для участия в текущих оценках.

Первое приложение rtNEAT - видеоигра под названием Neuro-Evolving Robotic Operatives, или NERO. На первом этапе игры отдельные игроки размещают роботов в «песочнице» и обучают их определенной тактической доктрине. После того, как группа роботов обучена, вторая фаза игры позволяет игрокам выставить своих роботов в битве против роботов, обученных другим игроком, чтобы увидеть, насколько хорошо их режимы обучения подготовили своих роботов к битве.

Поэтапная обрезка

Расширение NEAT Кена Стэнли, разработанное Колином Грином, добавляет периодическое сокращение сетевых топологий возможных решений в процессе эволюции. Это дополнение решило опасения, что неограниченный автоматический рост приведет к созданию ненужной структуры.

HyperNEAT

HyperNEAT специализируется на разработке крупномасштабных структур. Первоначально он был основан на CPPN теории и является активной областью исследований.

cgNEAT

Content-Generating NEAT (cgNEAT) развивает пользовательский контент видеоигр на основе предпочтений пользователя. Первая видеоигра, использующая cgNEAT, - это Галактическая гонка вооружений, космический шутер, в котором уникальное оружие системы частиц развивается на основе статистики использования игрока.[3] Каждое оружие системы частиц в игре контролируется развитым CPPN, аналогично технике эволюции в NEAT частицы интерактивная художественная программа.

odNEAT

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

Смотрите также

Рекомендации

  1. ^ а б Кеннет О. Стэнли и Ристо Мииккулайнен (2002). «Развитие нейронных сетей путем расширения топологий». Эволюционные вычисления 10 (2): 99-127
  2. ^ Мэтью Э. Тейлор, Шимон Уайтсон и Питер Стоун (2006). «Сравнение эволюционных и временных разностных методов в области обучения с подкреплением». GECCO 2006: Труды конференции по генетическим и эволюционным вычислениям.
  3. ^ Эрин Дж. Хастингс, Ратан К. Гуха и Кеннет О. Стэнли (2009). «Автоматическая генерация контента в видеоигре« Галактическая гонка вооружений »». IEEE Transactions on Computational Intelligence and AI in Games, volume 4, number 1, pages 245-263, New York: IEEE Press, 2009.
  4. ^ Сильва, Фернандо; Урбано, Пауло; Коррейя, Луис; Кристенсен, Андерс Лайн (15.09.2015). «odNEAT: алгоритм децентрализованной онлайн-эволюции роботизированных контроллеров». Эволюционные вычисления. 23 (3): 421–449. Дои:10.1162 / evco_a_00141. HDL:10071/10504. PMID  25478664. S2CID  20815070.

Библиография

Реализации

внешняя ссылка