Можно использовать агента критика агента (AC), который использует онлайновый, метод обучения с подкреплением на политике без моделей, чтобы реализовать алгоритмы критика агента, такие как A2C и A3C. Цель этого агента состоит в том, чтобы оптимизировать политику (агент) непосредственно и обучить критика оценивать возврат или будущие вознаграждения. [1]
Для получения дополнительной информации о различных типах агентов обучения с подкреплением смотрите Агентов Обучения с подкреплением.
Агенты AC могут быть обучены в средах со следующим наблюдением и пространствами действий.
Пространство наблюдений | Пространство действий |
---|---|
Дискретный или непрерывный | Дискретный или непрерывный |
Во время обучения, агента AC:
Оценочные вероятности принятия каждых мер в пространстве действий и случайным образом выбирают действия на основе вероятностного распределения.
Взаимодействует со средой для нескольких шагов с помощью текущей политики прежде, чем обновить свойства критика и агент.
Чтобы оценить политику и функцию ценности, агент AC обеспечивает две функциональных аппроксимации:
Агент μ (S) — Агент берет наблюдение S и выводит вероятности принятия каждых мер в пространстве действий когда в S состояния.
Критик V (S) — Критик берет наблюдение S и выводит соответствующее ожидание обесцененного долгосрочного вознаграждения.
Когда обучение завершено, обученная оптимальная политика хранится в агенте μ (S).
Для получения дополнительной информации о создании агентов и критиков для приближения функций, смотрите, Создают Представления Функции ценности и политика.
Создать агента AC:
Создайте агента с помощью rlStochasticActorRepresentation
объект.
Создайте критика, использующего rlValueRepresentation
объект.
Задайте опции агента с помощью rlACAgentOptions
объект.
Создайте агента с помощью rlACAgent
объект.
Агенты AC используют следующий алгоритм настройки. Чтобы сконфигурировать алгоритм настройки, задайте опции с помощью rlACAgentOptions
объект.
Инициализируйте агента μ (S) со случайными значениями параметров θμ.
Инициализируйте критика V (S) со случайными значениями параметров θV.
Сгенерируйте события N следующим текущая политика. Последовательность опыта эпизода:
Здесь, St является наблюдением состояния, At является мерами, принятыми от того состояния, St+1 является следующим состоянием, и Rt+1 является вознаграждением, полученным для перемещения от St до St+1.
Когда в St состояния, агент вычисляет вероятность принятия каждых мер в пространстве действий с помощью μ (St) и случайным образом выбирает действие At на основе вероятностного распределения.
ts является шагом времени начала текущего набора событий N. В начале эпизода тренировки, ts = 1. Поскольку каждый последующий набор N испытывает в том же эпизоде тренировки, ts = ts + N.
Для каждого эпизода тренировки, который не содержит конечное состояние, N равен NumStepsToLookAhead
значение опции. В противном случае N меньше NumStepsToLookAhead
и SN является конечным состоянием.
Для каждого шага эпизода t = ts +1, ts +2, …, ts +N, вычисляет возврат Gt, который является суммой вознаграждения за тот шаг и обесцененного будущего вознаграждения. Если Sts+N не является конечным состоянием, обесцененное будущее вознаграждение включает обесцененную функцию ценности состояния, вычисленное использование сети V критика.
Здесь, b является 0
если Sts+N является конечным состоянием и 1
в противном случае.
Чтобы задать коэффициент дисконтирования γ, используйте DiscountFactor
опция.
Вычислите функцию преимущества Dt.
Накопите градиенты для сети агента следующим градиент политики, чтобы максимизировать ожидаемое обесцененное вознаграждение.
Накопите градиенты для сети критика путем минимизации потери среднеквадратичной погрешности между функцией ориентировочной стоимости V (t) и вычисленным целевым возвратом Gt через все события N. Если EntropyLossWeight
опция больше нуля, затем дополнительные градиенты накапливаются, чтобы минимизировать энтропийную функцию потерь.
Обновите параметры агента путем применения градиентов.
Здесь, α является скоростью обучения агента. Задайте скорость обучения, когда вы создадите представление актера путем установки LearnRate
опция в rlRepresentationOptions
объект.
Обновите параметры критика путем применения градиентов.
Здесь, β является скоростью обучения критика. Задайте скорость обучения при создании представления критика путем установки LearnRate
опция в rlRepresentationOptions
объект.
Повторите шаги 3 - 9 для каждого эпизода тренировки, пока обучение не будет завершено.
Для простоты агент и обновления критика в этом алгоритме показывают обновление градиента с помощью основного стохастического градиентного спуска. Фактический метод обновления градиента зависит от оптимизатора, заданного с помощью rlRepresentationOptions
.
[1] Mnih, V, и др. "Асинхронные методы для глубокого обучения с подкреплением", Международная конференция по вопросам Машинного обучения, 2016.