В этой статье подводятся итоги некоторых исследований, которые я провел в рамках обучения на бакалавриате в Саутгемптонском университете. Я разработал новую технику для уменьшения катастрофического забывания — ловушки, с которой сталкиваются системы машинного обучения при последовательном изучении нескольких задач. Однако вместо того, чтобы сосредоточиться на системах обучения, разработанная новая техника была применена к эволюционным системам, которые развивают популяцию нейронных сетей, предназначенных для решения задач обучения с подкреплением. Оригинал работы можно найти на arXiv.

Проклятие забвения

Катастрофическое забывание — это перезапись того, что было ранее изучено.

Способность осваивать новые навыки в дополнение к уже существующим является важной концепцией для постоянного совершенствования систем ИИ. В этом суть непрерывного обучения — система, способная выполнять одну задачу, должна изучить новую задачу, сохраняя при этом свои способности в исходной задаче.

При обучении нейронной сети новой задаче ее веса корректируются, но, поскольку все веса были точно настроены для решения исходной задачи, значительная корректировка весов для решения новой задачи может резко снизить производительность исходной задачи. , т.е. предыдущая задача была забыта. Таким образом, обучение должно происходить таким образом, чтобы нейронная сеть сохраняла знания и, следовательно, результаты исходной задачи, но в то же время узнавала как можно больше о новой задаче.

Один из способов сделать это — защитить веса, наиболее важные для исходной задачи, и разрешить изменение менее важных весов; здесь предполагается, что важные веса содержат большую часть знаний и облегчают симптомы забывания. В этом заключается идея метода Консолидация упругого веса (EWC), разработанного Kirkpatrick et. al, в котором градиенты весов нейронной сети использовались для расчета важности весов. При изучении новой задачи к функции вознаграждения добавлялся штрафной срок, который наказывал за изменение важных весов.

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

Чудеса нейроэволюции

У нейроэволюции есть несколько хитростей в рукаве

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

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

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

Новый подход

Время расти за пределами забвения

Как было сказано ранее, идея метода EWC заключалась в том, чтобы защитить веса, наиболее важные для исходной задачи; это включало использование градиентов весов сети. Однако, поскольку эти градиенты недоступны в нейроэволюции, как еще можно установить важность весов?

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

Это основная идея метода «защиты веса», разработанного в этой работе: начните с небольших сетей, разработанных для задачи А, затем поощряйте их рост при изучении задачи Б и штрафуйте любые изменения исходных весов сети. Это может быть легко расширено для обучения более чем двум задачам, поскольку после того, как сеть изучила задачу A и B, веса, которые теперь защищены, обеспечивают высокую производительность как для задачи A, так и для задачи B, а новые веса используются исключительно для повышения производительности. по задаче С и так далее и тому подобное.

Немного математики

Просто чтобы немного оживить ситуацию из кусков текста

Шучу, математика останется в arXiv upload. Однако на высоком уровне защита веса реализуется как часть функции пригодности с помощью двух дополнительных условий штрафа: один для наказания сетей за изменение наилучшей конфигурации для предыдущей задачи, а другой упорядочивает вновь добавленные веса. Оба имеют настраиваемые гиперпараметры, позволяющие найти компромисс между сохранением производительности в предыдущей задаче (задачах) и изучением новой задачи.

Предварительные результаты

И это сработало?

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

Одним из способов проверки эволюционных стратегий было отслеживание падения производительности начальной задачи при изучении последующих задач. Используя задания из OpenAI Gym, на следующих рисунках показано, как техника защиты от веса снижает потерю производительности в первый раз по мере изучения последующих заданий.

Как видно из рисунка, эволюция с защитой веса и модульностью была наиболее эффективной из четырех методов, а защита веса была успешной даже сама по себе без модульности. В общем — работает!

И в заключение…

Всегда есть больше, чем можно сделать

В дальнейших тестах метод защиты от веса смог найти сеть, которая показала очень высокую производительность во всех четырех задачах — подвиг, которого не смогли достичь ни обычная эволюция, ни модульная эволюция. Однако он был протестирован только на немного устаревших задачах бенчмаркинга; большинство исследований переместилось на более сложные задачи, такие как обыгрывание игр Atari, поэтому требуется дальнейшее тестирование.

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