Ретро-конкурс: Итоги

Завершился первый этап нашего Ретро-конкурса, посвященного разработке алгоритмов, способных обобщать данные на основе предыдущего опыта.

A screenshot of the Sonic the Hedgehog video game interface

Хотя было опробовано множество подходов, лучшие результаты были получены благодаря настройке или расширению существующих алгоритмов, таких как PPO и Rainbow. Предстоит пройти долгий путь: лучший результат после обучения составил 4692 балла при теоретическом максимуме в 10 000. Эти результаты подтверждают, что наш бенчмарк Sonic — подходящая задача для сообщества: победившие решения представляют собой общие подходы машинного обучения, а не специфичные для соревнования трюки, что говорит о том, что обмануть эту систему не удастся.

Screenshot of a Sonic the Hedgehog video game.

За двухмесячный период состязания зарегистрировались 923 команды, и 229 из них отправили свои решения в таблицю лидеров. Наши системы автоматической оценки провели в общей сложности 4448 оценок представленных алгоритмов, что соответствует примерно 20 отправкам на каждую команду. Участники могли наблюдать за ростом своих результатов в таблице лидеров, которая строилась на основе тестового набора из пяти уровней низкого качества, созданных нами с помощью редактора уровней. Вы можете посмотреть, как агенты проходят один из этих уровней, перейдя по ссылке в записях таблицы лидеров.

Graph of leaderboard score over days

Поскольку участники получали обратную связь в виде оценки и видеозаписи прохождения агентом определенного уровня, они могли легко переобучиться под тестовый набор таблицы лидеров. Поэтому для финальной оценки мы использовали совершенно другой тестовый набор. После закрытия приема заявок мы взяли последние версии решений от 10 лучших участников и протестировали их агентов на 11 пользовательских уровнях Sonic, созданных опытными дизайнерами уровней. Чтобы уменьшить влияние случайных факторов, мы оценивали каждого участника на каждом уровне три раза, используя разные случайные сиды (seed) для среды. В ходе этой финальной оценки рейтинг изменился, но не очень сильно.

Лучшие результаты

5 лучших команд по количеству набранных баллов:

Место

Команда

Баллы

#1

Dharmaraja

4692

#2

mistake

4446

#3

aborg

4430

#4

whatever

4274

#5

Students of Plato

4269

Совместный базовый метод PPO

4070

Совместный базовый метод Rainbow

3843

Базовый метод Rainbow

3498

Dharmaraja лидировала в таблице результатов на протяжении всего соревнования и удержала первое место по итогам финальной оценки; mistake с небольшим отрывом обошла aborg в борьбе за второе место. Три лучшие команды получат трофеи.

Trophies Three 2000

Кривые обучения трех лучших команд для всех 11 уровней выглядят следующим образом (показана стандартная ошибка, вычисленная по результатам трех запусков).

Learning Curves Averaged Over 3 Trials

Усреднив показатели по всем уровням, мы получаем следующие кривые обучения.

Learning Curves Averaged Over 11 Levels And 3 Trials

Обратите внимание, что Dharmaraja и aborg начинают со схожих результатов, в то время как mistake стартует с гораздо более низких позиций. Как мы подробно опишем ниже, первые две команды выполняли дообучение (fine-tuning с использованием PPO) на основе предварительно обученной сети, тогда как mistake осуществляла обучение с нуля (с использованием Rainbow DQN). Кривые обучения команды mistake обрываются раньше, так как процесс завершился по тайм-ауту через 12 часов.

Знакомство с победителями

Dharmaraja

Dharmaraja — команда из шести человек, в которую вошли Цин Да (Qing Da), Цзинчэн Ши (Jing-Cheng Shi), Сянсян Цзэн (Anxiang Zeng), Гуанда Хучжан (Guangda Huzhang), Жунцзе Ли (Run-Ze Li) и Ян Юй (Yang Yu). Цин Да и Сянсян Цзэн представляют команду искусственного интеллекта в поисковом департаменте Alibaba в Ханчжоу (Китай). В последние годы они исследуют применение обучения с подкреплением к реальным задачам, особенно в сфере электронной коммерции, совместно с Ян Юем, доцентом кафедры компьютерных наук Нанкинского университета в Нанкине (Китай).

Решение команды Dharmaraja представляет собой вариант совместного метода PPO (описанного в нашем техническом отчете) с несколькими усовершенствованиями. Во-первых, вместо градаций серого используются RGB-изображения; во-вторых, применяется слегка расширенное пространство действий, включающее более распространенные комбинации кнопок; в-третьих, используется дополненная функция вознаграждения, которая поощряет агента за посещение новых состояний (определяемых по перцептивному хешу экрана). Помимо этих модификаций, команда также опробовала ряд подходов, которые не оправдали себя: DeepMimic, обнаружение объектов с помощью YOLO и некоторые идеи, специфичные для Sonic.

  • Получить исходный код

Mistake

Команда mistake состоит из Пэн Сюй (Peng Xu) и Цяолин Чжун (Qiaoling Zhong). Оба они — аспиранты второго года обучения в Пекине (Китай), проводящие исследования в Ключевой лаборатории сетевых наук о данных и Институте вычислительных технологий Китайской академии наук. В свободное время Пэн Сюй любит играть в баскетбол, а Цяолин Чжун — в бадминтон. Их любимые видеоигры — Contra и Mario.

