Введение и объяснение алгоритма NAF, широко используемого в задачах непрерывного управления

В предыдущих статьях этой серии были представлены и объяснены два алгоритма обучения с подкреплением, которые широко использовались с момента их создания: Q-Learning и DQN.

Q-Learning сохраняет Q-значения в матрице действий-состояний таким образом, чтобы получить действие a с наибольшим Q-значением в состоянии s должен быть найден наибольший элемент матрицы Q-Value для строки s, что делает невозможным его применение к непрерывным пространствам состояний или действий, поскольку матрица Q-Value была бы бесконечной.

С другой стороны, DQN частично решает эту проблему, используя нейронную сеть для получения Q-значений, связанных с состоянием s, так что выходные данные нейронной сети network — это Q-значения для каждого возможного действия агента (эквивалент строки в матрице действий-состояний Q-Learning). Этот алгоритм позволяет тренироваться в средах с непрерывным пространством состояний, но по-прежнему невозможно тренироваться в среде с непрерывным пространством действий, так как выход нейронной сети (которая имеет столько элементов, сколько возможно действий) будет иметь бесконечную длину .

Алгоритм NAF, представленный Shixiang Gu et al. в [1], в отличие от Q-Learning или DQN, позволяет обучаться в средах с непрерывным состоянием и пространством действий, добавляя большую гибкость с точки зрения возможных приложений. Алгоритмы обучения с подкреплением для непрерывных сред, таких как NAF, обычно используются в области управления, особенно в робототехнике, поскольку они могут обучаться в средах, которые более точно отражают реальность.

Вводные понятия

Преимущество Функция

Функция значения состояния V и Функция значения действия(Q-функция) Q, обе объясняются в разделе первая статья этой серии, определяют выгоду от пребывания в состоянии при следовании определенной политике и выгоду от совершения действия из данного состояния при следовании определенной политике соответственно. Обе функции, а также определение V по отношению к Q можно увидеть ниже.

Поскольку Q возвращает выгоду от выполнения определенного действия в состоянии, а V возвращает выгоду от пребывания в состоянии, разница обоих возвращает информацию о том, насколько это выгодно. совершить определенное действие в состоянии по отношению к остальным действиям или дополнительное вознаграждение, которое агент получит, выполнив это действие по отношению к остальным действиям. Эта разница называется Функция преимущества, и ее уравнение показано ниже.

Шумовой процесс Орнштейна-Уленбеха (OU)

Как было показано в предыдущих статьях, в алгоритмах обучения с подкреплением для дискретных сред, таких как Q-Learning или DQN, исследование выполняется путем случайного выбора действия и игнорирования оптимальной политики, как в случае эпсилон-жадной политики. Однако в непрерывных средах действие выбирается в соответствии с оптимальной политикой и добавляет шума к этому действию.

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

Более подробную информацию о шумовом процессе Орнштейна-Уленбеха можно найти в [2].

Логика алгоритма NAF

Алгоритм NAF использует нейронную сеть, которая получает в качестве отдельных выходных данных значение для Функции значения состояния V и для Функции преимущества A. Нейронная сеть получает эти выходные данные, поскольку, как объяснялось ранее, результат функции действия-ценности Q может быть позже получен как сумма V и A.

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

В частности, Q-функция всегда будет квадратичной по отношению к действию, так что argmax Q(x, u) для действия всегда 𝜇 (x|𝜃) [3], как показано на рис. 2. Благодаря этому проблема невозможности получения argmax вывода нейронной сети из-за работы в непрерывном пространстве действия, как это было в случае с DQN, решается аналитическим путем.

Глядя на различные компоненты, составляющие Q-функцию, можно увидеть, что нейронная сеть будет иметь три разных выхода: один для оценки функции ценности, другой для получения действия, которое максимизирует Q-функцию ( argmax Q(s, a)или 𝜇(x|𝜃)) и еще один для вычисления матрицы P (см. рис. 1):

  • Первым выходом нейронной сети является оценка функции «состояние-значение». Затем эта оценка используется для получения оценки Q-функции как суммы функции значения состояния и функции преимущества. Этот вывод представлен V(x|𝜃) на рис. 1.
  • Вторым выходом нейронной сети является 𝜇(x|𝜃), то есть действие, которое максимизирует Q-функцию в заданном состоянии, или argmax Q(s, a) и поэтому действует как политика, которой должен следовать агент.
  • Третий выход используется для последующего формирования зависящей от состояния положительно определенной квадратной матрицы P(x|𝜃). Этот линейный выход нейронной сети используется в качестве входа для нижнетреугольной матрицы L(x|𝜃), диагональные члены которой возведены в степень, и из которой упомянутая матрица P(x|𝜃) строится по следующей формуле.

