FAU LECTURE NOTES ПО ГЛУБОКОМУ ОБУЧЕНИЮ

Обучение с подкреплением — часть 5

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

Это конспект лекций FAU YouTube Lecture Deep Learning. Это полная стенограмма видео лекции и соответствующие слайды. Мы надеемся, вам понравится это так же, как видео. Конечно, эта стенограмма была создана с использованием методов глубокого обучения в основном автоматически, и вручную были внесены лишь незначительные изменения. "Попробуй сам!" Если вы заметили ошибки, сообщите нам об этом!

Навигация

Предыдущая лекция / Посмотреть это видео / Высший уровень / Следующая лекция

Добро пожаловать обратно в глубокое обучение! Сегодня мы хотим поговорить о глубоком обучении с подкреплением. Итак, у меня есть для вас пара слайдов. Конечно, мы хотим опираться на концепции, которые мы видели в обучении с подкреплением, но сегодня мы говорим о глубоком Q-обучении.

Одним из очень известных примеров является контроль на уровне человека посредством глубокого обучения с подкреплением. Здесь, в [4], это было сделано Google Deepmind. Они показали, что нейронная сеть способна играть в игры Atari. Итак, идея здесь состоит в том, чтобы напрямую изучить функцию «действие-ценность», используя глубокую сеть. Входные данные — это, по сути, три последовательных видеокадра из игры, которые обрабатываются глубокой сетью. Это производит лучшее следующее действие. Итак, теперь идея состоит в том, чтобы использовать эту глубокую структуру подкрепления, чтобы изучить лучшие следующие движения контроллера. Они создают сверточные слои для обработки кадров, а затем полностью связанные слои для принятия окончательного решения.

Здесь вы видите основную идею архитектуры. Итак, есть эти сверточные слои и ReLU. У вас есть входные кадры, которые обрабатываются ими. Затем вы переходите к полностью связанным слоям и снова к полностью связанным слоям. Наконец, вы производите непосредственно вывод и видите, что в играх Atari это очень ограниченный набор. Таким образом, вы можете либо не выполнять никаких действий, либо, по сути, восемь направлений, есть кнопка огня и еще восемь направлений плюс кнопка огня. Так что это все разные вещи, которые вы можете сделать. Итак, это ограниченный домен, и вы можете затем обучить свою систему с его помощью.

Ну, это глубокая сеть, которая напрямую применяет Q-обучение. Состояние игры — это, по сути, текущий плюс три предыдущих кадра в виде стека изображений. Итак, у вас есть довольно нечеткий способ включения памяти и состояния. Затем у вас есть 18 выходов, связанных с различными действиями, и каждый выход оценивает действие для данного входа. У вас нет метки и функции стоимости, но вы обновляете информацию, чтобы максимизировать будущую награду. Существует награда +1, когда счет игры увеличивается, и награда -1, когда счет игры уменьшается. В противном случае это ноль. Они используют ε-жадную политику с уменьшением ε до низкого значения во время обучения. Они используют полуградиентную форму Q-обучения для обновления весов сети w и снова используют мини-пакеты для накопления обновлений весов.

Итак, у них есть эта целевая сеть и она обновляется по следующему правилу (см. слайд). Вы можете видеть, что это очень близко к тому, что мы видели в предыдущем видео. Опять же, у вас есть веса, и вы обновляете их в зависимости от вознаграждения. Теперь проблема, конечно, в том, что эта функция γ и выбор максимального q снова являются функцией весов. Итак, теперь у вас есть зависимость от максимизации весов, которые вы пытаетесь обновить. Итак, ваша цель меняется одновременно с весами, которые мы хотим узнать. На самом деле это может привести к колебаниям или расхождению ваших весов. Итак, это не очень хорошо. Для решения проблемы вводят вторую целевую сеть. После шагов C они генерируют это, копируя веса сети действия-ценности в дублирующую сеть и сохраняя их фиксированными. Таким образом, вы используете выходной q-бар целевой сети в качестве цели для стабилизации предыдущей максимизации. Вы не используете q hat, функцию, которую вы пытаетесь изучить, но вы используете q bar, своего рода фиксированную версию, которую вы используете для пары итераций.

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

