В 2013 году DeepMind опубликовала первую версию своей Deep Q-Network (DQN), компьютерной программы, способной работать на человеческом уровне в ряде классических игр для Atari 2600. Как и человек, алгоритм играл на основе его видения экрана. Начиная с нуля, он обнаружил стратегии игрового процесса, которые позволяют ему соответствовать (а во многих случаях даже превосходить) человеческие критерии. За прошедшие с тех пор годы исследователи внесли ряд улучшений, которые увеличивают производительность и решают задачи быстрее, чем когда-либо прежде. Мы работали над внедрением этих усовершенствований в Keras - высокодоступной среде машинного обучения с открытым исходным кодом - и в этом посте мы подробно рассмотрим, как они работают и как их можно использовать для освоения г-жи Пак- человек.

Основы Deep Q-Networks

DQN и подобные алгоритмы, такие как AlphaGo и TRPO, подпадают под категорию обучения с подкреплением (RL), подмножества машинного обучения. В обучении с подкреплением агент существует в среде и стремится максимизировать вознаграждение. Он выполняет действие, которое изменяет среду и дает ей вознаграждение, связанное с этим изменением. Затем он смотрит на свое новое состояние и останавливается на своем следующем действии, повторяя процесс бесконечно или до тех пор, пока среда не завершится. Этот цикл принятия решений более формально известен как марковский процесс принятия решений (MDP).

Легко увидеть, как игры Atari, такие как Ms. Pac-man, вписываются в структуру MDP. Игрок смотрит на игровой экран и выбирает из различных кнопок и положений джойстика, пытаясь увеличить свой счет. Но эта простота может скрыть сложную задачу, которую любой, кто когда-либо играл в видеоигры, вероятно, считал само собой разумеющимся, а именно процесс принятия мгновенных решений на основе одной из почти бесконечных комбинаций пикселей, которые могут появиться на экране в любой момент времени. и тот, с которым вы вряд ли когда-либо сталкивались раньше. Если это было недостаточно сложно, видеоигры технически частично наблюдаемы MDP в том смысле, что вы вынуждены делать выбор на основе косвенного представления игры (экрана), а не кода. / memory, скрывая некоторую информацию, необходимую для принятия полностью осознанного решения. К счастью для нас, такие видеоигры, как Pac-man, предоставляют два полезных упрощения: частоту кадров и контроллеры. Конечное количество кнопок и положений джойстика позволяет нам сопоставить это пространство наблюдения с дискретным и управляемым пространством действий, умственная функция, которая еще больше упрощается, когда вы понимаете, что ее не нужно выполнять постоянно, потому что вы можете нажать только одну кнопку для каждый кадр (большинство агентов RL идут дальше этого и принимают новые решения только каждые 3 или 4 кадра). Тогда задача трудная, но поддающаяся определению: как использовать наш игровой опыт, чтобы принимать решения, которые увеличивают счет, и обобщать этот процесс принятия решений на новые позиции, в которых мы никогда не были раньше?

Vanilla DQN берет на себя мисс Пакман

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

Эти выходные значения являются лучшим предсказанием агента о вознаграждении, которое он ожидает, если он предпримет это действие. Этот подход «от состояния к прогнозируемому вознаграждению» известен как обучение на основе ценностей и основан на функции ценности действия Q (s, a), представляющей общую ценность выполнения действия a в состоянии s, которое представляет собой сумму будущих вознаграждений r, скорректированных с учетом коэффициента скидки gamma , указывающий, как далеко агент должен планировать будущее. Затем записывается оптимальная стратегия:

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

Стоит отметить, что именно эти архитектурные решения классифицируют DQN как внеполитический алгоритм без моделей . Без модели, потому что он учится предсказывать ценность, связанную с позицией, но не пытается построить модель внутренней работы своей среды, чтобы делать прогнозы относительно следующего состояния, которое он увидит, и выключения -policy, потому что его обучающие примеры генерируются прошлой версией самого себя (и, следовательно, прошлой версией его политики принятия решений).

