Назад
286

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

286

Что такое обучение с подкреплением?

Конечная цель обучения с подкреплением — решение задач посредством взаимодействия со средой. В отличие от обучения с учителем, агент не знает правильных ответов и учится путем максимизации вознаграждений, которые дают обратную связь о качестве его действий. Для наглядности представим нашего агента в виде единорога, как показано на рисунке 1. Его цель — собрать как можно больше монет. За каждую монету он получает вознаграждение +1, а за смерть от злых осьминогов –1. После многих попыток единорог обучается избегать осьминогов и собирать максимальное количество монет.

Рисунок 1. Пример видеоигры как простой среды. Есть агент единорог и вознаграждения +1 за монету и -1 за смерть

Парадигма обучения с подкреплением

Ключевые персонажи в обучении с подкреплением — агент и среда.

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

Помимо состояния среды агент получает вознаграждение от среды \( r_t \). Это числовое значение, которое отражает качество принятого решения и ценность нахождения в данном состоянии. Цель агента заключается в максимизации суммарного вознаграждения — дохода (англ. return).

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

Гипотеза вознаграждений

Гипотеза вознаграждений — основа обучения с подкреплением. Она утверждает, что любая цель может быть выражена через максимизацию скалярного числа, называемого вознаграждением. Например, в шахматной игре за победу агент получает +1, за проигрыш — 0 или -1. В случае робота-сортировщика за каждую отсортированную вещь он получает +1. Для достижения наилучшего поведения агент должен максимизировать среднюю сумму вознаграждений.

Состояния и наблюдения

Состояние или наблюдение — информация о среде, которую получает агент. Для видеоигр это может быть скриншот экрана, для агента-трейдера — цена определенной акции, а для робота — данные с камеры, лидара и энкодеров. Различие между состоянием и наблюдением можно объяснить так:

  • Состояние представляет полное описание среды. Оно содержит всю без исключения информацию о среде. Например, в шахматной игре полное описание включает расположение всех фигур на доске (рисунок 3). В таких случаях мы говорим о Марковском процессе принятия решений, где текущее состояние \( s_t \) достаточно для описания всей истории состояний \( s_0, s_1,\dots , s_{t-1} \).
  • Наблюдение, напротив, представляет частичное описание среды. Например, в видеоигре скриншот не содержит всей информации о среде (рисунок 4): мы не можем определить направление движения агента или врагов. При обучении агентов в видеоиграх с помощью Deep Q-Learning исследователи из OpenAI использовали последовательность четырех кадров для улучшения описания среды.
Рисунок 3. Положение всех фигур в
шахматах — состояние среды, потому что оно полностью описывает среду
Рисунок 4. Скриншот не является
состоянием среды в видеоигре, так как не
описывает ее целиком. Например, он не указывает направление движения агента

Пространство действий

Пространство действий — набор всех возможных действий, которые способен выполнить агент. В таких средах, как видеоигры и шахматы, число действий ограничено. Их называют дискретными пространствами действий. Однако в других средах, например, в управлении автономным автомобилем или роботом, число действий может быть бесконечным (любое значение угла поворота руля от 0 до 180 градусов). В таких случаях говорят о непрерывных пространствах действий.

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

Траектории

Траектория \( \tau \) — это последовательность состояний среды и действий агента:

\( \tau = (s_0,a_0,s_1,a_1,\dots). \)

Начальное состояние среды \( s_0 \) обычно выбирается случайным образом из распределения начальных состояний \( \rho_0 \): \( s_0 \sim \rho_0 \). Его изменение в результате действий агента может быть детерминированным:

\( s_{t+1}=f(s_t,a_t), \)

или стохастическим:

\( s_{t+1} \sim P(\cdot |s_t, a_t). \)

Иногда траекторию также называют rollout или эпизодом.

Вознаграждения

Вознаграждение \( r_t \) играет важную роль в обучении агента, ведь это единственная обратная связь для него. Благодаря вознаграждению агент понимает, насколько хорошо принятое им решение. Суммарное вознаграждение записывается таким образом:

\( \begin{align*} R(\tau) &= r_{t+1} + r_{t+2} +r_{t+3} + \dots \\ & = \sum_{k=0}^{\infty}r_{t+k+1} \end{align*} \)

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

Рисунок 5. Пример ценности вознаграждений на краткосрочной и долгосрочной перспективах

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

