Алгоритм глубокой Q-сети (DQN) - это метод обучения без модели, онлайн, вне политики. Агент DQN - это агент обучения усилению на основе стоимости, который обучает критика оценивать прибыль или будущие вознаграждения. DQN является вариантом Q-обучения. Дополнительные сведения о Q-обучении см. в разделе Q-Learning Agents.
Дополнительные сведения о различных типах агентов обучения усилению см. в разделе Агенты обучения усилению.
Агенты DQN могут обучаться в средах со следующими пространствами наблюдения и действий.
| Пространство наблюдения | Пространство действий |
|---|---|
| Непрерывный или дискретный | Дискретный |
Агенты DQN используют следующее представление критиков.
| Критик | Актер |
|---|---|
Критик Q (S, A) функции Q-value, созданный с помощью | Агенты DQN не используют актера. |
Во время обучения агент:
Обновляет критические свойства на каждом временном шаге во время обучения.
Исследует пространство действия, используя эпсилон-жадные исследования. В течение каждого интервала управления агент либо выбирает случайное действие с вероятностью ϵ либо выбирает действие жадно относительно функции значения с вероятностью 1-ϵ. Это жадное действие - действие, для которого функция значения является наибольшей.
Хранит прошлые переживания с помощью циклического буфера переживаний. Агент обновляет критика, основываясь на мини-пакете переживаний, случайным образом отобранных из буфера.
Для оценки функции значения агент DQN поддерживает два аппроксиматора функции:
Критик Q (S, A) - критик принимает наблюдение S и действие A в качестве входных данных и возвращает соответствующее ожидание долгосрочной награды.
Целевой критик Q '(S, A) - для улучшения стабильности оптимизации агент периодически обновляет целевой критик на основе последних значений параметров критика.
И Q (S, A), и Q '(S, A) имеют одинаковую структуру и параметризацию.
Дополнительные сведения о создании критиков для аппроксимации функций значений см. в разделе Создание представлений политик и функций значений.
Когда обучение завершено, аппроксиматор обученной функции значения сохраняется в критике Q (S, A).
Можно создать агент DQN с критическим представлением на основе характеристик наблюдения и действий из среды. Для этого выполните следующие действия.
Создайте спецификации наблюдения для среды. Если у вас уже есть объект интерфейса среды, вы можете получить эти спецификации с помощью getObservationInfo.
Создание спецификаций действий для среды. Если у вас уже есть объект интерфейса среды, вы можете получить эти спецификации с помощью getActionInfo.
При необходимости укажите количество нейронов в каждом обучаемом уровне или следует ли использовать уровень LSTM. Для этого создайте объект параметра инициализации агента с помощью rlAgentInitializationOptions.
При необходимости укажите параметры агента с помощью rlDQNAgentOptions объект.
Создание агента с помощью rlDQNAgent объект.
Кроме того, можно создавать представления актера и критика и использовать эти представления для создания агента. В этом случае убедитесь, что входные и выходные размеры представлений актера и критика соответствуют соответствующим спецификациям действия и наблюдения среды.
Создание критика с помощью rlQValueRepresentation объект.
Укажите параметры агента с помощью rlDQNAgentOptions объект.
Создание агента с помощью rlDQNAgent объект.
Агенты DQN поддерживают критиков, которые используют повторяющиеся глубокие нейронные сети в качестве аппроксиматоров функций.
Дополнительные сведения о создании актеров и критиков для аппроксимации функций см. в разделе Создание представлений политик и функций значений.
Агенты DQN используют следующий обучающий алгоритм, в котором они обновляют свою критическую модель на каждом временном шаге. Чтобы настроить алгоритм обучения, укажите параметры с помощью rlDQNAgentOptions объект.
Инициализируйте критик Q (s, a) случайными значениями параметра, и инициализируйте целевой критик теми же самыми значениями:
Для каждого шага времени обучения:
Для текущего наблюдения S выберите случайное действие A с вероятностью ϵ. В противном случае выберите действие, для которого функция критического значения является наибольшей.
A 'startQ)
Чтобы указать ϵ и скорость его распада, используйте EpsilonGreedyExploration вариант.
Выполнить действие A. Наблюдать награду R и следующее наблюдение S '.
Сохраните опыт (S, A, R, S ') в буфере опыта.
Выборка случайной мини-партии M опытов (Si, Ai, Ri, S 'i) из буфера опыта. Чтобы задать M, используйте MiniBatchSize вариант.
Если S 'i является терминальным состоянием, установите целевой объект функции значений yi в Ri. В противном случае установите для него значение
γ maxA 'Q' (Si ', A' | startQ Q ') (DQN N)
Чтобы установить коэффициент дисконтирования γ, используйте DiscountFactor вариант. Для использования двойного DQN установите UseDoubleDQN опция для true.
Обновите критические параметры путем одношаговой минимизации потерь L во всех отобранных переживаниях.
Ai 'startQ)) 2
Обновление параметров целевого критика в зависимости от метода целевого обновления Дополнительные сведения см. в разделе Методы целевого обновления.
Обновите пороговое ϵ вероятности для выбора случайного действия на основе скорости затухания, указанной в EpsilonGreedyExploration вариант.
Агенты DQN обновляют параметры целевого критика, используя один из следующих методов целевого обновления.
Сглаживание (Smoothing) - обновляет целевые параметры на каждом шаге времени с использованием коэффициента сглаживания, Чтобы задать коэффициент сглаживания, используйте TargetSmoothFactor вариант.
Periodic - периодически обновлять целевые параметры без сглаживания (TargetSmoothFactor = 1). Чтобы указать период обновления, используйте TargetUpdateFrequency параметр.
Периодическое сглаживание (Periodic Smoothing) - периодическое обновление целевых параметров сглаживанием.
Чтобы настроить целевой метод обновления, создайте rlDQNAgentOptions и задайте TargetUpdateFrequency и TargetSmoothFactor как показано в следующей таблице.
| Метод обновления | TargetUpdateFrequency | TargetSmoothFactor |
|---|---|---|
| Сглаживание (по умолчанию) | 1 | Меньше, чем 1 |
| Периодический | Больше, чем 1 | 1 |
| Периодическое сглаживание | Больше, чем 1 | Меньше, чем 1 |
[1] Мних, Владимир, Корай Кавуккуоглу, Дэвид Сильвер, Алекс Грейвз, Иоаннис Антониглу, Даан Верстра и Мартин Ридмиллер. «Игра в Atari с глубоким усилением обучения». ArXiv:1312.5602 [Cs], 19 декабря 2013 г. https://arxiv.org/abs/1312.5602.
rlDQNAgent | rlDQNAgentOptions