Ближайшие агенты оптимизации политики

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

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

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

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

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

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

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

Агент и функции критика

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

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

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

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

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

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

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

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

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

  3. Задайте опции агента с помощью rlPPOAgentOptions объект.

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

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

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

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

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

  4. В случае необходимости задайте опции агента с помощью rlPPOAgentOptions объект.

  5. Создайте агента с помощью 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 испытывает в том же эпизоде тренировки, tsts + 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 th элемент мини-пакета, соответственно.

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

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

      • ε является заданным использованием фактора клипа ClipFactor опция.

  6. Повторите шаги 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.

Смотрите также

|

Похожие темы