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

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

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

Агенты 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. В случае необходимости задайте количество нейронов в каждом learnable слое или использовать ли слой 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) со случайными значениями параметров ϕ.

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

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

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

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

      Gt=k=tTγktRk

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

      δt=GtV(St|ϕ)

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

    dϕ=t=1T1δtϕV(St|ϕ)

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

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

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

    ϕ=ϕ+βdϕ

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

  8. Обновите параметры агента θ.

    θ=θ+αdθ

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

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

Ссылки

[1] Уильямс, Рональд Дж. “Простые Статистические Следующие за градиентом Алгоритмы для Ассоциативного Обучения с подкреплением”. Машинное обучение 8, № 3-4 (май 1992): 229–56. https://doi.org/10.1007/BF00992696.

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

|

Похожие темы