Итак, это прорывная игра Atari, и вы можете видеть, что агент в начале работает не очень хорошо. Если вы тренируете его в течение нескольких итераций, вы можете увидеть, что игра играется лучше. Таким образом, система учится следовать ракеткой за мячом, а затем способна отражать его. Вы можете видеть, что если вы повторяете и повторяете, вы можете утверждать, что в какой-то момент система обучения с подкреплением также выясняет слабые стороны игры. В частности, одна ситуация, когда вы можете набрать действительно большое количество очков, — это если вам удастся провести мяч за кирпичами, а затем заставить их прыгать там. Это будет отражаться границами, а не веслом, и это принесет большой счет. Итак, это то, что предлагает утверждение о том, что система научилась быть хорошей стратегией, пытаясь выбрасывать только кирпичи с левой стороны. Затем ему нужно попасть мячом в область за другими кирпичами.

Конечно же, в этом видео нужно рассказать об AlphaGo. Мы хотим изучить некоторые детали того, как это на самом деле реализовано. Вы уже слышали об этом. Итак, это из статьи о том, как освоить игру в го с глубокими нейронными сетями.

Итак, мы уже обсуждали, что го — гораздо более сложная задача, чем шахматы, потому что в ней действительно большое количество возможных ходов. Кроме того, с большим количеством возможных состояний, которые потенциально могут возникнуть, идея состоит в том, что черные играют против белых за контроль над доской. У него простые правила, но чрезвычайно большое количество возможных ходов и ситуаций. Считалось, что до достижения производительности игроков-людей уйдут годы из-за высокой численной сложности задачи. Таким образом, мы могли переборщить с шахматами, но с Го люди думали, что это будет невозможно, пока у нас не появятся гораздо более быстрые компьютеры — на порядки более быстрые компьютеры. Они могли показать, что действительно могут победить экспертов по го с помощью системы. Итак, Го — идеальная информационная игра. Там нет скрытой информации и нет шансов. Так что теоретически мы могли бы построить полное дерево игры и пройти по нему с помощью минимальных и максимальных значений, чтобы найти лучшие ходы. Проблема в большом количестве допустимых ходов. Итак, в шахматах у вас есть примерно 35. В го есть около 250 различных ходов, которые вы можете делать во время игры на каждом шаге.

Кроме того, в игре может быть много ходов. Так что примерно сто пятьдесят. Это означает, что полный перебор совершенно невозможен. Что ж, дерево поиска можно, конечно, обрезать, если у вас есть точная функция оценки. для шахмат, если вы помните Deep Blue, это уже было чрезвычайно сложно и основывалось на массовом человеческом участии. Фо Го в 2002 году: «Для Го никогда не будет найдено простой, но разумной оценки». был ультрасовременным. Ну в 2016 и 2017 годах; AlphaGo обыграла Ли Седоля и Ке Ки, двух сильнейших игроков мира. Итак, есть способ решить эту игру.

В этой статье было несколько очень хороших идей. Он был разработан Silver et al. Это также Deepmind, и это комбинация нескольких методов. Они используют, конечно же, глубокие нейронные сети. Затем они используют поиск по дереву Монте-Карло и комбинируют обучение с учителем и обучение с подкреплением. Первым улучшением по сравнению с поиском по полному дереву стал поиск по дереву Монте-Карло. Они используют сети для поддержки эффективного поиска по дереву.

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

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

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

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

Итак, вот политическая сеть. Он имел 13 сверточных слоев, по одному выходу на каждую точку на доске Го. Затем была доступна огромная база данных человеческих экспертных ходов, 30 миллионов. Они начинают с обучения под наблюдением и обучают сеть предсказывать следующий ход в игре человека-эксперта. Затем они тренируют эту сеть также с помощью обучения с подкреплением, играя против более старых версий себя, и получают награду за победу в игре. Все версии, разумеется, избегают корреляционной нестабильности. Если вы посмотрите на время обучения, то на контролируемую часть ушло три недели на 50 GPU и один день на обучение с подкреплением. Итак, на самом деле здесь задействовано довольно много контролируемого обучения, а не столько обучения с подкреплением.

