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

1. Введение

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

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

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

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

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

1.1 Ветви машинного обучения

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

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

Три ветви машинного обучения различаются по смыслу «обратной связи», доступной для системы обучения.

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

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

Входные данные представляются в виде набора данных:

Система принимает этот ввод и изучает отображение изображения x на метку y. После обучения системе предоставляется новое изображение x ', чтобы получить прогноз метки y' = 0 или 1 в зависимости от того, является ли изображение изображением кошки или собаки. Это проблема классификации, когда система учится классифицировать ввод в правильный класс. У нас есть аналогичная установка для регрессии, где мы хотим предсказать непрерывный вывод y на основе вектора входных значений x.

1.3 Обучение без учителя

Вторая ветвь — неконтролируемое обучение. Неконтролируемое обучение не имеет меток. У него есть только входы D= x1, x2,…,xn и нет меток. Система использует эти данные для изучения скрытой структуры данных, чтобы она могла группировать/классифицировать данные по некоторым широким категориям. После обучения, когда системе предоставляется новая точка данных x’, она может сопоставить новую точку данных с одним из изученных кластеров. В отличие от обучения с учителем, для каждой категории нет четко определенного значения. После того, как данные сгруппированы по категориям, на основе наиболее распространенных атрибутов в кластере мы можем присвоить им какое-то значение. Другое использование неконтролируемого обучения заключается в использовании базовых входных данных для изучения распределения данных, чтобы впоследствии можно было запросить систему для создания новой синтетической точки данных.

1.4 Обучение с подкреплением (RL)

В то время как контролируемое обучение — это обучение с учителемпомеченные данные сообщают системе, что представляет собой преобразование входных данных x в выходные данные y, RL больше похоже на обучение с критик. Критик сообщает учащемуся (модели) о том, насколько хороши или плохи его знания. Учащийся использует эту обратную связь для многократного улучшения своих знаний.

Давайте сначала посмотрим на пример. Предположим, мы разрабатываем автономный автомобиль, который может двигаться самостоятельно. У нас есть машина, которую мы назовем агент, т. е. система или алгоритм, который склонен управлять автомобилем самостоятельно. Это обучение поведению вождению. Его текущие координаты, скорость и направление движения, объединенные вместе в виде вектора чисел, называются его текущим состоянием. Агент использует свое текущее состояние, чтобы принять решение либо затормозить, либо нажать на педаль газа. Он также использует эту информацию, чтобы повернуть руль, чтобы изменить направление движения автомобиля. Комбинированное решение «тормозить/ускоряться» и «управлять автомобилем» известно как действие. Сопоставление определенного текущего состояния с конкретным действием называется политикой. Действие агента, когда оно хорошее, приведет к счастливому результату, а когда действие плохое, оно приведет к несчастливому результату. Агент использует эту обратную связь о результатах для оценки эффективности своих действий. Результат обратной связи называется вознаграждением, которое агент получает за определенные действия в определенном состоянии. В зависимости от текущего состояния и его действий автомобиль достигает нового набора координат, скорости и направления. Это новое состояние, в котором находится агент в зависимости от того, как он действовал на предыдущем шаге. Кто обеспечивает этот исход и определяет новое состояние? Это окружение автомобиля, и это то, что автомобиль/агент не может контролировать. Все остальное, что агент не контролирует, называется средой.

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

В 2014 году DeepMind успешно объединила методы глубокого обучения с обучением с подкреплением, чтобы обучить игрового агента, который мог бы играть в игры Atari на основе изображений игры без какого-либо предварительного знания правил игр Atari.

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

- Автономные транспортные средства (AV): AV имеют датчики, такие как LiDAR, радар, камеры и т. д., с помощью которых AV определяют окружающую среду. Необработанные сенсорные данные и обнаружение объектов объединяются для получения единого представления сцены, которое используется для планирования пути к месту назначения. Такие действия, как обгон, смена полосы движения, автоматическая парковка, также используют различные элементы обучения с подкреплением, чтобы встроить интеллект в поведение. Альтернативой может быть ручная разработка различных правил, которые никогда не могут быть исчерпывающими или гибкими.

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

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

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

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

2. Типы алгоритмов/подходов в RL

Давайте кратко рассмотрим основные элементы, из которых состоит система RL:

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

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

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

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

На фоне настройки обучения с подкреплением и уравнений Беллмана пришло время взглянуть на ландшафт алгоритмов в мире обучения с подкреплением. На рис. 5 показан высокоуровневый ландшафт различных типов алгоритмов обучения в пространстве RL.

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

