Задержанным близнецами глубоко детерминированный градиент политики (TD3) алгоритм является онлайновый, метод обучения с подкреплением вне политики без моделей. Агент TD3 является агентом обучения с подкреплением критика агента, который вычисляет оптимальную политику, которая максимизирует долгосрочное вознаграждение.
Для получения дополнительной информации о различных типах агентов обучения с подкреплением смотрите Агентов Обучения с подкреплением.
Алгоритм TD3 является расширением алгоритма DDPG. Агенты DDPG могут переоценить функции ценности, которые могут произвести субоптимальные политики. Уменьшать переоценку функции ценности включает следующие модификации алгоритма DDPG.
Агент TD3 изучает две Q-функции-ценности и использует оценку функции минимального значения во время обновлений политики.
Агент TD3 обновляет политику и предназначается менее часто, чем функции Q.
При обновлении политики агент TD3 добавляет шум в целевое действие, которое вырабатывает политику менее вероятно, чтобы использовать действия с высокими оценками Q-значения.
Можно использовать агента TD3, чтобы реализовать один из следующих алгоритмов настройки, в зависимости от количества критиков, которых вы задаете.
TD3 — Обучите агента с двумя Q-функциями-ценности. Этот алгоритм реализует все три из предыдущих модификаций.
Задержанные DDPG — Обучают агента с одной Q-функцией-ценности. Этот алгоритм обучает агента DDPG с целевым сглаживанием политики и задержанной политикой и целевыми обновлениями.
Агенты TD3 могут быть обучены в средах со следующим наблюдением и пространствами действий.
Пространство наблюдений | Пространство действий |
---|---|
Непрерывный или дискретный | Непрерывный |
Во время обучения, агента 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 с представлениями актёра и критика по умолчанию на основе спецификаций наблюдений и спецификаций действия от среды. Для этого выполните следующие шаги.
Создайте спецификации наблюдений для своей среды. Если у вас уже есть объект интерфейса среды, можно получить эти технические требования использование getObservationInfo
.
Технические требования действия по созданию для вашей среды. Если у вас уже есть объект интерфейса среды, можно получить эти технические требования использование getActionInfo
.
В случае необходимости задайте количество нейронов в каждом learnable слое или использовать ли слой LSTM. Для этого создайте объект опции инициализации агента использование rlAgentInitializationOptions
.
В случае необходимости задайте опции агента с помощью rlTD3AgentOptions
объект.
Создайте агента с помощью rlTD3Agent
объект.
В качестве альтернативы можно создать представления актёра и критика и использовать эти представления, чтобы создать агента. В этом случае гарантируйте, что размерности ввода и вывода представлений актёра и критика совпадают с соответствующим действием и спецификациями наблюдений среды.
Создайте агента с помощью rlDeterministicActorRepresentation
объект.
Создайте одного или двух критиков, использующих rlQValueRepresentation
объекты.
Задайте опции агента с помощью rlTD3AgentOptions
объект.
Создайте агента с помощью rlTD3Agent
объект.
Для получения дополнительной информации о создании агентов и критиков для приближения функций, смотрите, Создают Представления Функции ценности и политика.
Агенты TD3 используют следующий алгоритм настройки, в котором они обновляют своего агента и модели критика на каждом временном шаге. Чтобы сконфигурировать алгоритм настройки, задайте опции с помощью rlDDPGAgentOptions
объект. Здесь, K = 2 является количеством критиков, и k является индексом критика.
Инициализируйте каждого критика Qk (S, A) со случайными значениями параметров θQk, и инициализируйте каждого целевого критика теми же случайными значениями параметров: .
Инициализируйте агента μ (S) со случайными значениями параметров θμ и инициализируйте целевого агента теми же значениями параметров: .
Для каждого учебного временного шага:
Для текущего наблюдения S выберите действие A = μ (S) + N, где N является стохастическим шумом из шумовой модели. Чтобы сконфигурировать шумовую модель, используйте ExplorationModel
опция.
Выполните действие A. Наблюдайте вознаграждение R и следующее наблюдение S'.
Сохраните опыт (S, A, R, S') в буфере опыта.
Произведите случайный мини-пакет событий M (Si, Ai, Ri, S'i) от буфера опыта. Чтобы задать M, используйте MiniBatchSize
опция.
Если S'i является конечным состоянием, поставьте цель функции ценности yi к Ri. В противном случае установите его на
Цель функции ценности является суммой вознаграждения опыта Ri и минимальное обесцененное будущее вознаграждение от критиков. Чтобы задать коэффициент дисконтирования γ, используйте DiscountFactor
опция.
Чтобы вычислить совокупное вознаграждение, агент сначала вычисляет следующее действие путем передачи следующего наблюдения S'i с произведенного опыта на целевого агента. Затем агент добавляет шумовой ε в вычисленное действие с помощью TargetPolicySmoothModel
, и отсекает действие на основе верхних и более низких допустимых уровней шума. Агент находит совокупные вознаграждения путем передачи следующего действия целевым критикам.
В каждый раз учебный шаг обновите параметры каждого критика путем минимизации потери Lk через все произведенные события.
Каждый D 1 шаг, обновите параметры агента с помощью следующего произведенного градиента политики, чтобы максимизировать ожидаемое обесцененное вознаграждение. Чтобы установить D 1, используйте PolicyUpdateFrequency
опция.
Здесь, Gai является градиентом минимального критика выход относительно действия, вычисленного сетью агента, и Gμi является градиентом агента выход относительно параметров агента. Оба градиента оценены для наблюдения Si.
Каждый D 2 шага, обновите целевого агента и критиков в зависимости от целевого метода обновления. Чтобы задать D 2, используйте TargetUpdateFrequency
опция. Для получения дополнительной информации см. Целевые Методы Обновления.
Для простоты агент и обновления критика в этом алгоритме показывают обновление градиента с помощью основного стохастического градиентного спуска. Фактический метод обновления градиента зависит от оптимизатора, вы задаете использование rlRepresentationOptions
.
Агенты TD3 обновляют своего целевого агента и параметры критика с помощью одного из следующих целевых методов обновления.
Сглаживание — Обновление целевые параметры на каждом временном шаге с помощью коэффициента сглаживания τ. Чтобы задать коэффициент сглаживания, используйте TargetSmoothFactor
опция.
Периодический — Обновление целевые параметры периодически, не сглаживая (TargetSmoothFactor = 1
). Чтобы задать период обновления, используйте TargetUpdateFrequency
параметр.
Периодическое Сглаживание — Обновление целевые параметры периодически со сглаживанием.
Чтобы сконфигурировать целевой метод обновления, создайте a rlTD3AgentOptions
объект и набор TargetUpdateFrequency
и TargetSmoothFactor
параметры как показано в следующей таблице.
Метод Update | TargetUpdateFrequency | TargetSmoothFactor |
---|---|---|
Сглаживание (значения по умолчанию) | 1
| Меньше, чем 1 |
Периодический | Больше, чем 1 | 1
|
Периодическое сглаживание | Больше, чем 1 | Меньше, чем 1 |
[1] Фудзимото, Скотт, Херк ван Хуф и Дэвид Меджер. "Исправляя Ошибку Приближения функций в Методах Критика Агента". ArXiv:1802.09477 [Cs, Статистика], 22 октября 2018. https://arxiv.org/abs/1802.09477.
rlTD3Agent
| rlTD3AgentOptions