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

1656648050 vvedenie v uchebu s podkrepleniem

Томас Симонини

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

За последние годы мы увидели много улучшений в этой увлекательной области исследований. Примеры включают DeepMind и учебную архитектуру Deep Q в 2014 году, победив чемпиона игры Go по AlphaGo в 2016 году, OpenAI и PPO в 2017 году, среди прочих.

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

В этой первой статье вы узнаете:

  • Что такое обучение с подкреплением и как вознаграждения является центральной идеей
  • Три подхода к обучению с подкреплением
  • Что означает «глубина» в Deep Reinforcement Learning

Очень важно овладеть этими элементами, прежде чем приступать к внедрению агентов Deep Reinforcement Learning.

Идея Reinforcement Learning состоит в том, что агент будет учиться в окружающей среде, взаимодействуя с ним и получая вознаграждение за выполнение действий.

1*zySSJwywQGerKSbjHBtkyg

Обучение взаимодействию с окружающей средой происходит из нашего природного опыта. Представьте, что вы ребенок в гостиной. Видите камин и подходите к нему.

1*aQuWM51KnoGIUGTGNzoRIw

Это тепло, это позитив, тебе хорошо (положительное вознаграждение +1). Вы понимаете, что огонь – это положительно.

1*5shp6Uzu7XT41vrOJ7-3gw

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

Именно так люди учатся через взаимодействие. Обучение с подкреплением – это только вычислительный подход к обучению на основе действия.

Процесс обучения с подкреплением

1*aKYFRoEmmKkybqJOvLt2JQ

Представим себе агента, который учится играть в Super Mario Bros в качестве рабочего примера. Процесс обучения с подкреплением (RL) можно смоделировать как работающий цикл:

  • Наш агент получает состояние S0 от Окружающая среда (В нашем случае мы получаем первый кадр нашей игры (состояние) от Super Mario Bros (среда))
  • Исходя из того состояние S0, агент принимает действие A0 (наш агент будет двигаться вправо)
  • Среда переходит к a новый состояние S1 (новый кадр)
  • Среда дает кое-что вознаграждение R1 агенту (не умер: +1)

Этот цикл RL выводит последовательность состояние, действие и вознаграждение.

Целью агента является максимизация ожидаемого совокупного вознаграждения.

Центральная идея гипотезы вознаграждения

Почему целью агента является максимизация ожидаемого совокупного вознаграждения?

Учеба с подкреплением базируется на идее гипотезы вознаграждения. Все цели можно описать максимизацией ожидаемого совокупного вознаграждения.

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

Кумулятивное вознаграждение на каждом шаге времени t можно записать так:

0*ylz4lplMffGQR_g3

Что эквивалентно:

1*AFAuM1Y8zmso4yB5mOApZA
Спасибо Пьеру-Люку Бэкону за исправление

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

1*tciNrjN6pW60-h0PiQRiXg

Предположим, что ваш агент – эта маленькая мышка, а противник – кот. Ваша цель – съесть максимальное количество сыра до того, как его съест кот.

Как мы видим на диаграмме, больше вероятность съесть сыр у нас, чем сыр вблизи кота (чем ближе мы к коту, тем это опаснее).

Как следствие, вознаграждение у кота, даже если оно больше (больше сырого), будет снижено. Мы не слишком уверены, что сможем это съесть.

Чтобы получить скидку на вознаграждение, мы действуем так:

Мы определяем ставку дисконта, которая называется гаммой. Оно должно быть между 0 и 1.

  • Чем больше гамма, тем меньше скидка. Это означает, что учебный агент больше заботится о долгосрочном вознаграждении.
  • С другой стороны, чем меньше гамма, тем больше скидка. Это значит, что наш агент больше заботится о краткосрочном вознаграждении (ближайший сыр).

Наши накопившиеся ожидаемые вознаграждения со скидкой:

1*zrzRTXt8rtWF5fX__kZ-yQ
Спасибо Пьеру-Люку Бэкону за исправление

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

Эпизодические или постоянные задачи

Задача является экземпляром проблемы обучения с подкреплением. Мы можем иметь два типа задач: эпизодические и непрерывные.

Эпизодическая задача

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

К примеру, подумайте о Super Mario Bros, эпизод начинается с запуска нового Марио и заканчивается: когда вас убивают или вы достигаете конца уровня.

1*PPs51sGAtRKJft0iUCw6VA
Начало нового эпизода

Непрерывные задачи

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

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

1*5T_Ta3QauHUEMUCzev6Wyw

Монте-Карло vs TD Методы обучения

У нас есть два способа обучения:

  • Сбор наград в конце эпизода а затем вычисление максимальное ожидаемое будущее вознаграждение: Подход Монте-Карло
  • Оценка награды на каждом шагу: Временная разница обучения

Монте Карло

Когда эпизод заканчивается (агент достигает «терминального состояния»), агент смотрит на всеобщее кумулятивное вознаграждение, чтобы увидеть, насколько хорошо он справился. В подходе Монте-Карло есть только вознаграждение получены в конце игры.

Затем мы начинаем новую игру с дополнительными знаниями. Агент принимает наилучшие решения с каждой итерацией.

1*RLLzQl4YadpbhPlxpa5f6A

Возьмем пример:

