Семья DQN
Сети Double Deep Q
Устранение предвзятости максимизации в Deep Q-Learning
Введение
В этом посте мы рассмотрим мотивацию сетей двойного Q-обучения и рассмотрим три различных способа, которыми это было сделано:
- Оригинальный алгоритм в « Двойное Q-обучение (Hasselt, 2010)»
- Обновленный алгоритм от того же автора в статье « Глубокое обучение с подкреплением с двойным Q-обучением (Hasselt et al., 2015)»,
- Самый последний метод, Clipped Double Q-Learning, в статье « Устранение ошибки аппроксимации функции в методах, критикующих акторов (Fujimoto et al., 2018)».
Если вы не до конца знакомы с Q-обучением, я бы порекомендовал взглянуть на мой пост о Q-обучении!
Мотивация
Рассмотрим целевое значение Q:
Конкретно,
Принятие максимальных завышенных значений как таковых подразумевает оценку максимального значения. Эта систематическая переоценка приводит к предвзятости максимизации в обучении. А поскольку Q-обучение включает бутстрэппинг - изучение оценок на основе оценок - такое завышение оценок может быть проблематичным.
Вот пример: рассмотрим одно состояние s, в котором истинное значение Q для всех действий равно 0, но оценочные значения Q распределены выше и ниже нуля. Выбор максимума из этих оценок (который, очевидно, больше нуля) для обновления функции Q приводит к завышению значений Q.
Hasselt et al. (2015) иллюстрируют эту тенденцию к завышению оценок в экспериментах в различных игровых средах Atari:
Как мы видим, традиционные DQN имеют тенденцию значительно переоценивать ценности действий, что приводит к нестабильному обучению и политике низкого качества:
Решение: обучение Double Q
Решение включает использование двух отдельных оценщиков Q-значения, каждая из которых используется для обновления другой. Используя эти независимые оценки, мы можем получить несмещенные оценки Q-значений действий, выбранных с помощью противоположной оценки [3]. Таким образом, мы можем избежать предвзятости максимизации, отделив наши обновления от предвзятых оценок.
Ниже мы рассмотрим 3 различных варианта обучения Double Q и реализуем последние два.
1. Оригинальный алгоритм «двойного Q-обучения» (Хасселт, 2010 г.)
Исходный алгоритм двойного Q-обучения использует две независимые оценки Q^{A}
и Q^{B}
. С вероятностью 0,5 мы используем оценку Q^{A}
для определения действия максимизации, но используем ее для обновления Q^{B}
. И наоборот, мы используем Q^{B}
для определения действия максимизации, но используем его для обновления Q^{A}
. Таким образом, мы получаем несмещенную оценку Q^{A}(state, argmaxQ^{next state, action)
для ожидаемого значения Q и подавляем смещение.
2. Обновленная версия от того же автора в книге «Глубокое обучение с подкреплением с двойным Q-обучением» (Hasselt et al., 2015),
Во втором алгоритме двойного Q-обучения у нас есть модель Q
и целевая модель Q’
вместо двух независимых моделей, как в (Hasselt, 2010). Мы используем Q’
для выбора действия и Q
для оценки действия. То есть:
Мы минимизируем среднеквадратичную ошибку между Q
и Q*
, но мы Q'
медленно копируем параметры Q
. Мы можем сделать это, периодически копируя параметры на бумажном носителе, а также усредняя по Поляку:
где θ ’- целевой параметр сети, θ - параметр первичной сети, а τ (скорость усреднения) обычно устанавливается на 0,01.
3. Обрезанное двойное Q-обучение, в Ошибка аппроксимации функции адресации в методах, критикующих акторов (Fujimoto et al., 2018) ».
В Clipped Double Q-Learning мы следуем оригинальной формулировке Hasselt 2015. У нас есть две независимые оценки истинного значения Q. Здесь для вычисления целей обновления мы берем минимум из двух значений действия следующего состояния, создаваемых нашими двумя Q-сетями; Когда оценка Q из одного значения больше, чем из другого, мы уменьшаем его до минимума, избегая завышения.
Fujimoto et al. представляет собой еще одно преимущество этой настройки: оператор минимума должен предоставлять более высокое значение для состояний с более низкой ошибкой оценки дисперсии. Это означает, что минимизация приведет к предпочтению состояний с оценками значений с низкой дисперсией, что приведет к более безопасным обновлениям политики со стабильными целями обучения.
Руководство по внедрению
Мы начнем с той же настройки агента DQN, что и в первой части этой серии. Если вы хотите увидеть более полную реализацию настройки, см. Мой пост Q-Learning или мой репозиторий Github (ссылка внизу).
Агент DQN:
- Двойное Q-обучение, Хасселт и др., 2015 г .:
Мы инициализируем модель и целевую модель:
Для вычисления потерь мы используем нашу целевую модель для вычисления следующих значений Q:
А затем мы медленно копируем / усредняем параметры модели в целевые параметры модели:
2. Обрезанное двойное Q-обучение, Фудзимото и др., 2018 г .:
Инициализируем две сети Q:
Для вычисления потерь мы вычисляем значения Q текущего состояния и значения Q следующего состояния обеих моделей, но используем минимум значений Q следующего состояния для вычисления ожидаемого значения Q. Затем мы обновляем обе модели, используя ожидаемое значение Q.
И, наконец, функция обновления:
На этом мы завершаем реализацию алгоритмов двойного Q-обучения. Двойное Q-обучение часто используется в современных вариантах Q-обучения и методах Actor Critic. Мы увидим, как эта техника будет появляться снова и снова в наших последующих публикациях.
Спасибо за прочтение!
Здесь можно найти мою полную реализацию:
использованная литература
- « Проблемы использования аппроксимации функций для обучения с подкреплением (Трун и Шварц, 1993)»
- « Двойное Q-обучение (Хасселт, 2010)»
- « Глубокое обучение с подкреплением с двойным Q-обучением (Hasselt et al., 2015)»,
- « Устранение ошибки аппроксимации функций в методах, критикующих акторов (Fujimoto et al., 2018)»
- Обучение с подкреплением: введение (Саттон и Барто)