Алгоритм с двойным отложенным глубоким детерминированным градиентом политики (TD3) является методом обучения без модели, онлайн, вне политики. Агент TD3 - это агент обучения, усиливающий деятельность актеров и критиков, который ищет оптимальную политику, которая максимизирует ожидаемое совокупное долгосрочное вознаграждение.
Дополнительные сведения о различных типах агентов обучения усилению см. в разделе Агенты обучения усилению.
Алгоритм TD3 является расширением алгоритма DDPG. Агенты DDPG могут переоценивать функции стоимости, что может привести к неоптимальным политикам. Для уменьшения переоценки функции значения используются следующие модификации алгоритма DDPG.
Агент TD3 изучает две функции Q-value и использует оценку функции минимального значения во время обновления политики.
Агент TD3 обновляет политику и нацеливается реже, чем функции Q.
При обновлении политики агент TD3 добавляет шум к целевому действию, что делает политику менее вероятной эксплуатацию действий с высокими оценками Q-значения.
Агент TD3 можно использовать для реализации одного из следующих алгоритмов обучения, в зависимости от указанного количества критиков.
TD3 - Подготовка агента с двумя функциями Q-значения. Этот алгоритм реализует все три предыдущие модификации.
Отложенная DDPG - подготовка агента с помощью одной функции Q-значения. Этот алгоритм обучает агента DDPG со сглаживанием целевой политики и отложенными обновлениями политики и цели.
TD3 агенты могут обучаться в средах со следующими пространствами наблюдения и действий.
| Пространство наблюдения | Пространство действий |
|---|---|
| Непрерывный или дискретный | Непрерывный |
TD3 агенты используют следующие представления актера и критика.
| Критик | Актер |
|---|---|
Критик Q (S, A) функции Q-value, созданный с помощью | Детерминированный политический субъект δ (S), который создается с помощью |
Во время обучения TD3 агент:
Обновляет свойства актера и критика на каждом временном шаге во время обучения.
Хранит прошлые переживания с помощью циклического буфера переживаний. Агент обновляет актера и критика, используя мини-партию переживаний, случайным образом отобранных из буфера.
Возмущает действие, выбранное политикой, используя стохастическую модель шума на каждом этапе обучения.
Для оценки политики и функции значения агент TD3 поддерживает следующие аппроксиматоры функции:
Детерминированный актер (S) - актёр принимает наблюдение S и возвращает соответствующее действие, которое максимизирует долгосрочное вознаграждение.
Target actor λ '(S) - для повышения стабильности оптимизации агент периодически обновляет целевой актер на основе последних значений параметров актера.
Один или два Q-значения критики Qk (S, A) - критики принимают наблюдение S и действие A в качестве входных данных и возвращает соответствующее ожидание долгосрочной награды.
Один или два целевых критика Q 'k (S, A) - чтобы улучшить стабильность оптимизации, агент периодически обновляет целевых критиков на основе последних значений параметров критиков. Количество целевых критиков совпадает с количеством критиков.
И (S), и (S) имеют одинаковую структуру и параметризацию.
Для каждого критика Qk (S, A) и Q 'k (S, A) имеют одинаковую структуру и параметризацию.
При использовании двух критиков, Q1 (S, A) и Q2 (S, A), каждый критик может иметь различную структуру, хотя TD3 работает лучше всего, когда критики имеют одинаковую структуру. Когда критики имеют одинаковую структуру, они должны иметь разные начальные значения параметров.
После завершения обучения обученная оптимальная политика сохраняется в акторе (S).
Дополнительные сведения о создании актеров и критиков для аппроксимации функций см. в разделе Создание представлений политик и функций значений.
Можно создать агент TD3 с представлениями актера и критика по умолчанию на основе спецификаций наблюдения и действий из среды. Для этого выполните следующие действия.
Создайте спецификации наблюдения для среды. Если у вас уже есть объект интерфейса среды, вы можете получить эти спецификации с помощью getObservationInfo.
Создание спецификаций действий для среды. Если у вас уже есть объект интерфейса среды, вы можете получить эти спецификации с помощью getActionInfo.
При необходимости укажите количество нейронов в каждом обучаемом уровне или следует ли использовать уровень LSTM. Для этого создайте объект параметра инициализации агента с помощью rlAgentInitializationOptions.
При необходимости укажите параметры агента с помощью rlTD3AgentOptions объект.
Создание агента с помощью rlTD3Agent объект.
Кроме того, можно создавать представления актера и критика и использовать эти представления для создания агента. В этом случае убедитесь, что входные и выходные размеры представлений актера и критика соответствуют соответствующим спецификациям действия и наблюдения среды.
Создание актера с помощью rlDeterministicActorRepresentation объект.
Создание одного или двух критиков с помощью rlQValueRepresentation объекты.
Укажите параметры агента с помощью rlTD3AgentOptions объект.
Создание агента с помощью rlTD3Agent объект.
Дополнительные сведения о создании актеров и критиков для аппроксимации функций см. в разделе Создание представлений политик и функций значений.
TD3 агенты используют следующий обучающий алгоритм, в котором они обновляют свои модели актера и критика на каждом временном шаге. Чтобы настроить алгоритм обучения, укажите параметры с помощью rlDDPGAgentOptions объект. Здесь K = 2 - число критиков, а k - индекс критиков.
Инициализируйте каждый критик Qk (S, A) случайными значениями параметров, и инициализируйте каждый целевой критик такими же случайными значениями параметров:
Инициализируйте актера (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 во всех отобранных переживаниях.
Ai 'startQk)) 2
Каждые D1 шага обновляют параметры актера, используя следующий выборочный градиент политики, чтобы максимизировать ожидаемое вознаграждение со скидкой. Для установки D1 используйте PolicyUpdateFrequency вариант.
Сай 'θμ)
Здесь Гай представляет собой градиент минимального критического выходного сигнала относительно действия, вычисленного сетью акторов, а Gpcii представляет собой градиент выходного сигнала акторов относительно параметров акторов. Оба градиента оцениваются для наблюдения Si.
Каждые D2 шага обновляют целевого актера и критиков в зависимости от метода целевого обновления. Чтобы указать D2, используйте TargetUpdateFrequency вариант. Дополнительные сведения см. в разделе Методы целевого обновления.
Для простоты, актёр и критик обновления в этом алгоритме показывают обновление градиента с использованием базового стохастического градиентного спуска. Фактический метод обновления градиента зависит от оптимизатора, указанного с помощью rlRepresentationOptions.
Агенты TD3 обновляют свои параметры целевого исполнителя и критика, используя один из следующих методов целевого обновления.
Сглаживание (Smoothing) - обновляет целевые параметры на каждом шаге времени с использованием коэффициента сглаживания, Чтобы задать коэффициент сглаживания, используйте TargetSmoothFactor вариант.
)
Periodic - периодически обновлять целевые параметры без сглаживания (TargetSmoothFactor = 1). Чтобы указать период обновления, используйте TargetUpdateFrequency параметр.
Периодическое сглаживание (Periodic Smoothing) - периодическое обновление целевых параметров сглаживанием.
Чтобы настроить целевой метод обновления, создайте 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