Это сеть создания ценности. Он имеет ту же архитектуру, что и сеть политик, но только с одним выходным узлом. Цель состоит в том, чтобы предсказать вероятность победы в игре. Они снова тренируются в самостоятельных играх обучения с подкреплением и используют оценку политики Монте-Карло для 30 миллионов позиций из этих игр. Время обучения составляло одну неделю на 50 графических процессорах.

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

Здесь было довольно много контролируемого обучения. Итак, давайте посмотрим на AlphaGo Zero. Теперь AlphaGo Zero больше не нуждается в человеческой игре. Итак, идея здесь в том, что вы затем играете исключительно с подкреплением и самостоятельными играми. Он имеет более простой поиск по дереву Монте-Карло и не имеет развертываемой сети политик в поиске по дереву Монте-Карло. Кроме того, в играх для самостоятельной игры они также представили многозадачное обучение. Таким образом, политика и сеть ценностей разделяли начальные слои. Затем это привело к [3], и расширения также могут играть в шахматы и сёги. Итак, не только код может решить Go. При этом вы также можете играть в шахматы и сёги на профессиональном уровне. Хорошо. Итак, это подводит итог тому, что мы делали в обучении с подкреплением. Конечно, мы могли бы посмотреть здесь и на многое другое. Однако времени просто не хватает.

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

Итак, несколько исчерпывающих вопросов: Что такое политика? Что такое функции ценности? Объясните дилемму эксплуатации и разведки и так далее. Если вас интересует обучение с подкреплением, я определенно могу порекомендовать взглянуть на книгу Ричарда Саттона Обучение с подкреплением. Это действительно отличная книга, и вы узнаете в мельчайших подробностях обо всем, что мы могли только нацарапать в этих видео. Итак, вы видите, что можете гораздо глубже изучить все детали обучения с подкреплением, а также глубокого обучения с подкреплением. На самом деле об этом можно сказать гораздо больше, но пока мы можем оставаться на этом уровне. Ну и еще я вам привел ссылку и тоже ссылку вставил в описание видео. Так что, пожалуйста, наслаждайтесь этой книгой, она очень хороша и, конечно же, у нас есть много других ссылок.

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

Если вам понравился этот пост, вы можете найти больше эссе здесь, больше учебных материалов по машинному обучению здесь или посмотреть нашу Глубокое Обучение Лекцию. Я также был бы признателен за подписку на YouTube, Twitter, Facebook или LinkedIn, если вы хотите получать информацию о новых эссе, видео и исследованиях в будущем. Эта статья выпущена на условиях Creative Commons 4.0 Attribution License и может быть перепечатана и изменена при ссылке. Если вы заинтересованы в создании расшифровок видеолекций, попробуйте Автоблог.

Ссылки

Ссылка на обучение с подкреплением Саттона в его проекте 2018 года, включая обучение Deep Q и подробности Alpha Go.

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

[1] Дэвид Сильвер, Аджа Хуанг, Крис Дж. Мэддисон и др. «Освоение игры Го с глубокими нейронными сетями и поиском по дереву». В: Природа 529.7587 (2016), стр. 484–489.
[2] Дэвид Сильвер, Джулиан Шриттвизер, Карен Симонян и др. «Овладение игрой в го без человеческого ведома». В: Природа 550.7676 (2017), с. 354.
[3] Дэвид Сильвер, Томас Хьюберт, Джулиан Шриттвизер и др. «Овладение шахматами и сёги путем самостоятельной игры с помощью общего алгоритма обучения с подкреплением». В: препринт arXiv arXiv: 1712.01815 (2017).
[4] Владимир Мних, Корай Кавукчуоглу, Дэвид Сильвер и др. «Контроль на уровне человека посредством глубокого обучения с подкреплением». В: Природа 518.7540 (2015), стр. 529–533.
[5] Мартин Мюллер. «Компьютер вперед». В: Искусственный интеллект 134.1 (2002), стр. 145–179.
[6] Ричард С. Саттон и Эндрю Г. Барто. Введение в обучение с подкреплением. 1-й. Кембридж, Массачусетс, США: MIT Press, 1998.