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

Spread the love

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

В последние годы мы видели много достижений в этой увлекательной области исследований. Примерами могут служить DeepMind and the Deep Q learning architecture в 2014 году, в том числе победа чемпиона игры Go с AlphaGo в 2016 году, OpenAI и PPO в 2017 году.

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

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

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

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

Обучение с подкреплением (англ. reinforcement learning) — один из способов машинного обучения, в ходе которого испытуемая система (агент) обучается, взаимодействуя с некоторой средой. С точки зрения кибернетики, является одним из видов кибернетического эксперимента. Откликом среды (а не специальной системы управления подкреплением, как это происходит в обучении с учителем) на принятые решения являются сигналы подкрепления, поэтому такое обучение является частным случаем обучения с учителем, но учителем является среда или её модель.

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

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

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

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

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

Процесс Reinforcement Learning

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

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

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

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

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

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

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

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

Совокупное вознаграждение на каждом временном шаге t может быть записано как:

,что эквивалентно

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

Допустим, ваш агент — это маленькая мышка, а ваш противник — кошка. Ваша цель — съесть максимальное количество сыра перед тем, как быть съеденным кошкой.

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

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

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

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

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

Наше дисконтированное (обесцененное) совокупное ожидаемое вознаграждение:

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

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

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

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

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

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

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

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

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

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

Метод Monte Carlo или Temporal Difference Learning?

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

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

Метод Монте-Карло

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

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

Например,

если рассмотреть свойства лабиринта:

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

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

Temporal Difference Learning : обучение на каждом временном шаге

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

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

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

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

Компромисс между разведкой и эксплуатацией (explore-exploit tradeoff)

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

Подобно тому, как это происходит в повседневной жизни, такая ситуация часто возникает в информатике, откуда возник термин.

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

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

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

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

Но если наш агент немного исследует, он может найти большую награду.

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

Три подхода к Reinforcement Learning

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

Value Based подход

В Reinforcement Learning, Value Based подход состоит в том, чтобы оптимизировать значение функции V (s).

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

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

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

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

Линия поведения (Policy Based)

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

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

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

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

Детерминированный: поведение в данном состоянии всегда будет возвращать одно и то же действие.
Случайный: возврат вероятности распределения по действиям.

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

Model Based

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

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

Введение в Deep Reinforcement Learning

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

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

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

Словарь Reinforcement Learning

      • Агент (Agent): агент выполняет действия; например, дрон, делающий доставку, или Супер Марио, управляющий видеоигрой. Алгоритм является агентом. В жизни агент это ты.
      • Действие (Action) (A): A — это множество всех возможных ходов, которые может сделать агент. Действие почти самоочевидно, но следует отметить, что агенты выбирают из списка возможных действий. В видеоиграх список может включать бег справа или слева, прыжки высоко или низко, приседая или стоя на месте. На фондовых рынках список может включать покупку, продажу или владение любым из множества ценных бумаг и их производных. При работе с воздушными дронами альтернативы могут включать много различных скоростей и ускорений в трехмерном пространстве.
      • Коэффициент дисконтирования (Discount factor): коэффициент дисконтирования умножается на будущие вознаграждения, обнаруженные агентом, чтобы ослабить влияние этих вознаграждений на выбор действий агента. Зачем? Он предназначен для того, чтобы будущие награды стоили меньше, чем немедленные; то есть он навязывает агенту своего рода краткосрочный гедонизм. Часто выражается строчной греческой буквой гамма: γ. Если γ равен 0,8, а вознаграждение составляет 10 баллов после 3 временных шагов, текущая стоимость этого вознаграждения составляет 0,8³ x 10. Коэффициент дисконтирования, равный 1, делает будущие вознаграждения такими же, как и немедленные вознаграждения. Мы здесь боремся с отсроченным удовлетворением.
      • Окружающая среда (Environment): мир, через который движется агент. Среда принимает текущее состояние и действие агента в качестве входных данных и возвращает в качестве выходных данных вознаграждение агента и его следующее состояние. Если вы агент, окружающей средой могут быть законы физики и правила общества, которые обрабатывают ваши действия и определяют их последствия.
      • Состояние (State) (S): Состояние — это конкретная и непосредственная ситуация, в которой находится агент; то есть конкретное место и момент, мгновенная конфигурация, которая ставит агента по отношению к другим важным вещам, таким как инструменты, препятствия, враги или призы. Это может текущая ситуация, возвращенная окружающей средой, или любая будущая ситуация. Вы когда-нибудь были в неправильном месте в неподходящее время? Это состояние.
      • Награда (Reward) (R): Награда — это обратная связь, с помощью которой мы измеряем успех или неудачу действий агента. Например, в видеоигре, когда Марио касается монеты, он зарабатывает очки. Из любого данного состояния агент отправляет выходные данные в форме действий в среду, а среда возвращает новое состояние агента (которое возникло в результате действия в предыдущем состоянии), а также вознаграждения, если таковые имеются. Награды могут быть немедленными или отсроченными. Они эффективно оценивают действия агента.
      • Линия поведения (Policy) (π). Линия поведения — это стратегия, которую агент использует для определения следующего действия на основе текущего состояния. Она отображает состояния на действия, которые обещают высшую награду.
      • Значение (Value) (V): ожидаемый долгосрочный доход с дисконтом, в отличие от краткосрочного вознаграждения R. Vπ(s) определяется как ожидаемый долгосрочный доход текущего состояния в соответствии с политикой π. Мы дисконтируем вознаграждения или уменьшаем их оценочную стоимость по мере их дальнейшего использования в будущем. Смотрите дисконт фактор. И помните Кейнса: «В конечном итоге мы все умрем». Вот почему вы не учитываете будущие награды.
      • Q-значение или значение действия (Q-value) (Q): значение Q аналогично значению, за исключением того, что для него требуется дополнительный параметр, текущее действие a. Qπ (s, a) относится к долгосрочному возврату текущего состояния s, предпринимая действия a в соответствии с политикой π. Q отображает пары состояния-действия в награду. Обратите внимание на разницу между Q и политикой.
      • Траектория (Trajectory): последовательность состояний и действий, которые влияют на эти состояния. От латинского «перебросить». Жизнь агента — всего лишь шар, брошенный высоко и изгибающийся в пространстве-времени

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

На основе Thomas Simonini. An introduction to Reinforcement Learning и других источников

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