Глубокое обучение с подкреплением — это результат сочетания двух хорошо известных подходов к машинному обучению: Глубокое обучение и Обучение с подкреплением. Его главная цель — создать единого агента, способного справиться с любой задачей человеческого уровня, но добиться на ней сверхчеловеческих результатов. Известным ИИ, реализующим эту технику, является AlphaGo, который в марте 2016 года впервые в истории победил игрока в го с 9 данами Ли Седоля со счетом 4:1, играя против него без форы. Год спустя, это эволюция, мастеру AlphaGo даже удалось победить Ке Джи, который на момент матча занимал первое место среди всех игроков-людей во всем мире.

Прежде чем двигаться дальше, давайте кратко рассмотрим, что такое обучение с подкреплением.

Обучение с подкреплением

Обучение с подкреплением — это метод машинного обучения, который решает проблему агента, обучающегося действовать в окружающей среде, чтобы максимизировать скалярную сигнал вознаграждения. В отличие от того, как работает машинное обучение с учителем, агенту никогда напрямую не говорят о лучшем действии, но он должен изучить его путем испытаний и накопления опыта. Чтобы было понятно, давайте в качестве примера возьмем игру Atari Pacman.

В начале игры Мистер Пакман ничего не знает об окружающей его среде: он понятия не имеет, что какие-то подлые призраки бродят по карте, ожидая, чтобы украсть его жизнь, он даже не знает, что есть точки на карте. путь его основной способ увеличить свой счет. Еще более загадочными для него были бы четыре усиления, расположенные по краям карты, используемые для отпугивания призраков и обретения временной непобедимости против них. После первого эпизода, случайным образом прогуливаясь по лабиринту, он случайно обнаруживает, что точки для еды заставляют его повышать свой счет, таким образом, он узнает, что их поедание - это хорошее действие, и увеличивает вероятность совершения подобных действий в будущем. Через дюжину шагов мистер Пакман случайно попадает в одного из призраков, что приводит к неминуемой смерти. Наш агент только что узнал, что сталкиваться с призраками — плохой поступок, и с этого момента он постарается больше не повторять ту же ошибку. Мы надеемся, что после нескольких испытаний мистер Пакман изучит правила игры и, возможно, станет достаточно умным, чтобы играть, как люди. Теперь вопросы: может ли он сделать лучше, чем это? Сможет ли он достичь сверхчеловеческих способностей?

Чтобы найти ответы, давайте углубимся в волшебный мир глубокого обучения с подкреплением и посмотрим, как мы можем превратить нашего наивного мистера Пакмана в ненасытную машину с точками. Его будут бояться даже призраки!

Q-обучение

Во время обучения агенту (в нашем примере это Mr-Pacman) предоставляется наблюдение S t за окружающей средой (буквально скриншот из игры) для каждого временного шага t=0,1, 2,… и он должен ответить действием A t (движение влево, вправо, вверх, вниз). После этого среда предоставляет следующее вознаграждение R t+1 (счет после движения в выбранном направлении), следующее состояние S t+1 (еще один скриншот из игры) и коэффициент дисконтирования γ t+1. Эти пять компонентов составляют набор {S, A, T, t, γ}, где:

  • S — конечное множество состояний.
  • A — конечное множество действий.
  • T(s, a, s’) = P[St+1=s’ | St=s, At=a] — стохастическая функция перехода. Он представляет собой вероятность перехода в состояние s, выполняющего действие a, находясь в состоянии s.
  • r(s, a) = E[Rt+1| St=s, At=a] — функция вознаграждения. Это ожидание всех возможных вознаграждений, которые можно получить, выполнив действие a в состоянии s.
  • γ ∈ [0, 1] — коэффициент дисконтирования, который балансирует между важностью немедленного и последующего вознаграждения.

Что касается агента, действия выбираются в соответствии с политикой π (поведение агента), которая определяет распределение вероятностей по действиям для каждого состояния (вероятность выбора любого из ходов в соответствии с текущей ситуацией ). Итак, начиная с состояния S t, обнаруженного в момент времени t, мы определяем дисконтированное значение как:

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

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