Есть еще одна важная деталь, о которой нужно избавиться, - это проблема разведки. Внутри агентов Маркова ведутся нескончаемые споры о том, лучше ли рисковать и исследовать новые идеи или использовать то, что уже известно. Представьте, что произойдет, если алгоритм всегда будет нажимать кнопку, которая, по его мнению, приведет к наивысшей награде. Скорее всего, он будет выполнять одно и то же действие каждый раз, никогда не пробуя ничего другого и, следовательно, никогда больше не будет учиться и улучшаться. Например, он может с первой же попытки узнать, что движение прямо из начальной зоны может принести ему пару очков, а затем просто продолжать идти вправо, независимо от того, сколько призраков или стен встанет на его пути; он никогда не экспериментировал с уходом влево и, следовательно, не имеет возможности точно оценить вознаграждение, которое оно могло бы получить, сделав это. Оригинальный DQN решает эту проблему произвольным, но удивительно эффективным способом. Мы инициализируем переменную epsilon значением 1.0. Для каждого шага мы генерируем случайное число от 0 до 1. Если это число меньше эпсилон, мы выполняем действие полностью случайным образом, независимо от того, что агент должен сказать о значении Q этого действия. Поскольку эпсилон равен 1, мы делаем это в 100% случаев. Но по мере обучения мы отжигаем эпсилон примерно до 0,1, что означает, что мы предпринимаем наилучшие действия в 90% случаев и исследуем новый, случайное направление остальные 10%. Интересно, что на практике мы никогда не позволяем epsilon достичь 0 (даже во время тестирования / оценки, где мы обычно используем .05); это гарантирует, что г-жа Пакман никогда не сможет застрять в углу или остановиться на неопределенное время. Этот метод известен как эпсилон-жадный.

Теперь, когда мы переходим к экспериментам / коду, вероятно, самое время упомянуть, что все эти результаты (включая файлы весов для всех обученных моделей) и сценарии, которые их сгенерировали, можно найти на «GitHub этого проекта. репо ». Внутренняя работа алгоритма DQN реализована в библиотеке с открытым исходным кодом «keras-rl». Однако может пройти некоторое время, прежде чем более продвинутые методы, над которыми мы работаем и будем описывать ниже, будут одобрены для объединения в основную версию. А пока вы можете получить к ним доступ на «нашей вилке».

Что нужно знать о DQN (и алгоритмах RL в целом), так это то, что они неэффективны и дороги в обучении. Стандартный подход, описанный в литературе по DQN, - это запустить 200 миллионов тренировочных сессий. Это примерно 930 часов игрового процесса со скоростью человека или примерно 20 дней обучения на одном графическом процессоре P4000 (по крайней мере, для последнего варианта DQN, к которому мы дойдем). У нас нет ресурсов, чтобы реализовать что-то подобное для каждой версии алгоритма. Вместо этого мы решили провести эти сравнительные эксперименты для 10 миллионов кадров (достаточно, чтобы выделить несоответствия) и обучить наш последний, наиболее эффективный агент для более расширенного прогона на 40 миллионов шагов.

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

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

Двойное Q-Learning

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

Давайте посмотрим на игровой процесс и посмотрим, как он работает.

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

В 2015 году «van Hasselt et al.» применил двойное q-обучение к DQN, модификацию, которая улучшила производительность в некоторых играх. Обратите внимание, что в приведенной выше функции потерь мы используем целевую сеть как для вычисления значений q для каждого действия в следующем состоянии, так и для выбора, какое из этих действий мы хотим предпринять (самое высокое). Оказывается, это может привести к некоторым проблемам с завышением оценки, особенно когда несоответствие между целевой сетью и онлайн-сетью заставляет их рекомендовать совершенно разные действия при одном и том же состоянии (в отличие от одного и того же действия с немного разными значениями q). Чтобы решить эту проблему, мы снимаем с целевой сети ответственность за определение наилучшего действия; он просто генерирует значения Q, и мы позволяем онлайн-модели решать, что использовать. Более формально Double DQN генерирует целевые значения в соответствии с:

