Алгоритм глубокой Q-сети (DQN) является онлайновым, методом обучения с подкреплением вне политики без моделей. Агент DQN является основанным на значении агентом обучения с подкреплением, который обучает критика оценивать возврат или будущие вознаграждения. DQN является вариантом Q-изучения. Для получения дополнительной информации о Q-изучении смотрите Агентов Q-обучения.
Для получения дополнительной информации о различных типах агентов обучения с подкреплением смотрите Агентов Обучения с подкреплением.
Агенты DQN могут быть обучены в средах со следующим наблюдением и пространствами действий.
Пространство наблюдений | Пространство действий |
---|---|
Непрерывный или дискретный | Дискретный |
Агенты DQN используют следующее представление критика.
Критик | Агент |
---|---|
Q критика Q-функции-ценности (S, A), который вы создаете использование | Агенты DQN не используют агента. |
Во время обучения, агента:
Обновляет свойства критика на каждом временном шаге во время изучения.
Исследует пространство действий с помощью эпсилон-жадного исследования. Во время каждого контрольного интервала агент или выбирает случайное действие с вероятностью ϵ или выбирает действие жадно относительно функции ценности с вероятностью 1-ϵ. Это жадное действие является действием, для которого функция ценности является самой большой.
Прошлые опыты хранилищ с помощью кругового буфера опыта. Агент обновляет критика на основе мини-пакета событий, случайным образом произведенных от буфера.
Для подсчёта функции ценности агент DQN обеспечивает две функциональных аппроксимации:
Критик Q (S, A |ϕ) — критик, параметрами ϕ, берет наблюдение S и действие A как входные параметры и возвращает соответствующее ожидание долгосрочного вознаграждения.
Предназначайтесь для критика Qt (S, A |ϕt) — Чтобы улучшить устойчивость оптимизации, агент периодически обновляется, устанавливает целевые параметры критика ϕt на последние значения параметров критика.
Оба Q (S, A) и Qt (S, A) имеет ту же структуру и параметризацию.
Для получения дополнительной информации о создании критиков для приближения функции ценности смотрите, Создают Представления Функции ценности и политика.
Когда обучение завершено, настроенная функциональная аппроксимация хранится в критике Q (S, A).
Можно создать и обучить агентов DQN в MATLAB® командная строка или использование приложения Reinforcement Learning Designer.
Для получения дополнительной информации о создании агентов с помощью Reinforcement Learning Designer смотрите, Создают Агентов Используя Reinforcement Learning Designer.
В командной строке можно создать агента DQN с представлением критика на основе спецификаций наблюдений и спецификаций действия от среды. Для этого выполните следующие шаги.
Создайте спецификации наблюдений для своей среды. Если у вас уже есть объект интерфейса среды, можно получить эти технические требования использование getObservationInfo
.
Технические требования действия по созданию для вашей среды. Если у вас уже есть объект интерфейса среды, можно получить эти технические требования использование getActionInfo
.
В случае необходимости задайте количество нейронов в каждом learnable слое или использовать ли слой LSTM. Для этого создайте объект опции инициализации агента использование rlAgentInitializationOptions
.
В случае необходимости задайте опции агента с помощью rlDQNAgentOptions
объект.
Создайте агента с помощью rlDQNAgent
объект.
В качестве альтернативы можно создать представления актёра и критика и использовать эти представления, чтобы создать агента. В этом случае гарантируйте, что размерности ввода и вывода представлений актёра и критика совпадают с соответствующим действием и спецификациями наблюдений среды.
Создайте критика, использующего rlQValueRepresentation
объект.
Задайте опции агента с помощью rlDQNAgentOptions
объект.
Создайте агента с помощью rlDQNAgent
объект.
Агенты DQN поддерживают критиков, которые используют текущие глубокие нейронные сети в качестве аппроксимаций функций.
Для получения дополнительной информации о создании агентов и критиков для приближения функций, смотрите, Создают Представления Функции ценности и политика.
Агенты DQN используют следующий алгоритм настройки, в котором они обновляют свою модель критика на каждом временном шаге. Чтобы сконфигурировать алгоритм настройки, задайте опции с помощью rlDQNAgentOptions
объект.
Инициализируйте критика Q (s, a) со случайными значениями параметров ϕ, и инициализируйте целевые параметры критика ϕt теми же значениями: .
Для каждого учебного временного шага:
Для текущего наблюдения S выберите случайное действие A с вероятностью ϵ. В противном случае выберите действие, для которого функция ценности критика является самой большой.
Чтобы задать ϵ и его уровень затухания, используйте EpsilonGreedyExploration
опция.
Выполните действие A. Наблюдайте вознаграждение R и следующее наблюдение S'.
Сохраните опыт (S, A, R, S') в буфере опыта.
Произведите случайный мини-пакет событий M (Si, Ai, Ri, S'i) от буфера опыта. Чтобы задать M, используйте MiniBatchSize
опция.
Если S'i является конечным состоянием, поставьте цель функции ценности yi к Ri. В противном случае установите его на
Чтобы установить коэффициент дисконтирования γ, используйте DiscountFactor
опция. Чтобы использовать двойной DQN, установите UseDoubleDQN
опция к true
.
Обновите параметры критика минимизацией с одним шагом потери L через все произведенные события.
Обновите целевые параметры критика в зависимости от целевого метода обновления Для получения дополнительной информации, см. Целевые Методы Обновления.
Обновите порог вероятности ϵ для выбора случайного действия на основе уровня затухания, который вы задаете в EpsilonGreedyExploration
опция.
Агенты DQN обновляют свои целевые параметры критика с помощью одного из следующих целевых методов обновления.
Сглаживание — Обновление целевые параметры на каждом временном шаге с помощью коэффициента сглаживания τ. Чтобы задать коэффициент сглаживания, используйте TargetSmoothFactor
опция.
Периодический — Обновление целевые параметры периодически, не сглаживая (TargetSmoothFactor = 1
). Чтобы задать период обновления, используйте TargetUpdateFrequency
параметр.
Периодическое Сглаживание — Обновление целевые параметры периодически со сглаживанием.
Чтобы сконфигурировать целевой метод обновления, создайте a rlDQNAgentOptions
объект и набор TargetUpdateFrequency
и TargetSmoothFactor
параметры как показано в следующей таблице.
Метод Update | TargetUpdateFrequency | TargetSmoothFactor |
---|---|---|
Сглаживание (значения по умолчанию) | 1
| Меньше, чем 1 |
Периодический | Больше, чем 1 | 1
|
Периодическое сглаживание | Больше, чем 1 | Меньше, чем 1 |
[1] Mnih, Владимир, Koray Kavukcuoglu, Дэвид Сильвер, Алекс Грэйвс, Яннис Антоноглоу, Даан Вирстра и Мартин Ридмиллер. “Проигрывая Atari с Глубоким Обучением с подкреплением”. ArXiv:1312.5602 [Cs], 19 декабря 2013. https://arxiv.org/abs/1312.5602.
rlDQNAgent
| rlDQNAgentOptions