Для реализации алгоритмов «актер-критик», таких как «A2C» и «A3C», можно использовать агент «актер-критик» (AC), который использует метод обучения без модели, онлайн, усиление политики. Цель этого агента - непосредственно оптимизировать политику (субъекта) и обучить критика оценивать отдачу или будущие вознаграждения [1].
Дополнительные сведения о различных типах агентов обучения усилению см. в разделе Агенты обучения усилению.
Агенты переменного тока могут обучаться в средах со следующими пространствами наблюдения и действий.
| Пространство наблюдения | Пространство действий |
|---|---|
| Дискретный или непрерывный | Дискретный или непрерывный |
Агенты AC используют следующие представления актера и критика.
| Критик | Актер |
|---|---|
Критик функции значения V (S), который создается с помощью | Stochastic policy actor δ (S), который создается с помощью |
Во время обучения агент переменного тока:
Оценивает вероятности принятия каждого действия в пространстве действия и случайным образом выбирает действия на основе распределения вероятностей.
Взаимодействует со средой в течение нескольких шагов с использованием текущей политики перед обновлением свойств исполнителя и критика.
Если UseDeterministicExploitation опция в rlACAgentOptions имеет значение true действие с максимальной вероятностью всегда используется в sim и generatePolicyFunction. Это приводит к детерминированному поведению моделируемого агента и сгенерированной политики.
Для оценки политики и функции значения агент переменного тока поддерживает два аппроксиматора функции:
Actor λ (S) - актер принимает наблюдение S и возвращает вероятности принятия каждого действия в пространстве действия, когда находится в состоянии S.
Критик V (S) - критик берёт наблюдение S и возвращает соответствующее ожидание дисконтированного долгосрочного вознаграждения.
После завершения обучения обученная оптимальная политика сохраняется в акторе (S).
Дополнительные сведения о создании актеров и критиков для аппроксимации функций см. в разделе Создание представлений политик и функций значений.
Можно создать агент переменного тока с представлениями актера и критика по умолчанию на основе спецификаций наблюдения и действий из среды. Для этого выполните следующие действия.
Создайте спецификации наблюдения для среды. Если у вас уже есть объект интерфейса среды, вы можете получить эти спецификации с помощью getObservationInfo.
Создание спецификаций действий для среды. Если у вас уже есть объект интерфейса среды, вы можете получить эти спецификации с помощью getActionInfo.
При необходимости укажите количество нейронов в каждом обучаемом уровне или следует ли использовать уровень LSTM. Для этого создайте объект параметра инициализации агента с помощью rlAgentInitializationOptions.
При необходимости укажите параметры агента с помощью rlACAgentOptions объект.
Создание агента с помощью rlACAgent объект.
Кроме того, можно создавать представления актера и критика и использовать эти представления для создания агента. В этом случае убедитесь, что входные и выходные размеры представлений актера и критика соответствуют соответствующим спецификациям действия и наблюдения среды.
Создание актера с помощью rlStochasticActorRepresentation объект.
Создание критика с помощью rlValueRepresentation объект.
Укажите параметры агента с помощью rlACAgentOptions объект.
Создание агента с помощью rlACAgent объект.
Дополнительные сведения о создании актеров и критиков для аппроксимации функций см. в разделе Создание представлений политик и функций значений.
Агенты переменного тока используют следующий алгоритм обучения. Чтобы настроить алгоритм обучения, укажите параметры с помощью rlACAgentOptions объект.
Инициализируйте актера λ (S) со случайными значениями параметров
Инициализируйте критик V (S) случайными величинами параметра, ((V)).
Генерировать N опыт, следуя текущей политике. Последовательность опыта эпизода
+ N − 1, Rts + N, Sts + 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.
(Sts + N 'startV)
Здесь, b является 0 если Sts + N является состоянием терминала и1 в противном случае.
Чтобы указать коэффициент дисконтирования γ, используйте DiscountFactor вариант.
Вычислите функцию преимущества Dt.
St 'startV)
Накапливайте градиенты для сети акторов, следуя градиенту политики, чтобы максимизировать ожидаемое вознаграждение со скидкой.
∗Dt
Накапливайте градиенты для критической сети, минимизируя среднеквадратичную потерю ошибок между функцией оцененного значения V (t) и вычисленным целевым возвращением Gt по всем N переживаниям. Если EntropyLossWeight больше нуля, затем накапливаются дополнительные градиенты для минимизации функции потерь энтропии.
St 'startV)) 2
Обновите параметры актера, применив градиенты.
Здесь α - скорость обучения актёра. Укажите скорость обучения при создании представления актера, задав значение LearnRate опции в rlRepresentationOptions объект.
Обновите критические параметры, применив градиенты.
βdü V
Здесь β - скорость обучения критика. Укажите скорость обучения при создании критического представления, установив LearnRate опции в rlRepresentationOptions объект.
Повторяйте шаги 3-9 для каждого учебного эпизода до завершения обучения.
Для простоты, актёр и критик обновления в этом алгоритме показывают обновление градиента с использованием базового стохастического градиентного спуска. Фактический метод обновления градиента зависит от оптимизатора, указанного с помощью rlRepresentationOptions.
[1] Мних, Владимир, Адриа Пучдомех Бадиа, Мехди Мирза, Алекс Грейвз, Тимоти П. Лилликрап, Тим Харли, Дэвид Сильвер и Корей Кавуккуоглу. «Асинхронные методы обучения глубокому усилению». ArXiv:1602.01783 [Cs], 4 февраля 2016 г. https://arxiv.org/abs/1602.01783.