Ближайшая оптимизация политики (PPO) является без моделей, онлайн, на политике, методом обучения с подкреплением градиента политики. Этот алгоритм является типом обучения градиента политики, которое чередуется между выборкой данных через экологическое взаимодействие и оптимизацией отсеченной суррогатной целевой функции с помощью стохастического градиентного спуска. Отсеченная суррогатная целевая функция улучшает учебную устойчивость путем ограничения размера изменения политики на каждом шаге. [1]
Для получения дополнительной информации о различных типах агентов обучения с подкреплением смотрите Агентов Обучения с подкреплением.
Агенты PPO могут быть обучены в средах со следующими пробелами наблюдения и действия.
Пространство наблюдений | Пробел действия |
---|---|
Непрерывный или дискретный | Дискретный |
Во время обучения, агента PPO:
Оценочные вероятности принятия каждых мер на пробеле действия и случайным образом выбирают действия на основе вероятностного распределения.
Взаимодействует со средой для нескольких шагов с помощью текущей политики перед использованием мини-пакетов, чтобы обновить агента и свойства критика за несколько эпох.
Чтобы оценить политику и функцию значения, агент PPO обеспечивает две функции approximators:
Агент μ (S) — Агент берет наблюдение S и выводит вероятности принятия каждых мер на пробеле действия когда в S состояния.
Критик V (S) — Критик берет наблюдение S и выводит соответствующее ожидание обесцененного долгосрочного вознаграждения.
Когда обучение завершено, обученная оптимальная политика хранится в агенте μ (S).
Для получения дополнительной информации о создании агентов и критиков для приближения функций, смотрите, Создают политику и Представления Функции Значения.
Создать агента PPO:
Создайте объект представления агента.
Создайте объект представления критика.
Задайте опции агента с помощью rlPPOAgentOptions
объект.
Создайте агента с помощью rlPPOAgent
функция.
Агенты 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] Шульман, J., и др. "Ближайшие Алгоритмы Оптимизации политики", Технический отчет, ArXiv, 2017.
[2] Mnih, V., и др. "Асинхронные методы для глубокого обучения с подкреплением", Международная конференция по вопросам Машинного обучения, 2016.
[3] Шульман, J., и др. "Высоко-размерное Непрерывное Управление Используя Обобщенную Оценку Преимущества", Технический отчет, ArXiv, 2018.
rlACAgent
| rlPPOAgentOptions
| rlRepresentation