Дуэльная архитектура

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

Воспроизведение приоритетного опыта

В 2016 году «Wang et al.» опубликовал архитектуру дуэльной сети, которая разделяет нейронную сеть на два потока, которые имеют общую сверточную базу, по одному для оценки каждой функции.

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

Где альфа и бета представляют параметры потоков преимущества и ценности соответственно. Теперь сеть может использовать информацию о выбранном ею действии, чтобы довести функцию преимущества до 0, так что Q (s, a) приблизительно равно V (s).

Когда люди оглядываются назад, чтобы учиться на своих ошибках, мы оптимизируем процесс, чтобы проводить время там, где это больше всего необходимо. Когда вы проваливаете промежуточный экзамен и решаете, что вам нужно добиться большего в финале, вы входите и конкретно смотрите на вопросы, которые вы ошиблись; вы не просматриваете страницы или просто проверяете четность, кратную 3. До сих пор наш агент производил выборку из своего буфера воспроизведения равномерно наугад. В контексте Pac-Man это означает, что нашему агенту представлены кадры, на которых он двигался по прямой без врагов в поле зрения, гораздо чаще, чем один раз, когда он вошел на четырехсторонний перекресток с призраками с трех сторон, выбрал неправильно, и заплатил цену. Но что, если бы он мог извлечь уроки из опыта, в котором он наиболее ошибочен?

Приоритетные двойные дуэли против Пакмена

В статье «Schaul et al.» От 2016 года предлагается решение, известное как приоритетное воспроизведение опыта (PER). В PER мы используем дополнительную структуру данных, в которой фиксируется приоритет каждого перехода. Затем опыт отбирается пропорционально их приоритетам:

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

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

Эти веса важности контролируются гиперпараметром beta, который определяет, насколько агрессивно мы хотим их компенсировать. Это бета-значение обычно отжигается на протяжении всего цикла, возрастая от инициализации ~ 0,6 до 1,0 (полная компенсация). Даже в этом случае агенты, оснащенные PER, обычно используют более низкие темпы обучения (обычно около 0,25x), чтобы защититься от катастрофического коллапса.

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

Шумные сети для исследований

Хотя их производительность одинаково низка во время тяжелой фазы исследования первых нескольких тысяч эпизодов, PDD начинает отрываться на отметке 2k эпизодов. И хотя этот разрыв может показаться трудным отличить, видео с игровым процессом показывает лучшую историю:

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

Ранее мы говорили о споре между разведкой и эксплуатацией и о несколько произвольном решении под названием epsilon Q greedy. Проблема с этим подходом заключается в том, что он полагается на запланированный гиперпараметр. Как мы узнаем, сколько исследований нам потребуется, чтобы решить такую ​​игру, как «Мисс Пакман»? Единственный реальный способ узнать это - протестировать целую кучу разных значений, это трудоемкий и дорогостоящий процесс. Было бы намного лучше, если бы агент мог научиться управлять своим исследованием так же, как он учится контролировать остальную часть своего принятия решений - посредством градиентного спуска. В 2017 году «Fortunato et al.» выпустила решение, которое сделало это возможным: Noisy Networks.

N-ступенчатая TD

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

В частности, Noisy Networks заменяет классификаторы Dense в модели слоями Noisy Dense, определяемыми операцией:

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

Поскольку шумовая инъекция умножается на этот член поэлементно, агент может научиться игнорировать шум, установив сигму на 0. Интересно отметить, что этот метод имеет тенденцию естественным образом достигать нижнего предела выше 0, точно так же, как мы спроектировали наше эпсилон-расписание для - обеспечение хотя бы некоторого уровня исследования на время обучения.

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

