Задержанный близнецами глубоко детерминированные агенты градиента политики

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

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

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

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

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

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

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

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

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

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

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

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

КритикАгент

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

Детерминированный агент политики π (S), который вы создаете использование 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. В случае необходимости задайте количество нейронов в каждом learnable слое или использовать ли слой 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θμ'=θμ

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

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

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

Ссылки

[1] Фудзимото, Скотт, Херк ван Хуф и Дэвид Меджер. "Исправляя Ошибку Приближения функций в Методах Критика Агента". ArXiv:1802.09477 [Cs, Статистика], 22 октября 2018. https://arxiv.org/abs/1802.09477.

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

|

Похожие темы