Для дисконтирования наград мы используем коэффициент дисконтирования \( γ \). Он должен быть между 0 и 1, чаще всего выбирается в диапазоне от 0.95 до 0.99. Чем больше \( γ \), тем меньше скидка, и, следовательно, наш агент более заинтересован в долгосрочной награде. С другой стороны, чем меньше \( γ \), тем больше скидка и наш агент более заинтересован в краткосрочной награде (ближайший сыр). Дисконтированная сумма наград записывается таким образом:

\( \begin{align*} R(\tau) &= \gamma r_{t+1} + \gamma^2 r_{t+2} + \gamma^3 r_{t+3} + \dots \\ & = \sum_{k=0}^{\infty} \gamma^k r_{t+k+1} \end{align*} \)

Задачи обучения с подкреплением

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

  • В эпизодических задачах у нас есть некоторое начальное состояние среды \( s_0 \)(начальное состояние фигур в шахматах) и конечное \( s_T \) (состояние фигур при победе или проигрыше). Один эпизод состоит из последовательности состояний и действий (траектории) \( s_0, a_0, s_1,a_1,\dots, s_T. \)
  • Непрерывные задачи бесконечны (без конечного состояния). Например, агент, занимающийся автоматизированной торговлей акциями. Для такой задачи нет начальной и конечной точки. Агент продолжает работать до тех пор, пока мы не решим его остановить.

Дилемма исследования и эксплуатации

Рисунок 6. Наглядная иллюстрация дилеммы исследования и эксплуатации: выбрать любимый ресторан с проверенными блюдами или новое место с потенциально незабываемым люля кебабом

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

Два основных подхода к обучению с подкреплением

Как нам обучить агента выбору действий, максимизирующих суммарное вознаграждение?

Стратегия

Стратегия (политика, контроллер) \( \pi \) — это функция, «мозг» нашего агента. Она указывает, какое действие нужно предпринять в данном состоянии \( s_t \). Следовательно, определяет поведение агента в конкретный момент времени.

Рисунок 7. Наглядная демонстрация принятия решения и роли стратегии. Состояние среды служит входным значением стратегии, которая возвращает действие

Есть два подхода к обучению нашего агента для достижения оптимальной политики \( \pi^* \), которая максимизирует суммарное ожидаемое вознаграждение:

  • явный подход: обучение агента выбирать оптимальное действие в каждом состоянии (методы на основе стратегии, policy-based methods);
  • косвенный подход: обучение агента определять ценность каждого состояния и принимать действия для более ценных состояний (методы на основе оценки ценности, value-based methods).

Методы на основе стратегии

В этих методах мы обучаем функцию стратегии \( \pi \) напрямую. Функция определяет лучшее действие \( a_t \) для каждого состояния \( s_t \). В альтернативном варианте она может устанавливать вероятностное распределение возможных действий для данного состояния.

Рисунок 8. Пример метода на основе стратегии. Агент напрямую обучается стратегии
Рисунок 9. Пример метода на основе функции ценности.
Агент обучается функции ценности, а затем на ее основе выбирает оптимальное дейcтвие

Итак, подведем итоги. Есть два вида стратегий:

  • детерменированные возвращают одно определенное действие для конкретного состояния \( a_t = \pi(s_t) \);
  • стохастические возвращают распределение вероятностей возможных действий для данного состояния \( \pi(a|s) = P(A|s) \).
Рисунок 10. Пример детерменированной стратегии
Рисунок 11. Пример стохастической стратегии

Методы на основе оценки ценности

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

\( v_\pi(s) = \mathbb E_\pi[R_{t+1} + \gamma R_{t+2} + \gamma^2 R_{t+3} + \dots | S_t = s] \)

Давайте рассмотрим простой табличный пример, представленный на рисунке 9. Благодаря обученной оценке функции ценности агент на каждом временном шаге выберет действие, которое приведет к состоянию с наибольшим значением функции ценности: -7 \( \rightarrow \) -6 \( \rightarrow \dots \) \( \rightarrow \) -1.

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

Рисунок 12. Разница между классическим и глубоким обучением с подкреплением

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

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

Дополнительные ресурсы

Телеграм-канал

DeepSchool

Короткие посты по теории ML/DL, полезные
библиотеки и фреймворки, вопросы с собеседований
и советы, которые помогут в работе

Открыть Телеграм

Увидели ошибку?

Напишите нам в Telegram!