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

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

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

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

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

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

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

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

Агент и функции критика

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

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

|

Похожие темы