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

Алгоритм глубокого детерминированного градиента политики (DDPG) является онлайновым методом обучения с подкреплением без моделей и без политики. Агент DDPG является агентом обучения с подкреплением актёра-критика, который ищет оптимальную политику, которая максимизирует ожидаемое совокупное долгосрочное вознаграждение.

Для получения дополнительной информации о различных типах агентов обучения с подкреплением смотрите Reinforcement Learning Agents.

Агенты DDPG могут быть обучены в окружениях со следующими пространствами наблюдений и действий.

Пространство наблюденийПространство действий
Непрерывный или дискретныйНепрерывный

Агенты DDPG используют следующие представления актёра и критика.

КритикАктер

Критик функции Q (S, A), которую вы создаете используя rlQValueRepresentation

Субъект детерминированной политики, который вы создаете используя rlDeterministicActorRepresentation

Во время обучения агент DDPG:

  • Обновляет свойства актёра и критика в каждый временной шаг во время обучения.

  • Сохраняет прошлые опыты с помощью буфера циклического опыта. Агент обновляет актёра и критика, используя мини-пакет переживаний, случайным образом выбранных из буфера.

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

Функции актёра и критика

Чтобы оценить политику и функцию ценности, агент DDPG поддерживает четыре функциональных аппроксимации:

  • Актёр μ (S) - Актёр принимает S наблюдения и возвращает соответствующее действие, которое максимизирует долгосрочное вознаграждение.

  • Целевой актёр μ' (S) - Чтобы улучшить стабильность оптимизации, агент периодически обновляет целевой актёр на основе последних значений параметров актёра.

  • Критик Q (S, A) - критик берет наблюдение S и действие A как входы и возвращает соответствующее ожидание долгосрочного вознаграждения.

  • Целевой критик Q' (S, A) - Чтобы улучшить стабильность оптимизации, агент периодически обновляет целевой критик на основе последних значений параметров критика.

И Q (S, A), и Q' (S, A) имеют одинаковую структуру и параметризацию, и оба μ (S) и μ' (S) имеют одинаковую структуру и параметризацию.

Когда обучение завершено, обученная оптимальная политика сохранена в μ актёра (S).

Для получения дополнительной информации о создании актёров и критиков для приближения функций, смотрите Создать политику и Представления функции ценности.

Создание агента

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

  1. Создайте спецификации наблюдений для вашего окружения. Если у вас уже есть объект интерфейса окружения, можно получить эти спецификации, используя getObservationInfo.

  2. Создайте спецификации действия для вашего окружения. Если у вас уже есть объект интерфейса окружения, можно получить эти спецификации, используя getActionInfo.

  3. При необходимости укажите количество нейронов в каждом обучаемом слое или использовать ли слой LSTM. Для этого создайте объект опции инициализации агента с помощью rlAgentInitializationOptions.

  4. При необходимости задайте опции агента, используя rlDDPGAgentOptions объект.

  5. Создайте агента с помощью rlDDPGAgent объект.

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

  1. Создайте актёра, используя rlDeterministicActorRepresentation объект.

  2. Создайте критика, используя rlQValueRepresentation объект.

  3. Задайте опции агента, используя rlDDPGAgentOptions объект.

  4. Создайте агента с помощью rlDDPGAgent объект.

Для получения дополнительной информации о создании актёров и критиков для приближения функций, смотрите Создать политику и Представления функции ценности.

Алгоритм настройки

Агенты DDPG используют следующий алгоритм настройки, в котором они обновляют свои модели актёра и критика на каждом временном шаге. Чтобы сконфигурировать алгоритм настройки, задайте опции используя rlDDPGAgentOptions объект.

  • Инициализируйте Q критика (S, A) со случайными значениями параметров θQ и инициализируйте целевого критика с такими же случайными значениями параметров:θQ'=θQ.

  • Инициализируйте μ актёра (S) со случайными значениями параметров θμ и инициализируйте целевой актёр с теми же значениями параметров :θμ'=θμ.

  • Для каждого временного шага обучения:

    1. Для текущей S наблюдения выберите действие A = μ (S) + N, где N является стохастическим шумом из модели шума. Чтобы сконфигурировать модель шума, используйте NoiseOptions опция.

    2. Выполните действие A. Наблюдайте за R вознаграждения и следующими S' наблюдения.

    3. Сохраните опыт (S, A, R, S') в буфере опыта.

    4. Пробуйте случайную мини-партию M события (Si, Ai, Ri, S'i) от буфера опыта. Чтобы задать M, используйте MiniBatchSize опция.

    5. Если S'i является терминальным состоянием, задайте yi целевого значения функции Ri. В противном случае установите его на

      yi=Ri+γQ'(Si',μ'(Si'|θμ)|θQ')

      Цель функции ценности является суммой вознаграждения за опыт Ri и дисконтированного будущего вознаграждения. Чтобы задать γ коэффициента скидки, используйте DiscountFactor опция.

      Чтобы вычислить совокупное вознаграждение, агент сначала вычисляет следующее действие путем передачи следующего Si' наблюдения из дискретизированного опыта целевому актеру. Агент находит совокупное вознаграждение, передав следующее действие целевому критику.

    6. Обновите параметры критика путем минимизации L потерь во всех выборочных опытах.

      L=1Mi=1M(yiQ(Si,Ai|θQ))2

    7. Обновите параметры актёра с помощью следующего выборочного градиента политики, чтобы максимизировать ожидаемое дисконтированное вознаграждение.

      θμJ1Mi=1MGaiGμiGai=AQ(Si,A|θQ)гдеA=μ(Si|θμ)Gμi=θμμ(Si|θμ)

      Здесь Gai является градиентом выхода критика относительно действия, вычисленного сетью актёра, и Gμi является градиентом выхода актёра относительно параметров актёра. Оба градиента оцениваются для Si наблюдений.

    8. Обновляйте параметры целевого актёра и критика в зависимости от целевого метода обновления. Для получения дополнительной информации смотрите Методы целевого обновления.

Для простоты обновления актёра и критика в этом алгоритме показывают обновление градиента с помощью базового стохастического градиентного спуска. Фактический метод обновления градиента зависит от оптимизатора, который вы задаете используя rlRepresentationOptions.

Методы целевого обновления

Агенты DDPG обновляют свои целевые параметры актёра и критика с помощью одного из следующих методов целевого обновления.

  • Сглаживание - обновляйте целевые параметры в каждый временной шаг с помощью τ коэффициента сглаживания. Чтобы задать коэффициент сглаживания, используйте TargetSmoothFactor опция.

    θQ'=τθQ+(1τ)θQ'(critic parameters)θμ'=τθμ+(1τ)θμ'(actor parameters)

  • Периодический - Периодически обновляйте целевые параметры без сглаживания (TargetSmoothFactor = 1). Чтобы задать период обновления, используйте TargetUpdateFrequency параметр.

  • Периодическое сглаживание - периодически обновляйте целевые параметры с сглаживанием.

Чтобы сконфигурировать целевой метод обновления, создайте rlDDPGAgentOptions Объекту и установите TargetUpdateFrequency и TargetSmoothFactor параметры, как показано в следующей таблице.

Метод обновленияTargetUpdateFrequencyTargetSmoothFactor
Сглаживание (по умолчанию)1Меньше 1
ПериодическийБольше 11
Периодическое сглаживаниеБольше 1Меньше 1

Ссылки

[1] Lillicrap, Timothy P., Jonathan J. Hunt, Alexander Pritzel, Nicolas Heess, Tom Erez, Yuval Tassa, David Silver, and Daan Wierstra. Непрерывное управление с глубоким обучением с подкреплением. ArXiv:1509.02971 [Cs, Stat], 9 сентября 2015 года. https://arxiv.org/abs/1509.02971.

См. также

|

Похожие темы