Алгоритм глубокой Q-сети (DQN) является онлайновым, методом изучения укрепления вне политики без моделей. Агент DQN является основанным на значении агентом изучения укрепления, который обучает критика оценивать возврат или будущие вознаграждения. DQN является вариантом Q-изучения. Для получения дополнительной информации о Q-изучении смотрите Агенты Q-изучения.
Для получения дополнительной информации о различных типах агентов изучения укрепления смотрите, что Укрепление Изучает Агенты.
Агенты DQN могут быть обучены в средах со следующими пробелами наблюдения и действия.
Пространство наблюдений | Пробел действия |
---|---|
Непрерывный или дискретный | Дискретный |
Во время обучения, агента:
Обновляет свойства критика на каждом временном шаге во время изучения.
Исследует пробел действия с помощью жадного эпсилоном исследования. Во время каждого интервала управления агент выбирает случайное действие с вероятностью ϵ, в противном случае это выбирает действие жадно относительно функции значения с вероятностью 1-ϵ. Это жадное действие является действием, для которого функция значения является самой большой.
Прошлый опыт хранилищ с помощью кругового буфера опыта. Агент обновляет критика на основе мини-пакета событий, случайным образом выбранных от буфера.
Чтобы оценить функцию значения, агент DQN поддерживает две функции approximators:
Критик Q (S, A) — критик берет наблюдение S и действие A как вводы и выводы соответствующее ожидание долгосрочного вознаграждения.
Предназначайтесь для критика Q' (S, A) — Чтобы улучшить устойчивость оптимизации, агент периодически обновляет целевого критика на основе последних значений параметров критика.
Оба Q (S, A) и Q' (S, A) имеет ту же структуру и параметризацию.
Для получения дополнительной информации о создании критиков для приближения функций значения смотрите, Создают политику и Представления Функции Значения.
Когда обучение завершено, обученная функция значения approximator хранится в критике Q (S, A).
Создать агент DQN:
Создайте объект представления критика.
Задайте опции агента с помощью функции rlDQNAgentOptions
.
Создайте агент с помощью функции rlDQNAgent
.
Для получения дополнительной информации смотрите rlDQNAgent
и rlDQNAgentOptions
.
Агенты DQN используют следующий учебный алгоритм, в котором они обновляют свою модель критика на каждом временном шаге. Чтобы сконфигурировать учебный алгоритм, задайте опции с помощью rlDQNAgentOptions
.
Инициализируйте критика Q (s, a) со случайными значениями параметров θQ, и инициализируйте целевого критика с теми же значениями: .
Для каждого учебного временного шага:
Для текущего наблюдения 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 через все выбранные события.
Обновите целевого критика в зависимости от целевого метода обновления (сглаживание или периодический). Чтобы выбрать метод обновления, используйте опцию TargetUpdateMethod
.
По умолчанию агент использует целевое сглаживание и обновляет целевого критика при каждом использовании временного шага, сглаживающем факторный τ. Чтобы задать фактор сглаживания, используйте опцию TargetSmoothFactor
. Также можно периодически обновлять целевого критика. Чтобы задать количество эпизодов между целевыми обновлениями критика, используйте опцию TargetUpdateFrequency
.
[1] В. Мних, К. Кэваккуоглу, D. Серебро, A. Могилы, я. Antonoglou, Д. Вирстра и М. Ридмиллер, “проигрывая Atari с глубоким изучением укрепления”, семинар глубокого обучения NIPS, 2013.
rlDQNAgent
| rlDQNAgentOptions
| rlRepresentation