Решение команды mistake основано на базовом методе Rainbow. Они внесли несколько модификаций, которые помогли повысить производительность: более удачное значение n для n-шагового Q-обучения (n-step Q learning); дополнительный сверточный слой (CNN) в модели, который сделал обучение более медленным, но качественным;, а также уменьшенный интервал обновления целевой сети DQN. Кроме того, команда пробовала совместное обучение с Rainbow, но обнаружила, что в их случае это фактически ухудшило результаты.

  • Получить исходный код

Aborg

Команда Aborg представлена индивидуальным участником Александром Боржи (Alexandre Borghi). Защитив докторскую степень по компьютерным наукам в 2011 году, Александр работал в различных компаниях во Франции, а затем переехал в Великобританию, где работает инженером-исследователем в области глубокого обучения. Будучи энтузиастом видеоигр и машинного обучения, он посвящает большую часть свободного времени изучению глубокого обучения с подкреплением, что и привело его к участию в OpenAI Retro Contest.

Решение Aborg, как и решение Dharmaraja, представляет собой вариант совместного метода PPO с множеством улучшений: добавлением уровней для тренировки из игр про Соника для Game Boy Advance и Master System; изменением архитектуры сети;, а также настройкой гиперпараметров, разработанных специально для быстрого обучения. Уточняя последний пункт: Александр заметил, что первые 150 тыс. шагов обучения были нестабильными (то есть производительность иногда ухудшалась), поэтому он скорректировал скорость обучения (learning rate), чтобы устранить эту проблему. В дополнение к вышеуказанным изменениям Александр опробовал несколько решений, которые не сработали: различные оптимизаторы, MobileNetV2, использование цветных изображений и т. д.

  • Получить исходный код

Лучшие описания проектов

Приз за лучшее описание проекта (Best Write-up Prize) присуждается участникам, которые подготовили качественные эссе с подробным описанием опробованных ими подходов.

А теперь давайте познакомимся с победителями в этой категории призов.

Дилан Джиан (Dylan Djian)

Дилан в настоящее время живет в Париже, Франция. Он изучает разработку программного обеспечения в школе 42 в Париже. Он увлекся машинным обучением полтора года назад, после того как посмотрел видео о генетическом алгоритме, научившемся играть в Марио. Это видео пробудило в нем интерес и заставило захотеть узнать больше об этой области. Его любимые видеоигры — Zelda Twilight Princess и World of Warcraft.

Олег Мюрк (Oleg Mürk)

Олег Мюрк родом из района залива Сан-Франциско, но изначально из Тарту, Эстония. Днем он работает с распределенными системами обработки данных в качестве главного архитектора в Planet OS. В свободное время он тратит «слишком много денег» на аренду графических процессоров для запуска экспериментов по глубокому обучению в TensorFlow. Олег любит путешествия, пеший туризм и кайтсерфинг, и собирается наконец научиться серфингу в ближайшие 30 лет. Его любимая компьютерная игра (и по совместительству единственная, которую он прошел) — Wolfenstein 3D. Его грандиозный план — разработать автоматизированного программиста в ближайшие 20 лет, а затем уйти на пенсию.

Феликс Ю (Felix Yu)

Феликс — предприниматель, живущий в Гонконге. Впервые он столкнулся с машинным обучением во время школьного проекта, где применил метод главных компонент (PCA) для анализа данных по акциям. После нескольких лет занятий предпринимательством он занялся МО в конце 2015 года; он стал активным участником Kaggle и работал над несколькими побочными проектами в области компьютерного зрения и обучения с подкреплением.

Лучшие вспомогательные материалы

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

Тристан Сокол (Tristan Sokol)

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

Днем Тристан работает в Square, помогая создавать их платформу для разработчиков; по ночам он дизайнер и предприниматель. Это был его первый опыт работы с ИИ/МО, а также первый случай использования Python для какого-либо реального приложения. В будущем Тристан планирует попробовать создавать крутые вещи с помощью TensorFlow.js. Когда Тристан не перед компьютером, он, вероятно, находится на своем заднем дворе в Окленде и наблюдает за ростом растений.

Уроки и следующие шаги

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

Мы были рады увидеть, что несколько лучших решений использовали трансфертное обучение (перенос обучения) — дообучение на основе тренировочных уровней. Тем не менее, мы были удивлены, обнаружив, что некоторые из лучших заявок представляли собой просто настроенные версии наших базовых алгоритмов. Это подчеркивает важность гиперпараметров, особенно в алгоритмах обучения с подкреплением, таких как Rainbow DQN.

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

Учись быстрее (Gotta Learn Fast)

Авторы

Джон Шульман (John Schulman), Вики Пфау (Vicki Pfau), Алекс Никол (Alex Nichol), Кристофер Хессе (Christopher Hesse), Олег Климов (Oleg Klimov), Ларисса Скьяво (Larissa Schiavo)

Благодарности

Спасибо Кевину Вонгу (Kevin Wong) и Кэти Транг (Cathy Trang) за создание финальных уровней оценки.

Полный текст статьи читайте на OpenAI