OpenAI Baselines: ACKTR и A2C

Иллюстрация: Бен Барри (Ben Barry)
Мы выпускаем две новые реализации в рамках OpenAI Baselines: ACKTR и A2C. A2C — это синхронный детерминированный вариант асинхронного метода演员-критика (Asynchronous Advantage Actor Critic — A3C), который, как мы выяснили, обеспечивает аналогичную производительность. ACKTR — это более эффективный по выборке алгоритм обучения с подкреплением, чем TRPO и A2C, при этом для каждого обновления он требует лишь немного больше вычислений, чем A2C.
ACKTR (произносится как «actor», метод Actor Critic с факторизацией Кронекера в доверительной области — Kronecker-factored Trust Region) был разработан исследователями из Университета Торонто и Нью-Йоркского университета. Мы в OpenAI сотрудничали с ними, чтобы выпустить реализацию в Baselines. Авторы используют ACKTR для обучения политик управления симулируемыми роботами (с пикселями в качестве входных данных и непрерывными пространствами действий) и агентами Atari (с пикселями в качестве входных данных и дискретными пространствами действий).
ACKTR объединяет три различные техники: методы «актер-критик», оптимизацию в доверительной области для более стабильного улучшения и распределеннуюфакторизациюКронекера для повышения эффективности выборок и масштабируемости.
Эффективность по выборкам и вычислениям
Для алгоритмов машинного обучения важно учитывать два вида затрат: емкость по выборкам (сложность по выборкам) и вычислительную сложность. Под сложностью по выборкам понимается количество временных шагов взаимодействия между агентом и его средой, а под вычислительной сложностью — объем необходимых числовых операций.
ACKTR превосходит методы первого порядка, такие как A2C, по сложности по выборкам, поскольку совершает шаг в направлении естественного градиента, а не просто градиента (или его измененной версии, как в ADAM). Естественный градиент задает направление в пространстве параметров, которое обеспечивает наибольшее (мгновенное) улучшение целевой функции на единицу изменения выходного распределения сети, измеряемое с помощью дивергенции Кульбака — Лейблера (KL-дивергенции). Ограничение KL-дивергенции гарантирует, что новая политика не будет вести себя радикально иначе, чем старая, что могло бы привести к резкому падению производительности.
Что касается вычислительной сложности, обновление KFAC, используемое в ACKTR, всего на 10–25% дороже за один шаг обновления по сравнению со стандартным градиентным обновлением. Это контрастирует с такими методами, как TRPO (т.е. оптимизация без гессиана / Hessian-free), требующими более затратных вычислений методом сопряженных градиентов.
В следующем видео вы можете увидеть сравнение на разных временных шагах между агентами, обученными с помощью ACKTR решать игру Q-Bert, и агентами, обученными с помощью A2C. Агенты ACKTR набирают более высокие очки, чем те, что обучены с помощью A2C.
Базовые показатели и бенчмарки
Этот релиз включает базовую реализацию ACKTR от OpenAI, а также релиз A2C.
Мы также публикуем бенчмарки, оценивающие ACKTR в сравнении с A2C, PPO и ACER в различных задачах. На следующем графике мы показываем производительность ACKTR на 49 играх Atari по сравнению с другими алгоритмами: A2C, PPO, ACER. Гиперпараметры ACKTR были настроены автором алгоритма исключительно на одной игре — Breakout.

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

A2C и A3C
Метод асинхронного преимущества актера-критика (Asynchronous Advantage Actor Critic — A3C) оказал огромное влияние с момента публикации статьи. Алгоритм объединяет несколько ключевых идей:
- Схема обновления, которая работает с сегментами опыта фиксированной длины (например, 20 временных шагов) и использует эти сегменты для вычисления оценок отдачи и функции преимущества.
- Архитектуры, разделяющие слои между политикой и функцией ценности.
- Асинхронные обновления.
Прочитав статью, исследователи в области искусственного интеллекта задались вопросом: приводит ли асинхронность к улучшению производительности (например, «возможно, добавляемый шум обеспечивает некоторую регуляризацию или исследование?»), или же это просто детально реализованный элемент, позволивший ускорить обучение на базе процессоров (CPU)?
В качестве альтернативы асинхронной реализации исследователи обнаружили возможность создания синхронной детерминированной реализации, которая ожидает завершения сегмента опыта каждым актером перед выполнением обновления, усредняя показатели по всем актерам. Одним из преимуществ этого метода является более эффективное использование графических процессоров (GPU), которые лучше всего работают с большими размерами батчей. Этот алгоритм закономерно получил название A2C (сокращение от advantage actor critic — метод преимущества актера-критика). (Этот термин использовался в нескольких статьях.)
Наша синхронная реализация A2C работает лучше асинхронных — мы не обнаружили никаких свидетельств того, что шум, вносимый асинхронностью, дает какие-либо преимущества в производительности. Эта реализация A2C экономичнее A3C при использовании машин с одним GPU и работает быстрее чисто процессорной (CPU) реализации A3C при использовании более крупных политик.
Мы добавили в Baselines код для обучения прямосвязных сверточных сетей (convnets) и LSTM на бенчмарке Atari с использованием A2C.
Авторы
Благодарности
Обложка: Бен Барри (Ben Barry)
Полный текст статьи читайте на OpenAI
