Введение

Эта статья — мой отчет о работе, проделанной в рамках финального проекта программы Udacity по глубокому обучению с подкреплением наностепени.

Мы работаем с теннисной средой для этого проекта. В этой среде два агента управляют ракетками, чтобы мяч отскакивал от сетки. Если агент перебрасывает мяч через сетку, он получает вознаграждение в размере +0,1. Если агент позволяет мячу коснуться земли или выбивает мяч за пределы игровой площадки, он получает вознаграждение в размере -0,01. Таким образом, цель каждого агента — удержать мяч в игре. Пространство наблюдения является 24-мерным, состоящим из 8 переменных, соответствующих положению и скорости мяча и ракетки. Каждый агент получает собственное локальное наблюдение. Доступны два непрерывных действия, соответствующие движению к сетке (или от нее) и прыжку.

Задача эпизодическая, и для решения окружения ваши агенты должны набрать средний балл +0,5 (более 100 последовательных эпизодов, после взятия максимума над обоими агентами). В частности, после каждого эпизода мы суммируем награды, которые получил каждый агент (без скидки), чтобы получить балл для каждого агента. Это дает 2 (потенциально разные) оценки. Затем мы берем максимум из этих двух баллов. Это дает один балл для каждого эпизода. Среда считается решенной, когда среднее значение (более 100 эпизодов) этих оценок составляет не менее +0,5.

Алгоритм обучения

Я начну этот раздел с того, что расскажу читателю, почему в определенных ситуациях многоагентное глубокое обучение с подкреплением (DRL) лучше подходит, чем DRL с одним агентом. В следующем разделе будут представлены многоагентные градиенты политики глубокого детерминирования (MADDPG). Важно помнить, что структура MADDPG строится поверх DDPG, которая, в свою очередь, является усовершенствованием алгоритма глубокого Q-обучения (DQN). Я подробно обсуждал алгоритмы DDPG и глубокого Q-обучения в предыдущих проектах. Этот проект предполагает предварительное знание глубоких Q-сетей (DQN), описанных здесь.

https://medium.com/@jasdeepsidhu13/navigation-udacity-s-deep-reinforcement-learning-project1-80caa2418ed7

а также методы «актор-критик», в частности, градиенты глубокой детерминации политики (DDPG), описанные здесь.

https://medium.com/@jasdeepsidhu13/project-2-continuous-control-of-udacity-s-deep-reinforcement-learning-c16fef28f24e.

Алгоритм обучения, используемый для реализации этого проекта, представляет собой мультиагентный DDPG. Наконец, в этом разделе я расскажу о сетевой архитектуре с гиперпараметрами, реализованными для этого алгоритма.

Зачем нам нужен многоагентный DRL?

Чтобы лучше моделировать реальные ситуации, нам нужны многоагентные системы, которые учатся выполнять сложные задачи, одновременно сотрудничая и/или конкурируя с другими агентами. Чем сложнее задача, тем больше вероятность, что нужны мультиагенты. Простой пример: задача, требующая, чтобы робот поднимал тяжелое оборудование, может быть решена гораздо лучше двумя агентами, где один агент запрограммирован поднимать груз с левой стороны, а другой фокусируется на правой стороне.

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

Для обхода проблемы нестационарного характера среды реализовано несколько методов. Одним из таких подходов, который мы будем использовать в этом проекте, является использование MADDPG. Среда для проекта требует обучения двух отдельных агентов, и агенты должны сотрудничать в определенных ситуациях (например, не дать мячу коснуться земли) и соревноваться в других ситуациях (например, набирать как можно больше очков). Простое расширение RL с одним агентом путем независимого обучения двух агентов не очень хорошо работает, потому что агенты независимо обновляют свои политики по мере обучения. И это заставляет среду казаться нестационарной с точки зрения любого агента. Хотя у нас могут быть нестационарные марковские процессы, гарантии сходимости, предлагаемые многими алгоритмами DRL, такими как Q-обучение, требуют стационарных сред.

Градиенты многоагентной глубокой детерминации