Я вижу будущее…

Мистер Пакман

Цель агента — максимизировать ожидаемую дисконтированную стоимость, найдя хорошую политику. При обучении с подкреплением на основе ценности агент изучает оценку ожидаемой дисконтированной стоимости при соблюдении политики π и начинает исследование из заданного состояния s. Затем состояние дисконтированного значения v π, полученное в соответствии с политикой π (ожидаемое количество очков, которое мистер Пакман наберет, начиная с состояния s и продолжая играть в соответствии с определенной политикой π), определяется как :

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

Функция Q измеряет ценность выбора определенного действия в определенном состоянии. Вышеупомянутая Q-функция также может быть вычислена с использованием следующей рекурсивной формулы:

Обычный способ получения новой политики из функции значения состояния-действия состоит в том, чтобы действовать ε-жадно по отношению к значениям действия. Это соответствует выполнению действия с наибольшим значением (жадное действие) с вероятностью (1−ε), а в противном случае — равномерному случайному действию с вероятностью ε. Политики такого типа используются для введения формы исследования: путем случайного выбора действий, которые являются субоптимальными в соответствии с его текущими оценками, агент может обнаружить новые стратегии и исправить свои оценки, когда это необходимо.

Тогда оптимальное значение Q равно Q*( s, a)=max πQ π( s, a ), что является лучшим значением Q, которое мы можем получить из состояния s и действия a при соблюдении оптимальной политики. Учитывая природу двух функций v и Q, мы имеем, что при детерминированной политике a=argmax a'∈AQ ∗( s, a') получается, что v∗( s)=max aQ ∗( s, a ). Отсюда также следует, что оптимальная функция Q удовлетворяет уравнению Беллмана:

То есть для каждого состояния агент продолжает играть, всегда выбирая наилучшее возможное действие. Таким образом, Q ∗( s, a) — это политика, которую мы хотели бы, чтобы наш агент мог аппроксимировать. Для этого мы представим новый тип сети под названием Глубокая Q-сеть.

…И это позволяет мне выбрать наилучший возможный ход.

Мистер Пакман

Глубокие Q-сети

Несмотря на то, что мы могли бы использовать динамическое программирование для изучения значения Q для всех возможных пар состояние-действие, на практике, учитывая огромное бесчисленное количество возможных состояний и действий, трудно получить оценки значения Q для каждой пары состояние-действие. независимо. Таким образом, при глубоком обучении с подкреплением мы обучаем глубокую нейронную сеть, также известную как глубокая Q-сеть (DQN), для получения оценки Q-значения Q( s , a,θ), где θ — параметры сети. Его архитектура состоит из первой сверточной сети, которая принимает в качестве входных данных состояние S t и учится обнаруживать в нем все более абстрактные признаки. Удивительно, но входное состояние, которое передается в качестве входных данных в сеть, представляет собой просто необработанные пиксели из текущего кадра на игровом экране. Затем плотный классификатор сопоставляет признаки высокого уровня, извлеченные из сверточной сети, с выходным слоем с одним нейроном на действие, чтобы аппроксимировать соответствующее значение действия.

Параметры сети обучаются градиентным спуском, чтобы минимизировать некоторую подходящую функцию потерь:

