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

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

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

Агенты 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. В случае необходимости задайте количество нейронов в каждом learnable слое или использовать ли слой LSTM. Для этого создайте объект опции инициализации агента использование rlAgentInitializationOptions.

  4. В случае необходимости задайте опции агента с помощью rlACAgentOptions объект.

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

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

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

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

  3. Задайте опции агента с помощью rlACAgentOptions объект.

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

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

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

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

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

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

  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|ϕ)

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

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

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

    Dt=GtV(St|ϕ)

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

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

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

    dϕ=t=1Nϕ(GtV(St|ϕ))2

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

    θ=θ+αdθ

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

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

    ϕ=ϕ+βdϕ

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

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

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

Ссылки

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

Смотрите также

|

Похожие темы