Агенты глубоких Q-сетей

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

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

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

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

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

КритикАктер

Критик функции Q (S, A), которую вы создаете используя 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) со случайными значениями параметров θ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 опция. Чтобы использовать double 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 параметр.

  • Периодическое сглаживание - периодически обновляйте целевые параметры с сглаживанием.

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

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

Ссылки

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

См. также

|

Похожие темы