Алгоритмы, основанные на модели, можно дополнительно разделить на две категории — одна, где нам предоставляется модель, например. игра «го» или «шахматы», а вторая категория — это та, в которой агент должен исследовать и изучать модель. Некоторыми популярными подходами в разделе «изучить модель» являются мировые модели, дополненные агенты Imagination (I2A), RL на основе моделей с точной настройкой без использования моделей (MBMF) и исследование ценности на основе моделей (MBVE).

Возвращаясь к бесплатной модели. Существует набор алгоритмов, которые напрямую оптимизируют политику, чтобы максимизировать долгосрочное совокупное вознаграждение. Некоторые популярные в этой категории: Градиент политики, Критика актера и его разновидности (A2C/A3C), Проксимальная оптимизация политики (PPO) и Доверие. Оптимизация региональной политики (TRPO).

Существует еще один набор алгоритмов, которые используют динамическое программирование Беллмана для изучения качества случайной политики, а затем используют функции значений для итеративного улучшения политик. Q-learning составляет основную часть свободной от моделей оптимизации состояния/действия, управляемой Беллманом. Популярными вариантами этого подхода являются Deep Q-Networks (DQN) вместе с его различными вариантами, категориальный 51-Atom DQN (C51), DQN квантильной регрессии ( QR-DQN) и ретроспективный повтор (HER).

Наконец, есть набор алгоритмов, которые занимают промежуточное положение между Q-обучением и оптимизацией политик. Популярными в этой категории являются градиент глубокой детерминации (DDPG), DDPG с двойной задержкой (TD3) и критика мягкого актера (SAC). .

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

3. С чего начать

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

3.1 Следуйте моей книге — глубокое обучение с подкреплением на Python

Ознакомиться с подробностями можно здесь.

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

Хотя эта книга не предполагает никаких предварительных знаний в области обучения с подкреплением, она предполагает, что читатели знакомы с основами машинного обучения, в частности с контролируемым обучением. Вы раньше кодировали на Python? Вам удобно работать с такими библиотеками, как NumPy и scikit-learn? Слышали ли вы о глубоком обучении и изучали базовые блоки построения простых моделей в PyTorch или TensorFlow? Вы должны ответить «да» на все приведенные выше вопросы, чтобы извлечь максимальную пользу из этой книги. Если нет, я бы посоветовал вам сначала освежить эти концепции, ничего слишком глубокого, будет достаточно любого вводного онлайн-руководства или книги от Apress по вышеуказанным темам.

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

Книга состоит из десяти глав.

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

Глава 2Марковские процессы принятия решений — подробно определяет проблему, которую мы хотим решить в RL. В нем подробно рассказывается о том, что представляет собой вознаграждение, функции ценности, модель и политика. Он знакомит с различными вариантами марковских процессов, устанавливая уравнения Ричарда Беллмана как часть динамического программирования.

Глава 3 — Алгоритмы на основе моделей. Основное внимание уделяется настройке, в которой предоставляется модель, и агент планирует свои действия для достижения оптимального результата. Он представляет библиотеку среды OpenAI Gym, которая используется для кодирования и тестирования алгоритмов на протяжении всей книги. Наконец, в нем исследуются подходы к планированию, основанные на ценности и политике.

Глава 4Подходы без моделей — рассказывает о методах обучения без моделей. При такой настройке агент ничего не знает о среде/модели. Он взаимодействует с окружающей средой и использует вознаграждения для изучения оптимальной политики методом проб и ошибок. Он специально рассматривает подход Монте-Карло (MC) и подход временной разницы (TD) к обучению, сначала изучая их по отдельности, а затем объединяя их в рамках концепции n-шаговых возвратов и следов приемлемости.

Глава 5Аппроксимация функций и глубокое обучение, переходит к рассмотрению настроек, в которых состояние системы изменяется от дискретного (как было до главы 4) до будучи непрерывным. Затем в нем исследуется концепция использования параметризованных функций для представления состояния и обеспечения масштабируемости. Сначала используется традиционный подход аппроксимации функций, созданных вручную, а затем используется модель на основе глубокого обучения в качестве аппроксиматоров нелинейных функций.

Глава 6Глубокое обучение Q (DQN), глубоко погружается в подход, который DeepMind использовал для успешной демонстрации использования глубокого обучения вместе с агентами проектирования обучения с подкреплением, которые могли бы научиться играть видеоигры, такие как Atari Games. В нем рассматривается, как работает DQN и какие настройки необходимы для его обучения. Далее следует обзор различных разновидностей DQN с подробными примерами кода как в PyTorch, так и в TensorFlow.

