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