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

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

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

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

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

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

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

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

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

Чтобы оценить политику и функцию значения, агент AC обеспечивает две функции approximators:

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

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

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

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

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

Создать агента AC:

  1. Создайте объект представления агента.

  2. Создайте объект представления критика.

  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, V, и др. "Асинхронные методы для глубокого обучения с подкреплением", Международная конференция по вопросам Машинного обучения, 2016.

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

| |

Похожие темы