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

Алгоритм градиента политики (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,…,ST−1,AT−1,RT,ST

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

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

    Gt=∑k=tTγk−tRk

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

    dθ=∑t=1T−1Gt∇θlnπ(St|θ)

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

    θ=θ+αdθ

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

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

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

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

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

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

    S0,A0,R1,S1,…,ST−1,AT−1,RT,ST

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

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

      Gt=∑k=tTγk−tRk

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

      δt=Gt−V(St|ϕ)

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

    dϕ=∑t=1T−1δt∇ϕV(St|ϕ)

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

    dθ=∑t=1T−1δ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.

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

|

Похожие темы