Алгоритм градиента политики (PG) является онлайновым методом обучения с подкреплением без моделей и без политики. Агент PG является агентом обучения с подкреплением на основе политики, который использует алгоритм REINFORCE для поиска оптимальной политики, которая максимизирует ожидаемое совокупное долгосрочное вознаграждение.
Для получения дополнительной информации о различных типах агентов обучения с подкреплением смотрите Reinforcement Learning Agents.
Агенты PG могут быть обучены в окружениях со следующими пространствами наблюдений и действий.
Пространство наблюдений | Пространство действий |
---|---|
Дискретный или непрерывный | Дискретный или непрерывный |
Агенты PG используют следующие представления актёра и критика.
Критик (если используется базовая линия) | Актер |
---|---|
Критик функции ценности V (S), которую вы создаете используя | Актёр Стохастической политики (S), который вы создаете используя |
Во время обучения агент PG:
Оценивает вероятности выполнения каждого действия в пространстве действий и случайным образом выбирает действия на основе распределения вероятностей.
Завершает полный эпизод тренировки, используя текущую политику, прежде чем учиться на опыте и обновлять параметры политики.
Если на UseDeterministicExploitation
опция в rlPGAgentOptions
установлено в true
действие с максимальной вероятностью всегда используется в sim
и generatePolicyFunction
. Это заставляет моделируемого агента и сгенерированную политику вести себя детерминированно.
Агенты PG представляют политику, используя функциональную аппроксимацию актёра μ (S). Актёр принимает S наблюдения и возвращает вероятности выполнения каждого действия в пространстве действий при S состояния.
Чтобы уменьшить отклонение во время оценки градиента, агенты PG могут использовать базовую функцию ценности, которая оценивается с помощью функциональной аппроксимации критика V (S). Критик вычисляет функцию ценности для заданного состояния наблюдения.
Для получения дополнительной информации о создании актёров и критиков для приближения функций, смотрите Создать политику и Представления функции ценности.
Можно создать агента PG с представлениями актёра и критика по умолчанию на основе наблюдений и спецификаций действия от окружения. Для этого выполните следующие шаги.
Создайте спецификации наблюдений для вашего окружения. Если у вас уже есть объект интерфейса окружения, можно получить эти спецификации, используя getObservationInfo
.
Создайте спецификации действия для вашего окружения. Если у вас уже есть объект интерфейса окружения, можно получить эти спецификации, используя getActionInfo
.
При необходимости укажите количество нейронов в каждом обучаемом слое или использовать ли слой LSTM. Для этого создайте объект опции инициализации агента с помощью rlAgentInitializationOptions
.
При необходимости задайте опции агента, используя rlPGAgentOptions
объект.
Создайте агента с помощью rlPGAgent
объект.
Кроме того, можно создать представления актёра и критика и использовать эти представления для создания агента. В этом случае убедитесь, что входная и выходная размерности представлений актёра и критика совпадают с соответствующими спецификациями действий и наблюдений окружения.
Создайте представление актера с помощью rlStochasticActorRepresentation
объект.
Если вы используете функцию базовой линии, создайте критика, используя rlValueRepresentation
объект.
Задайте опции агента, используя rlPGAgentOptions
объект.
Создайте агента с помощью rlPGAgent
объект.
Для получения дополнительной информации о создании актёров и критиков для приближения функций, смотрите Создать политику и Представления функции ценности.
Агенты PG используют алгоритм REINFORCE (градиент политики Монте-Карло) либо с базовой линией, либо без нее. Чтобы сконфигурировать алгоритм настройки, задайте опции используя rlPGAgentOptions
объект.
Инициализируйте μ актёра (S) со случайными значениями параметров θμ.
Для каждого эпизода тренировки сгенерируйте опыт эпизода путем следования политике актёра μ (S). Чтобы выбрать действие, актёр генерирует вероятности для каждого действия в пространстве действий, затем агент случайным образом выбирает действие на основе распределения вероятностей. Агент предпринимает действия, пока не достигает конечного состояния ST. Опыт эпизода состоит из последовательности
Здесь St наблюдение состояния, At является действием, взятым из этого состояния, St+1 является следующим состоянием, и Rt+1 является вознаграждением, полученным за переход от St к St+1.
Для каждого состояния в последовательности эпизодов, то есть для t = 1, 2,..., T -1, вычислите возвратную Gt, которая является дисконтированным будущим вознаграждением.
Накопьте градиенты для сети актёра путем следования градиенту политики, чтобы максимизировать ожидаемое дисконтированное вознаграждение. Если на EntropyLossWeight
опция больше нуля, затем накапливаются дополнительные градиенты, чтобы минимизировать функцию потерь энтропии.
Обновляйте параметры актёра путем применения градиентов.
Вот, α - скорость обучения актёра. Задайте скорость обучения, когда вы создаете представление актера путем установки LearnRate
опция в rlRepresentationOptions
объект. Для простоты на этом шаге показано обновление градиента с использованием базового стохастического градиентного спуска. Фактический метод обновления градиента зависит от оптимизатора, который вы задаете используя rlRepresentationOptions
.
Повторяйте шаги с 2 по 5 для каждого эпизода тренировки до завершения обучения.
Инициализируйте μ актёра (S) со случайными значениями параметров θμ.
Инициализируйте V критика (S) со случайными значениями параметров θQ.
Для каждого эпизода тренировки сгенерируйте опыт эпизода путем следования политике актёра μ (S). Опыт эпизода состоит из последовательности
Для t = 1, 2,..., T:
Рассчитать Gt возврата, который является дисконтированным будущим вознаграждением.
Вычислите функцию преимущества δt используя базовый уровень функции ценности оценку от критика.
Накапливать градиенты для сети критика.
Накапливать градиенты для сети актёра. Если на EntropyLossWeight
опция больше нуля, затем накапливаются дополнительные градиенты, чтобы минимизировать функцию потерь энтропии.
Обновите параметры критика θV.
Здесь β скорости обучения критика. Задайте скорость обучения, когда вы создадите представление критика путем установки LearnRate
опция в rlRepresentationOptions
объект.
Обновляйте параметры актёра θμ.
Повторите шаги с 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.