Окончательный результат

становится это:

в попытке подражать этому:

Где n - гиперпараметр, обычно равный 3 или 5. Идея здесь состоит в том, чтобы улучшить целевую точность за счет начальной загрузки из последовательностей переходов - метода, который находится где-то в середине временного различия - ›Монте Карло спектр. Подробнее об этом вы можете прочитать в «Главе 7 этого учебника».

Еще раз, лучшая часть этих изменений заключается в том, что мы можем объединить их в один и тот же сверхзаряженный алгоритм, предположительно названный NoisyNet N-step Prioritized Double Dueling Deep Q-Network, который действительно скатывается с языка. Когда DeepMind добавила еще одну вещь к этому в конце прошлого года, они начали называть это Радуга, либо потому, что они бросили полотенце на всю эту штуку с именами, либо потому, что группа докторов наук сидела в конференц-зале, глядя на цвета на этой диаграмме, и произошел досадный провал в творчестве:

Что «видит» DQN?

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

Вот кривая обучения для нашего последнего варианта DQN, построенная по сравнению с предыдущими итерациями:

Эти последние несколько расширений имеют большое значение для улучшения как общей производительности, так и эффективности выборки - с победой по проводам над обеими предыдущими версиями. Последнее напоминание: 10 миллионов шагов недостаточно, чтобы сказать что-либо определенное об общей производительности, когда дело доходит до DQN. Тем не менее, все документы, на которые мы ссылались / реализовывали, показывают аналогичные результаты, экстраполированные на гораздо большие временные рамки, а наши более короткие эксперименты показывают, что иерархия сохраняется даже при более управляемых тренировках.

Мы оставили NoisyNstepPDD работающим всего на 40 миллионов шагов. А теперь посмотрим, как он играет.

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

DQN, играющие в Atari, определяют экран с помощью сверточной нейронной сети (CNN) - серии сверточных слоев, которые учатся обнаруживать релевантную игровую информацию из беспорядка значений пикселей. К сожалению, мы не даем ему возможности учиться прямо с игрового экрана - вычислительные ресурсы требуют некоторых сокращений. Вместо этого мы предварительно обрабатываем необработанный ввод, уменьшая исходный размер до более управляемого 84 x 84 и конвертируя его в оттенки серого.

Куда это дальше?

Конечно, это означает, что мы отбрасываем информацию о цвете, которая могла бы быть полезной. Например, у каждого цветного призрака в Pac-man есть собственный ИИ, и опытные игроки могут использовать эти различия, чтобы спрогнозировать, куда они пойдут, но вряд ли наш агент вообще сможет отличить их друг от друга. Это сделано для того, чтобы отрезать два канала изображения RGB, что значительно снижает нагрузку на нашу CNN. Также обратите внимание, что операция изменения размера даже удаляет удалить расположение точек слева и справа от начального поля призраков; К счастью, они обычно подбираются случайно, когда мисс Пакман движется к любому краю лабиринта. Эти шаги предварительной обработки являются довольно стандартной практикой для домена Atari RL, поэтому мы решили продолжить их здесь, даже если они не оптимизированы для этой конкретной игры.

Мы заполняем теперь пустое третье измерение стопкой из 4 последних кадров; это позволяет агенту понять скорость и направление каждого спрайта.

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

Все наши реализации используют архитектуру CNN DeepMind 2015 года, состоящую из трех уровней. Первый учится распознавать 32 низкоуровневые функции. Концептуально мы могли бы ожидать, что один канал функции будет отслеживать оставшиеся точки, один - для отслеживания призраков, другой - для отслеживания игрока и т. Д. Получив доступ к выходным данным слоя и наложив его активации на самый последний кадр во входном стеке, мы можем получить ощущение того, что они на самом деле изучают. Наверное, самое удивительное, что мы обнаружили, - это система слежения за привидениями и игроками нашего агента; вместо того, чтобы использовать один канал для постоянного наблюдения за призраками, а другой - для определения местоположения мисс Пакман в лабиринте, наш агент освоил подход «радар за комитетом», при котором канал может отслеживать одного призрака в определенное время. время, и даже переключать призраков в зависимости от кадра.

