Введение в сети RL и Deep Q

Вступление

Обучение с подкреплением (RL) - это общая структура, в которой агенты учатся выполнять действия в среде, чтобы получить максимальное вознаграждение. Двумя основными компонентами являются среда, которая представляет проблему, которую необходимо решить, и агент, который представляет алгоритм обучения.

Агент и среда постоянно взаимодействуют друг с другом. На каждом временном шаге, агент принимает действие на окружающей среду на основе его политика π(at|st), где st является текущим наблюдением из окружающей среды, и получает вознаграждение rt+1 и следующее наблюдение , st+1 из окружающей среды . Цель состоит в том, чтобы улучшить политику, чтобы максимизировать сумму вознаграждений (возврат).

Цикл взаимодействия агента и среды

Это очень общая структура, которая может моделировать различные последовательные задачи принятия решений, такие как игры, робототехника и т. Д.

Окружающая среда Cartpole

Среда Cartpole является одним из самых известных классических проблем обучения с подкреплением (далее «Hello, World!» ЛР). К тележке прикреплен шест, который может двигаться по бесфрикционной дорожке. Столб начинается вертикально, и цель состоит в том, чтобы не допустить его падения, управляя тележкой.

  • Наблюдения из окружающей среды st представляет собой вектор , представляющий 4D положение и скорость тележки, а также угол и угловую скорость полюса.
  • Агент может управлять системой, принимая один из 2 -х действиях at: толкать тележки право (+1) или влево (-1).
  • Вознаграждение rt+1=1 предоставляется для каждого временного шага , что полюс остается в вертикальном положении. Эпизод заканчивается, когда выполняется одно из следующих условий:
    • полюс превышает некоторый предел угла
    • тележка движется за пределы краев мира
    • Проходит 200 временных шагов.

Цель агента является изучение политики π(at|st) так, чтобы максимизировать сумму вознаграждения в эпизоде t=0Tγtrt. Здесь γ является коэффициент дисконтирования в [0,1] , что скидки в будущем награды относительно немедленного вознаграждения. Этот параметр помогает нам сфокусировать политику, заставляя ее больше заботиться о быстром получении вознаграждений.

Агент DQN

Алгоритм DQN (Deep Q-Network) была разработана DeepMind в 2015 году удалось решить широкий спектр Атари игр (некоторые сверхчеловеческого уровня) путем объединения обучения с подкреплением и глубокие нейронные сети в масштабе. Алгоритм был разработан за счетом повышения классического алгоритма RL под названием Q-Learning с глубокими нейронными сетями и методом , называемым опытом повторе.

Q-Learning

Q-Learning основано на понятии Q-функции. Q-функция (ака значение функции состояния действия) политики π, Qπ(s,a), меры ожидаемой доходности или дисконтированной суммы вознаграждений , полученных из государственного s путем принятия мер a первой и после политики π после этого. Определим оптимальную Q-функцию Q(s,a) как максимальную отдачу , которую можно получить , исходя из наблюдений s, принимая действие a и следуя политике оптимальной в дальнейшем. Q-функция оптимальной подчиняется следующему уравнению Беллмана оптимальности:

Q(s,a)=E[r+γmaxaQ(s,a)]

Это означает , что максимальная отдача от состояния s и действия a является суммой немедленного вознаграждения r и возвращение (льгота γ) , полученное не следуя политику оптимальной после этого до конца эпизода ( то есть, максимальное вознаграждение от следующего состояния s). Ожидание вычисляется как по распределению непосредственных выгод r и возможных следующих состояний s.

Основная идея Q-Learning является использование Беллмана уравнения оптимальности как итеративное обновление Qi+1(s,a)E[r+γmaxaQi(s,a)], и можно показать , что это сходится к оптимальному Q-функции, т.е. QiQ , как i (см DQN бумага ).

Глубокое Q-обучение

Для большинства проблем, это нецелесообразно , чтобы представить Q-функции в виде таблицы , содержащей значения для каждой комбинации s и a. Вместо этого, мы обучаем функцию аппроксиматором, например нейронной сети с параметрами θ, для оценки Q-значений, т.е. Q(s,a;θ)Q(s,a). Это можно сделать путем минимизации следующей потери на каждом шаге i:

Li(θi)=Es,a,r,sρ(.)[(yiQ(s,a;θi))2] где yi=r+γmaxaQ(s,a;θi1)

Здесь yi называется целевым TD (временная разница) и yiQ называется ошибка TD. ρ представляет собой распределение поведения, распределение по переходам {s,a,r,s} , собранных из окружающей среды.

Обратите внимание , что параметры из предыдущей итерации θi1 являются фиксированными и не обновляются. На практике мы используем снимок параметров сети с нескольких итераций назад вместо последней итерации. Эта копия называется целевой сетью.

Q-Learning является алгоритмом вне политики , которая узнает о жадных политиках a=maxaQ(s,a;θ) , используя другую политику поведения для действующих в окружающей среде / сборе данных. Эта политика поведения, как правило, ϵ-greedy политик , которая выбирает жадное действие с вероятностью 1ϵ и случайным действием с вероятностью ϵ , чтобы обеспечить хорошее покрытие пространства государства действий.

Опыт Replay

Чтобы избежать вычисления полного ожидания потери DQN, мы можем минимизировать его, используя стохастический градиентный спуск. Если потери вычисляется с использованием только последней перехода {s,a,r,s}, это сводится к стандартному Q-Learning.

Работа Atari DQN представила технику под названием Experience Replay, чтобы сделать обновления сети более стабильными. На каждом временном шаге сбора данных, переходы добавляются в кольцевой буфер называется повтор буфер. Затем во время обучения, вместо того, чтобы использовать только последний переход для вычисления потерь и его градиента, мы вычисляем их, используя мини-пакет переходов, выбранных из буфера воспроизведения. Это дает два преимущества: лучшая эффективность данных за счет повторного использования каждого перехода во многих обновлениях и лучшая стабильность за счет использования некоррелированных переходов в пакете.

DQN на Cartpole в TF-Agents

TF-Agents предоставляет все компоненты, необходимые для обучения агента DQN, такие как сам агент, среда, политики, сети, буферы воспроизведения, циклы сбора данных и показатели. Эти компоненты реализованы как функции Python или графические операции TensorFlow, и у нас также есть оболочки для преобразования между ними. Кроме того, TF-Agents поддерживает режим TensorFlow 2.0, который позволяет нам использовать TF в императивном режиме.

Далее, посмотрите на учебник для обучения DQN агента на окружающую среду Cartpole с использованием TF-агентов .