Improving Deep Neuroevolution via Deep Innovation Protection
Sebastian Risi, Kenneth O. Stanley
Статья:
https://arxiv.org/abs/2001.01683
Что-то давненько не писали мы про нейроэволюцию. А тут прикольная свежая работа как раз.
Авторы (один из которых -- это, кажется, главный сейчас по нейроэволюции, Kenneth Stanley из Uber AI) предложили метод под названием Deep Innovation Protection (DIP), который улучшает end-to-end обучение сложных world models (архитектура от David Ha и любимого нами Юргена Шмидхубера, World Models,
https://arxiv.org/abs/1803.10122) с помощью эволюционных методов.
Идея world models (WM), если вы её пропустили, заключалась в том, что архитектура агента состоит из трёх компонентов:
1). Визуальный модуль, который маппит картинку в низкоразмерный код. Здесь использовался VAE.
2). Модуль памяти, который пытается предсказать будущие состояния среды (в виде низкоразмерного кода). Для этого использовалась LSTM с Mixture Density Network (MDN)
3). Контроллер, который берёт данные от визуального модуля и памяти и выдаёт следующее действие.
Оригинальная WM обучалась по частям: сначала визуальный модуль бэкпропом на роллаутах случайной полиси, потом MDN-RNN тоже бэкпропом, а потом уже контроллер через эволюционную стратегию (CMA-ES). Ну то есть нифига не end-to-end. Но работало уже весьма интересно и давало богатую пищу для размышлений.
Примерно полгода назад Стэнли и Риси (авторы текущей статьи) уже реализовали обучение WM end-to-end (Deep Neuroevolution of Recurrent and Discrete World Models,
https://arxiv.org/abs/1906.08857) с помощью генетических алгоритмов и добились сравнимого с оригинальной WM результата на 2D car racing.
Но та работа про нейроэволюцию не очень работала на сложных средах с 3D типа WizDoom, и вот наконец текущая работа устраняет эту проблему.
Идея работы в том, что оптимизацию такой гетерогенной сети как WM надо рассматривать как коэволюцию различных подсистем. И если в одной из систем происходит какая-то инновация, то другим системам ещё надо успеть под неё подстроиться, потому что краткосрочно это приводит к деградации. Но вдруг после подстройки новый вариант всех порвёт? Соответственно надо защищать такие свежемутированные варианты, снижая давление отбора на них, тем самым давая время на эту подстройку.
Собственно в этом и идея. Мы трансформируем задачу в задачу многокритериальной оптимизации. Вторым критерием добавляется возраст решения. Если два индивида демонстрируют одинаковый перформанс, то преимущество отдаётся тому, у кого меньше возраст. А возраст сбрасывается в ноль для всех индивидов, у которых мутировала VAE или MDN-RNN (то есть визуальная система или система памяти).
Надо заметить, это заметно отличается от традиционного использования возраста индивида в эволюционных вычислениях, где оно обычно используется для увеличения разнообразия популяции, трекая как долго кто тут уже сидит. Текущий подход тоже в принципе влияет на разнообразие, но здесь возраст используется для подсчёта, сколько времени было у контроллера на подстраивание к изменившимся частям в апстриме.
Теперь и VAE, и MDN-RNN оптимизируются вместе генетическим алгоритмом, не оцениваясь по отдельности. VAE больше не оптимизируется на предмет более качественного восстановления исходной картинки, а модуль памяти больше не натаскивается на предсказание следующего состояния.
В общем в целом подход работает, выживать в среде VizDoom:Take Cover агент научается, DIP профит даёт.
Отдельный интересный вопрос, какие репрезентации сформирует агент для такой постановки, без явной оптимизации на реконструкцию или предсказание будущего. Ну что-то осмысленное вроде как выучивается. Похоже на то, что агент научается предсказывать попадёт в него fireball или нет (что безусловно оч.полезно для выживания в этой среде).
В общем, интересная работа, дальнейшие развития просятся.
#RL, #EVO