В этом примере каналы 13 и 16, кажется, отслеживают отдельных призраков, в то время как канал 22 отслеживает игрока, а канал 1 видит сразу несколько спрайтов. Система далека от совершенства, так как, похоже, нет карты функций, которая улавливает призрака рядом с центральной стартовой зоной. Этот призрак, вероятно, будет идентифицирован в будущем кадре, и значительная часть успеха агента в каждом конкретном эпизоде, похоже, связана с тем, как долго длятся эти «слепые пятна».

Есть и другие каналы, которые улавливают очень специфические особенности, даже если людям сложно представить себе, что это за особенности:

Еще менее полезны каналы общего шума, количество которых все еще неутешительное после 40-метровых шагов. Скорее всего, это прояснится по мере продолжения обучения: зашумленные каналы сузятся, чтобы больше походить на 11 и 28 сверху, в то время как 11 и 28 сами могут развиться в более полезные представления.

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

Здесь агент, расположенный в (20, 30), приближается к перекрестку и должен решить, куда идти дальше. Тепловая карта показывает, что внимание агента сосредоточено на левой части экрана и довольно плотно сгруппировано вокруг оставшихся точек. Он также замечает призраков в точке (25,40) и вверху в центре, а также меньшее скопление точек в дальнем правом углу. В итоге он решает идти вправо и вверх, что было бы эквивалентно перемещению джойстика Atari по диагонали между этими двумя направлениями. Интересно, что наш агент, кажется, предпочитает эти промежуточные входы четырем стандартным направлениям, вероятно потому, что стены лабиринта обычно делают одно из этих направлений недействительным, поэтому в конечном итоге оказывается более эффективным попробовать оба сразу. Также может быть, что это позволяет г-же Пакман закруглять узкие углы без идеального ввода кадра (игра заставляет ее двигаться вправо до тех пор, пока в первом кадре нет стены над головой, а затем обычно заводит ее), полезная тактика для агент, который принимает решение только раз в 4 кадра.

В этом примере, начиная с конца первого уровня, мы получаем некоторое эмпирическое доказательство того, что мы подозревали, когда впервые добавили PER, - что агент способен искать одиночные точки. Он знает, что там безопасно от трех призраков слева, и сосредоточен только на последней оставшейся точке.

Хотя внешне их стратегии принятия решений могут быть схожими, важно помнить, что DQN обрабатывает информацию не так, как человек. Он учится распознавать определенные группы пикселей как «хорошие» или «не очень хорошие». Он не может избежать призраков, потому что он даже не знает, что такое привидение; он учится избегать кластеров чисел в матрице, которые похожи на кластеры чисел, которые давали ему отрицательную награду в прошлом. Там, где человек может опираться на прошлый опыт и посторонние концепции («призраки плохие, я должен бежать»), у DQN нет ничего. «Недавнее исследование» показало, насколько это может быть преимуществом и что, вероятно, во многом способствует медленному прогрессу в обучении алгоритмов RL. Взяв диаграмму из той статьи, представьте, как сложно было бы играть в игру, если бы она выглядела так:

В чем дело? Что я контролирую? Какая цель? Единственный способ узнать это - попробовать что-нибудь и посмотреть, что произойдет. Добро пожаловать в мир, который видит ваш компьютер.

