Deep RL Course, юнит 1: введение в глубокое обучение с подкреплением
Полный перевод теории первого юнита курса Hugging Face: агент и среда, цикл RL, гипотеза о награде, дисконтирование, типы задач, исследование и использование, методы на основе политики и на основе ценности.
Это перевод теоретической части юнита 1 курса Hugging Face Deep RL Course. Практическое занятие юнита (посадка лунного модуля с Stable-Baselines3) переведено на отдельной странице «Юнит 1, практика». Карта всего курса — в путеводителе.
Введение
Заголовок раздела «Введение»Добро пожаловать в самую увлекательную тему искусственного интеллекта — глубокое обучение с подкреплением (Deep Reinforcement Learning, Deep RL).
Deep RL — это вид машинного обучения, в котором агент учится вести себя в среде, совершая действия и наблюдая за результатами.
В этом первом юните вы изучите основы глубокого обучения с подкреплением.
Затем вы обучите своего первого агента — лунный модуль, который должен правильно сесть на Луну, — с помощью Stable-Baselines3, библиотеки для Deep RL. В оригинале здесь анимация: модуль с тремя двигателями опускается между двумя флажками на посадочную площадку.
И наконец, вы загрузите обученного агента на Hugging Face Hub — бесплатную открытую платформу, где люди делятся моделями, датасетами и демо.
Всё это важно освоить до того, как браться за реализацию агентов глубокого обучения с подкреплением. Цель главы — дать вам прочный фундамент.
После этого юнита, в бонусном юните, вы сможете обучить собаку Хагги (Huggy) приносить палку и поиграть с ней.
Итак, начнём!
Что такое обучение с подкреплением
Заголовок раздела «Что такое обучение с подкреплением»Чтобы понять обучение с подкреплением, начнём с общей картины.
Общая картина
Заголовок раздела «Общая картина»Идея обучения с подкреплениемобучение с подкреплениемEN reinforcement learning (RL) в том, что агентагентEN agentВ китайском встречается и «дайли» («посредник»), но в AI-контексте стандарт — «чжинэнти» (буквально «интеллектуальное тело»). (система ИИ) учится у среды, взаимодействуя с ней (методом проб и ошибок) и получая награды (отрицательные или положительные) как обратную связь за свои действия.
Обучение через взаимодействие со средой знакомо нам по собственному опыту.
Представьте, что вы посадили младшего брата перед видеоигрой, в которую он никогда не играл, дали ему джойстик и оставили одного.
Брат взаимодействует со средой (видеоигрой), нажимая кнопку «вправо» (действие). Он подобрал монету — это награда +1. Награда положительная, и он только что понял, что в этой игре надо собирать монеты.
Потом он снова нажимает «вправо» и натыкается на врага. Он погиб — это награда −1.
Взаимодействуя со средой методом проб и ошибок, брат понимает, что в этой среде нужно собирать монеты и избегать врагов.
Без всякого учителя ребёнок играет всё лучше и лучше.
Так учатся люди и животные — через взаимодействие. Обучение с подкреплением — это просто вычислительный подход к обучению на собственных действиях.
Формальное определение
Заголовок раздела «Формальное определение»Теперь можно дать формальное определение:
Обучение с подкреплением — это подход к решению задач управления (их ещё называют задачами принятия решений), при котором мы строим агентов, которые учатся у среды, взаимодействуя с ней методом проб и ошибок и получая награды (положительные или отрицательные) как единственную обратную связь.
Но как устроено обучение с подкреплением?
Модель обучения с подкреплением
Заголовок раздела «Модель обучения с подкреплением»Процесс RL
Заголовок раздела «Процесс RL»В оригинале здесь схема из книги Саттона и Барто «Reinforcement Learning: An Introduction»: агент и среда соединены петлёй «состояние, действие, награда, следующее состояние».
flowchart LR A["Агент"] -->|"действие A_t"| E["Среда"] E -->|"награда R_t+1"| A E -->|"новое состояние S_t+1"| A
Чтобы понять процесс RL, представим агента, который учится играть в платформер:
- Агент получает от среды состояние — первый кадр игры.
- На основе состояния агент совершает действие — идёт вправо.
- Среда переходит в новое состояние — новый кадр.
- Среда выдаёт агенту награду — мы не погибли (положительная награда +1).
Эта петля RL выдаёт последовательность состояние, действие, награда, следующее состояние: .
Цель агента — максимизировать свою накопленную награду, которую называют ожидаемой отдачей (expected return).
Гипотеза о награде: главная идея обучения с подкреплением
Заголовок раздела «Гипотеза о награде: главная идея обучения с подкреплением»Почему цель агента — максимизировать ожидаемую отдачу?
Потому что RL основано на гипотезе о награде (reward hypothesis): любую цель можно описать как максимизацию ожидаемой отдачи (ожидаемой накопленной награды).
Поэтому в обучении с подкреплением, чтобы получить наилучшее поведение, мы учимся выбирать действия, которые максимизируют ожидаемую накопленную награду.
Марковское свойство
Заголовок раздела «Марковское свойство»В статьях вы увидите, что процесс RL называют марковским процессом принятия решений (Markov Decision Process, MDPмарковский процесс принятия решений (MDP)EN Markov decision process (MDP)Пятёрка (S, A, P, R, γ): состояния, действия, вероятности переходов, награда и коэффициент дисконтирования.).
О марковском свойствемарковское свойствоEN Markov propertyБудущее зависит только от текущего состояния и действия, а не от всей предыстории. мы поговорим в следующих юнитах. Но если запомнить сегодня только одно, то вот что: марковское свойство означает, что агенту для решения, какое действие выбрать, достаточно текущего состояния, а история всех прошлых состояний и действий не нужна.
Пространство наблюдений и состояний
Заголовок раздела «Пространство наблюдений и состояний»Наблюдения (состояния) — это информация, которую агент получает от среды. В видеоигре это может быть кадр (скриншот). У агента-трейдера — стоимость какой-нибудь акции и так далее.
Однако наблюдение и состояние нужно различать:
- Состояние — это полное описание мира (скрытой информации нет). Так бывает в полностью наблюдаемой среде. В шахматах нам доступна вся доска, поэтому от среды мы получаем состояние. Иначе говоря, среда полностью наблюдаема.
- Наблюдение — это частичное описание состояния. Так бывает в частично наблюдаемой среде. В Super Mario Bros мы видим только кусок уровня рядом с игроком, поэтому получаем наблюдение: мы находимся в частично наблюдаемой среде, ведь видна лишь часть уровня.
Итог: состояние — полное описание мира (например, шахматная доска целиком); наблюдение — частичное описание (например, видимая часть уровня в Mario).
Пространство действий
Заголовок раздела «Пространство действий»Пространство действий — это множество всех возможных действий в среде.
Действия бывают из дискретного или непрерывного пространства:
- Дискретное пространство: число возможных действий конечно. В Super Mario Bros всего 4 действия: влево, вправо, вверх (прыжок) и вниз (присесть).
- Непрерывное пространство: число возможных действий бесконечно. Агент беспилотного автомобиля может повернуть руль на 20°, на 21,1°, на 21,2°, посигналить, повернуть направо на 20° и так далее.
Это важно учитывать: от типа пространства действий зависит, какой алгоритм RL выбирать.
Награды и дисконтирование
Заголовок раздела «Награды и дисконтирование»Награданаграда, вознаграждениеEN rewardЧисло, которым среда оценивает действие или весь ответ. У LLM обычно одна награда в конце ответа. в RL фундаментальна, потому что это единственная обратная связь для агента. Благодаря ей агент понимает, было ли действие хорошим.
Накопленную награду с момента можно записать так (в оригинале формула — на картинке):
Накопленная награда — это сумма всех наград последовательности. То же самое коротко:
При слагаемое равно , при — и так далее.
Однако на деле так просто складывать награды нельзя. Награды, которые приходят раньше (в начале игры), получить вероятнее: их легче предсказать, чем награды в далёком будущем.
Допустим, ваш агент — маленькая мышка, которая за шаг передвигается на одну клетку, а противник — кот (он тоже ходит). Цель мышки — съесть как можно больше сыра, пока её не съел кот.
В оригинале нарисован лабиринт: рядом с мышкой лежат маленькие кусочки сыра, а большая гора сыра лежит рядом с котом. Видно, что съесть сыр рядом с собой вероятнее, чем сыр рядом с котом (чем ближе к коту, тем опаснее).
Поэтому награда рядом с котом, даже если она больше (больше сыра), будет сильнее дисконтирована: мы не уверены, что сумеем её съесть.
Дисконтируют награды так:
- Задаём коэффициент дисконтированиякоэффициент дисконтированияEN discount factorγ от 0 до 1: во сколько раз награда через шаг «дешевле» награды сейчас. Горизонт планирования ≈ 1/(1−γ). — гамму, . Он должен быть от 0 до 1.
Чаще всего — от 0,95 до 0,99.
- Чем больше гамма, тем слабее дисконтирование. Агент больше заботится о долгосрочной награде.
- Чем меньше гамма, тем сильнее дисконтирование. Агент больше заботится о краткосрочной награде (о ближайшем сыре).
- Затем каждую награду умножаем на гамму в степени номера шага. Чем дальше шаг, тем ближе к нам кот, так что будущую награду получить всё менее вероятно.
Ожидаемая дисконтированная накопленная награда:
Типы задач
Заголовок раздела «Типы задач»Задача — это конкретный экземпляр задачи обучения с подкреплением. Задачи бывают двух типов: эпизодические и непрерывные (continuing).
Эпизодическая задача
Заголовок раздела «Эпизодическая задача»Здесь есть начальная и конечная точка (терминальное состояние). Так получается эпизодэпизодEN episodeОдна партия взаимодействия от старта до конечного состояния. У LLM — один ответ до токена конца. — список состояний, действий, наград и новых состояний.
Возьмём Super Mario Bros: эпизод начинается с запуска нового уровня и заканчивается, когда Марио погиб или дошёл до конца уровня.
Непрерывные задачи
Заголовок раздела «Непрерывные задачи»Это задачи, которые длятся бесконечно (терминального состояния нет). Агент должен учиться выбирать лучшие действия и одновременно взаимодействовать со средой.
Например, агент для автоматической биржевой торговли. У этой задачи нет ни начала, ни терминального состояния. Агент работает, пока мы его не остановим.
Итог: в эпизодической задаче есть начало и конец, в непрерывной — только начало.
Компромисс между исследованием и использованием
Заголовок раздела «Компромисс между исследованием и использованием»Прежде чем смотреть на методы решения задач RL, нужно разобрать ещё одну очень важную тему — компромисс между исследованием и использованиемисследование и использованиеEN exploration vs. exploitationКомпромисс между «пробовать новое, чтобы узнать больше» и «делать то, что сейчас кажется лучшим». (exploration/exploitation trade-off).
- Исследование (exploration) — изучать среду, пробуя случайные действия, чтобы узнать о ней больше.
- Использование (exploitation) — использовать уже известное, чтобы получить максимум награды.
Помните: цель агента RL — максимизировать ожидаемую накопленную награду. Но здесь легко попасть в ловушку.
Пример. В этой игре у мышки под боком бесконечно много маленьких кусочков сыра (по +1). А наверху лабиринта лежит огромная куча сыра (+1000).
Если думать только об использовании, агент никогда не доберётся до огромной кучи. Он будет пользоваться ближайшим источником наград, пусть даже маленьким (использование).
А если агент немного поисследует, он может найти большую награду (кучу сыра).
Это и есть компромисс между исследованием и использованием. Нужно соблюдать баланс: сколько мы исследуем среду и сколько используем то, что о ней знаем.
Поэтому нужно задать правило, которое помогает справиться с этим компромиссом. Разные способы мы увидим в следующих юнитах.
Если всё ещё непонятно, подумайте о жизненной задаче — выборе ресторана (пример из курса Berkeley CS188):
- Использование: каждый день ходите в один и тот же ресторан, про который знаете, что он хороший, и рискуете пропустить ресторан получше.
- Исследование: пробуете рестораны, где никогда не были, рискуя неудачным ужином, но с шансом на потрясающий.
Два главных подхода к решению задач RL
Заголовок раздела «Два главных подхода к решению задач RL»Теперь, когда мы знаем модель RL, как решить задачу RL? Иначе говоря, как построить агента RL, который выбирает действия, максимизирующие ожидаемую накопленную награду?
Политика π: мозг агента
Заголовок раздела «Политика π: мозг агента»Политикаполитика (стратегия агента)EN policy — это мозг агента: функция, которая говорит, какое действие выбрать в текущем состоянии. Она определяет поведение агента в данный момент.
Политика — та функция, которую мы хотим выучить. Наша цель — найти оптимальную политику : политику, которая максимизирует ожидаемую отдачу, если агент действует по ней. Мы находим с помощью обучения.
Обучить агента находить оптимальную политику можно двумя способами:
- Напрямую: учим агента, какое действие выбирать в текущем состоянии. Это методы на основе политики (policy-based).
- Косвенно: учим агента, какое состояние ценнее, а потом выбираем действие, которое ведёт в более ценные состояния. Это методы на основе ценности (value-based).
Методы на основе политики
Заголовок раздела «Методы на основе политики»В методах на основе политики мы напрямую учим функцию-политику.
Эта функция сопоставляет каждому состоянию лучшее действие. Или же задаёт распределение вероятностей по возможным действиям в этом состоянии.
В оригинале нарисован лабиринт, где в каждой клетке стрелка: (детерминированная) политика прямо указывает, какое действие выбрать на каждом шаге.
Политики бывают двух типов:
- Детерминированная: в данном состоянии политика всегда возвращает одно и то же действие:
, то есть
действие = политика(состояние). - Стохастическая: выдаёт распределение вероятностей по действиям: — распределение по множеству действий при текущем состоянии.
Например, в начальном состоянии стохастическая политика может выдать: «влево — 0,1, вправо — 0,7, прыжок — 0,2».
Итог по методам на основе политики: мы учим политику напрямую; она отображает состояние в лучшее действие (детерминированная) или в распределение вероятностей действий (стохастическая).
Методы на основе ценности
Заголовок раздела «Методы на основе ценности»В методах на основе ценности вместо функции-политики мы учим функцию ценности, которая сопоставляет состоянию ожидаемую ценность пребывания в нём.
Ценность состояния — это ожидаемая дисконтированная отдача, которую агент получит, если начнёт в этом состоянии и дальше будет действовать по нашей политике:
«Действовать по нашей политике» здесь просто означает, что политика — «идти в состояние с наибольшей ценностью».
В оригинале нарисован лабиринт, где в каждой клетке записано число — её ценность: −7, −6, −5 и так далее, ближе к цели числа больше. Функция ценности задала значения для всех возможных состояний. Благодаря ей политика на каждом шаге выбирает состояние с наибольшей ценностью: −7, затем −6, затем −5 и так далее, пока не достигнет цели.
Итог по методам на основе ценности: мы учим функцию ценностифункция ценности состояния (V)EN state-value functionV^π(s) — средняя отдача, если стартовать из s и дальше действовать по политике π., которая отображает состояние в ожидаемую ценность пребывания в нём, а политика просто выбирает действие, ведущее в самое ценное состояние.
«Глубокое» в глубоком обучении с подкреплением
Заголовок раздела ««Глубокое» в глубоком обучении с подкреплением»До сих пор мы говорили об обучении с подкреплением. Но где здесь «глубокое»?
Глубокое обучение с подкреплением использует глубокие нейронные сети для решения задач RL — отсюда и название.
Например, в следующем юните мы изучим два алгоритма на основе ценности: Q-learningQ-learningEN Q-learningQ(s,a) ← Q(s,a) + α[r + γ max_a′ Q(s′,a′) − Q(s,a)]. Off-policy: учит Q* при любом поведении. (классическое обучение с подкреплением) и затем Deep Q-learning.
Разница в том, что в первом подходе используется традиционный алгоритм: он строит Q-таблицу, которая помогает найти действие для каждого состояния.
Во втором подходе используется нейронная сеть (она приближает Q-значения). В оригинале это показано схемой (по мотивам ноутбука Udacity): слева «состояние + действие → Q-таблица → Q-значение», справа «состояние → нейросеть → Q-значения для каждого действия».
Если вы не знакомы с глубоким обучением, обязательно посмотрите бесплатный курс fast.ai Practical Deep Learning for Coders.
Это было много информации! Подведём итоги:
- Обучение с подкреплением — вычислительный подход к обучению на собственных действиях. Мы строим агента, который учится у среды, взаимодействуя с ней методом проб и ошибок и получая награды (отрицательные или положительные) как обратную связь.
- Цель любого агента RL — максимизировать ожидаемую накопленную награду (ожидаемую отдачу), потому что RL основано на гипотезе о награде: любую цель можно описать как максимизацию ожидаемой накопленной награды.
- Процесс RL — петля, которая выдаёт последовательность состояние, действие, награда, следующее состояние.
- Чтобы посчитать ожидаемую накопленную награду (ожидаемую отдачу), награды дисконтируют: награды, которые приходят раньше (в начале игры), получить вероятнее, потому что их легче предсказать, чем далёкие будущие награды.
- Решить задачу RL — значит найти оптимальную политику. Политика — «мозг» агента: она говорит, какое действие выбрать в данном состоянии. Оптимальная политика даёт действия, максимизирующие ожидаемую отдачу.
- Найти оптимальную политику можно двумя способами:
- обучать политику напрямую: методы на основе политики;
- обучать функцию ценности, которая говорит, какую ожидаемую отдачу агент получит в каждом состоянии, и через неё задавать политику: методы на основе ценности.
- Наконец, мы говорим о глубоком RL, потому что используем глубокие нейронные сети, чтобы оценивать, какое действие выбрать (на основе политики), или оценивать ценность состояния (на основе ценности).
Глоссарий
Заголовок раздела «Глоссарий»Глоссарий составлен участниками сообщества курса.
Агент — учится принимать решения методом проб и ошибок, получая награды и наказания от окружения.
Среда — смоделированный мир, где агент может учиться, взаимодействуя с ним.
Марковское свойство — действие агента зависит только от текущего состояния и не зависит от прошлых состояний и действий.
Наблюдения и состояния
- Состояние — полное описание мира.
- Наблюдение — частичное описание состояния среды (мира).
Действия
- Дискретные действия — конечное число действий, например влево, вправо, вверх и вниз.
- Непрерывные действия — бесконечное число вариантов; например, у беспилотного автомобиля в любой дорожной ситуации бесконечно много возможных действий.
Награды и дисконтирование
- Награда — основа RL. Говорит агенту, хорошим или плохим было действие.
- Алгоритмы RL стремятся максимизировать накопленную награду.
- Гипотеза о награде — задачи RL можно сформулировать как максимизацию (накопленной) отдачи.
- Дисконтирование нужно потому, что награды в начале получить вероятнее: их легче предсказать, чем долгосрочные.
Задачи
- Эпизодическая — есть начальная и конечная точка.
- Непрерывная — есть начальная точка, но нет конечной.
Компромисс между исследованием и использованием
- Исследование — изучать среду, пробуя случайные действия и получая от среды обратную связь (отдачу, награды).
- Использование — использовать то, что мы знаем о среде, чтобы получить максимум награды.
- Компромисс — баланс между тем, сколько мы исследуем среду и сколько используем знания о ней.
Политика
- Политика — «мозг» агента. Говорит, какое действие выбрать в данном состоянии.
- Оптимальная политика — политика, которая максимизирует ожидаемую отдачу, если агент действует по ней. Её находят обучением.
Методы на основе политики
- Один из подходов к решению задач RL.
- Политику учат напрямую.
- Она отображает каждое состояние в лучшее действие в нём или в распределение вероятностей по возможным действиям.
Методы на основе ценности
- Другой подход к решению задач RL.
- Вместо политики учат функцию ценности, которая отображает каждое состояние в ожидаемую ценность пребывания в нём.
Лучший способ учиться и не попасть в ловушку иллюзии компетентности — проверять себя. Так вы найдёте, где знания нужно подкрепить.
Вопрос 1. Что такое обучение с подкреплением?
Ответ
Обучение с подкреплением — это подход к решению задач управления (задач принятия решений), при котором мы строим агентов, которые учатся у среды, взаимодействуя с ней методом проб и ошибок и получая награды (положительные или отрицательные) как единственную обратную связь.
Вопрос 5. Что такое компромисс между исследованием и использованием?
Ответ
В RL нужно соблюдать баланс: сколько исследовать среду и сколько использовать то, что о ней известно.
- Исследование — изучать среду, пробуя случайные действия, чтобы узнать о ней больше.
- Использование — использовать известную информацию, чтобы максимизировать награду.
Вопрос 6. Что такое политика?
Ответ
Политика — мозг агента. Это функция, которая говорит, какое действие выбрать в текущем состоянии. Значит, она определяет поведение агента в данный момент.
Вопрос 7. Что такое методы на основе ценности?
Ответ
- Это один из двух главных подходов к решению задач RL.
- Вместо функции-политики мы обучаем функцию ценности, которая отображает состояние в ожидаемую ценность пребывания в нём.
Вопрос 8. Что такое методы на основе политики?
Ответ
- В методах на основе политики мы учим функцию-политику напрямую.
- Она отображает каждое состояние в лучшее действие в нём или в распределение вероятностей по возможным действиям в нём.
Поздравляем с окончанием теста! Если что-то упустили, перечитайте главу и подкрепите (😏) знания. Но не волнуйтесь: в течение курса мы будем возвращаться к этим понятиям и подкреплять теорию практикой.
Заключение
Заголовок раздела «Заключение»Поздравляем с окончанием юнита! Он самый большой, информации было много. И поздравляем с окончанием практического занятия: вы только что обучили первых агентов Deep RL и поделились ими с сообществом!
Нормально, если что-то пока путается. Так было и у автора курса, и у всех, кто изучал RL.
Не спешите и как следует разберитесь в материале, прежде чем идти дальше. Важно освоить эти элементы и заложить прочный фундамент, прежде чем начнётся самое интересное.
Конечно, по ходу курса мы будем снова использовать и объяснять эти термины, но лучше понять их до следующих юнитов.
В следующем (бонусном) юните мы закрепим изученное, обучив собаку Хагги приносить палку. Потом с ней можно будет поиграть. Бонусный юнит описан в путеводителе по юнитам 5, 7 и бонусам.
Авторы курса будут рады узнать ваше мнение о курсе и о том, как его улучшить — для этого в оригинале есть форма обратной связи.
Продолжайте учиться и оставайтесь крутыми 🤗
Дополнительное чтение
Заголовок раздела «Дополнительное чтение»Это необязательные материалы для тех, кто хочет копнуть глубже.
Глубокое обучение с подкреплением
- Reinforcement Learning: An Introduction, Ричард Саттон и Эндрю Барто, главы 1, 2 и 3.
- Foundations of Deep RL Series, L1: MDPs, Exact Solution Methods, Max-ent RL — Питер Аббил (видео).
- Spinning Up in Deep RL от OpenAI, часть 1: ключевые понятия RL.
Gym
Словарик
Заголовок раздела «Словарик»| English | Русский |
|---|---|
| reinforcement learning (RL) | обучение с подкреплением |
| agent / environment | агент / среда |
| state / observation | состояние / наблюдение |
| action space (discrete / continuous) | пространство действий (дискретное / непрерывное) |
| reward, cumulative reward | награда, накопленная награда |
| expected return | ожидаемая отдача |
| reward hypothesis | гипотеза о награде |
| discount rate, gamma | коэффициент дисконтирования, гамма |
| episodic / continuing task | эпизодическая / непрерывная задача |
| terminal state | терминальное состояние |
| exploration / exploitation trade-off | компромисс между исследованием и использованием |
| policy, optimal policy | политика, оптимальная политика |
| deterministic / stochastic policy | детерминированная / стохастическая политика |
| policy-based / value-based methods | методы на основе политики / на основе ценности |
| value function | функция ценности |
| Markov Decision Process (MDP) | марковский процесс принятия решений |