Ингредиенты для исследований в области робототехники

Бен Барри (Ben Barry)
Мы выпускаем восемь симулированных сред для робототехники и базовую реализацию алгоритма Hindsight Experience Replay, разработанные в ходе наших исследований за последний год. Мы использовали эти среды для обучения моделей, которые работают на реальных роботах. Мы также публикуем набор запросов на исследования в области робототехники.
Этот релиз включает четыре среды, использующие исследовательскую платформу Fetch, и четыре среды, использующие робота ShadowHand. Задачи манипуляции, представленные в этих средах, значительно сложнее непрерывных сред управления MuJoCo, в настоящее время доступных в Gym, все из которых теперь легко решаются с помощью недавно выпущенных алгоритмов, таких как PPO. Более того, наши новые среды используют модели реальных роботов и требуют от агента решения реалистичных задач.
Среды
Данный релиз поставляется с восемью средами робототехники для Gym, которые используют физический симулятор MuJoCo. Эти среды:
Цели
Во всех новых задачах присутствует концепция «цели», например, желаемое положение шайбы в задаче скольжения или желаемая ориентация блока в задаче манипуляции с блоком рукой. По умолчанию во всех средах используется разреженная награда (sparse reward), равная -1, если желаемая цель еще не достигнута, и 0, если она была достигнута (с некоторой погрешностью). Это контрастирует со сформированными (shaped) наградами, используемыми в старом наборе задач непрерывного управления Gym, например в Walker2d-v2 с его сформированной наградой.
Мы также включаем вариант с плотными (dense) наградами для каждой среды. Тем не менее, мы считаем, что разреженные награды более реалистичны в приложениях робототехники, и призываем всех использовать именно вариант с разреженными наградами.

Hindsight Experience Replay
Вместе с этими новыми средами робототехники мы также выпускаем код для Hindsight Experience Replay (или сокращенно HER), алгоритма обучения с подкреплением, который может учиться на ошибках. Наши результаты показывают, что HER способен находить успешные стратегии для большинства новых задач робототехники, используя лишь разреженные награды. Ниже мы также показываем некоторые потенциальные направления для будущих исследований, которые могли бы еще больше улучшить производительность алгоритма HER в этих задачах.

Понимание HER
Чтобы понять, как работает HER, давайте рассмотрим его в контексте FetchSlide, задачи, в которой нам нужно научиться скользить шайбой по столу и поражать цель. Наша первая попытка, скорее всего, будет неудачной. Если нам очень не повезет, следующие несколько попыток тоже вряд ли увенчаются успехом. Типичные алгоритмы обучения с подкреплением ничему не научатся на этом опыте, поскольку они просто получают постоянную награду (в данном случае: -1), которая не содержит никакого сигнала для обучения.
Ключевая идея, формализуемая HER, заключается в том, что интуитивно делают люди: даже если мы не преуспели в достижении конкретной цели, мы по крайней мере достигли какой-то другой. Так почему бы просто не притвориться, что мы изначально хотели достичь именно этой цели, а не той, которую мы ставили перед собой изначально? Совершая такую замену, алгоритм обучения с подкреплением может получить сигнал обучения, поскольку он достиг какой-то цели, пусть даже и не той, которую мы изначально намеревались достичь. Если мы повторим этот процесс, то в конечном итоге научимся достигать произвольных целей, включая те, которых мы действительно хотим достичь.
Этот подход позволяет нам научиться скользить шайбой по столу, даже если наша награда полностью разрежена и даже если мы фактически никогда не попадали в желаемую цель на ранних этапах. Мы называем этот метод Hindsight Experience Replay, поскольку он воспроизводит опыт (метод, часто используемый в off-policy алгоритмах RL, таких как DQN и DDPG) с целями, которые выбираются задним числом (in hindsight), после завершения эпизода. Таким образом, HER может быть комбинирован с любым off-policy алгоритмом RL (например, HER можно объединить с DDPG, что мы записываем как «DDPG + HER»).
Результаты
Мы обнаружили, что HER работает чрезвычайно хорошо в средах, основанных на достижении целей, с разреженными наградами. Мы сравниваем DDPG + HER и ванильный DDPG на новых задачах. Это сравнение включает версии каждой среды как с разреженными, так и с плотными наградами.