Как бы ни был хорош DQN, ему есть куда совершенствоваться и есть множество направлений для развития. Во-первых, он учится очень медленно. Было проделано много работы по запуску алгоритмов RL с использованием методов имитации и обучения за несколько шагов. Интуиция подсказывает, что в механизме памяти тоже есть место для оптимизации; мы уже производим выборку на основе важности, но мы могли бы использовать аналогичные показатели, чтобы решить, какие события сохранить, а какие - перезаписать. Сверточная архитектура, которая широко используется и которую мы придерживались в этом посте, по большей части не изменилась с момента ее выпуска в 2015 году; улучшат ли недавние достижения в области компьютерного зрения способность нашего агента понимать свое окружение? Кроме того, DQN приходится изучать каждую новую игру с нуля; что, если бы он мог взять свои знания из разных, но похожих задач, таких как Wizard of Wor, другой игры Atari, основанной на лабиринте, и передать часть из них Пакману? Это заставит нас перейти от воспроизведения человеческой деятельности к воспроизведению процесса обучения человека - используя всю жизнь непрерывного обучения для решения совершенно новых задач.

Это обучение выполняется с использованием градиентного спуска по указанной выше функции потерь, которая является вариацией временной разницы. Это можно представить как разницу между «истинным» или целевым значением Q и нашей текущей оценкой, где целевое значение представляет собой немедленное вознаграждение плюс значение Q действия, которое мы предпримем в следующее состояние. Конечно, это значение также рассчитывается нашей сетью, но общее выражение по своей сути более точное благодаря тому, что оно имеет доступ, по крайней мере, к первому условию вознаграждения. Тем не менее, это определенно математический эквивалент попытки поразить движущуюся цель, поскольку истинные значения рассчитываются той же сетью, которую мы обучаем. Это большое несоответствие между контролируемым обучением - другим подмножеством машинного обучения, которое включает такие задачи, как классификация изображений и анализ настроений - и обучением с подкреплением. В контролируемом обучении используются помеченные наборы данных, что означает, что целевые значения устанавливаются вручную людьми и считаются точными и неизменными. Обучение с подкреплением создает свой собственный постоянно меняющийся набор данных как потому, что сеть генерирует свои собственные целевые значения, так и потому, что выбор действия сети напрямую влияет на то, какие состояния она будет достигать в своей среде и, следовательно, на то, о чем ей придется узнать. Чтобы справиться с этим, мы фактически принимаем две дополнительные меры стабилизации. Сначала мы дублируем нейронную сеть, используя вторую копию или целевую сеть для генерации целевых значений и исходную или интерактивную сеть для генерации оценок. Обучается только онлайн-сеть, но мы время от времени копируем ее веса в целевую сеть, чтобы обновить ее с помощью более оптимизированных параметров. Во-вторых, мы используем так называемый буфер опыта. Буфер - это набор данных о прошлом опыте нашего агента, где опыт определяется как (s, a, r, t, s '), где s, a и r сохраняют свои предыдущие определения, t - это логическое значение, которое позволяет агенту узнать, было ли это конечным состоянием эпизода, а s ' представляет состояние после s, когда агент предпринял действие a. Вы заметите, что запись опыта содержит все переменные, необходимые для вычисления функции потерь. Таким образом, вместо того, чтобы учиться, пока агент играет Пакмана, он на самом деле просто перемещает Пакмана по экрану, основываясь на том, что он уже узнал, но добавляя весь этот опыт в буфер. Затем мы можем взять опыт из хранилища и воспроизвести его агенту, чтобы он мог учиться на нем и предпринимать более эффективные действия в будущем. Это концептуально похоже на то, как люди воспроизводят воспоминания, чтобы учиться на них, и этот процесс уместно назван воспроизведением опыта. Что наиболее важно, это гарантирует, что агент учится на всей своей истории (или, по крайней мере, на той ее части, которую мы можем практически сохранить, прежде чем мы начнем перезаписывать самые старые данные), а не на самой последней траектории.

Написано Джейком Григсби с Забихом Юсуфом

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

Cavalier Machine Learning, Университет Вирджинии

«Www.cavml.com»

июнь 2018

Расширенные DQN: игра в Pac-man с глубоким обучением с подкреплением