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

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

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

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

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

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

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

КритикАгент

V критика функции ценности (S), который вы создаете использование rlValueRepresentation

Стохастический π агента политики (S), который вы создаете использование rlStochasticActorRepresentation

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

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

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

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

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

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

  • Агент π (S |θ) — агент, параметрами θ, берет наблюдение S и возвращается:

    • Вероятности принятия каждых мер в пространстве действий, когда в S состояния (для дискретных пространств действий)

    • Среднее и стандартное отклонение Гауссова вероятностного распределения для каждого действия (для непрерывных пространств действий)

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

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

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

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

Можно создать и обучить агентов PPO в MATLAB® командная строка или использование приложения Reinforcement Learning Designer.

Для получения дополнительной информации о создании агентов с помощью Reinforcement Learning Designer смотрите, Создают Агентов Используя Reinforcement Learning Designer.

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

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

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

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

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

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

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

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

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

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

  4. Создайте агента с помощью rlPPOAgent функция.

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

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

Алгоритм обучения

Агенты PPO используют следующий алгоритм настройки. Чтобы сконфигурировать алгоритм настройки, задайте опции с помощью rlPPOAgentOptions объект.

  1. Инициализируйте агента π (S) со случайными значениями параметров θ.

  2. Инициализируйте критика V (S) со случайными значениями параметров ϕ.

  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|ϕ)

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

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

      Dt=GtV(St|ϕ)

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

      Dt=k=tts+N1(γλ)ktδkδk=Rt+bγV(St|ϕ)

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

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

      Gt=Dt+V(St|ϕ)

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

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

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

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

      Lcritic(ϕ)=1Mi=1M(GiV(Si|ϕ))2

    3. Нормируйте значения преимущества Di на основе недавних ненормированных значений преимущества.

      • Если NormalizedAdvantageMethod опцией является 'none', не нормируйте значения преимущества.

        D^iDi

      • Если NormalizedAdvantageMethod опцией является 'current', нормируйте значения преимущества на основе ненормированных преимуществ в текущем мини-пакете.

        D^iDimean(D1,D2,,DM)std(D1,D2,,DM)

      • Если NormalizedAdvantageMethod опцией является 'moving', нормируйте значения преимущества на основе ненормированных преимуществ для N новые преимущества, включая текущее значение преимущества. Чтобы задать размер окна N, используйте AdvantageNormalizingWindow опция.

        D^iDimean(D1,D2,,DN)std(D1,D2,,DN)

    4. Обновите параметры агента путем минимизации функции потерь агента Lactor через все произведенные мини-пакетные данные.

      Lactor(θ)=1Mi=1M(min(ri(θ)Di,ci(θ)Di)+wi(θ,Si))ri(θ)=πi(Si|θ)πi(Si|θold)ci(θ)=max(min(ri(θ),1+ε),1ε)

      Здесь:

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

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

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

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

      • ℋi (θ) является энтропийной потерей, и w является энтропийным весовым коэффициентом потерь, заданное использование EntropyLossWeight опция. Для получения дополнительной информации об энтропийной потере смотрите Энтропийную Потерю.

  6. Повторите шаги 3 - 5, пока эпизод тренировки не достигнет конечного состояния.

Энтропийная потеря

Чтобы способствовать исследованию агента, можно добавить, что энтропийная потеря называет w ℋi (θ, Si) к функции потерь агента, где w является энтропийным весом потерь, и ℋi (θ, Si) является энтропией.

Энтропийное значение выше, когда агент более сомнителен в который действие взять затем. Поэтому максимизация энтропийного термина потерь (минимизирующий отрицательную энтропийную потерю) увеличивает неопределенность агента, таким образом ободрительное исследование. Чтобы способствовать дополнительному исследованию, которое может помочь агенту переместиться из локальных оптимумов, можно задать больший энтропийный вес потерь.

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

i(θ,Si)=k=1Pπk(Si|θ)lnπk(Si|θ)

Здесь:

  • P является количеством возможных дискретных действий.

  • πk (Si |θ) является вероятностью принимающего меры Ak когда в Si состояния после текущей политики.

Для непрерывного пространства действий агент использует следующее энтропийное значение. В этом случае агент выводит среднее и стандартное отклонение Распределения Гаусса для каждого непрерывного действия.

i(θ,Si)=12k=1Cln(2πeσk,i2)

Здесь:

  • C является количеством непрерывных действий, выведенных агентом.

  • σk,i является стандартным отклонением для действия k когда в Si состояния после текущей политики.

Ссылки

[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.

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

|

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте