Алгоритм градиента политики (PG) является онлайновым, методом обучения с подкреплением на политике без моделей. Агент PG является основанным на политике агентом обучения с подкреплением, который непосредственно вычисляет оптимальную политику, которая максимизирует долгосрочное вознаграждение.
Для получения дополнительной информации о различных типах агентов обучения с подкреплением смотрите Агентов Обучения с подкреплением.
Агенты PG могут быть обучены в средах со следующим наблюдением и пространствами действий.
Пространство наблюдений | Пространство действий |
---|---|
Дискретный или непрерывный | Дискретный или непрерывный |
Во время обучения, агента PG:
Оценочные вероятности принятия каждых мер в пространстве действий и случайным образом выбирают действия на основе вероятностного распределения.
Завершает полный эпизод тренировки с помощью текущей политики перед учением из опыта и обновлением параметров политики.
Агенты PG представляют политику с помощью аппроксимации функции агента μ (S). Агент берет наблюдение S и выводит вероятности принятия каждых мер в пространстве действий когда в S состояния.
Чтобы уменьшать отклонение во время оценки градиента, агенты PG могут использовать базовую функцию ценности, которая оценивается с помощью аппроксимации функции критика, V (S). Критик вычисляет функцию ценности для состояния заданного наблюдения.
Для получения дополнительной информации о создании агентов и критиков для приближения функций, смотрите, Создают Представления Функции ценности и политика.
Создать агента PG:
Создайте представление актера с помощью rlStochasticActorRepresentation
объект.
Если вы используете базовую функцию, создаете критика, использующего rlValueRepresentation
объект.
Задайте опции агента с помощью rlPGAgentOptions
объект.
Создайте агента с помощью rlPGAgent
объект.
Агенты PG используют REINFORCE (градиент политики Монте-Карло) алгоритм или с или без базовой линии. Чтобы сконфигурировать алгоритм настройки, задайте опции с помощью rlPGAgentOptions
.
Инициализируйте агента μ (S) со случайными значениями параметров θμ.
Для каждого эпизода тренировки сгенерируйте опыт эпизода следующей политикой агента μ (S). Чтобы выбрать действие, агент генерирует вероятности для каждого действия в пространстве действий, затем агент случайным образом выбирает действие на основе вероятностного распределения. Агент принимает меры, пока он не достигает конечного состояния, ST. Опыт эпизода состоит из последовательности:
Здесь, St является наблюдением состояния, At+1 является мерами, принятыми от того состояния, 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] Р. Дж. Уильямс, “Простые статистические следующие за градиентом алгоритмы для ассоциативного обучения с подкреплением", Машинное обучение, издание 8, выпуск 3-4, стр 229-256, 1992.