Эта статья была впервые опубликована на:Уокер ИИ
Алгоритм Q-Learning представляет собой дифференциальный метод обучения временных рядов с другой стратегией, которая была предложена очень рано; DQN использует нейронную сеть для аппроксимации функции ценности в Q-Learning и улучшения ее для практических задач; DDPG можно рассматривать как расширение DQN для прогнозирования непрерывного действия; в этой статье мы сравним и проанализируем DQN и DDPG по определению, чтобы лучше понять разницу и связь между двумя алгоритмами.
В этой статье сначала вводятся общие понятия, используемые в DQN и DDPG, затем анализируется и понимается поток алгоритмов из DQN, затем проводится дальнейший анализ DDPG и, наконец, обобщаются различия и связи между ними. Эта статья в основном разделена на следующие три части:
(1) Введение в связанные понятия
(2) Алгоритм анализа DQN
(3) Алгоритм анализа DDPG
1. Введение в связанные понятия
DQN и DDPG имеют дело с разными проблемами: DQN используется для решения задач дискретного действия, а DDPG расширена для решения задач непрерывного действия, поэтому сначала нам нужно понять разницу между непрерывным действием и дискретным действием, а также между ними. это работает в машиностроении.
1.1 Дискретное действие
Проще говоря, дискретные действия — это действия, которые можно классифицировать, например вверх, вниз, огонь, прекращение огня и т. д. В практической инженерии мы используем функции активации типа классификации для их представления, такие как softmax:
Как показано на рисунке выше, после того, как вход x проходит через любую нейронную сеть, последний слой сетевого слоя использует функцию активации softmax для разделения вывода сети на n классов действий; таким образом могут быть выведены дискретные действия.
1.2 Непрерывное действие
Дискретные действия — это действия, которые можно классифицировать, а непрерывные действия — это непрерывные значения, такие как расстояние, угол, сила и т. д., которые представляют собой точные значения. Непрерывные действия не поддаются классификации, поэтому в практической инженерии мы используем функции активации, которые возвращают типы значений для их представления, такие как tanh:
Как показано на рисунке выше, после того, как вход x проходит через любую нейронную сеть, последний слой сетевого слоя использует функцию активации tanh для вывода сети в виде значения интервального значения; таким образом, могут быть выведены непрерывные действия.
2. DQN
2.1 Проблемы, с которыми сталкивается DQN
DQN — это метод аппроксимации функции ценности в Q-Learning с использованием нейронной сети и ее улучшения для решения практических задач. Но мы не можем сделать простые замены, такие как определение нейронной сети классификации:
Затем определите функцию потерь, аналогичную Q-learning, например:, а затем непосредственно оптимизировать.Этот способ не работает.
В практической инженерии реализация DQN столкнется со многими трудностями, наиболее заметными из которых являются:
(1) Коэффициент использования выборки низкий
(2) Значение, полученное в результате обучения, нестабильно.
Среди них проблема (1) является общей проблемой принятия решений о последовательности.Поскольку принятие решений о последовательности имеет строгие контекстуальные отношения, только одна выборка может быть подсчитана для длинной выборки, что приводит к низкому использованию выборки.
Проблема (2) заключается в том, что значение Q, выдаваемое сетью, будет участвовать в выборе действия действия, а выбранное действие взаимодействует с окружающей средой, чтобы генерировать новое состояние и продолжать отправлять его в сеть Q для обучения; это вызываетВыходная цель параметров сети будет продолжать участвовать в обучении параметров сети.. Это приводит к нестабильному выходу сети Q.
2.2 Решение
Столкнувшись с двумя вышеупомянутыми проблемами, DQN использует следующие два метода для их решения:
(1)Повтор опыта, то есть для создания пула опыта (буфера воспроизведения) для удаления корреляции данных; пул опыта — это набор данных, состоящий из недавнего опыта агента.
(2)Замораживание целевых сетей, то есть за период времени (или фиксированное количество шагов), чтобы зафиксировать параметры в цели, чтобы стабилизировать цель обучения.
Функциональную структуру всей DQN можно представить следующим рисунком:
Сначала вводят данные, состоящие из действия, состояния, вознаграждения и флага завершения, в сеть Q, сеть выдает предсказанное значение Q_predict, затем выбирает действие по этому значению и вводит его в среду для взаимодействия, после чего получает новое значение состояния s', продолжить обучение.
В то же время результаты каждого взаимодействия с окружающей средой также будут храниться в пуле опыта фиксированной длины; каждый шаг C сеть Target_Q с той же структурой и параметрами копируется из сети Q для стабилизации выходной цели, и сеть Target_Q извлекается из пула опыта.Выберите данные и выведите стабильное целевое значение Q_target =,взначение функции вознаграждения,ставка дисконтирования вознаграждения,является выходным значением сети Target_Q.
Функция потерь всего DQN напрямую принимает среднеквадратичную ошибку двух предсказанных значений Q_predict и Q_target.
Подробный алгоритм алгоритма выглядит следующим образом:
3. DDPG
На основе известного алгоритма DQN очень просто посмотреть на DDPG. По сути, идея DDPG не изменилась, но изменилось применение, по сравнению с DQN, DDPG в основном решает задачу прогнозирования непрерывных действий. Благодаря приведенному выше введению мы можем узнать, что независимо от того, является ли действие непрерывным или дискретным, разница в реализации заключается только в выборе конечной функции активации. Поэтому DDPG внесла некоторые улучшения в алгоритм, унаследованный от DQN.
Перейдем непосредственно к структуре алгоритма:
Сравнивая схему структуры алгоритма DQN, нетрудно обнаружить, что: DDPG добавляет сеть Policy и свою сеть Policy_target на основе DQN для вывода непрерывного значения; это непрерывное значение на самом деле является непрерывным действием действия. В остальном идея почти такая же, как у DQN.
Разница в том, что хотя конечная функция потерь по-прежнему вычисляет среднеквадратичную ошибку двух предсказанных значений Q_predict и Q_target, значения Q_predict и Q_target необходимо получать отдельно из выходов сети Policy и ее сети Policy_target. . Поэтому необходимо встроить функции потерь двух сетей политик в Q_predict и Q_target, как показано на рисунке выше.
По сравнению с DQN, более подробный поток алгоритма DDPG можно получить, немного изменив его алгоритм:
После разговора о расширении DDPG по сравнению с DQN поговорим о наследовании. Очевидно, DDPG наследуетПовтор опытаиЗамораживание целевых сетейОба способа используются для решения одной и той же задачи.
4. Резюме
В этой статье анализируются два алгоритма DQN и DDPG со сравнительной точки зрения.Можно увидеть, что:
(1) Оба они используют воспроизведение опыта и замораживание целевых сетей для решения проблемы нестабильных образцов и целевых значений.
(2) Структура алгоритма этих двух очень похожа, и оба представляют собой один и тот же процесс, но DDPG добавляет некоторые сетевые операции серии политик на основе DQN.
(3) Функции потерь этих двух по существу одинаковы, за исключением того, что DDPG добавляет сеть политик для вывода значений непрерывного действия, поэтому необходимо встроить функцию потерь сети политик в исходный MSE.
Подводя итог, мы приходим к DDPG, по сути являющемуся расширением алгоритма DQN, это вывод о непрерывном действии. Также можно увидеть, сравнивая, что DDPG с DQN имеет алгоритм с высоким сходством, не только потому, что в документе DDPG говорится, что он вырос из алгоритма DPG.
В этой статье сравнение и понимание двух алгоритмов DQN и DDPG здесь, В следующей статье мы начнем с кода и реализуем два алгоритма, так что следите за обновлениями!
5. Ссылка
[1] Цю Сипэн "NNDL"
[2] Continuous control with deep reinforcement learning
[3] Playing Atari with Deep Reinforcement Learning
PS: Для получения дополнительной технической галантереи, пожалуйста, обратите внимание на [Публичный аккаунт | xingzhe_ai] и обсудите с ходоками!