Глубокие агенты Q-сети

Алгоритм глубокой Q-сети (DQN) является онлайновым, методом обучения с подкреплением вне политики без моделей. Агент DQN является основанным на значении агентом обучения с подкреплением, который обучает критика оценивать возврат или будущие вознаграждения. DQN является вариантом Q-изучения. Для получения дополнительной информации о Q-изучении смотрите Агентов Q-обучения.

Для получения дополнительной информации о различных типах агентов обучения с подкреплением смотрите Агентов Обучения с подкреплением.

Агенты DQN могут быть обучены в средах со следующим наблюдением и пространствами действий.

Пространство наблюденийПространство действий
Непрерывный или дискретныйДискретный

Агенты DQN используют следующее представление критика.

КритикАгент

Критик Q (S, A), Q-функции-ценности, который вы создаете использование rlQValueRepresentation

Агенты DQN не используют агента.

Во время обучения, агента:

  • Обновляет свойства критика на каждом временном шаге во время изучения.

  • Исследует пространство действий с помощью эпсилон-жадного исследования. Во время каждого контрольного интервала агент или выбирает случайное действие с вероятностью ϵ или выбирает действие жадно относительно функции ценности с вероятностью 1-ϵ. Это жадное действие является действием, для которого функция ценности является самой большой.

  • Прошлые опыты хранилищ с помощью кругового буфера опыта. Агент обновляет критика на основе мини-пакета событий, случайным образом произведенных от буфера.

Функция критика

Для подсчёта функции ценности агент DQN обеспечивает две функциональных аппроксимации:

  • Критик Q (S, A) — критик берет наблюдение S и действие A как входные параметры и возвращает соответствующее ожидание долгосрочного вознаграждения.

  • Предназначайтесь для критика Q' (S, A) — Чтобы улучшить устойчивость оптимизации, агент периодически обновляет целевого критика на основе последних значений параметров критика.

Оба Q (S, A) и Q' (S, A) имеет ту же структуру и параметризацию.

Для получения дополнительной информации о создании критиков для приближения функции ценности смотрите, Создают Представления Функции ценности и политика.

Когда обучение завершено, настроенная функциональная аппроксимация хранится в критике Q (S, A).

Создание агента

Можно создать агента DQN с представлением критика на основе спецификаций наблюдений и спецификаций действия от среды. Для этого выполните следующие шаги.

  1. Создайте спецификации наблюдений для своей среды. Если у вас уже есть объект интерфейса среды, можно получить эти технические требования использование getObservationInfo.

  2. Технические требования действия по созданию для вашей среды. Если у вас уже есть объект интерфейса среды, можно получить эти технические требования использование getActionInfo.

  3. В случае необходимости задайте количество нейронов в каждом learnable слое или использовать ли слой LSTM. Для этого создайте объект опции инициализации агента использование rlAgentInitializationOptions.

  4. В случае необходимости задайте опции агента с помощью rlDQNAgentOptions объект.

  5. Создайте агента с помощью rlDQNAgent объект.

В качестве альтернативы можно создать представления актёра и критика и использовать эти представления, чтобы создать агента. В этом случае гарантируйте, что размерности ввода и вывода представлений актёра и критика совпадают с соответствующим действием и спецификациями наблюдений среды.

  1. Создайте критика, использующего rlQValueRepresentation объект.

  2. Задайте опции агента с помощью rlDQNAgentOptions объект.

  3. Создайте агента с помощью rlDQNAgent объект.

Агенты DQN поддерживают критиков, которые используют текущие глубокие нейронные сети в качестве аппроксимаций функций.

Для получения дополнительной информации о создании агентов и критиков для приближения функций, смотрите, Создают Представления Функции ценности и политика.

Алгоритм обучения

Агенты DQN используют следующий алгоритм настройки, в котором они обновляют свою модель критика на каждом временном шаге. Чтобы сконфигурировать алгоритм настройки, задайте опции с помощью rlDQNAgentOptions объект.

  • Инициализируйте критика Q (s, a) со случайными значениями параметров θQ, и инициализируйте целевого критика теми же значениями: θQ'=θQ.

  • Для каждого учебного временного шага:

    1. Для текущего наблюдения S выберите случайное действие A с вероятностью ϵ. В противном случае выберите действие, для которого функция ценности критика является самой большой.

      A=argmaxAQ(S,A|θQ)

      Чтобы задать ϵ и его уровень затухания, используйте EpsilonGreedyExploration опция.

    2. Выполните действие A. Наблюдайте вознаграждение R и следующее наблюдение S'.

    3. Сохраните опыт (S, A, R, S') в буфере опыта.

    4. Произведите случайный мини-пакет событий M (Si, Ai, Ri, S'i) от буфера опыта. Чтобы задать M, используйте MiniBatchSize опция.

    5. Если S'i является конечным состоянием, поставьте цель функции ценности yi к Ri. В противном случае установите его на

      Amax=argmaxA'Q(Si',A'|θQ)yi=Ri+γQ'(Si',Amax|θQ')(doubleDQN)yi=Ri+γmaxA'Q'(Si',A'|θQ')(DQN)

      Чтобы установить коэффициент дисконтирования γ, используйте DiscountFactor опция. Чтобы использовать двойной DQN, установите UseDoubleDQN опция к true.

    6. Обновите параметры критика минимизацией с одним шагом потери L через все произведенные события.

      L=1Mi=1M(yiQ(Si,Ai|θQ))2

    7. Обновите целевые параметры критика в зависимости от целевого метода обновления Для получения дополнительной информации, см. Целевые Методы Обновления.

    8. Обновите порог вероятности ϵ для выбора случайного действия на основе уровня затухания, который вы задаете в EpsilonGreedyExploration опция.

Целевые методы обновления

Агенты DQN обновляют свои целевые параметры критика с помощью одного из следующих целевых методов обновления.

  • Сглаживание — Обновление целевые параметры на каждом временном шаге с помощью коэффициента сглаживания τ. Чтобы задать коэффициент сглаживания, используйте TargetSmoothFactor опция.

    θQ'=τθQ+(1τ)θQ'

  • Периодический — Обновление целевые параметры периодически, не сглаживая (TargetSmoothFactor = 1). Чтобы задать период обновления, используйте TargetUpdateFrequency параметр.

  • Периодическое Сглаживание — Обновление целевые параметры периодически со сглаживанием.

Чтобы сконфигурировать целевой метод обновления, создайте a rlDQNAgentOptions объект и набор TargetUpdateFrequency и TargetSmoothFactor параметры как показано в следующей таблице.

Метод UpdateTargetUpdateFrequencyTargetSmoothFactor
Сглаживание (значения по умолчанию)1Меньше, чем 1
ПериодическийБольше, чем 11
Периодическое сглаживаниеБольше, чем 1Меньше, чем 1

Ссылки

[1] Mnih, Владимир, Koray Kavukcuoglu, Дэвид Сильвер, Алекс Грэйвс, Яннис Антоноглоу, Даан Вирстра и Мартин Ридмиллер. “Проигрывая Atari с Глубоким Обучением с подкреплением”. ArXiv:1312.5602 [Cs], 19 декабря 2013. https://arxiv.org/abs/1312.5602.

Смотрите также

|

Похожие темы