exponenta event banner

Агенты Deep Q-Network

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

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

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

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

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

КритикАктер

Критик Q (S, A) функции Q-value, созданный с помощью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. При необходимости укажите количество нейронов в каждом обучаемом уровне или следует ли использовать уровень LSTM. Для этого создайте объект параметра инициализации агента с помощью rlAgentInitializationOptions.

  4. При необходимости укажите параметры агента с помощью rlDQNAgentOptions объект.

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

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

  1. Создание критика с помощью rlQValueRepresentation объект.

  2. Укажите параметры агента с помощью rlDQNAgentOptions объект.

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

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

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

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

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

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

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

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

      A = argmaxAQ (S, A 'startQ)

      Чтобы указать ϵ и скорость его распада, используйте 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' | startQ) yi = Ri + γ Q '(Si', Amax 'startQ') (двойной DQN) yi = Ri + γ maxA 'Q' (Si ', A' | startQ Q ') (DQN N)

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

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

      L=1M∑i=1M (yi Q (Si, Ai 'startQ)) 2

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

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

Методы целевого обновления

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

  • Сглаживание (Smoothing) - обновляет целевые параметры на каждом шаге времени с использованием коэффициента сглаживания, Чтобы задать коэффициент сглаживания, используйте TargetSmoothFactor вариант.

    startQ '= (1

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

  • Периодическое сглаживание (Periodic Smoothing) - периодическое обновление целевых параметров сглаживанием.

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

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

Ссылки

[1] Мних, Владимир, Корай Кавуккуоглу, Дэвид Сильвер, Алекс Грейвз, Иоаннис Антониглу, Даан Верстра и Мартин Ридмиллер. «Игра в Atari с глубоким усилением обучения». ArXiv:1312.5602 [Cs], 19 декабря 2013 г. https://arxiv.org/abs/1312.5602.

См. также

|

Связанные темы