Ближайшая оптимизация политики (PPO) является без моделей, онлайн, на политике, методом обучения с подкреплением градиента политики. Этот алгоритм является типом обучения градиента политики, которое чередуется между выборкой данных через экологическое взаимодействие и оптимизацией отсеченной суррогатной целевой функции с помощью стохастического градиентного спуска. Отсеченная суррогатная целевая функция улучшает учебную устойчивость путем ограничения размера изменения политики на каждом шаге [1].
Для получения дополнительной информации о различных типах агентов обучения с подкреплением смотрите Агентов Обучения с подкреплением.
Агенты PPO могут быть обучены в средах со следующим наблюдением и пространствами действий.
Пространство наблюдений | Пространство действий |
---|---|
Дискретный или непрерывный | Дискретный или непрерывный |
Во время обучения, агента PPO:
Оценочные вероятности принятия каждых мер в пространстве действий и случайным образом выбирают действия на основе вероятностного распределения.
Взаимодействует со средой для нескольких шагов с помощью текущей политики перед использованием мини-пакетов, чтобы обновить агента и свойства критика за несколько эпох.
Чтобы оценить политику и функцию ценности, агент PPO обеспечивает две функциональных аппроксимации:
Агент μ (S) — Агент берет наблюдение S и возвращает вероятности принятия каждых мер в пространстве действий когда в S состояния.
Критик V (S) — Критик берет наблюдение S и возвращает соответствующее ожидание обесцененного долгосрочного вознаграждения.
Когда обучение завершено, обученная оптимальная политика хранится в агенте μ (S).
Для получения дополнительной информации о создании агентов и критиков для приближения функций, смотрите, Создают Представления Функции ценности и политика.
Можно создать агента PPO с представлениями актёра и критика по умолчанию на основе спецификаций наблюдений и спецификаций действия от среды. Для этого выполните следующие шаги.
Создайте спецификации наблюдений для своей среды. Если у вас уже есть объект интерфейса среды, можно получить эти технические требования использование getObservationInfo
.
Технические требования действия по созданию для вашей среды. Если у вас уже есть объект интерфейса среды, можно получить эти технические требования использование getActionInfo
.
Задайте опции агента с помощью rlPPOAgentOptions
объект.
Создайте агента с помощью rlPPOAgent
объект.
В качестве альтернативы можно создать представления актёра и критика и использовать эти представления, чтобы создать агента. В этом случае гарантируйте, что размерности ввода и вывода представлений актёра и критика совпадают с соответствующим действием и спецификациями наблюдений среды.
Создайте агента с помощью rlStochasticActorRepresentation
объект.
Создайте критика, использующего rlValueRepresentation
объект.
В случае необходимости задайте количество нейронов в каждом learnable слое или использовать ли слой LSTM. Для этого создайте объект опции инициализации агента использование rlAgentInitializationOptions
.
В случае необходимости задайте опции агента с помощью 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 испытывает в том же эпизоде тренировки, ts ← ts + 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 th элемент мини-пакета, соответственно.
μi (Si |θμ) является вероятностью принимающего меры Ai когда в Si состояния, учитывая обновленные параметры политики θμ.
μi (Si |θμ,old) является вероятностью принимающего меры Ai когда в Si состояния, учитывая предыдущие параметры политики (θμ,old) до текущей эпохи изучения.
ε является заданным использованием фактора клипа ClipFactor
опция.
Повторите шаги 3 - 5, пока эпизод тренировки не достигнет конечного состояния.
[1] Шульман, Джон, Филип Уолский, Prafulla Dhariwal, Алек Рэдфорд и Олег Климов. “Ближайшие Алгоритмы Оптимизации политики”. ArXiv:1707.06347 [Cs], 19 июля 2017. https://arxiv.org/abs/1707.06347.
[2] Mnih, Владимир, Adrià Puigdomènech Бадия, Мехди Мирза, Алекс Грэйвс, Тимоти П. Лилликрэп, Тим Харли, Дэвид Сильвер и Корей Кэваккуоглу. “Асинхронные методы для Глубокого Обучения с подкреплением”. 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