Сдвоенный алгоритм глубокого детерминированного градиента политики (TD3) является онлайновым методом обучения с подкреплением без моделей и без политики. Агент TD3 является агентом обучения с подкреплением актёра-критика, который ищет оптимальную политику, которая максимизирует ожидаемое совокупное долгосрочное вознаграждение.
Для получения дополнительной информации о различных типах агентов обучения с подкреплением смотрите Reinforcement Learning Agents.
Алгоритм TD3 является расширением алгоритма DDPG. Агенты DDPG могут переоценивать функции ценности, что может привести к неоптимальным политикам. Для уменьшения переоценки функции ценности включает следующие модификации алгоритма DDPG.
Агент TD3 учит две функции Q-значений и использует минимальную оценку функции ценности во время обновления политики.
Агент TD3 обновляет политику и цели реже, чем функции Q.
При обновлении политики агент TD3 добавляет шум целевому действию, что снижает вероятность использования политики действиями с высокими оценками Q-значений.
Можно использовать агента TD3 для реализации одного из следующих алгоритмов настройки, в зависимости от количества заданных критиков.
TD3 - Обучите агента с двумя функциями Q-значений. Этот алгоритм реализует все три предыдущие модификации.
Задержка DDPG - Обучите агента с одной функцией Q-значения. Этот алгоритм обучает агента DDPG с целевым сглаживанием политики и отложенными обновлениями политики и цели.
TD3 агенты могут быть обучены в окружениях со следующими пространствами наблюдений и действий.
Пространство наблюдений | Пространство действий |
---|---|
Непрерывный или дискретный | Непрерывный |
TD3 агенты используют следующие представления актёра и критика.
Критик | Актер |
---|---|
Критик функции Q (S, A), которую вы создаете | Субъект детерминированной политики, который вы создаете используя |
Во время обучения агент 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
.
При необходимости укажите количество нейронов в каждом обучаемом слое или использовать ли слой 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
параметр.
Периодическое сглаживание - периодически обновляйте целевые параметры с сглаживанием.
Чтобы сконфигурировать целевой метод обновления, создайте rlTD3AgentOptions
Объекту и установите TargetUpdateFrequency
и TargetSmoothFactor
параметры, как показано в следующей таблице.
Метод обновления | TargetUpdateFrequency | TargetSmoothFactor |
---|---|---|
Сглаживание (по умолчанию) | 1 | Меньше 1 |
Периодический | Больше 1 | 1 |
Периодическое сглаживание | Больше 1 | Меньше 1 |
[1] Фухимото, Скотт, Херке ван Хоф и Дэвид Мегер. «Устранение Приближения функций ошибки в методах актёра-критика». ArXiv:1802.09477 [Cs, Stat], 22 октября 2018 года. https://arxiv.org/abs/1802.09477.
rlTD3Agent
| rlTD3AgentOptions