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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  4. Создайте агент с помощью функции rlACAgent.

Для получения дополнительной информации смотрите rlACAgent и rlACAgentOptions.

Учебный алгоритм

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

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

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

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

    S0,A0,R1,S1,,SN1,AN1,RN,SN

    Здесь, St является наблюдением состояния, At является мерами, принятыми от того состояния, St+1 является следующим состоянием, и Rt+1 является вознаграждением, полученным для перемещения от St до St+1.

    Когда в St состояния, агент вычисляет вероятность принятия каждых мер на пробеле действия с помощью μ (St) и случайным образом выбирает действие At на основе распределения вероятностей.

    Для каждого учебного эпизода, который не содержит терминальное состояние, N равен значению опции NumStepsToLookAhead. В противном случае N является меньше, чем NumStepsToLookAhead и SN являются терминальным состоянием.

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

    Gt=k=tN(γktRk)+bγNt+1V(SN|θV)

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

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

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

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

    Здесь, GtV(St) функция преимущества.

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

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

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

    θμ=θμ+αdθμ

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

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

    θV=θV+βdθV

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

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

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

Ссылки

[1] Mnih, V, и др. "Асинхронные методы для глубокого изучения укрепления", Международная конференция по вопросам Машинного обучения, 2016.

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

| |

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте