Procgen Benchmark

Опубликовано 17 February 2020

Мы выпускаем Procgen Benchmark, 16 простых в использовании процедурно-сгенерированных сред, которые обеспечивают прямую оценку того, как быстро обучающий агент обучает овладению обобщаемыми навыками.

Procgen Benchmark

Начало

Пользоваться средой легко, будь вы человек или ИИ:

$ pip install procgen # install
$ python -m procgen.interactive --env-name starpilot # human
$ python <<EOF # random AI agent
import gym
env = gym.make('procgen:procgen-coinrun-v0')
obs = env.reset()
while True:
    obs, rew, done, info = env.step(env.action_space.sample())
    env.render()
    if done:
        break
EOF


Мы обнаружили, что все среды Procgen требуют обучения на 500–1000 различных уровнях, прежде чем они смогут обобщать на новые уровни, что говорит о том, что стандартные эталонные тесты RL нуждаются в гораздо большем разнообразии в каждой среде. Procgen Benchmark стала стандартной исследовательской платформой, используемой командой OpenAI RL, и мы надеемся, что это ускорит сообщество в создании лучших алгоритмов RL.

Разнообразие среды является ключевым фактором

В нескольких средах было замечено, что агенты могут приспособиться к удивительно большим тренировочным наборам. Это доказательство повышает вероятность того, что переоснащение проникает в классические тесты, такие как Arcade Learning Environment, которая долгое время служила золотым стандартом в обучении с подкреплением (RL). В то время как разнообразие между различными играми в ALE является одной из самых сильных сторон теста, низкий акцент на обобщении представляет существенный недостаток. В каждой игре должен быть задан вопрос: действительно ли агенты усваивают соответствующий навык или они приблизительно запоминают конкретные траектории?

CoinRun был разработан для решения именно этой проблемы, используя процедурную генерацию для создания отдельных наборов уровней обучения и уровней тестирования. Хотя CoinRun помог нам лучше определить обобщение в RL, это все еще только единая среда. Вполне вероятно, что CoinRun не в полной мере отражает многие проблемы, с которыми сталкиваются агенты RL. Мы хотим лучшего из обоих миров: эталон, состоящий из множества разнообразных сред, каждая из которых фундаментально требует обобщения. Чтобы удовлетворить эту потребность, мы создали Procgen Benchmark. CoinRun теперь служит первой средой в Procgen Benchmark, внося свой вклад в общее целое.

Предыдущая работа, в том числе «Вызов препятствия» и «Общая структура AI видеоигр», также поощряла использование процедурной генерации для лучшей оценки обобщения в RL. Мы разработали среду в аналогичном духе, и две среды Procgen черпают непосредственное вдохновение из работы на основе GVGAI. Другие среды, такие как Dota и StarCraft, также обеспечивают большую сложность для каждой среды, но эти среды сложно быстро перебрать (и еще труднее использовать более одной такой среды одновременно). С Procgen Benchmark мы стремимся ко всему следующему: удобство экспериментов, большое разнообразие в среде и большое разнообразие в среде.

Procgen Benchmark

Procgen Benchmark состоит из 16 уникальных сред, предназначенных для измерения как эффективности выборки, так и обобщения в обучении с подкреплением. Этот эталонный тест идеален для оценки обобщения, поскольку в каждой среде могут быть сгенерированы различные наборы обучения и тестирования. Этот эталонный тест также хорошо подходит для оценки эффективности выборки, поскольку все среды создают разнообразные и неотразимые проблемы для агентов RL. Внутреннее разнообразие среды требует, чтобы агенты изучали надежную политику; переоснащение узких областей в пространстве состояний не будет достаточным. Иными словами, способность обобщать становится неотъемлемой составляющей успеха, когда агенты сталкиваются с постоянно меняющимися уровнями.

Принципы дизайна

Мы разработали все среды Procgen для соответствия следующим критериям:

  • Большое разнообразие: логике генерации среды предоставляется максимальная свобода с учетом основных конструктивных ограничений. Разнообразие в результирующих распределениях уровней представляет агентам значимые проблемы обобщения.
  • Быстрая оценка: Сложность среды откалибрована таким образом, что базовые агенты достигают значительного прогресса после тренировки в течение 200 миллионов шагов. Более того, среды оптимизированы для выполнения тысяч шагов в секунду на одном ядре ЦП, что обеспечивает быстрый экспериментальный конвейер.
  • Настраиваемая сложность: все среды поддерживают две хорошо откалиброванные настройки сложности: легкую и сложную. В то время как мы сообщаем о результатах, используя настройку сложной сложности, мы предоставляем настройку простой сложности для тех, кто имеет ограниченный доступ к вычислительной мощности. Легкая среда требует примерно восьмой части ресурсов для обучения.
  • Акцент на визуальном распознавании и управлении двигателем. В соответствии с прецедентом, среды имитируют стиль многих игр Atari и Gym Retro. Эффективность работы в первую очередь зависит от выявления ключевых активов в пространстве наблюдения и принятия соответствующих моторных ответов низкого уровня.

Оценивая обобщение

Мы пришли к пониманию того, насколько сложным может быть обобщение RL во время проведения Ретро-конкурса, поскольку агенты постоянно не сумели обобщить из ограниченных данных в обучающем наборе. Позже, наши эксперименты с CoinRun нарисовали еще более ясную картину борьбы наших агентов за обобщение. Теперь мы расширили эти результаты, проведя наше самое тщательное исследование обобщения RL на сегодняшний день, используя все 16 сред в Procgen Benchmark.

Сначала мы измерили, как размер учебного набора влияет на обобщение. В каждой среде мы создали обучающие наборы размером от 100 до 100 000 уровней. Мы подготовили агентов для 200M временных шагов на этих уровнях, используя Proximal Policy Optimization, и мы измерили производительность на невиданных уровнях тестирования.

Обобщение производительности

Оценка более 100 тысяч уровней, логарифмическая шкала. 

Procgen Benchmark

Procgen Benchmark

Мы обнаружили, что агенты сильно подходят для небольших тренировочных комплексов практически во всех средах. В некоторых случаях агентам необходим доступ к 10000 уровням, чтобы закрыть разрыв в обобщении. Мы также наблюдали особую тенденцию во многих средах: после определенного порога производительность тренировок улучшается по мере роста тренировочных комплектов! Это идет вразрез с тенденциями, обнаруженными в контролируемом обучении, где эффективность обучения обычно уменьшается в зависимости от размера учебного комплекта. Мы считаем, что это повышение эффективности обучения происходит от неявной учебной программы, предоставляемой разнообразным набором уровней. Большой обучающий набор может улучшить производительность обучения, если агент научится обобщать даже уровни обучения. Ранее мы заметили этот эффект в CoinRun и обнаружили, что он часто встречается и во многих средах Procgen.

Абляция с детерминированными уровнями

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

Тренировка и тестирование производительности

Счет более 200 миллионов шагов

Procgen Benchmark

Procgen Benchmark

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

Следующие шаги

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

Если вы заинтересованы в содействии развитию разнообразных сред, мы будем рады сотрудничеству!

Авторы

Карл Кобб Кристофер Гессен Джекоб Хилтон Джон Шульман