Второй и третий выходные данные нейронной сети используются для построения оценки функции преимущества, как показано на рис. 1, которая затем добавляется к первому выходному сигналу (оценка функции состояния-значения V) для получить оценку Q-функции.

Что касается остальной части алгоритма NAF, он включает в себя те же компоненты и шаги, что и алгоритм DQN, описанный в статье Applied Reinforcement Learning III: Deep Q-Networks (DQN). Этими общими компонентами являются буфер воспроизведения, основная нейронная сеть и целевая нейронная сеть. Что касается DQN, Replay Buffer используется для хранения опыта для обучения основной нейронной сети, а целевая нейронная сеть используется для вычисления целевых значений и сравнения их с прогнозами из основной сети, а затем для выполнения процесса обратного распространения.

Поток алгоритма NAF

Алгоритм NAF будет представлен в виде приведенного ниже псевдокода, взятого из [1]. Как упоминалось выше, алгоритм NAF выполняет те же шаги, что и алгоритм DQN, за исключением того, что NAF обучает свою основную нейронную сеть по-другому.

Для каждого временного шага в эпизоде ​​агент выполняет следующие действия:

1. Из заданного состояния выберите действие

Выбрано действие, которое максимизирует оценку Q-функции, которая задается термином 𝜇(x|𝜃), как показано на рис. 2.

К этому выбранному действию добавляется шум, извлеченный из процесса шума Орнштейна-Уленбеха (предварительно введенный), чтобы улучшить исследование агента.

2. Выполните действие на окружающую среду

Действие с шумом, полученное на предыдущем шаге, выполняется агентом в среде. После выполнения такого действия агент получает информацию о том, насколько хорошим было предпринятое действие (через вознаграждение), а также о новой ситуации, достигнутой в среде (которая является следующее состояние).

3. Сохранение опыта в буфере воспроизведения

Буфер воспроизведения хранит впечатления как {s, a, r, s'}, будучи s и a текущее состояние и действие, а также r и s' награда и новое состояние, достигнутое после выполнения действия из текущего состояния.

Следующие шаги, с 4 по 7, повторяются столько раз, сколько указано в гиперпараметре алгоритма I за каждый временной шаг, что можно увидеть в приведенном выше псевдокоде.

4. Выберите случайную партию событий из буфера воспроизведения.

Как объясняется в статье DQN, пакет событий извлекается только тогда, когда в буфере воспроизведения достаточно данных для заполнения пакета. Как только это условие выполнено, элементы {batch_size} случайным образом берутся из буфера воспроизведения, что дает возможность учиться на предыдущем опыте без необходимости проживать его недавно.

5. Установите целевое значение

Целевое значение определяется как сумма вознаграждения и оценки функции значения целевой нейронной сети для следующего состояния, умноженной на коэффициент дисконтирования γ, который является гиперпараметром алгоритма. Формула для целевого значения показана ниже, и она также доступна в приведенном выше псевдокоде.

6. Выполните градиентный спуск

Градиентный спуск применяется к потерям, которые рассчитываются с оценкой Q-функции, полученной из основной нейронной сети (прогнозируемое значение) и ранее рассчитанным целевым значением, в соответствии с уравнением, показанным ниже. Как видно, используемой функцией потерь является MSE, поэтому потеря будет представлять собой разницу между оценкой Q-функции и целевым квадратом.

Следует помнить, что оценка Q-функции получается из суммы оценки функции ценности V(x|𝜃) плюс оценка функции преимущества A(x, u|𝜃), формула которого показана на рис. 1.

7. Мягко обновите целевую нейронную сеть

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

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

8. Временной шаг заканчивается — выполнить следующий временной шаг

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

Заключение

Алгоритм NAF достигает действительно хороших результатов при его реализации в непрерывных средах, поэтому он удовлетворительно выполняет свою задачу. Результаты NAF в сравнении с алгоритмом DDPG [4] показаны ниже, где видно, насколько он значительно улучшает предыдущую работу. Кроме того, следует подчеркнуть красоту алгоритма NAF, поскольку он имеет дело с ограничениями DQN для непрерывных сред с квадратичными функциями и его простой оптимизацией, умным и творческим решением.

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

ИСПОЛЬЗОВАННАЯ ЛИТЕРАТУРА

[1]GU, Shixiang, et al. Непрерывное глубокое q-обучение с ускорением на основе моделей. En Международная конференция по машинному обучению. ПМЛР, 2016. с. 2829–2838

[2]Процесс Орнштейна-Уленбеха
https://en.wikipedia.org/wiki/Ornstein%E2%80 %93Уленбек_процесс

[3]Квадратичные формы. Berkeley Math
https://math.berkeley.edu/~limath/Su14Math54/0722.pdf

[4]LILLICRAP, Timothy P., et al. Непрерывный контроль с глубоким обучением с подкреплением. препринт arXiv arXiv:1509.02971, 2015 г.