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

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

Для получения дополнительной информации о различных типах агентов обучения с подкреплением смотрите Reinforcement Learning Agents.

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

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

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

КритикАктер

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

Актёр Стохастической политики (S), который вы создаете используя rlStochasticActorRepresentation

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

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

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

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

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

Чтобы оценить политику и функцию ценности, агент AC поддерживает две функциональные аппроксимации:

  • Актёр μ (S) - Актёр принимает S наблюдения и возвращает вероятности выполнения каждого действия в пространстве действий при S состояния.

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

Когда обучение завершено, обученная оптимальная политика сохранена в μ актёра (S).

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

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

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

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

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

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

  4. При необходимости задайте опции агента, используя rlACAgentOptions объект.

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

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

  1. Создайте актёра, используя rlStochasticActorRepresentation объект.

  2. Создайте критика, используя rlValueRepresentation объект.

  3. Задайте опции агента, используя rlACAgentOptions объект.

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

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

Алгоритм настройки

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

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

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

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

    Sts,Ats,Rts+1,Sts+1,,Sts+N1,Ats+N1,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(γktRk)+bγNt+1V(Sts+N|θV)

    Вот, b 0 если Sts+N является конечным состоянием и 1 в противном случае.

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

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

    Dt=GtV(St|θV)

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

    dθμ=t=1Nθμlnμ(St|θμ)Dt

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

    dθV=t=1NθV(GtV(St|θV))2

  8. Обновляйте параметры актёра путем применения градиентов.

    θμ=θμ+αdθμ

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

  9. Обновите параметры критика путем применения градиентов.

    θV=θV+βdθV

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

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

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

Ссылки

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

См. также

|

Похожие темы