1*tciNrjN6pW60-h0PiQRiXg

Если мы возьмем среду лабиринта:

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

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

Обучение временных отличий: обучение на каждом шагу времени

С другой стороны, TD Learning не будет ждать до конца эпизода, чтобы обновить максимальная ожидаемая будущая оценка вознаграждения: она обновит свою оценку стоимости V для нетерминальных состояний St, возникающих во время этого опыта.

Этот метод называется TD(0) или один шаг TD (обновить функцию значения после каждого шага).

1*LLfj11fivpkKZkwQ8uPi3A

Методы ТД только подождите следующего шага, чтобы обновить оценки стоимости. В момент времени t+1 они немедленно сформируйте цель TD, используя наблюдаемое вознаграждение Rt+1 и текущую оценку V(St+1).

TD target – это оценка: фактически вы обновляете предварительную оценку V(St) обновляя его к цели в один шаг.

Разведка/эксплуатация

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

  • Исследование – это поиск информации об окружающей среде.
  • Эксплуатация — использование известной информации для максимизации вознаграждения.

Помните, что цель нашего агента RL – максимизировать ожидаемое совокупное вознаграждение. Однако мы можем попасть в обычную ловушку.

1*APLmZ8CVgu0oY3sQBVYIuw

В этой игре наша мышка может иметь нескончаемое количество маленького сыра (+1 каждому). Но на вершине лабиринта есть гигантская сумма сыра (1000).

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

Но если наш агент немного исследует, он может получить большое вознаграждение.

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

Три подхода к обучению с подкреплением

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

На основе стоимости

В RL на основе ценностей целью является оптимизация функции значения V(s).

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

Значение каждого состояния – это общая сумма вознаграждения, которую агент может ожидать накопить в будущем, начиная с этого состояния.

0*kvtRAhBZO-h77Iw1

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

1*2_JRk-4O523bcOcSy1u31g

В примере лабиринта на каждом шагу мы будем принимать наибольшее значение: -7, затем -6, затем -5 (и так далее), чтобы добиться цели.

На основе политики

В RL на основе политики мы хотим напрямую оптимизировать функцию политики π(s) без использования функции значения.

Политика – это то, что определяет поведение агента в определенный момент времени.

0*8B4cAhvM-K4y9a5U
действие = политика (состояние)

Мы изучаем функцию политики. Это позволяет нам сопоставлять каждое состояние с наилучшим подходящим действием.

У нас есть два типа политики:

  • Детерминирован: политика в определенном состоянии всегда будет возвращать то же действие.
  • Стохастика: вывести вероятность распределения по действиям.
0*DNiQGeUl1FKunRbb
1*fii7Z01laRGateAJDvloAQ

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

На основе модели

В RL на основе модели мы моделируем среду. Это значит, что мы создаем модель поведения среды.

Проблема состоит в том, что каждая среда потребует разного представления модели. Поэтому мы не будем говорить об этом типе Reinforcement Learning в следующих статьях.

Представляем Deep Reinforcement Learning

Deep Reinforcement Learning представляет глубокие нейронные сети для решения проблем Reinforcement Learning – отсюда и название «deep».

К примеру, в следующей статье мы поработаем над Q-Learning (классическим Reinforcement Learning) и Deep Q-Learning.

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

Во втором подходе мы будем использовать нейронную сеть (приблизительно для определения вознаграждения на основе состояния: значение q).

1*w5GuxedZ9ivRYqM_MLUxOQ
Схема, вдохновленная учебным блокнотом Q от Udacity

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

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

В следующий раз мы поработаем над агентом Q-learning, который научится играть в игру Frozen Lake.

1*zW-o3-S4JrNpLbztKp3U4A
Замерзшее озеро

Если вам понравилась моя статья, пожалуйста, нажмите кнопку ? ниже столько раз, сколько вам понравилась статья поэтому другие люди увидят это здесь на Medium. И не забудь следовать за мной!

Если у вас есть какие-либо мнения, комментарии, вопросы, не стесняйтесь оставлять комментарии ниже или отправлять мне электронное письмо: hello@simoninithomas.com или твиты @ThomasSimonini.

1*_yN1FzvEFDmlObiYsstIzg
1*mD-f5VN1SWYvhrZAbvSu_w
1*PqiptT-Cdi8uwosxuFn2DQ

На здоровье!

Глубокий обучающий курс:

Мы делаем a видеоверсия курса Deep Reinforcement Learning Course из Tensorflow ? где мы сосредотачиваемся на части реализации из tensorflow здесь.

Часть 1: Введение в учебу с подкреплением

Часть 2: более глубокое погружение в обучение с подкреплением с помощью Q-Learning

Часть 3: Введение в Deep Q-Learning: давайте поиграем в Doom

Часть 3+: Улучшение в глубоком обучении Q: двойной DQN на дуэли, повторение приоритетного опыта и фиксированные Q-цели

Часть 4: Введение в градиенты политики с Doom и Cartpole

Часть 5: Введение в методы Advantage Actor Critic: давайте поиграем в Ежа Соника!

Часть 6: Проксимальная оптимизация политики (PPO) из Sonic the Hedgehog 2 и 3

Часть 7: Обучение на основе любопытства стало легким Часть I

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *