Проксимальные агенты оптимизации политики

Проксимальная оптимизация политики (PPO) является онлайновым методом обучения с подкреплением на основе градиента политики без моделей. Этот алгоритм является типом обучения градиенту политики, которое чередуется между данными выборки через взаимодействие среды и оптимизацией обрезанной суррогатной целевой функции с помощью стохастического градиентного спуска. Обрезанная суррогатная целевая функция улучшает стабильность обучения, ограничивая размер изменения политики на каждом шаге [1].

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

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

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

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

КритикАктер

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

Актёр Стохастической политики (S), который вы создаете используя rlStochasticActorRepresentation

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

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

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

Если на UseDeterministicExploitation опция в rlPPOAgentOptions установлено в true действие с максимальной вероятностью всегда используется в sim и generatePolicyFunction. Это заставляет моделируемого агента и сгенерированную политику вести себя детерминированно.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  4. Создайте агента, используя rlPPOAgent функция.

Агенты PPO поддерживают актёров и критиков, которые используют периодические глубокие нейронные сети в качестве функциональной аппроксимации.

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

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

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

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

  2. Инициализируйте V критика (S) со случайными значениями параметров θV.

  3. Сгенерируйте N опыт, следуя текущей политике. Последовательность опыта

    Sts,Ats,Rts+1,Sts+1,,Sts+N1,Ats+N1,Rts+N,Sts+N

    Здесь St наблюдение состояния, At является действием, взятым из этого состояния, St+1 является следующим состоянием, и Rt+1 является вознаграждением, полученным за переход от St к St+1.

    Когда в St состояний агент вычисляет вероятность выполнения каждого действия в пространстве действий с помощью μ (St) и случайным образом выбирает At действия на основе распределения вероятностей.

    ts - начальный временной шаг текущего набора N переживаний. В начале эпизода тренировки ts = 1. Поскольку каждый последующий набор N испытывает в том же эпизоде тренировки, <reservedrangesplaceholder2> ← <reservedrangesplaceholder1> + N.

    Для каждой последовательности опыта, которая не содержит конечного состояния, N равно ExperienceHorizon значение опции. В противном случае N меньше ExperienceHorizon и SN есть конечное состояние.

  4. Для каждого шага эпизода t = ts + 1, ts + 2,..., ts + N, вычислите функцию возврата и преимущества с помощью метода, заданного AdvantageEstimateMethod опция.

    • Конечный горизонт (AdvantageEstimateMethod = "finite-horizon") - Вычислите Gt возврата, которая является суммой вознаграждения для этого шага и дисконтированного будущего вознаграждения [2].

      Gt=k=tts+N(γktRk)+bγNt+1V(Sts+N|θV)

      Вот, b 0 если Sts+N является конечным состоянием и 1 в противном случае. То есть, если Sts+N не является конечное состояние, дисконтированное будущее вознаграждение включает в себя дисконтированную функцию ценности состояния, вычисленное с помощью сетевого V критика.

      Вычислите Dt функции преимущества.

      Dt=GtV(St|θV)

    • Обобщенная оценка преимущества (AdvantageEstimateMethod = "gae") - Вычислите функцию Dt преимущества, которая является дисконтированной суммой временной разности ошибок [3].

      Dt=k=tts+N1(γλ)ktδkδk=Rt+bγV(St|θV)

      Вот, b 0 если Sts+N является конечным состоянием и 1 в противном случае. λ является коэффициентом сглаживания, заданным с помощью GAEFactor опция.

      Вычислите возврат Gt.

      Gt=DtV(St|θV)

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

  5. Учитесь на мини-пакетах переживаний в K эпоху. Чтобы задать K, используйте NumEpoch опция. Для каждой эпохи обучения:

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

    2. Обновите параметры критика путем минимизации Lcritic потерь по всем выборочным мини-пакетным данным.

      Lcritic(θV)=1Mi=1M(GiV(Si|θV))2

    3. Обновите параметры актёра путем минимизации Lactor потерь по всем выборочным мини-пакетным данным. Если на EntropyLossWeight опция больше нуля, затем к Lactor добавляется дополнительная потеря энтропии, что способствует исследованию политики.

      Lactor(θμ)=1Mi=1Mmin(ri(θμ)Di,ci(θμ)Di)ri(θμ)=μAi(Si|θμ)μAi(Si|θμ,old)ci(θμ)=max(min(ri(θμ),1+ε),1ε)

      Здесь:

      • Di и Gi являются функцией преимущества и возвращаемым значением для i-го элемента мини-пакета, соответственно.

      • μi (Si | θμ) является вероятностью принятия мер Ai в состоянии Si, учитывая обновленные параметры политики θμ.

      • μi (Si | θμ,old) - вероятность принятия мер Ai в состоянии Si, учитывая предыдущие параметры политики (θμ,old) от до текущей эпохи обучения.

      • ε - коэффициент клипа, заданный с помощью ClipFactor опция.

  6. Повторяйте шаги с 3 по 5, пока эпизод тренировки не достигнет конечного состояния.

Ссылки

[1] Шульман, Джон, Филипп Вольски, Прафулла Дхаривал, Алек Рэдфорд и Олег Климов. «Проксимальные алгоритмы оптимизации политики». ArXiv:1707.06347 [Cs], 19 июля 2017 года. https://arxiv.org/abs/1707.06347.

[2] Мних, Владимир, Адриа Пучдомех Бадия, Мехди Мирза, Алекс Грейвс, Тимоти П. Лилликрап, Тим Харли, Дэвид Сильвер и Корай Кавуккуоглу. «Асинхронные методы глубокого обучения с подкреплением». ArXiv:1602.01783 [Cs], 4 февраля 2016 года. https://arxiv.org/abs/1602.01783.

[3] Шульман, Джон, Филипп Мориц, Сергей Левин, Майкл Джордан и Питер Аббил. «Высокомерное непрерывное управление с использованием обобщенной оценки преимущества». ArXiv:1506.02438 [Cs], 20 октября 2018 года. https://arxiv.org/abs/1506.02438.

См. также

|

Похожие темы