где t — временной шаг, случайно выбранный из памяти воспроизведения. Память воспроизведения — это своего рода набор данных, в котором хранится прошлый опыт агента, обычно последний миллион, где один опыт определяется как кортеж ( s, a, r, s'), где s указывает на состояние, a — это действие, предпринятое в этом состоянии, r — это reward получено, а s' представляет состояние, которое последовало за s, когда агент предпринял действие a. Таким образом, агент не учится, просто наблюдая, как мистер Пакман последовательно перемещается по лабиринту, а вместо этого может выбирать случайный прошлый опыт из своего хранилища и воспроизводить его так, чтобы он может использовать эти воспоминания, чтобы научиться действовать лучше в будущем. Метод воспроизведения опыта не позволяет сети учиться на сильно коррелированных событиях, которые нарушают i.i.d. (независимое и одинаково распределенное) предположение о многих популярных алгоритмах на основе стохастического градиента, а также предотвращение быстрого забывания, возможно, редких событий, которые могут быть полезны позже.

Градиент потерь затем распространяется обратно только на параметры θ онлайн-сети (которая также используется для выбора действий). Термин θ представляет собой параметры целевой сети, периодической копии онлайн-сети, которая не оптимизирована напрямую. Параметры онлайн-сети копируются в параметры целевой сети через каждые τ шагов и остаются фиксированными на всех остальных шагах. В целом значение, рассчитанное целевой сетью, имеет большую точность, поскольку она имеет доступ по крайней мере к первому члену вознаграждения для расчета значения Q, поэтому приведенную выше формулу можно рассматривать как разницу между истинным Q- значение и его текущая оценка. Следовательно, конкретная формула обновления градиента:

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

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

Сильнее, чем вчера.

Мистер Пакман

Двойные глубокие Q-сети

В глубоком Q-обучении у нас есть оператор max, использующий одни и те же значения как для выбора, так и для оценки действия. Это повышает вероятность выбора завышенных значений, что приводит к чрезмерно оптимистичным оценкам значений. Чтобы предотвратить это, мы можем вычислить реальное Q-значение функции потерь, отделив выбор действия от оценки с помощью нового метода, называемого Двойное Q-обучение:

Таким образом, мы делегируем выбор действия онлайн-сети θ, а затем используем оператор argmax для выбора действия с наилучшей оценкой. Целевая сеть будет нести ответственность только за создание значения Q с учетом действия, принятого онлайн-сетью. Этот метод особенно полезен, чтобы избежать тех ситуаций, когда несоответствие между целевой сетью и онлайн-сетью заставляет их рекомендовать совершенно разные действия при одном и том же состоянии, тем самым уменьшая вредные переоценки и улучшая производительность.

Повтор приоритетного опыта

В исходном методе воспроизведения выборки DQN воспринимаются равномерно из буфера воспроизведения. В идеале мы хотим чаще пробовать те переходы, из которых можно многому научиться. Например, некоторые переживания могут быть более или менее удивительными, избыточными или релевантными для задачи, чем другие, более того, есть некоторые переходы, которые могут быть не сразу полезны агенту, но могут стать таковыми позже, когда его компетентность возрастет. Нам не нужен эксперт, чтобы понять, что наш мистер Пакман может учиться быстрее, проигрывая эти воспоминания в окружении призраков с разных сторон, а не бегая по пустому пути. Следовательно, воспроизведение с приоритетом опыта отбирает переходы с вероятностью p t относительно последней обнаруженной абсолютной ошибки TD:

Показатель степени α определяет, насколько используется расстановка приоритетов, при этом α = 0 соответствует однородному случаю, то есть какое значение мы хотим придать смещению выборки. Нам также необходимо ввести некоторые веса ​​выборки по важности, которые предназначены для компенсации того факта, что теперь мы преднамеренно загружаем в сеть данные, которые вызовут аномально большие обновления градиента и, следовательно, изменят решение, которое будут оценивать оценки. сходятся к:

В типичных сценариях обучения с подкреплением беспристрастный характер обновлений наиболее важен ближе к конвергенции в конце обучения. Поэтому мы используем гибкость отжига величины коррекции выборки важности с течением времени, определяя график для показателя степени β, который достигает 1 (полная компенсация) только в конце обучения. На практике мы линейно отжигаем β от его начального значения β 0 до 1. Наконец, формула для обновления весов θ онлайн-сети будет выглядеть так:

Изучение нашего прошлого никогда не будет пустой тратой времени.

Мистер Пакман

Дуэльные сети

Напомним, что v π — это состояние дисконтированной стоимости, полученное в соответствии с политикой π, и определяется как:

и представляет ценность пребывания в определенном состоянии. Теперь определим другую важную величину, функцию преимущества a π, связывающую функции ценности и Q:

Функция преимущества вычитает значение состояния из функции Q, чтобы получить относительную меру важности каждого действия. Идея дуэльной архитектуры явно разделяет представление значений состояния v π и преимуществ действий, зависящих от состояния, a π. Архитектура дуэлей состоит из двух потоков, один из которых представляет v π, а другой представляет π, при этом используется общий модуль изучения сверточных признаков. Наконец, два потока объединяются через специальный уровень агрегирования для получения оценки функции Q значения состояния-действия.

На приведенном выше рисунке красные слои разделены полностью связанными, а остальные представляют собой общие сверточные слои. Под дуэльной сетью следует понимать единую Q-сеть с двумя потоками, которая заменяет популярную однопотоковую Q-сеть в существующих алгоритмах, таких как Deep Q-сети. Интуитивно цель дуэльной архитектуры состоит в том, чтобы узнать, какие состояния являются (или не являются) ценными, без необходимости изучать эффект каждого действия для каждого состояния.

Учитывая его структуру, в дуэльной сети мы хотим, чтобы один поток полносвязных слоев выдавал скаляр v( s;θ,β), а другой поток выводил |А| вектор размеров a( s, a;θ,α). Здесь θ обозначает параметры сверточных слоев, а α и β — параметры двух потоков полносвязных слоев. Используя определение преимущества, у нас может возникнуть соблазн построить агрегатный модуль следующим образом:

К сожалению, это наивное решение неэффективно, потому что сеть не поощряется к независимой оптимизации V и A. Чтобы решить эту проблему, мы можем заставить оценщик функции преимущества иметь преимущество ближе к нулю при выбранном действии, чтобы Q( s,a) было приблизительно равно v( s). :

Эта альтернативная формула улучшает идентифицируемость сети в том смысле, что при заданном Q мы можем однозначно восстановить v и a, тем самым повышая производительность при непосредственном использовании уравнения.

Многоступенчатое обучение

Ранее мы определили дисконтированное значение G t как:

Он представляет собой дисконтированную сумму будущих вознаграждений, получаемых агентом, начиная с определенного состояния s. На практике это значение рассчитывается как:

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

Здесь G t:t+n означает, что для первых n−1 состояний действия и награды выбираются в соответствии с политикой поведения с дисконтированной оценкой γ nQ t+n-1(s t+n ,a t+n) вместо других будущих терминов. Алгоритмы такого типа также известны как атомарные многошаговые алгоритмы, так как они используют преимущества самозагружаемых последовательностей переходов для повышения точности целевого значения. Помимо повышения эффективности обучения, многошаговые алгоритмы с соответствующим образом настроенным n часто приводят к более быстрому обучению.

Шумные сети

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

Вместо этого в Noisy Nets мы позволяем сети изучать объем исследований, необходимый ей самой. Он работает, воздействуя на свои веса и смещения, вводя некоторый шум в саму сеть. В нормальном линейном слое нейронной сети выходное значение вычисляется как:

где x — это входные данные слоя, w — весовая матрица, а b — смещение. Соответствующий шумовой линейный слой определяется как:

где µ w+σ w⊙ε w и µ b+σ b⊙ε заменяют w и b соответственно. Параметры µ w , σ w , µ b , σ могут быть изучены, тогда как ε w и ε являются случайными величинами шума с нулевым средним значением в соответствии с распределением Гаусса, а ⊙ представляет собой поэлементное умножение. Обычный проигрыш нейронной сети заворачивается ожиданием над шумом ε:

но, используя приближение Монте-Карло, мы можем вычислить градиенты, используя одну выборку на каждом шаге оптимизации.

В результате агент будет последовательно рекомендовать действия, которые он не собирался предпринимать, таким образом гарантируя, что исследования и решения о действиях будут основаны только на самом высоком выходном значении Q. Из-за введения шума агент может научиться игнорировать этот шум, постепенно устанавливая σ до 0 с помощью формы самоотжига. Тем не менее, этот метод имеет тенденцию естественным образом стабилизироваться выше 0, обеспечивая по крайней мере некоторый уровень исследования на время обучения (как это было в случае с жадной политикой).

Распределительный RL

Обычно. DQN изучает скалярное значение, представляющее, насколько хорошо он находится в определенном состоянии. Однако модель также может научиться аппроксимировать распределение доходности, а не просто изучать ожидаемую доходность. Для этого было предложено моделировать такие распределения с массами вероятностей, размещенными на дискретной основеz, где z — вектор с N атомами, где N — положительная целое число, определяемое:

На этом носителе определено аппроксимирующее распределение dt в момент времени t с массой вероятности p θi(S t, A t) на каждом атоме i, такое, что dt= ( z, p θ(S t, A t)). Затем цель состоит в том, чтобы обновить θ таким образом, чтобы это распределение точно соответствовало фактическому распределению доходности.

Давайте проясним эту концепцию на простом примере. Предположим, что ожидаемая доходность стандартного DQN будет в диапазоне (0, 200) и, следовательно, установим V min=0 и V max=200. При поддержке 51 атома первый элемент будет иметь значение 0, второй — 4 и т. д., при этом последний будет иметь значение 200. Следовательно, вероятностная масса первого атома, т. е. p θ1(S t, A t) будет вероятностью того, что возвращенное значение Q будет равно 0, масса вероятности на втором атоме, а именно p θ2(S t, At), будет вероятностью того, что Q -value равно 4 и так далее. Поскольку основное распределение dt является категориальным распределением, мы имеем, что сумма массовых вероятностей равна 1. Q-значение соответствующего распределения можно просто восстановить, умножив каждую вероятностную массу на ее атом и вычислив их сумму:

Чтобы узнать массы вероятностей для данного состояния S t и действия At , распределение доходов при оптимальной политике π ∗ должно соответствовать целевому распределению, определяемому путем взятия распределения для следующего состояния S t+1 и действия At+ 1=π ∗(S t+1), свернув его к нулю в соответствии со значением γ, сдвинув его на распределение наград и спроецировав на фиксированную опору z. Рисунок ниже наглядно поясняет вышеупомянутые шаги.

Затем получается распределительный вариант Q-обучения, сначала создавая новую поддержку для целевого распределения, а затем минимизируя расхождение Кулбека-Лейблера между распределением d t и целевым распределением d t '.

Напомним, что дивергенция Кульбека-Лейблера используется для измерения того, насколько близко друг к другу находятся два распределения:

Где Φ z — L2-проекция целевого распределения на неподвижную опору z, а q θ'(S t+1, a) = z Tp θ'(S t+1, a) есть среднее значение действия – это состояние S t+1. Как и в обычном нераспределенном случае, θ’ — это параметры целевой сети.

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

Радуга

Я иду…

Супер-Мистер Пакман

Подводя итог, мы улучшили стандартный алгоритм Q-обучения следующими 7 методами:

  • Глубокая Q-сеть.
  • Двойная глубокая Q-сеть.
  • Воспроизведение опыта с приоритетом.
  • Дуэльная сеть.
  • Многоступенчатое обучение.
  • Шумные сети.
  • Распределительный РЛ.

Теперь мы можем, наконец, превратить нашего мистера Пакмана в Супер-мистера Пакмана, обновив его с помощью вышеупомянутых компонентов. Вместо того, чтобы называть его Noisy Net N-step Priority Double Dueling Deep Q-Network, Rainbow — это имя, которое исследователи приписывают агенту, объединяющему все эти методы. На рисунке выше мы видим, как Rainbow превосходит все предыдущие сети в тесте из 57 игр Atari.

Знаете, почему меня зовут Радуга?

Потому что призраки исчезают, когда я появляюсь.

Супер-Мистер Пакман

После этого длинного чтения давайте отдохнем и посмотрим на нашего Супер-Мистера Пакмана в действии! Можете ли вы сделать лучше, чем он?

использованная литература

Первоначально опубликовано на http://davideliu.com 13 января 2020 г.