Медианная частота успешных тестов (линия) с межквартильным размахом (затененная область) для четырех различных конфигураций в задаче HandManipulateBlockRotateXYZ-v0. Данные построены по эпохам обучения и обобщены по пяти различным случайным сидам для каждой конфигурации.
DDPG + HER с разреженными наградами значительно превосходит все остальные конфигурации и ухитряется выучить успешную стратегию в этой сложной задаче, используя только разреженные награды. Интересно, что DDPG + HER с плотной наградой способна обучаться, но показывает худшую производительность. Ванильный DDPG в основном терпит неудачу в обоих случаях. Мы обнаружили, что эта тенденция в целом верна для большинства сред, и приводим полные результаты в нашем сопутствующем техническом отчете.
Запросы на исследования: выпуск, посвященный HER
Хотя HER является многообещающим путем к изучению сложных целевых задач с разреженными наградами, таких как предлагаемые нами среды робототехники, здесь все еще остается много возможностей для улучшения. Подобно нашим недавно опубликованным Запросам на исследования 2.0, у нас есть несколько идей по улучшению HER в частности и обучения с подкреплением в целом.
- Автоматическое создание ретроспективных целей. В настоящее время у нас есть жестко закодированная стратегия выбора целей задним числом, которые мы хотим подставить. Было бы интересно научиться выводить эту стратегию автоматически.
- Несмещенный HER. Подстановка целей изменяет распределение опыта не вполне принципиальным образом. Это смещение теоретически может приводить к нестабильности, хотя на практике мы этого не наблюдаем. Тем не менее, было бы неплохо вывести несмещенную версию HER, например, используя importance sampling (метод重要性采样 / важной выборки).
- HER + HRL. Было бы интересно дополнительно объединить HER с недавней идеей в иерархическом обучении с подкреплением (HRL). Вместо применения HER только к целям, его можно было бы применять и к действиям, генерируемым политикой более высокого уровня. Например, если верхний уровень просил нижний достичь цели А, но вместо этого была достигнута цель Б, мы могли бы предположить, что верхний уровень изначально просил достичь цели Б.
- Более богатые функции ценности. Было бы интересно расширить недавниеисследования и обусловить функцию ценности дополнительными входными данными, такими как коэффициент дисконтирования или порог успешности, и (возможно?) также подставлять их задним числом.
- Более быстрое распространение информации. Большинство off-policy глубокихалгоритмовобученияс подкреплением используют целевые сети (target networks) для стабилизации обучения. Однако, поскольку изменениям требуется время для распространения, это ограничивает скорость обучения, и в наших экспериментах мы заметили, что это часто является важнейшим фактором, определяющим скорость обучения DDPG+HER. Было бы интересно исследовать другие способы стабилизации обучения, которые не вызывают такого замедления.
- HER + многошаговые возвраты (multi-step returns). Опыт, используемый в HER, является крайне off-policy, поскольку мы подставляем цели. Это затрудняет его использование с многошаговыми возвратами. Тем не менее, многошаговые возвраты желательны, поскольку они позволяют гораздо быстрее распространять информацию о возвратах.
- On-policy HER. В настоящее время HER может использоваться только с off-policy алгоритмами, так как мы подставляем цели, что делает опыт крайне off-policy. Однако современные передовые алгоритмы, такие как PPO, демонстрируют очень привлекательные свойства стабильности. Было бы интересно исследовать, можно ли объединить HER с такими on-policy алгоритмами, например, с помощью importance sampling. В этом направлении уже есть кое-какие предварительные результаты.
- Обучение с подкреплением с очень частыми действиями. Существующие алгоритмы RL очень чувствительны к частоте выполнения действий, поэтому в играх Atari обычно используется техника пропуска кадров (frame skip). В доменах непрерывного управления производительность падает до нуля по мере того, как частота выполнения действий стремится к бесконечности, что вызвано двумя факторами: несогласованным исследованием и необходимостью выполнять бутстрэппинг большее число раз для распространения информации о возвратах назад во времени. Как спроектировать эффективный по выборке алгоритм RL, который сохраняет свою производительность даже тогда, когда частота выполнения действий стремится к бесконечности?
- Сочетание HER с последними достижениями в RL. Существует огромный пласт недавних исследований, улучшающих различные аспекты RL. В качестве отправной точки HER можно объединить с Prioritized Experience Replay, дистрибутивным RL, RL с регуляризацией энтропии или генерацией обратной учебной программы.
Дополнительную информацию и ссылки на эти предложения, а также на новые среды Gym вы можете найти в нашем сопутствующем техническом отчете.
Использование целевых сред
Введение понятия «цели» (goal) требует нескольких обратимо совместимых изменений в существующем API Gym:
- Все среды, основанные на целях, используют пространство наблюдений типа
gym.spaces.Dict. Предполагается, что среды включают желаемую цель, которую агент должен попытаться достичь (desired_goal), цель, которая была достигнута им в настоящий момент вместо неё (achieved_goal), а также фактическое наблюдение (observation), например, состояние робота. - Мы предоставляем доступ к функции вознаграждения среды и тем самым позволяем пересчитывать вознаграждение при изменении целей. Это открывает возможности для алгоритмов в стиле HER, которые производят подстановку целей.
Вот простой пример взаимодействия с одной из новых сред, основанных на целях, и выполнения подстановки целей:
Новые среды, основанные на целях, могут использоваться с существующими алгоритмами обучения с подкреплением, совместимыми с Gym, такими как Baselines. Используйте gym.wrappers.FlattenDictWrapper, чтобы преобразовать пространство наблюдений на основе словаря в плоский массив:
Авторы
Полный текст статьи читайте на OpenAI
