exponenta event banner

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

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

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

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

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

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

КритикАктер

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

Stochastic policy actor δ (S), который создается с помощьюrlStochasticActorRepresentation

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

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

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

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

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

Для оценки политики и функции значения агент PPO поддерживает два аппроксиматора функции:

  • Actor λ (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 + N 1, Ats + N − 1, 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 (γ k tRk) + bγ N t + 1V (Sts + N 'startV)

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

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

      Dt = Gt V (St 'startV)

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

      Dt=∑k=tts+N−1 (γ λ) k tδkδk = Rt + bγ V (St 'λ V)

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

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

      Gt = Dt V (St 'startV)

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

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

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

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

      Lcritic (startV) =1M∑i=1M (Gi V (Si 'startV)) 2

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

      Lactor (θμ) = −1M∑i=1Mmin (ri (θμ) ∗Di, ci (θμ) ∗Di) ri (θμ) = μAi (Сай 'θμ) μAi (Сай 'θμ, старый) ci (θμ) =max (минута (ri (θμ), 1 +ε), 1−ε)

      Здесь:

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

      • pcii (Si 'λ λ) - вероятность принятия действия Ai при нахождении в состоянии Si, учитывая обновлённые параметры политики,

      • pcii (Si 'λ, старый) - вероятность принятия действия Ai при нахождении в состоянии Si, при условии, что предыдущие параметры политики (λ λ, старый) находятся перед текущей эпохой обучения.

      • start- коэффициент зажима, заданный с помощью 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.

См. также

|

Связанные темы