Авторские права 2021 Авторы TF-Agents.
![]() | ![]() | ![]() | ![]() |
Вступление
Обучение с подкреплением (RL) - это общая структура, в которой агенты учатся выполнять действия в среде, чтобы получить максимальное вознаграждение. Двумя основными компонентами являются среда, которая представляет проблему, которую необходимо решить, и агент, который представляет алгоритм обучения.
Агент и среда постоянно взаимодействуют друг с другом. На каждом временном шаге, агент принимает действие на окружающей среду на основе его политика π(at|st), где st является текущим наблюдением из окружающей среды, и получает вознаграждение rt+1 и следующее наблюдение , st+1 из окружающей среды . Цель состоит в том, чтобы улучшить политику, чтобы максимизировать сумму вознаграждений (возврат).
Это очень общая структура, которая может моделировать различные последовательные задачи принятия решений, такие как игры, робототехника и т. Д.
Окружающая среда Cartpole
Среда Cartpole является одним из самых известных классических проблем обучения с подкреплением (далее «Hello, World!» ЛР). К тележке прикреплен шест, который может двигаться по бесфрикционной дорожке. Столб начинается вертикально, и цель состоит в том, чтобы не допустить его падения, управляя тележкой.
- Наблюдения из окружающей среды st представляет собой вектор , представляющий 4D положение и скорость тележки, а также угол и угловую скорость полюса.
- Агент может управлять системой, принимая один из 2 -х действиях at: толкать тележки право (+1) или влево (-1).
- Вознаграждение rt+1=1 предоставляется для каждого временного шага , что полюс остается в вертикальном положении. Эпизод заканчивается, когда выполняется одно из следующих условий:
- полюс превышает некоторый предел угла
- тележка движется за пределы краев мира
- Проходит 200 временных шагов.
Цель агента является изучение политики π(at|st) так, чтобы максимизировать сумму вознаграждения в эпизоде ∑Tt=0γ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+γmaxa′Q∗(s′,a′)]
Это означает , что максимальная отдача от состояния s и действия a является суммой немедленного вознаграждения r и возвращение (льгота γ) , полученное не следуя политику оптимальной после этого до конца эпизода ( то есть, максимальное вознаграждение от следующего состояния s′). Ожидание вычисляется как по распределению непосредственных выгод r и возможных следующих состояний s′.
Основная идея Q-Learning является использование Беллмана уравнения оптимальности как итеративное обновление Qi+1(s,a)←E[r+γmaxa′Qi(s′,a′)], и можно показать , что это сходится к оптимальному Q-функции, т.е. Qi→Q∗ , как i→∞ (см DQN бумага ).
Глубокое Q-обучение
Для большинства проблем, это нецелесообразно , чтобы представить Q-функции в виде таблицы , содержащей значения для каждой комбинации s и a. Вместо этого, мы обучаем функцию аппроксиматором, например нейронной сети с параметрами θ, для оценки Q-значений, т.е. Q(s,a;θ)≈Q∗(s,a). Это можно сделать путем минимизации следующей потери на каждом шаге i:
Li(θi)=Es,a,r,s′∼ρ(.)[(yi−Q(s,a;θi))2] где yi=r+γmaxa′Q(s′,a′;θi−1)
Здесь yi называется целевым TD (временная разница) и yi−Q называется ошибка TD. ρ представляет собой распределение поведения, распределение по переходам {s,a,r,s′} , собранных из окружающей среды.
Обратите внимание , что параметры из предыдущей итерации θi−1 являются фиксированными и не обновляются. На практике мы используем снимок параметров сети с нескольких итераций назад вместо последней итерации. Эта копия называется целевой сетью.
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-агентов .