Часть 2: Сравнения и приложения

Если вы еще не прочитали Учебник по обучению с подкреплением, вернитесь и сначала ознакомьтесь с ним здесь. Эта статья познакомит вас с ключевыми концепциями обучения с подкреплением. Тогда вы будете готовы полностью сравнить разные типы машинного обучения.

Сравнение обучения с подкреплением с другими типами машинного обучения

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

Контролируемое обучение

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

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

Неконтролируемое обучение

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

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

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

Применение этих концепций

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

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

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

Кроме того, давайте посмотрим на подэлементы нашей проблемы и посмотрим, как они соотносятся:

  • Политика: какое из четырех действий выполнит наша мышь в любом заданном состоянии?
  • Сигнал награды: положительный (был получен сыр; но насколько большой сыр?), Нейтральный (состояние ничего не было достигнуто) или отрицательное (состояние смерти завершило нашу игру).
  • Функция значения: это то, что наша мышь будет создавать и поддерживать на лету. Его можно отрегулировать в ходе итерации или в ходе множества прогонов по лабиринту.
  • Модель: если мы позволим нашей мыши знать размер своего окружения, она сможет сохранить ее модель в своей памяти. Мы можем представить мир в виде 2D-сетки (массива), позволяя мышке указывать, есть ли положительное, отрицательное или нулевое вознаграждение в данном квадрате сетки, когда он проходит и наблюдает за фактическим окружением.

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

Одна из политик - стратегия Q-table. Q-table означает «таблица качества». Это таблица действий и состояний, а также связанных с ними наград. Мы могли бы использовать базовую стратегию, которая гласит, что когда мы сталкиваемся с состоянием, выбираем действие, которое принесет нашему агенту наибольшую награду. Если наш агент не знает, что принесет наибольшую награду, выберите действие случайным образом.

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

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

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

Формулировка обучения с подкреплением с помощью задач

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

1. Эпизодические задачи

Эпизодические задачи имеют разные начальное и конечное состояния. Мы можем сохранять эти «эпизоды» и тренироваться на них «в автономном режиме». Ярким примером могут служить уровни Марио из нашей предыдущей статьи.

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

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

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

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

Когда учиться

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

Разведка против эксплуатации

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

Говоря человеческим языком, это все равно что задать вопрос: ходите ли вы в ресторан, в который всегда ходите и который, как вы знаете, будет хорошим? Или вы рискуете отправиться в неизведанное и посетить место, которое вы никогда раньше не пробовали и которое может быть совершенно фантастическим?

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

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

Подходы

Это подводит нас к еще одному важному фактору в создании приложения для обучения с подкреплением. На основе ценностей или политик?

Политический подход

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

Ценностный подход

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

Актерско-критический подход

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

В области «актер-критик» много внимания уделяется, и на ее основе появилось много классных алгоритмов. Асинхронное преимущество "действующий-критик" (A3C) от Google является ярким примером крутого алгоритма "действующий-критик", который показал много хороших результатов.

Вывод

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

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

Первоначально опубликовано на сайте recast.ai 14 августа 2018 г.