exponenta event banner

Актер-критик Агенты

Для реализации алгоритмов «актер-критик», таких как «A2C» и «A3C», можно использовать агент «актер-критик» (AC), который использует метод обучения без модели, онлайн, усиление политики. Цель этого агента - непосредственно оптимизировать политику (субъекта) и обучить критика оценивать отдачу или будущие вознаграждения [1].

Дополнительные сведения о различных типах агентов обучения усилению см. в разделе Агенты обучения усилению.

Агенты переменного тока могут обучаться в средах со следующими пространствами наблюдения и действий.

Пространство наблюденияПространство действий
Дискретный или непрерывныйДискретный или непрерывный

Агенты AC используют следующие представления актера и критика.

КритикАктер

Критик функции значения V (S), который создается с помощьюrlValueRepresentation

Stochastic policy actor δ (S), который создается с помощьюrlStochasticActorRepresentation

Во время обучения агент переменного тока:

  • Оценивает вероятности принятия каждого действия в пространстве действия и случайным образом выбирает действия на основе распределения вероятностей.

  • Взаимодействует со средой в течение нескольких шагов с использованием текущей политики перед обновлением свойств исполнителя и критика.

Если UseDeterministicExploitation опция в rlACAgentOptions имеет значение true действие с максимальной вероятностью всегда используется в sim и generatePolicyFunction. Это приводит к детерминированному поведению моделируемого агента и сгенерированной политики.

Функции актера и критика

Для оценки политики и функции значения агент переменного тока поддерживает два аппроксиматора функции:

  • Actor λ (S) - актер принимает наблюдение S и возвращает вероятности принятия каждого действия в пространстве действия, когда находится в состоянии S.

  • Критик V (S) - критик берёт наблюдение S и возвращает соответствующее ожидание дисконтированного долгосрочного вознаграждения.

После завершения обучения обученная оптимальная политика сохраняется в акторе (S).

Дополнительные сведения о создании актеров и критиков для аппроксимации функций см. в разделе Создание представлений политик и функций значений.

Создание агента

Можно создать агент переменного тока с представлениями актера и критика по умолчанию на основе спецификаций наблюдения и действий из среды. Для этого выполните следующие действия.

  1. Создайте спецификации наблюдения для среды. Если у вас уже есть объект интерфейса среды, вы можете получить эти спецификации с помощью getObservationInfo.

  2. Создание спецификаций действий для среды. Если у вас уже есть объект интерфейса среды, вы можете получить эти спецификации с помощью getActionInfo.

  3. При необходимости укажите количество нейронов в каждом обучаемом уровне или следует ли использовать уровень LSTM. Для этого создайте объект параметра инициализации агента с помощью rlAgentInitializationOptions.

  4. При необходимости укажите параметры агента с помощью rlACAgentOptions объект.

  5. Создание агента с помощью rlACAgent объект.

Кроме того, можно создавать представления актера и критика и использовать эти представления для создания агента. В этом случае убедитесь, что входные и выходные размеры представлений актера и критика соответствуют соответствующим спецификациям действия и наблюдения среды.

  1. Создание актера с помощью rlStochasticActorRepresentation объект.

  2. Создание критика с помощью rlValueRepresentation объект.

  3. Укажите параметры агента с помощью rlACAgentOptions объект.

  4. Создание агента с помощью rlACAgent объект.

Дополнительные сведения о создании актеров и критиков для аппроксимации функций см. в разделе Создание представлений политик и функций значений.

Алгоритм обучения

Агенты переменного тока используют следующий алгоритм обучения. Чтобы настроить алгоритм обучения, укажите параметры с помощью rlACAgentOptions объект.

  1. Инициализируйте актера λ (S) со случайными значениями параметров

  2. Инициализируйте критик V (S) случайными величинами параметра, ((V)).

  3. Генерировать N опыт, следуя текущей политике. Последовательность опыта эпизода

    Sts, Ats, Rts + 1, Sts + 1,..., Sts + N 1, Ats + 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 является состоянием терминала.

  4. Для каждого шага эпизода t = ts + 1, ts + 2,..., ts + N вычислите возвращаемый Gt, который является суммой вознаграждения за этот шаг и дисконтированного будущего вознаграждения. Если Sts + N не является терминальным состоянием, дисконтированное будущее вознаграждение включает в себя функцию значения дисконтированного состояния, вычисленную с использованием критической сети V.

    Gt=∑k=tts+N (γ k tRk) + bγ N t + 1V (Sts + N 'startV)

    Здесь, b является 0 если Sts + N является состоянием терминала и1 в противном случае.

    Чтобы указать коэффициент дисконтирования γ, используйте DiscountFactor вариант.

  5. Вычислите функцию преимущества Dt.

    Dt = Gt V (St 'startV)

  6. Накапливайте градиенты для сети акторов, следуя градиенту политики, чтобы максимизировать ожидаемое вознаграждение со скидкой.

    dθμ=∑t=1N∇θμlnμ (St 'startü) ∗Dt

  7. Накапливайте градиенты для критической сети, минимизируя среднеквадратичную потерю ошибок между функцией оцененного значения V (t) и вычисленным целевым возвращением Gt по всем N переживаниям. Если EntropyLossWeight больше нуля, затем накапливаются дополнительные градиенты для минимизации функции потерь энтропии.

    dθV=∑t=1N∇θV (Gt V (St 'startV)) 2

  8. Обновите параметры актера, применив градиенты.

    θμ=θμ+αdθμ

    Здесь α - скорость обучения актёра. Укажите скорость обучения при создании представления актера, задав значение LearnRate опции в rlRepresentationOptions объект.

  9. Обновите критические параметры, применив градиенты.

    startV = startV + βdü V

    Здесь β - скорость обучения критика. Укажите скорость обучения при создании критического представления, установив LearnRate опции в rlRepresentationOptions объект.

  10. Повторяйте шаги 3-9 для каждого учебного эпизода до завершения обучения.

Для простоты, актёр и критик обновления в этом алгоритме показывают обновление градиента с использованием базового стохастического градиентного спуска. Фактический метод обновления градиента зависит от оптимизатора, указанного с помощью rlRepresentationOptions.

Ссылки

[1] Мних, Владимир, Адриа Пучдомех Бадиа, Мехди Мирза, Алекс Грейвз, Тимоти П. Лилликрап, Тим Харли, Дэвид Сильвер и Корей Кавуккуоглу. «Асинхронные методы обучения глубокому усилению». ArXiv:1602.01783 [Cs], 4 февраля 2016 г. https://arxiv.org/abs/1602.01783.

См. также

|

Связанные темы