Можно использовать агента актёра-критика (AC), который использует онлайновый метод обучения с подкреплением на основе политики без моделей для реализации алгоритмов актёра-критика, таких как A2C и A3C. Цель этого агента состоит в том, чтобы оптимизировать политику (актёра) непосредственно и обучить критика оценивать текущее или будущее вознаграждения [1].
Для получения дополнительной информации о различных типах агентов обучения с подкреплением смотрите Reinforcement Learning Agents.
Агенты AC могут быть обучены в окружениях со следующими пространствами наблюдений и действий.
Пространство наблюдений | Пространство действий |
---|---|
Дискретный или непрерывный | Дискретный или непрерывный |
Агенты AC используют следующие представления актёра и критика.
Критик | Актер |
---|---|
Критик функции ценности V (S), которую вы создаете используя | Актёр Стохастической политики (S), который вы создаете используя |
Во время обучения агент AC:
Оценивает вероятности выполнения каждого действия в пространстве действий и случайным образом выбирает действия на основе распределения вероятностей.
Взаимодействует с окружением для нескольких шагов, используя текущую политику перед обновлением свойств актёра и критика.
Если на UseDeterministicExploitation
опция в rlACAgentOptions
установлено в true
действие с максимальной вероятностью всегда используется в sim
и generatePolicyFunction
. Это заставляет моделируемого агента и сгенерированную политику вести себя детерминированно.
Чтобы оценить политику и функцию ценности, агент AC поддерживает две функциональные аппроксимации:
Актёр μ (S) - Актёр принимает S наблюдения и возвращает вероятности выполнения каждого действия в пространстве действий при S состояния.
Критик V (S) - Критик принимает S наблюдений и возвращает соответствующее ожидание дисконтированного долгосрочного вознаграждения.
Когда обучение завершено, обученная оптимальная политика сохранена в μ актёра (S).
Для получения дополнительной информации о создании актёров и критиков для приближения функций, смотрите Создать политику и Представления функции ценности.
Можно создать агента AC с представлениями актёра и критика по умолчанию на основе наблюдений и спецификаций действия от окружения. Для этого выполните следующие шаги.
Создайте спецификации наблюдений для вашего окружения. Если у вас уже есть объект интерфейса окружения, можно получить эти спецификации, используя getObservationInfo
.
Создайте спецификации действия для вашего окружения. Если у вас уже есть объект интерфейса окружения, можно получить эти спецификации, используя getActionInfo
.
При необходимости укажите количество нейронов в каждом обучаемом слое или использовать ли слой LSTM. Для этого создайте объект опции инициализации агента с помощью rlAgentInitializationOptions
.
При необходимости задайте опции агента, используя rlACAgentOptions
объект.
Создайте агента с помощью rlACAgent
объект.
Кроме того, можно создать представления актёра и критика и использовать эти представления для создания агента. В этом случае убедитесь, что входная и выходная размерности представлений актёра и критика совпадают с соответствующими спецификациями действий и наблюдений окружения.
Создайте актёра, используя 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] Мних, Владимир, Адриа Пучдомех Бадия, Мехди Мирза, Алекс Грейвс, Тимоти П. Лилликрап, Тим Харли, Дэвид Сильвер, и Корай Кавуккуоглу. «Асинхронные методы глубокого обучения с подкреплением». ArXiv:1602.01783 [Cs], 4 февраля 2016 года. https://arxiv.org/abs/1602.01783.