Проксимальная оптимизация политики (PPO) является онлайновым методом обучения с подкреплением на основе градиента политики без моделей. Этот алгоритм является типом обучения градиенту политики, которое чередуется между данными выборки через взаимодействие среды и оптимизацией обрезанной суррогатной целевой функции с помощью стохастического градиентного спуска. Обрезанная суррогатная целевая функция улучшает стабильность обучения, ограничивая размер изменения политики на каждом шаге [1].
Для получения дополнительной информации о различных типах агентов обучения с подкреплением смотрите Reinforcement Learning Agents.
Агенты PPO могут быть обучены в окружениях со следующими пространствами наблюдений и действий.
Пространство наблюдений | Пространство действий |
---|---|
Дискретный или непрерывный | Дискретный или непрерывный |
Агенты PPO используют следующие представления актёра и критика.
Критик | Актер |
---|---|
Критик функции ценности V (S), которую вы создаете используя | Актёр Стохастической политики (S), который вы создаете используя |
Во время обучения агент PPO:
Оценивает вероятности выполнения каждого действия в пространстве действий и случайным образом выбирает действия на основе распределения вероятностей.
Взаимодействует с окружением для нескольких шагов, используя текущую политику, прежде чем использовать мини-пакеты для обновления свойств актёра и критика в несколько эпох.
Если на UseDeterministicExploitation
опция в rlPPOAgentOptions
установлено в true
действие с максимальной вероятностью всегда используется в sim
и generatePolicyFunction
. Это заставляет моделируемого агента и сгенерированную политику вести себя детерминированно.
Чтобы оценить политику и функцию ценности, агент PPO поддерживает две функциональные аппроксимации:
Актёр μ (S) - Актёр принимает S наблюдения и возвращает вероятности выполнения каждого действия в пространстве действий при S состояния.
Критик V (S) - Критик принимает S наблюдений и возвращает соответствующее ожидание дисконтированного долгосрочного вознаграждения.
Когда обучение завершено, обученная оптимальная политика сохранена в μ актёра (S).
Для получения дополнительной информации о создании актёров и критиков для приближения функций, смотрите Создать политику и Представления функции ценности.
Можно создать агента PPO с представлениями актёра и критика по умолчанию на основе наблюдений и спецификаций действия от окружения. Для этого выполните следующие шаги.
Создайте спецификации наблюдений для вашего окружения. Если у вас уже есть объект интерфейса окружения, можно получить эти спецификации, используя getObservationInfo
.
Создайте спецификации действия для вашего окружения. Если у вас уже есть объект интерфейса окружения, можно получить эти спецификации, используя getActionInfo
.
При необходимости укажите количество нейронов в каждом обучаемом слое или использовать ли слой LSTM. Для этого создайте объект опции инициализации агента с помощью rlAgentInitializationOptions
.
Задайте опции агента, используя rlPPOAgentOptions
объект.
Создайте агента с помощью rlPPOAgent
объект.
Кроме того, можно создать представления актёра и критика и использовать эти представления для создания агента. В этом случае убедитесь, что входная и выходная размерности представлений актёра и критика совпадают с соответствующими спецификациями действий и наблюдений окружения.
Создайте актёра, используя rlStochasticActorRepresentation
объект.
Создайте критика, используя rlValueRepresentation
объект.
При необходимости задайте опции агента, используя rlPPOAgentOptions
объект.
Создайте агента, используя rlPPOAgent
функция.
Агенты PPO поддерживают актёров и критиков, которые используют периодические глубокие нейронные сети в качестве функциональной аппроксимации.
Для получения дополнительной информации о создании актёров и критиков для приближения функций, смотрите Создать политику и Представления функции ценности.
Агенты PPO используют следующий алгоритм настройки. Чтобы сконфигурировать алгоритм настройки, задайте опции используя rlPPOAgentOptions
объект.
Инициализируйте μ актёра (S) со случайными значениями параметров θμ.
Инициализируйте V критика (S) со случайными значениями параметров θV.
Сгенерируйте 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 есть конечное состояние.
Для каждого шага эпизода t = ts + 1, ts + 2,..., ts + N, вычислите функцию возврата и преимущества с помощью метода, заданного AdvantageEstimateMethod
опция.
Конечный горизонт (AdvantageEstimateMethod = "finite-horizon"
) - Вычислите Gt возврата, которая является суммой вознаграждения для этого шага и дисконтированного будущего вознаграждения [2].
Вот, b 0
если Sts+N является конечным состоянием и 1
в противном случае. То есть, если Sts+N не является конечное состояние, дисконтированное будущее вознаграждение включает в себя дисконтированную функцию ценности состояния, вычисленное с помощью сетевого V критика.
Вычислите Dt функции преимущества.
Обобщенная оценка преимущества (AdvantageEstimateMethod = "gae"
) - Вычислите функцию Dt преимущества, которая является дисконтированной суммой временной разности ошибок [3].
Вот, b 0
если Sts+N является конечным состоянием и 1
в противном случае. λ является коэффициентом сглаживания, заданным с помощью GAEFactor
опция.
Вычислите возврат Gt.
Чтобы задать коэффициент скидки, γ для любого из методов, используйте DiscountFactor
опция.
Учитесь на мини-пакетах переживаний в K эпоху. Чтобы задать K, используйте NumEpoch
опция. Для каждой эпохи обучения:
Выборка случайного мини-пакета данных набора размеров, M из текущего набора впечатлений. Чтобы задать M, используйте MiniBatchSize
опция. Каждый элемент набора мини-пакетных данных содержит текущий опыт и соответствующие значения функции возврата и преимущества.
Обновите параметры критика путем минимизации Lcritic потерь по всем выборочным мини-пакетным данным.
Обновите параметры актёра путем минимизации Lactor потерь по всем выборочным мини-пакетным данным. Если на EntropyLossWeight
опция больше нуля, затем к Lactor добавляется дополнительная потеря энтропии, что способствует исследованию политики.
Здесь:
Di и Gi являются функцией преимущества и возвращаемым значением для i-го элемента мини-пакета, соответственно.
μi (Si | θμ) является вероятностью принятия мер Ai в состоянии Si, учитывая обновленные параметры политики θμ.
μi (Si | θμ,old) - вероятность принятия мер Ai в состоянии Si, учитывая предыдущие параметры политики (θμ,old) от до текущей эпохи обучения.
ε - коэффициент клипа, заданный с помощью ClipFactor
опция.
Повторяйте шаги с 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.
rlPPOAgent
| rlPPOAgentOptions