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

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

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

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

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

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

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

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

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

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

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

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

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

Создать агента PG:

  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+1 является мерами, принятыми от того состояния, 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] Р. Дж. Уильямс, “Простые статистические следующие за градиентом алгоритмы для ассоциативного обучения с подкреплением", Машинное обучение, издание 8, выпуск 3-4, стр 229-256, 1992.

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

|

Похожие темы