Двухдневные глубокие детерминированные агенты градиента политики

Сдвоенный алгоритм глубокого детерминированного градиента политики (TD3) является онлайновым методом обучения с подкреплением без моделей и без политики. Агент TD3 является агентом обучения с подкреплением актёра-критика, который ищет оптимальную политику, которая максимизирует ожидаемое совокупное долгосрочное вознаграждение.

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

Алгоритм TD3 является расширением алгоритма DDPG. Агенты DDPG могут переоценивать функции ценности, что может привести к неоптимальным политикам. Для уменьшения переоценки функции ценности включает следующие модификации алгоритма DDPG.

  1. Агент TD3 учит две функции Q-значений и использует минимальную оценку функции ценности во время обновления политики.

  2. Агент TD3 обновляет политику и цели реже, чем функции Q.

  3. При обновлении политики агент TD3 добавляет шум целевому действию, что снижает вероятность использования политики действиями с высокими оценками Q-значений.

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

  • TD3 - Обучите агента с двумя функциями Q-значений. Этот алгоритм реализует все три предыдущие модификации.

  • Задержка DDPG - Обучите агента с одной функцией Q-значения. Этот алгоритм обучает агента DDPG с целевым сглаживанием политики и отложенными обновлениями политики и цели.

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

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

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

КритикАктер

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

Субъект детерминированной политики, который вы создаете используя rlDeterministicActorRepresentation

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

  • Обновляет свойства актёра и критика в каждый временной шаг во время обучения.

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

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

Функции актёра и критика

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

  • Детерминированный актёр μ (S) - актёр принимает S наблюдения и возвращает соответствующее действие, которое максимизирует долгосрочное вознаграждение.

  • Целевой актёр μ' (S) - Чтобы улучшить стабильность оптимизации, агент периодически обновляет целевой актёр на основе последних значений параметров актёра.

  • Один или два критика Q-значения Qk (S, A) - критики берут наблюдение S и действие A как входы, и возвращает соответствующее ожидание долгосрочного вознаграждения.

  • Один или два Q'k целевых критиков (S, A) - для повышения устойчивости оптимизации агент периодически обновляет целевых критиков на основе последних значений параметров критиков. Количество целевых критиков совпадает с количеством критиков.

И μ (S), и μ' (S) имеют одинаковую структуру и параметризацию.

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

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

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

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

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

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

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

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

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

  4. При необходимости задайте опции агента, используя rlTD3AgentOptions объект.

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

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

  1. Создайте актёра, используя rlDeterministicActorRepresentation объект.

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

  3. Задайте опции агента, используя rlTD3AgentOptions объект.

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

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

Алгоритм настройки

TD3 агенты используют следующий алгоритм настройки, в котором они обновляют свои модели актёра и критика на каждом временном шаге. Чтобы сконфигурировать алгоритм настройки, задайте опции используя rlDDPGAgentOptions объект. Здесь K = 2 - количество критиков и k - индекс критика.

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

  • Инициализируйте μ актёра (S) со случайными значениями параметров θμ и инициализируйте целевой актёр с теми же значениями параметров :θμ'=θμ.

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

    1. Для текущей S наблюдения выберите действие A = μ (S) + N, где N является стохастическим шумом из модели шума. Чтобы сконфигурировать модель шума, используйте ExplorationModel опция.

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

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

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

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

      yi=Ri+γ*mink(Qk'(Si',clip(μ'(Si'|θμ)+ε)|θQk'))

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

      Чтобы вычислить совокупное вознаграждение, агент сначала вычисляет следующее действие путем передачи следующего S'i наблюдения из дискретизированного опыта целевому актеру. Затем агент добавляет ε шума к вычисляемому действию с помощью TargetPolicySmoothModel, и клипсирует действие на основе верхнего и нижнего пределов шума. Агент находит совокупные вознаграждения, передав следующее действие целевым критикам.

    6. На каждом шаге обучения обновляйте параметры каждого критика, минимизируя Lk потерь во всех выборочных опытах.

      Lk=1Mi=1M(yiQk(Si,Ai|θQk))2

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

      θμJ1Mi=1MGaiGμiGai=Amink(Qk(Si,A|θQ))гдеA=μ(Si|θμ)Gμi=θμμ(Si|θμ)

      Здесь Gai является градиентом минимального выхода критика относительно действия, вычисленного сетью актёра, и Gμi является градиентом выхода актёра относительно параметров актёра. Оба градиента оцениваются для Si наблюдений.

    8. Каждый D 2 шаги, обновляйте целевого актёра и критиков в зависимости от целевого метода обновления. Чтобы задать D 2, используйте TargetUpdateFrequency опция. Дополнительные сведения см. в разделе Методы целевого обновления.

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

Методы целевого обновления

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

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

    θQk'=τθQk+(1τ)θQk'(critic parameters)θμ'=τθμ+(1τ)θμ'(actor parameters)

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

    θQk'=θQkθμ'=θμ

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

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

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

Ссылки

[1] Фухимото, Скотт, Херке ван Хоф и Дэвид Мегер. «Устранение Приближения функций ошибки в методах актёра-критика». ArXiv:1802.09477 [Cs, Stat], 22 октября 2018 года. https://arxiv.org/abs/1802.09477.

См. также

|

Похожие темы