Агенты градиента политики

Алгоритм градиента политики (PG) является онлайновым методом обучения с подкреплением без моделей и без политики. Агент PG является агентом обучения с подкреплением на основе политики, который использует алгоритм REINFORCE для поиска оптимальной политики, которая максимизирует ожидаемое совокупное долгосрочное вознаграждение.

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

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

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

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

Критик (если используется базовая линия)Актер

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

Актёр Стохастической политики (S), который вы создаете используя rlStochasticActorRepresentation

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

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

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

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

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

Агенты PG представляют политику, используя функциональную аппроксимацию актёра μ (S). Актёр принимает S наблюдения и возвращает вероятности выполнения каждого действия в пространстве действий при S состояния.

Чтобы уменьшить отклонение во время оценки градиента, агенты PG могут использовать базовую функцию ценности, которая оценивается с помощью функциональной аппроксимации критика V (S). Критик вычисляет функцию ценности для заданного состояния наблюдения.

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

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

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

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

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

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

  4. При необходимости задайте опции агента, используя rlPGAgentOptions объект.

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

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

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

  2. Если вы используете функцию базовой линии, создайте критика, используя rlValueRepresentation объект.

  3. Задайте опции агента, используя rlPGAgentOptions объект.

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

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

Алгоритм настройки

Агенты PG используют алгоритм REINFORCE (градиент политики Монте-Карло) либо с базовой линией, либо без нее. Чтобы сконфигурировать алгоритм настройки, задайте опции используя rlPGAgentOptions объект.

Алгоритм REINFORCE

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

  2. Для каждого эпизода тренировки сгенерируйте опыт эпизода путем следования политике актёра μ (S). Чтобы выбрать действие, актёр генерирует вероятности для каждого действия в пространстве действий, затем агент случайным образом выбирает действие на основе распределения вероятностей. Агент предпринимает действия, пока не достигает конечного состояния ST. Опыт эпизода состоит из последовательности

    S0,A0,R1,S1,,ST1,AT1,RT,ST

    Здесь St наблюдение состояния, At является действием, взятым из этого состояния, St+1 является следующим состоянием, и Rt+1 является вознаграждением, полученным за переход от St к St+1.

  3. Для каждого состояния в последовательности эпизодов, то есть для t = 1, 2,..., T -1, вычислите возвратную Gt, которая является дисконтированным будущим вознаграждением.

    Gt=k=tTγktRk

  4. Накопьте градиенты для сети актёра путем следования градиенту политики, чтобы максимизировать ожидаемое дисконтированное вознаграждение. Если на EntropyLossWeight опция больше нуля, затем накапливаются дополнительные градиенты, чтобы минимизировать функцию потерь энтропии.

    dθμ=t=1T1Gtθμlnμ(St|θμ)

  5. Обновляйте параметры актёра путем применения градиентов.

    θμ=θμ+αdθμ

    Вот, α - скорость обучения актёра. Задайте скорость обучения, когда вы создаете представление актера путем установки LearnRate опция в rlRepresentationOptions объект. Для простоты на этом шаге показано обновление градиента с использованием базового стохастического градиентного спуска. Фактический метод обновления градиента зависит от оптимизатора, который вы задаете используя rlRepresentationOptions.

  6. Повторяйте шаги с 2 по 5 для каждого эпизода тренировки до завершения обучения.

REINFORCE с базовым алгоритмом

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

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

  3. Для каждого эпизода тренировки сгенерируйте опыт эпизода путем следования политике актёра μ (S). Опыт эпизода состоит из последовательности

    S0,A0,R1,S1,,ST1,AT1,RT,ST

  4. Для t = 1, 2,..., T:

    • Рассчитать Gt возврата, который является дисконтированным будущим вознаграждением.

      Gt=k=tTγktRk

    • Вычислите функцию преимущества δt используя базовый уровень функции ценности оценку от критика.

      δt=GtV(St|θV)

  5. Накапливать градиенты для сети критика.

    dθV=t=1T1δtθVV(St|θV)

  6. Накапливать градиенты для сети актёра. Если на EntropyLossWeight опция больше нуля, затем накапливаются дополнительные градиенты, чтобы минимизировать функцию потерь энтропии.

    dθμ=t=1T1δtθμlnμ(St|θμ)

  7. Обновите параметры критика θV.

    θV=θV+βdθV

    Здесь β скорости обучения критика. Задайте скорость обучения, когда вы создадите представление критика путем установки LearnRate опция в rlRepresentationOptions объект.

  8. Обновляйте параметры актёра θμ.

    θμ=θμ+αdθμ

  9. Повторите шаги с 3 по 8 для каждого эпизода тренировки до завершения обучения.

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

Ссылки

[1] Williams, Ronald J. «Simple Statistical Gradient-Following Algorithms for Connectionist Reinforcement Learning». Машинное обучение 8, № 3-4 (май 1992): 229-56. https://doi.org/10.1007/BF00992696.

См. также

|

Похожие темы