Мягкие агенты критика агента

Алгоритм мягкого критика агента (SAC) является онлайновым, методом обучения с подкреплением критика агента вне политики без моделей. Алгоритм SAC вычисляет оптимальную политику, которая максимизирует и долгосрочное ожидаемое вознаграждение и энтропию политики. Энтропия политики является мерой неопределенности политики, учитывая состояние. Более высокое энтропийное значение способствует большему количеству исследования. Максимизация и ожидаемое совокупное долгосрочное вознаграждение и энтропийные балансы и эксплуатация и исследование среды.

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

Реализация агента SAC в пакете Reinforcement Learning Toolbox™ использует двух критиков Q-функции-ценности, который предотвращает переоценку функции ценности. Другие реализации алгоритма SAC используют дополнительного критика функции ценности.

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

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

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

КритикАгент

Q критика Q-функции-ценности (S, A), который вы создаете использование rlQValueRepresentation

Стохастический π агента политики (S), который вы создаете использование rlStochasticActorRepresentation

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

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

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

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

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

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

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

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

  • Стохастический агент π (S |θ) — агент, параметрами θ, берет наблюдение S и возвращает функцию плотности вероятности действия. Агент случайным образом выбирает действия на основе этой функции плотности.

  • Один или два критика Q-значения Qk (S, A |ϕk) — критики, каждый параметрами ϕk, берут наблюдение S и действие A как входные параметры и возвращают соответствующее ожидание функции ценности, которая включает и долгосрочное вознаграждение и энтропию.

  • Один или два целевых критика Qtk (S, A |ϕtk) — Чтобы улучшить устойчивость оптимизации, агент периодически устанавливает целевые параметры критика ϕtk на последние соответствующие значения параметров критика. Количество целевых критиков совпадает с количеством критиков.

Когда вы используете двух критиков, Q 1 (S, A) и Q 2 (S, A), у каждого критика может быть отличная структура. Когда у критиков есть та же структура, у них должны быть различные начальные значения параметров.

Для каждого критика Qk (S, A) и Qtk (S, A) имеет ту же структуру и параметризацию.

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

Генерация действия

Агент в агенте SAC генерирует среднее и стандартное отклонение выходные параметры. Чтобы выбрать действие, агент сначала случайным образом выбирает неограниченное действие из Распределения Гаусса этими параметрами. Во время обучения агент SAC использует неограниченное вероятностное распределение, чтобы вычислить энтропию политики для заданного наблюдения.

Если пространство действий агента SAC ограничено, агент генерирует ограниченные действия путем применения tanh и операции масштабирования к неограниченному действию.

Generation of a bounded action from an unbounded action randomly selected from a Gaussian distribution

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

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

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

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

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

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

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

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

  1. Создайте стохастического агента с помощью rlStochasticActorRepresentation объект. Для агентов SAC сеть агента не должна содержать tanhLayer и scalingLayer в среднем выходе path.

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

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

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

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

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

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

Агенты SAC используют следующий алгоритм настройки, в котором они периодически обновляют своего агента и модели критика и энтропийный вес. Чтобы сконфигурировать алгоритм настройки, задайте опции с помощью rlSACAgentOptions объект. Здесь, K = 2 является количеством критиков, и k является индексом критика.

  • Инициализируйте каждого критика Qk (S, A) со случайными значениями параметров ϕk, и инициализируйте каждого целевого критика теми же случайными значениями параметров: ϕtk=ϕk.

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

  • Выполните горячий запуск путем взятия последовательности действий после начальной случайной политики в π (S). Для каждого действия сохраните опыт в буфере опыта. Чтобы задать количество нагревают действия, используют NumWarmStartSteps опция.

  • Для каждого учебного временного шага:

    1. Для текущего наблюдения S выберите действие A с помощью политики в π (S).

    2. Выполните действие A. Наблюдайте вознаграждение R и следующее наблюдение S'.

    3. Сохраните опыт (S, A, R, S') в буфере опыта.

    4. Произведите случайный мини-пакет событий M (Si, Ai, Ri, S'i) от буфера опыта. Чтобы задать M, используйте MiniBatchSize опция.

    5. Каждый DC временные шаги, обновите параметры каждого критика путем минимизации потери Lk через все произведенные события. Чтобы задать DC, используйте CriticUpdateFrequency опция.

      Lk=1Mi=1M(yiQk(Si,Ai|ϕk))2

      Если S'i является конечным состоянием, цель функции ценности, yi равен опыту, вознаграждает Ri. В противном случае цель функции ценности является суммой Ri, минимальным обесцененным будущим вознаграждением от критиков и взвешенной энтропией.

      yi=Ri+γ*mink(Qtk(Si',Ai'|ϕtk))αlnπ(Si'|θ)

      Здесь:

      • A'i является ограниченным действием, выведенным из неограниченного выхода агента π (S'i).

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

      • αlnπ(S|θ) взвешенная энтропия политики для ограниченного выхода агента когда в S состояния. α является энтропийным весом потерь, который вы задаете использование EntropyLossWeight опция.

    6. Каждый DA временные шаги, обновите параметры агента путем минимизации следующей целевой функции. Чтобы установить DA, используйте PolicyUpdateFrequency опция.

      Jπ=1Mi=1M(mink(Qtk(Si,Ai|ϕtk))+αlnπ(Si|θ))

    7. Каждый DA временные шаги, также обновите энтропийный вес путем минимизации следующей функции потерь.

      Lα=1Mi=1M(αlnπ(Si|θ)α)

      Здесь, является целевой энтропией, которая вы задаете использование EntropyWeightOptions.TargetEntropy опция.

    8. Каждый DT шаги, обновите целевых критиков в зависимости от целевого метода обновления. Чтобы задать DT, используйте TargetUpdateFrequency опция. Для получения дополнительной информации см. Целевые Методы Обновления.

    9. Повторите шаги 4 - 8 времена NG, где NG является количеством шагов градиента, которые вы задаете использование NumGradientStepsPerUpdate опция.

Целевые методы обновления

Агенты SAC обновляют свои целевые параметры критика с помощью одного из следующих целевых методов обновления.

  • Сглаживание — Обновление целевые параметры критика на каждом временном шаге с помощью коэффициента сглаживания τ. Чтобы задать коэффициент сглаживания, используйте TargetSmoothFactor опция.

    ϕtk=τϕk+(1τ)ϕtk

  • Периодический — Обновление целевые параметры критика периодически, не сглаживая (TargetSmoothFactor = 1). Чтобы задать период обновления, используйте TargetUpdateFrequency параметр.

    ϕtk=ϕk

  • Периодическое сглаживание — Обновление целевые параметры периодически со сглаживанием.

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

Метод UpdateTargetUpdateFrequencyTargetSmoothFactor
Сглаживание (значения по умолчанию)1Меньше чем 1
ПериодическийБольше, чем 11
Периодическое сглаживаниеБольше, чем 1Меньше чем 1

Ссылки

[1] Haarnoja, Tuomas, Аужицк Чжоу, Кристиан Хартикайнен, Джордж Такер, Sehoon Ха, Цзе Тань, Викэш Кумар, и др. "Мягкие Алгоритмы Критика Агента и Приложение". Предварительно распечатайте, представленный 29 января 2019. https://arxiv.org/abs/1812.05905.

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

|

Похожие темы