Основная идея

Введение

Машинное обучение было одной из самых спорных тем за последние несколько десятилетий, и до последних лет не было большого прогресса. Среди всех тем машинного обучения обучение с подкреплением кажется недооцененной областью, хотя оно существует с 1950-х годов. Тем не менее, исследователи из DeepMind продемонстрировали первую модель глубокого обучения, позволяющую успешно изучать политики управления непосредственно на основе многомерных сенсорных данных с использованием обучения с подкреплением. Они применили этот метод к семи играм для Atari 2600 из Arcade Learning Environment, и он превосходит все предыдущие подходы в шести играх и даже превосходит человека-эксперта в трех из них. Так как же DeepMind построил систему и что такое обучение с подкреплением?

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

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

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

Чтобы еще раз проиллюстрировать, вот некоторые определения элементов обучения с подкреплением:

  • Агент: можно считать агента роботом, или персонаж совершает действия в окружающей среде.
  • Фактор дисконта: с помощью коэффициента дисконта цель состоит в том, чтобы сделать будущие вознаграждения менее ценными, чем сиюминутные вознаграждения, что заставляет агента искать краткосрочные цели. Если коэффициент дисконтирования близок к 1, то вознаграждения в далеком будущем будут учитываться почти так же, как и немедленные вознаграждения.
  • Окружающая среда: окружение агента, в котором он движется.
  • Состояние: непосредственная ситуация, в которой находятся агенты по отношению к другим важным вещам в окружении.
  • Награды: результат, который агент получает за свои действия.
  • Политика: стратегия/алгоритм, который агент использует для определения действий, предпринимаемых на основе текущего состояния. Так как она предполагает некоторую случайность, она называется стохастической политикой.

Политика не является детерминированной и может быть любым алгоритмом. Как правило, следует рассмотреть три метода. Одним из них является поиск политики, который заключается в проверке множества различных значений этих параметров. Второй — генетические алгоритмы, в которых случайным образом создается первое поколение из 100 политик и отсеиваются плохие. Наконец, это градиенты политик (PG), о которых мы сейчас поговорим подробнее.

Градиенты политик (PG)

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

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

Q-обучение

Q-обучение — это наиболее часто используемый алгоритм RL, в котором агент изучает качество (значение Q) каждого действия в зависимости от того, какое вознаграждение возвращает среда. Он использует таблицу для хранения значения состояния каждой среды вместе со значением Q. Для сравнения существует также состояние-действие-вознаграждение-состояние-действие (SARSA). Разница в том, что SARSA изучает значение Q на основе действия, выполняемого текущей политикой, тогда как Q-обучение использует жадную политику.

Марковские процессы принятия решений (MDP)

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

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

Вот пример марковского процесса принятия решений. Если он начинает с состояния s0, он выберет a0, a1 или a2. Если он выберет действие a1, он с уверенностью останется в состоянии s0. Если он выберет a0, он с вероятностью 70% получит награду +10 и останется в состоянии s0. Аналогичная идея применима и к другим состояниям и действиям.

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

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

Приложения

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

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

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

Преимущества и проблемы

Преимущества

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

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

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

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

Задачи

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

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

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

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

Обзор метода актерской критики

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

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

  • Рекомендуемое действие. Каждому действию в пространстве действий присвоено значение вероятности. Актер — это часть агента, отвечающая за этот вывод.
  • Предполагаемые вознаграждения в будущем: общее количество всех будущих вознаграждений, которые он ожидает получить. Критик — это компонент агента, который отвечает за этот вывод.

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

Шаг 1. Настройка

Импорт пакетов и настройка необходимых параметров. На этом этапе мы устанавливаем начальное значение 42 для среды, коэффициент скидки для вознаграждений за публикации, и каждый эпизод будет длиться не более 10000 шагов. И, наконец, создание обозначенной среды «CartPole-V0».

Шаг 2. Внедрение сети актерских критиков

Эта сеть изучает две функции:

  • Актер: в качестве входных данных принимает текущую среду и возвращает значение вероятности для каждого действия в его пространстве действий.
  • Критик: принимает текущее состояние среды в качестве входных данных и выводит прогноз общего вознаграждения в будущем.

Оба они имеют общий начальный уровень, и сеть может быть реализована следующим образом:

Шаг 3. Обучение

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

Мы используем цикл while для генерации всего процесса обучения. В этом случае условие остановки возникает, когда running_reward превышает 195.

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

Для простоты мы распечатываем данные журнала для каждого 10 эпизода, и цикл while будет остановлен, когда значение текущих наград превысит 195.

Визуализация

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

Заключение

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

Ссылки

  1. Практическое машинное обучение с помощью Scikit-Learn, Keras и TensorFlow, 2-е издание: https://learning.oreilly.com/library/view/hands-on-machine-learning/9781492032632/
  2. Обучение с учителем против обучения без учителя против обучения с подкреплением: https://intellipaat.com/blog/supervised-learning-vs-unsupervised-learning-vs-reinforcement-learning/
  3. МАШИННОЕ ОБУЧЕНИЕ: https://csc.lsu.edu/~jianhua/csc7333-intro-0.pdf
  4. Что такое обучение с подкреплением?: https://www.synopsys.com/ai/what-is-reinforcement-learning.html
  5. Метод актерского критика: https://keras.io/examples/rl/actor_critic_cartpole/