Можно использовать агента критика агента (AC), который использует онлайновый, метод обучения с подкреплением на политике без моделей, чтобы реализовать алгоритмы критика агента, такие как A2C и A3C. Цель этого агента состоит в том, чтобы оптимизировать политику (агент) непосредственно и обучить критика оценивать возврат или будущие вознаграждения. [1]
Для получения дополнительной информации о различных типах агентов обучения с подкреплением смотрите Агентов Обучения с подкреплением.
Агенты AC могут быть обучены в средах со следующими пробелами наблюдения и действия.
Пространство наблюдений | Пробел действия |
---|---|
Непрерывный или дискретный | Дискретный |
Во время обучения, агента AC:
Оценочные вероятности принятия каждых мер на пробеле действия и случайным образом выбирают действия на основе вероятностного распределения.
Взаимодействует со средой для нескольких шагов с помощью текущей политики прежде, чем обновить свойства критика и агент.
Чтобы оценить политику и функцию значения, агент AC обеспечивает две функции approximators:
Агент μ (S) — Агент берет наблюдение S и выводит вероятности принятия каждых мер на пробеле действия когда в S состояния.
Критик V (S) — Критик берет наблюдение S и выводит соответствующее ожидание обесцененного долгосрочного вознаграждения.
Когда обучение завершено, обученная оптимальная политика хранится в агенте μ (S).
Для получения дополнительной информации о создании агентов и критиков для приближения функций, смотрите, Создают политику и Представления Функции Значения.
Создать агента AC:
Создайте объект представления агента.
Создайте объект представления критика.
Задайте опции агента с помощью 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.
rlACAgent
| rlACAgentOptions
| rlRepresentation