Глава 7Алгоритмы градиента политик, переключает внимание на изучение подхода к изучению хорошей политики непосредственно в настройке без моделей. Подходы, описанные в предыдущих главах, сначала основаны на изучении функций ценности, а затем на использовании этих функций ценности для оптимизации политики. В этой главе мы сначала поговорим о теоретических основах подхода прямой оптимизации политики. После создания основ мы обсудим различные подходы, в том числе несколько самых последних и очень успешных алгоритмов, дополненных реализациями в PyTorch и TensorFlow.

Глава 8Сочетание градиентов политик и Q-Learning, как следует из названия, касается подхода к объединению методов DQN на основе значений и градиентов политик, чтобы использовать преимущества обоих методов. подходы. Это также позволяет нам разрабатывать агенты, которые могут работать в пространствах непрерывного действия. Мы специально рассмотрим три очень популярных подхода — градиенты глубокой детерминации (DDPG), DDPG с двойной задержкой (TD3), критика мягкого актера (SAC). Как и прежде, предоставляются комплексные реализации в PyTorch и TensorFlow, чтобы помочь читателям освоить предмет.

Глава 9Интегрированное планирование и обучение — посвящена объединению подхода на основе моделей из главы 3 и подхода без моделей из глав 4–8. что такая интеграция может быть сделана возможной. Наконец, в нем объясняется поиск по дереву Монте-Карло (MCTS) и то, как он использовался для обучения AlphaGo, который мог победить экспортных игроков в го.

Глава 10Дальнейшее исследование и следующие шаги. В ней рассматриваются различные другие расширения обучения с подкреплением, такие понятия, как подходы на основе масштабируемых моделей, имитационное и обратное обучение, методы без производных, перенос и Многозадачное обучение, а также метаобучение. Покрытие здесь находится на высоте 30 000 футов, чтобы познакомить читателей с новыми и связанными концепциями, не теряясь в деталях. Глава завершается обсуждением того, как читатели должны продолжать исследовать и учиться сверх того, что описано в этой книге.

3.2 Другие курсы и ссылки

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

1. Учебник — Обучение с подкреплением: введение Ричарда С. Саттона и Эндрю Г. Барто. Это должен прочитать каждый практикующий RL. Книга разделена на 3 части, и я настоятельно рекомендую прочитать части I и II. Разделы, отмеченные знаком (*), могут быть пропущены при первом чтении. И если вы нажмете на это, вы увидите ссылки на Python и Matlab реализации примеров и упражнений, содержащихся в книге.

2. Видео-лекции Дэвида Сильвера. Эти лекции являются замечательным и простым для понимания введением в RL, основами и некоторыми дополнительными темами. Я настоятельно рекомендую смотреть их последовательно.

3. Углубленный курс RL доцента Сергея Левина Калифорнийского университета в Беркли. На данный момент у вас есть полный набор видеолекций, слайдов и заданий по Python, доступных для предложения Fall 2020. Он углубляется в выводы и содержит значительную математику. Однако, если у вас есть хорошие знания в области линейной алгебры, теории вероятностей и исчисления, было бы очень полезно пройти этот материал.

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

5. Учебный курс Deep RL — 2017. Это видеозаписи двухдневного буткемпа в 2017 году, организованного в Калифорнийском университете в Беркли профессором Питером Аббелем. Хороший набор видеозаписей с приличным перекрытием материала, пройденного в курсе Сергея Левина.

6. Стэнфордский курс обучения с подкреплением. Снова отличное введение в область обучения с подкреплением. Хотя материалы доступны для проводимого в настоящее время курса Зима 2021 вместе с презентациями, заметками и заданиями, видео не доступны для бесплатного просмотра. Посмотреть ролики 2019 года можно здесь.

7. Практический курс повышения квалификации НИУ ВШЭ Москва. Это очень динамичный курс, охватывающий от основ до продвинутых тем. Тем не менее, время от времени я обнаруживал, что освещение материала было слишком высоким, на мой вкус. Однако их упражнения по кодированию великолепны. Йон также может ознакомиться с последней итерацией курса на github.

8. Продвинутое глубокое обучение и обучение с подкреплением, преподаваемое учеными DeepMind в Университетском колледже Лондона (UCL). Он также охватывает основы и дополнительные темы. Материал хорошо перекликается с материалом, изложенным в видеолекциях Дэвида Сильвера.

9. Spinning Up in Deep RL, веб-страница с библиотекой Python, размещенная на OpenAI, которая является еще одним отличным ресурсом для более глубокого погружения в RL. На мой взгляд, этот материал является отличным ресурсом для закрепления вашего понимания после прохождения базовых курсов. Или вы можете сразу погрузиться в него, если вам удобно работать с Deep Learning и PyTorch или TensorFlow.

4. Заключение

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

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

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

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