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

Алгоритм глубокой 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:

  1. Создайте объект представления критика.

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

  3. Создайте агента с помощью rlDQNAgent функция.

Для получения дополнительной информации смотрите rlDQNAgent и rlDQNAgentOptions.

Учебный алгоритм

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

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

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

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

      A=аргументmax AQ(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 =аргументmax A'Q(Si',A'|θQ)yi=Ri+γQ'(Si',Amax |θQ')(double DQN)yi=Ri+γmax A'Q'(Si',A'|θQ')(DQN)

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

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

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

    7. Обновите целевого критика в зависимости от целевого метода обновления (сглаживание или периодический). Чтобы выбрать метод обновления, используйте TargetUpdateMethod опция.

      θQ'=τθQ+(1τ)θQ'(сглаживание)θQ'=θQ(периодический)

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

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

Ссылки

[1] В. Мних, К. Кэваккуоглу, D. Серебро, A. Могилы, я. Antonoglou, Д. Вирстра и М. Ридмиллер, “проигрывая Atari с глубоким обучением с подкреплением”, семинар глубокого обучения NIPS, 2013.

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

| |

Похожие темы