Напомним, что градиент глубокой детерминированной политики (DDPG) относится к классу методов актера-критика, но немного отличается от ванильного алгоритма актера-критика. Актер производит детерминистическую политику вместо обычной стохастической политики, а критик оценивает детерминистическую политику. Критик обновляется с использованием TD-ошибки, а актор обучается с использованием алгоритма градиента детерминированной политики. Фактически, это можно рассматривать как приблизительный метод Deep-Q Network (DQN). Причина этого в том, что критика в DDPG используется для аппроксимации максимизатора по Q-значениям следующего состояния, а не в качестве изученной базовой линии, как это было видно до сих пор. Одним из ограничений агента DQN является то, что его непросто использовать в пространствах с непрерывным действием. Например, как получить ценность непрерывного действия с архитектурой DQN? Эту проблему решает DDPG.

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

Рисунок был взят из статьи Open-AI Wu et. др. на MADDPG (см. [https://papers.nips.cc/paper/7217-multi-agent-actor-critic-for-mixed-cooperative-competitive-environments.pdf||MADDPG документ]). Ключевая идея этой статьи состоит в том, что если известны все действия каждого агента, то среда больше не является нестационарной, даже если политики каждого агента меняются.

Архитектура сети

Сетевая архитектура актора состоит из двух полностью связанных скрытых слоев по 256 единиц с активациями ReLU. Чтобы ускорить обучение и избежать застревания в локальном минимуме, для каждого скрытого слоя была введена пакетная нормализация как для сетей акторов, так и для сетей критиков. Активация гиперболического загара использовалась на выходном слое для сети акторов, поскольку она гарантирует, что каждая запись в векторе действия представляет собой число от -1 до 1. Напомним, что пространство состояний было 24-мерным, а выход (пространство действий) является двумерным для актера. В случае критика выход (пространство действия) является одномерным, соответствующим одному агенту. В случае с критиком я использовал скрытые единицы, чтобы получить 128 единиц, каждая из которых соответствует общей сети критики. Остальная часть реализации для критика такая же, как и в случае DDPG, то есть мы добавляем пространство состояний и пространство действий для полностью подключенного второго уровня, а затем применяем активацию relu. Адам использовался в качестве оптимизатора как для сетей актеров, так и для сетей критиков.

Гиперпараметры

Результаты

Задача была решена с помощью алгоритма MADDPG, в котором среднее вознаграждение +0,5, полученное как минимум за 100 эпизодов, было достигнуто за 1505 эпизодов. Результат существенно зависит от тонкой настройки гиперпараметров. Например, если количество временных шагов слишком велико/низко, скорость обучения или начальное значение слишком велико или мало, система может упасть в локальный минимум, при котором оценка может начать уменьшаться после определенного количества эпизодов. Слой пакетной нормализации был добавлен в сетевую архитектуру, чтобы улучшить обучение. Ниже я привожу лучший результат, который я получил первым с гиперпараметрами, перечисленными выше.

Сюжет наград в эпизодах показан ниже:

В более ранней версии с немного другим набором гиперпараметров я обнаружил, что обучение шло медленнее с колебательными паттернами, в частности, с провалом, наблюдаемым примерно с 1800 по 2050 год. В этой версии проблема была решена за 2138 эпизодов. .

Я сделал две модификации, которые помогли улучшить обучение. Во-первых, я изменил гамму коэффициента дисконтирования с 0,99 до 0,999. Это будет означать, что коэффициент дисконтирования теперь немного ближе к 1, и таким образом условия в более поздних временных шагах для эпизода будут немного меньше по значению по сравнению с более ранними временными шагами. Во-вторых, глядя на паттерны осцилляторов, я понял, что скорость обучения может быть слишком маленькой. Итак, я немного увеличил скорость обучения и, в частности, дал критику немного более высокую скорость обучения, чем действующему лицу, чтобы критик обучался немного быстрее, чем действующее лицо, поскольку действующее лицо использует информацию, предоставленную критиком, для изменения своей политики. Значение конечных гиперпараметров можно увидеть в разделе гиперпараметров.

Будущие улучшения

Одной из реализаций этого алгоритма является включение воспроизведения с приоритетом. Напомним, что любой вариант алгоритма DDPG использует буфер воспроизведения, цель которого — избежать вредных корреляций. Воспроизведение с приоритетом может помочь еще больше уменьшить корреляции, чтобы в обучении агента было меньше предвзятости, пока он изучает оптимальную политику. Еще одним направлением будущих исследований является использование многоагентной проксимальной оптимизации политики (MAPPO), чтобы сравнить ее с MADDPG. Для целей этой нано-степени я сосредоточился только на DDPG и его вариантах, но MAPPO может быть интересным вариантом.